Ali Hıdımoğlu

Boo! Dergi Resmi Blogu

Subscribe to Ali Hıdımoğlu
Technorati
del.icio.us

Archive for the ‘Asp.net’ Category

Eylül-16-08

Asp.net Tips: Kolay url bulma…

posted by Panda

Bir web sitesi tasarlamaktasınız, fakat dosyalarınız kalsörler içerisinde tutulmakta. Bu konuda bir sıkıntınız yok fakat, öyle bir URL’niz var ki elinizde hem klasöründışındaki bir sayfada hem de klasörün içindeki bir sayfada bulunuyor ve o sayfalarda tek bir kod ile çaÄŸrılıyor. Bu durumda insan gayet sıkışıyor.

Ya da bir web projesini modifiye etmeniz gerekti ve o sırada adını bildiğiniz fakat hangi klasör içerisinde olduğunu bilmediğiniz bir sayfa çağırmanız gerekti.

Yukarıda bahsettiğim durumlara kolay ve basit bir çözümümüz mecvut.

1
ResolveClientUrl(string URL);

kodu. Verilen URL’nin client tarafında klasörünü belirler ve o ÅŸekilde çağırır.

Bunu ÅŸu ÅŸekilde kullanabilirsiniz:

1
<a href="#" onclick="PencereAc('<%= ResolveClientUrl("NewsUpdate.aspx") %>')">News Update</a>

ÅŸeklinde bir asp.net sayfasının içerisine yazdığınızda bizim sayfamız News/ klasöründe ise News/NewsUpdate.aspx olarak çaÄŸrılacaktır…

Aynı ÅŸekilde kod sisteminde de kullanılabilir…

Haziran-9-08

Silverlight Türkçe karakter sorunu

posted by Panda

Hiç karşılaştınız mı bilmiyorum fakat Silverlight’ı WS ya da Expression Studio içerisinde tasarlamadığınız zamanlarda Türkçe karakterler olduğundan animasyonunuz gösterilmiyor. Zira bu durumu aşmak için Türkçe karakterlerden kaçındığımızı biliyorum. Fakat bunu neden yapalım? Neden güzel Türkçemizi bozalım ki?

Silverlight sadece UTF8 kodlamaya izin vermektedir. Fakat bu encoding içerisinde Türkçe karakterler gösterilmemektedir. En son Silverlight 2 Beta 2 de kontrol edilmiştir.

Bunun için bir yol keşfettim bu yol içerisinde – ki benden önce bu duruma açıklık geritenler olmuş olabilir – html kodunu yapıştırıyoruz karakterimizin. Aşağıda bu Türkçe karakter olan fakat Silverlight da gösterilmeyen karakterler listelenmiştir…

1
2
3
4
5
6
7
8
9
10
Ö &#214;
ö &#246;
Ü &#220;
ü &#252;
Äž &#286;
ÄŸ &#287;
İ &#304;
ı &#305;
ÅŸ &#351;
Åž &#350;

XAML kodu ise aÅŸağıda belirtilmiÅŸtir…

1
2
3
<canvas xmlns="http://schemas.microsoft.com/client/2007" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">   
  <textblock> &#214; - &#246; - &#220; - &#252; - &#286; - &#287; - &#304; - &#305; - &#351; - &#350;</textblock>
</canvas>
Mayıs-26-08

Pageflakes …

posted by Panda

Uzun zamandır kendime ÅŸöyle güzel bir RSS okuyucu arıyordum. Fakat kendi bilgisayarımın içerisine zaten pageflakesonline bir ÅŸeyi yükleme fikri hiç de güzel gelmiyordu. Bunun neticesinde otomatik olarak kendini güncelleyen HomePage sistemler (my.live.com, my google, my msn, vb…) gibi siteleri denedim. Bunlar içerisinde my Live sistemi daha çok sevdiÄŸimi de belirtmem lazım. Fakat bana inat her halde bu sistemlerin tematik durumları gayet zayıf ÅŸekilde oluyordu ve beni sinirden sinire sokuyordu.

Ardından uzun zamandır aklımda olan, fakat adam akıllı bir ÅŸekilde girip de araÅŸtıramadığım  http://www.pageflakes.com adresini denedim.

Tek kelime ile mükemmel, zaten kullanımının basit olduÄŸunun farkındaydım fakat bu kadar isteklere hitap edeceÄŸinin farkında deÄŸildim. Gayet kullanım basitliÄŸi, görünümün istek bazında deÄŸiÅŸtirilebilirliÄŸi, fleak (benzer: widgets…) ların bulunması sebeplerinden, bütün bir günümü bu siteyi incelemeye adadığımı belirtebilirim.

