Haftalardır ASP.NET'in
MVC atağını konuşup duruyoruz. Henüz millet olarak kodlayıp denemiş değiliz. Şimdilik bakınmakla yetiniyoruz.
Bir yandan Las Vegas'tan DevConnections 2007 esintileri vuruyor yüzümüze. Üstad Metin Karabiber de, bu esintiyi "vatan borcu" hassasiyetinde
ufaktan taşımış, sağolsun.
DevConnections, doğal olarak ASP.NET MVC'yi de büyük bir kitle önünde sergilemek ve ilişkiyi diri tutmak için güzel fırsat. Nitekim Microsoft ekibi fırsatı değerlendirmiş ve bir sunum yapmış. Hanselman ve Elion arkadaşların
sunumunu inceleminizi salık veririm.
Sunumdan çıkan ufak notları da buraya nakşedelim. [Parantez içi sözler fakire ait]
- ASP.NET MVC, hayatımıza
test-yönelimli geliştirmeyi,
gevşek bağlı bileşenleri getireceğine dair söz veriyor.
- URL'ler artık
/UrunDetay.aspx?UrunId=26&ShowBasket=true şeklinde saçmalamaktan kurtuluyor,
REST ve
SEO ile samimi hâle geliyor:
/urundetay/kahve-makinesi/showbasket vs. [Aman efendim, en çok sevindiğim şeylerden birisi.]
- Üstüne basa basa denen o ki, Web Form'lar bitmiyor. Web Form yerli yerinde dururken, MVC ona alternatif olarak ikram ediliyor. Artık Web Form zorlanan bir şey değil, tercihlerden sadece biri oluyor. [Ha şöyle.]
- Artık gevşeyin diyorlar.
Dependency Injection (DI) veya
Inversion of Control (IOC) teknikleriyle genişleyebilen uygulamalar yazın, coşun diyorlar.
- MVC altyapısı, ASP.NET'in sınıf hiyerarşisindeki karşılığı olan
System.Web'den veriliyor.
- Tüm "açık kaynak" dünyasıyla da barışık deniyor. Meselâ "model" katmanında
NHibernate, "view" katmanında
Brail kullanabileceğimiz söyleniyor.
Bir "kontrol" sınıfından kod örneği:
[ControllerAction]
public void ShowPost(int id) {
Post p = PostRepository.GetPostById(id);
if (p != null) {
RenderView("showpost", p);
} else {
RenderView("nosuchpost", id);
}
}
Rahatlıkla anlaşılacağı gibi bu metod bir URL'yi temsil ediyor.
URL'ler kontrolörlere yönlendiriliyor. Onlar da bir iş yapıp akışı bir "View"a havale ediyorlar. "Rendering" için klasik Web Form bileşenleri kullanmanın yanında
NVelocity,
Brail gibi başka motorlar da kullanabiliyoruz. [Evet, gevşek bağlılık sayesinde.]
...
Cümle
MVC taraftarı,
web'in doğasına aykırı buldukları Web Form'larına nicedir veryansın ediyordu. Şimdi de bu
Microsoft implementasyonuna biraz mesafeli duruyorlar. Bakalım perdeler açılıp
CTP vitrine konunca kodlayan parmaklar ne diyecek?
Önyargısız takip ediyoruz ey okur.