EÄŸer bir HomePage - Ana Sayfa - istiyorsanız ve aynı anda birkaç siteyi incelemeniz gerekiyor ise, tavsiyem Pageflakes olacaktır… Bu arada Pageflakes Asp.Net temelli bir sitedir… :D

bu gün içimden garip bir his diyordu, bloglara bak oku incele diye. Fakat ben ancak gece vakit bulabildiÄŸimden geç haberdar oldum bu olaydan. Scott Guthrie amcamın blogunda yazdığına göre Visual Studio 2008 ve .net 3.5 Servis Paket 1 beta olarak yayınlanmış bulunmakta tabi (tarih 12 Mayıs 2008 9.45) bunların çıkması ile iÅŸ bitmiyor. Burada Scott Gu. Abimiz ne demiÅŸ bir irdeleyelim.

Bu yazıyı yazarken SP1 indirmesini baÅŸlattım. İnternet hızımdan olsa gerek bana 10 saatlik bir download süresi biçti hadi hayırlısı…

Not: Buradaki yazılar Scott Guthrie’nin kayıtlı blogundan alınmış olup sadece Türkçeye çevrilmiÅŸtir. Buradaki bilgileri kopyalayacaksanız lütfen Scott Guthrie’nin kendi yazısı olduÄŸunu unutmayınız!

" // Tam çeviri deÄŸildir sadece önemli olan kısımlar anlatılmıştır…
________________________________________________________________________________

Bu yaz tam sürümünün, bedava olarak çıkması amaçlanan, .NET 3.5 ve VS2008 SP1′leri Beta olarak buradan indirilmeye baÅŸlanmıştır.

Önemli: Yükleme notları…
Kritik önem arz eden bilgisayarlara yüklerken SP1′in halen BETA olduÄŸunu unutmayınız. Yüklemelerde bulunan önemli hatalara deÄŸinecek olursak:

  1. .NET 3.5 SP1′i yükleyeceÄŸiniz makinede Vista kurulu ise, kurmadan önce Vista SP1′in kurulmuÅŸ olmasına özen gösteriniz. Yüklemede oluÅŸan bu hata final SP1 sürümünde ortadan kalkmış olacaktır, fakat ÅŸimdiden yüklemeden önce Vista SP1 yükleyiniz.
  2. Bilgisayarınızda Silverlight 2 Beta1için VS 2008 Tools (VS 2008 Tools for Silverlight 2 Beta1) kurulu ise VS2008 SP1 yüklemeden önce lütfen kaldırınız - tabii olarak VS2008′in KB949325 güncelleÅŸtirmesini de kaldırmanız gerek. Daha ayrıntılı bilgileri buradan elde edebilirsiniz. Silverlight 2 runtime makineneizde .NET 3.5 SP1 yüklendikten sonra çalışacaktır - component sadece VS2008 Tools for Silverlight 2 paketinin kaldırılmasını istiyor. Birkaç hafta sonra VS2008 SP1 beta için  VS 2008 Tools for Silverlight paketini zaten çıkartacağız.
  3. .NET 3.5 SP1 beta ile Expression Blend arasında gönderim arasında bir hata oluÅŸuyor.  Bu hatayıda .NET 3.5 SP1 final sürümde gidermiÅŸ olacağız o vakit, Blend sürümleri içerisinde, çalışma zamanında bir hata bulunmamış olarak. O vakte kadar buradaki linden yeni update edilmiÅŸ Blend 2.5 sürümü indirmeniz gerekmektedir.

Web Development için yükseltmeler:

Asp.net Data Scaffolding DesteÄŸi ( Asp.net Dynamic Data ) - Asp.net için veri iskeletlemesi, asp.net dinamik veriler içinde.

.NET 3.5 SP1, Asp.net içerisine zengin "scaffolding"(yapı islesi) frework desteÄŸi ekliyor. Bu, hızlı ÅŸekilde fonksiyonel data-driven(veri yönetimli) web porjeleri yapmanızı saÄŸlıyor. Asp.net Dynamic Data eknetisi ile otomatik olarak web UI(tam CRUD - create(yarat), read(oku), update(güncelle), delete(sil) - desteÄŸi) veri object modellerine (Linq to Sql, Linq to Entites, REST Servisleri ve diÄŸer ORM yada dinamik veri destekleyicisi tabanlı object modelleri) karşı olacak.

SP1 bu yeni fonksiyoneliteyi, Asp.net içerisinde var olan GridView, DetailsView ve FormView kontrollerine ekleyecek ve akıllı kontroller, esnek veri temaları özelliklerini aktifleyecek. Aynı zamanda yeni akıllı filtreleme sever kontrolleri, otomatik çapraz primary-key/foreign-key iliÅŸkisi ve friendly foreign key isimlerini de destekyeleyecek - tüm bunlar aslında sizi tonlarca kod yazmaktan kurtaran ÅŸeyler.

Bütün bunlar hakkında Scott Hanselman’ın videoları ve örneklerine buradan ulaÅŸabilirsiniz.

Asp.net Routing Engine (System.Web.Routing)

.NET 3.5 SP1 içerisinde bir çapraz URL yönlendirme motoru var, ki bu size gelen harita(map) URLlerinde yönlendirme saÄŸlıyor. Ayrıca, temiz URL parametrelerini de algılıyor (örnek: /Products/Browse/Beverages), dinamik hesaplanmış ULRleri de yönlendirmeye kaydediyor.

Bu yeni yönlendirme motoru, asp.net Dynamik Data ve yeni Asp.net MVC fremworkünde de çalışıyor. WebFormları ve MVC tabanlı sorgulamaları da destekleyecek

Asp.net AJAX Back/Forward Button History Support - Ajax içerisinde Geri/ileri buton geçmiÅŸi desteÄŸi

.Net 3.5 SP1, Asp.net Ajax içerisine yeni API ler ekliyor. Bu eklentiler tarayıcı geçmiÅŸi üzerinde daha iyi kontrol saÄŸlayacak (tarayıcının ileri geri butonlarını kontrol edebileceksiniz.)

Bu konu için makaleyi buradan ve screencast halini buradan bulabilirsiniz.

Asp.net Ajax Scrip BirleÅŸtirmesi DesteÄŸi

.NET 3.5 SP1, <asp:ScriptManager> server kontrolü içerisinde, yeni <CompositeScript> elementini tanıtıyor. Bu kontrol tekrarlanabilir çoklu script referanslarını yapmanızı da saÄŸlayacak. Bütün script referansları CompositeScript elemneti ile serverda birleÅŸtirilecek ve cliente tek bir scriptmiÅŸ gibi gösterilecek, istek sayısını azaltmak Asp.net Ajax projelerinde serverda ve sayfaların açılmasında rahatlık saÄŸlayacak.

Script birleÅŸtirme  yeteneÄŸi, hem temel scriptlerde hem de assembly kaynaklı kaynak scriptlerini destekleyecek ve birleÅŸtirilmiÅŸ scriptler ScriptResources.axd handler(yakalayıcı)ı ile dinamik halde gösterilecek.

HTML Dizayn aracında ve HTML Kaynak Editöründe Visual Studio 2008 Performans Yükseltmesi

Åžubat ayında sizlere HotFix roll-up‘ı sunduk. İçerisinde performans artışınızı ve hata ayıklamaları bulunuyordu. VS 2008 SP1 tüm bu güncellendirmeleri ve poerformans yüklemelerini içinde barındıracak.

Visual Studio 2008 JavaScript Script Formatlaması ve Kod Performansı

Birkaç sürümdür VS içerisinde VB ve C# için zengin kaynak kod formatlaması seçeneklerini barındırıyordu (spacing(boÅŸluklama), line breaks(aralık bırakma), brace positions, vb…).

VS 2008 SP1 içerisinde artık JacaScript için daha zengin kod formatlamasını da sunacak (<script> blokları ve .js dosyaları dahil olarak). Hemen, Tools->Options yolu ile Javascript için kod özelliklerini ayarlayabilirsiniz.

Bu özellikler Javascript kodu kullandığunızda otomatik olarak aktif olacak. Aynı ÅŸekilde eÄŸer isterseniz kodu seçip saÄŸ tıklayıp "Format Selection" ile klasik stillendirme iÅŸlemini de uygulaya bileceksiniz. Daha fazlasını öÄŸrenmek için buraya tıklayınız.

Çoklu Javascript/Ajax Fremworkleri İçin Dahaiyi Javascript Intellisense

VS 2008 zaten kod görünümündeyken size Javascript intellisense sunuyordu. ASP.NET Ajax JavaScrip tipleri ve klasik Javascript kodlarında Intellisense(otomatik tamamlama) özelliÄŸini destekliyor. JavaScript dili çok esnek bir dil, düÅŸüncede ve kütüphaneleri ile gayet geniÅŸletilebilir ve bu kütüphaneler ile gayet esnek bir yapıda avantajlı eklemeler ve özellikleri ortaya çıkabilir.

VS 2008 SP1, Javascript kütüphanelerinide (özellikle JQery, Prototype, Scriptaculous, ExtJS, ve diÄŸer popüler kütüphaneleri desteklemesini saÄŸladık) destekliyor. Bu kütüphaneleri referans olarak kullandığınız zaman daha güzel Intellisense kullanacaksınız. Aynı zamanda popüler kütüphaneler çıktıkça onları Intellisensin desteklemesini saÄŸlayacak küçük dosyalar üzerinde de çalışmaktayız.

Asp.net Projelerinde WCF Servisleri için Visual Studio Refactoring DesteÄŸi

VS2008 SP1, WCF servislerinin dahil olduÄŸu Asp.ner web sileri ve Asp.net web projelerine daha güzel yeniden düzenleme desteÄŸi verecek.

EÄŸer siz yeniden düzenleme desteÄŸini, class ismini deÄŸiÅŸtirmede, kontrat arayüzlemesinde (interface contract) ya da bir WCF servisinin namespace’i için kullanıyorsanız, VS 2008 SP1 bu iÅŸlemleri otomatik olarak algılayıp düzenleyecek ve web.config ve SVC dosya referansında yayınlayacak.

Klasik ASP Intellisense ve Debugging için Visual Studio DesteÄŸi

VS’nin önceki sürümlerinde Intellisense ve derleme olarak klasik ASP (.asp) desteÄŸi vardı. Fakat son sürümlerde, sayfa ÅŸablonları ve proje ÅŸablonlarının içerisinde olmadığını anladık. VS 2008′i yaparken tamamen klasik ASP sürümünün kullanılmayacağını düÅŸünmüÅŸtük. Fakat aldığımız geridönümler sayesinde artık bu özelliÄŸi VS 2008′e yeniden ekliyoruz.

Class kütüphanelerinin ve Web Projelerinin Visual Web Developer Express Edition tarafından desteklenmesi

Visual Web Developer 2008 Express sürümünde (bedava olan) SP1 dahilinde güncellenenler arasında olacak. Hem sınıf kütüphanelerini hem de Asp.net Wev projeleri tiplerini destekleyecek. Visual Web Developer Express önceki sürümlerinde sadece Asp.net web-site projelerini destekliyordu.

Bu desteklemelerin diÄŸer getirileri ise, Asp.net MVC ve Silverlight projelerinin bedava Visual Web Developer 2008 Express içerisinde düzenlenebilir olacağı. Yani, Javascript, Dinamik Data, Klasik Asp ve Ajax implementleri Visual Web Developer Express içerisinde çalışıyor olacak.

Buradan sonra klasik baÅŸlık stilinde deÄŸineceÄŸim. Bizim için önemli olan kısmı detaylı ÅŸekilde incelemiÅŸ olduk - Ali

Client Development Yükseltmeleri

  • Uygulama BaÅŸlatma ve Çalışma Performans Ayarlaması Yükseltmesi
  • Yeni .NET Framework Client Profili Setup Paketi
  • Client Uygulamaları için Yeni .NET Framework Setup Bootstrapper
  • ClickOnce(TekKlik) Client Uygulama Yayılması Yükseltmesi
  • Windows Forms Kontrolleri
  • WPF Performans Yükseltmesi
  • WPF Veri Yükseltmesi
  • WPF GeniÅŸletilebilir Gelge Efektleri
  • WPF ile Direct3D’nin Birlikte İşlemesi
  • WPF için VS2008 Yükseltmeleri

Data Development Yükseltmeleri

  • SQL 2008 DesteÄŸi
  • ADO.NET Entity Framework ve Linq to Entities - Varlık
  • ADO.NET Veri Servisleri (eski kod adı: "Astoria")

WCF Development Yükseltmeleri

VB ve C# Yükseltmeleri

Team Foundation Server Yükseltmeleri

________________________________________________________________________________"

Bu akÅŸamlık bu kadar çevirmenin yeteceÄŸini düÅŸünüyorum. Biliyorum bazı yerlerde hatalar var, çünkü size üzerinde ince iÅŸlediÄŸim bir makale deÄŸil, sadece gece vakti güzel geliÅŸmeler olacağını bildirmek istediÄŸim bir haberi çevirdim.

Bu geliÅŸmelere sonradan daha detaylı olarak Blogumda deÄŸineceÄŸimi diyebilirim. Åžimdilik hepinize iyi geceler…

Mayıs-10-08

reCAPTCHA ile spam’e dur diyelim!

posted by Panda

Geçende technorati’ye üye olurken dikkatimi bir ürün çekmiÅŸti. Kendisi bu sayfaya eÄŸer baÅŸlığa tıklayarak girmiÅŸ iseniz en altta bulunan reCAPTCHA yani kelime ile doÄŸrulama sistemi. Bu sistem kullanımı ve yapısı bakımından gerçekten beÄŸenimi kazandı. Ben, kendisinin Wordpress Blog sistemine entegre edilmiÅŸ halini kullanıyorum.

Yüksek güvenliÄŸini onaylanmasını istediÄŸi resimlere göre yapan sistem aslında basit bir WebServisi üzerinden çalışıyor. Åžimdi nasıl kullanacağımıza ve neler yapılabileceÄŸine isterseniz bir bakış atalım…

Carnie Mellon Üniversitesi tarafından yapılan uygulamaya http://recaptcha.net/ adresinden ulaşabilirsiniz.

KuruluÅŸu çok basit olan reCAPTCHA’yı ele alalım:

  • İlk önce siteye girip üyelik alalım. Bu aldığımız üyelikten sonra karşımıza çıkan - üyeliÄŸi tamamlayınca - hedef siteyi belirleyiniz yerine sitemizi yazalım

recaptcha 

  • Bundan sonrası bir ÅŸey kalmıyor. reCAPTCHA plugins and libraries reCAPTCHA API Documentation adında iki link karşımıza çıkıyor ilki PHP, ASP.NET,vb… gibi kod yapılarına nasıl entegre olacağını gösteren makalelere gider ki 2 saniyenizi alır. İkincisi ise kendi reCAPTCHA’nızı yaratmanız için gerekli olan API’yi indirmeniz için gerekli dökümasyona gider.

captcha1

  • EÄŸer ki Wordpress gibi hazır sisitemler için arıyorsanız üzülmeyin bunlar içinde sisteminize entegre edebileceÄŸiniz biçimde sürümleri verilmiÅŸ.
  • Ben PHP ve ASP.NET için olan eklentilerini kurup denedim. Çok güzel ve kolay ÅŸekilde çalışıyorlar. Bundan sonra spame dur demenin vakti geldide geçiyor…

EÄŸer ki kelimelerden birini yanlış girerseniz sisteme yine giriÅŸ yapar. Sistem iki tanesinin herhangi bir tanesinin doÄŸrulanması ile aktif duruma geçer…

 

Mayıs-10-08

Asp.net 2.0 Mail Gönderimi…

posted by Panda

Bazen yardım ihtiyacı duyabilirsiniz diyerek buraya hatırlatma şeklinde .net 2.0 da mail gönderimi kodumu paylaşmayı düşündüm.

Åžimdi düşünelim ki elimizde 4 TextBox’ımız olsun, bunlar; txt_konu, txt_gond_mail, txt_gonderen, txt_mesaj isimlerine sahip olsunlar. Basit bir ÅŸekilde bir ÅŸirketin mailine otomatik mesaj gönderen kod bu. Ha çalışmaz ise ne yapacaksınız. Burada;

1
System.Net.Mail.SmtpClient smtp = new System.Net.Mail.SmtpClient("mail.sitesite.com", 26);

bulunan satırda, 26. portu kullanıyorum Bu server taraıfından verilen bir mail gönderme portudur. Eğer ki bu port verilmemiş ise 25 olarak kullanılabilir, belirtilmişse özel bir numarası vardır burada yazılmalıdır.

Aynı şekilde mail.sitesite.com olan adres ise sizim smtp mail gönderme adresinizdir yine server tarafından verilir.

1
2
3
4
5
6
7
8
9
10
11
protected void Button1_Click(object sender, EventArgs e)
{
    System.Net.Mail.MailMessage message = new System.Net.Mail.MailMessage();
    message.To.Add("info@sitesite.com");
    message.Subject = txt_konu.Text;
    message.From = new System.Net.Mail.MailAddress(txt_gond_mail.Text);
    message.Body = "Gönderen : " + txt_gonderen.Text + "\n\n" + "Mesaj: \n " + txt_mesaj.Text + "\n\n\nBu Mail sitesite.com Adresinden Gönderilmiştir!";
    System.Net.Mail.SmtpClient smtp = new System.Net.Mail.SmtpClient("mail.sitesite.com", 26);
 
    smtp.Send(message);
}

Başka bir şekilde kod yazmak ya da bu kod bana gelmez arkadaşım ne yapacağız vs.. şeyler diyorsanız arkadaşlarım. Size aynı şekilde ilginçtir ki bu gün bulduğum şu siteyi tavsiye ederim; http://www.systemwebmail.com/ 

Bu adreste .net 2.0 ile ilgili tüm mail gönderme standartlarını bulabilirsiniz. Eğer ki ilginizi çeken bir konu bulamazsanız bana da sorabilirsiniz. Bu adresten her türlü ulaşma yolunu listeledim :D

Hepinize iyi .net’li günler dilerim…