170 likes | 355 Views
ASP.NET MVC. Nedir ? Neden Gereksinim Duyulmuştur ? WebForms’a Göre Avantaj ve Dezavantajları Neler? Nerelerde ve Neden Tercih Edilmelidir ?. Asp .Net MVC Nedir ?.
E N D
ASP.NET MVC Nedir ? Neden Gereksinim Duyulmuştur ? WebForms’a Göre Avantaj ve Dezavantajları Neler? Nerelerde ve Neden Tercih Edilmelidir ?
Asp.Net MVC Nedir ? • MVC Framework , Webformsdaki gibi textbox,button gibi componentlerin bulunmadığı tüm bunların Html taglarıyla oluşturulduğu aynı zamanda da Asp.net Runtime’da çalışan bir yazılım mimari desenidir. • Model – View – Controller kelimelerin baş harflerinden oluşan MVC FrameworküAsp.Net teknolojisi üzerine geliştirilmiş bir programlama sitilidir.
Model – View - Controller • Tüm kontroller html taglarıyla oluşturulduğu için daha anlamlı sayfalar ortaya çıkmakta ve buda günümüz trendlerine daha uygun olmaktadır. • Bunu aslında üç katmanlı mimariye benzetebiliriz. • Model : veriye ulaşan , • View : veriyi sunan, • Controller : Veriyi işleyen katman gibi düşünebiliriz.
Asp.Net MVC • Klasik Asp.net sayfasının çıktısını düşünün.Sayfadaki bir Datagrid kontrolü göz önüne getirin tabloların içinde satırları sutunları düşünün.Otomatik üretilmiş her kodu bir yere kadar düzenleyebiliyoruz buda sıkıntı yaratıyor. • Asp.net MVC’de ise bunun tam tersine geliştirme süresi uzarken çıktı nasıl istenirse developer tarafından öyle ayarlanabiliyor.
Model • Modellar, iletimde kullanılan yada veritabanındaki bir veriyi temsil eden sınıflardır. View ile Controller arasında veri iletimi Modellar sağlar. • LINQ to SQL ile EntityFramework dosyaları veya Datatable , Dataset , Datareader gibi nesnelerle veri taşıyan tiplerimiz bu katmanda yer almaktadır.
View • View, istemcilerin gördüğü taraftır. Yani web programlama için html sayfadır. • Viewlar , Razor ve Aspx görünüm motoru olmak üzere iki farklı şekilde tasarlanabilir.Razor seçildiğinde dosya uzantısı “.cshtml” , eğer Aspx görünüm motoru kullanılıyorsa uzantı “.aspx” olacaktır.
Controller • Uygulamaya gelen talepleri yöneten katmandır. • Controller nesnelerinde Actionmetodları bulunur ve bu metodlar gelen talepleri uygun View ve Model üzerindenden değerlendir. • View katmanının kullanıcıya gösterilmesi için gerekli işlemleri controller gerçekleştirir. • Örneğin , form verilerini veritabanına ekleyen ya da formun istediklerini veritabanından çeken bir sınıf olabilir.
Asp.Net MVC • Asp.net MVC hiçbir zaman Webforms’un rakibi değil bir alternatifi olarak düşünülmelidir.Genelde veri odaklı uygulamalarda tercih edilmelidir. • Büyük veri kaynaklı internet projelerinde MVC kullanmak hem sayfa hızlarında , hem de server kaynakları kullanımında önemli bir performans artışı sağlar.
Asp.Net MVC • MVC Framework’ünün çıkmasının asıl nedeni UserInterface ve Data katmanlarının birbirinden ayrılmasını zorunlu kılmaktır. • Bu sayede geleceğe dönük uygulamanın geliştirilebilirliği de artacaktır. Daha rahat ve kısa sürede değişiklikler yapılabilecektir.
Bir Örnek; • Controller beynimiz , Model sinirlerimiz , View ise kas, burun, göz, kulak vb. dış Dünya ile fiziksel ilişkisi olan her şeyimizdir. • Sevdiğimiz insanı gördüğümüzde gözümüz bu veriyi beynimize yollar (V->C) beynimiz buna bir tepki vererek yüz sinirlerine emir gönderir (C->M) , sinirlerimiz beyinden gelen emri işleyerek kasları gerer ve gülümsememizi sağlar (M->V). • Tüm MVC süreci bunula özetlenebilir.
Neden Gereksinim Duyuldu ? • Webforms’daki kontrollerin istenildiği gibi yönetilememesi ve karmaşık sayfa çıktıları . • Asp.net Webforms projelerinde Postback sonrasında da sayfadaki verilerin tutulması için kullanılan Viewstate büyük ölçekli projelerde kullanıldığında boyutu giderek artmakta ve sayfaların geç açılmasının yanısıra Servera da ayrıca yük bindirmektedir. • Asp.Net MVC de Viewstate ve Postback yoktur. Bu işleri çok daha doğal yollar ile gerçekleştiriyor.
MVC’nin Avantajları Nelerdir ? • Uygulamayı Model, View ve Controller bileşenlerine bölerek karmaşıklığı önler. • Viewstate ve sunucu taraflı form kullanmaz. Uygulamanın bütün evrelerine müdahale etmek ve hakim olmak isteyen geliştiriciler için idealdir. • Front Controller deseni kullanır. Bütün istekleri (request) tek bir Controller tarafından karşılanıyor. Bu sayede MVC, çok esnek bir yönlendirme (Routing) altyapısına sahiptir. • Geniş bir takım tarafından geliştirilen, uygulama davranışları üzerinde daha fazla kontrol gerektiren web uygulamaları için ideal bir yapıdır.
MVC’nin Avantajları Nelerdir ? • Browser Uyumluluğu önemli bir avantajıdır. • İlerleyen zamanlarda MVC projesi üzerinde geliştirmeler yapmak çok daha kolaydır. • Kontrol compodentleri yoktur (şuanda geliştirilme sürecinde). Bunun yerine genelde Jquery kontrolleri kullanılır. Kontroller html tagları ile oluşturulduğu için sayfa çıktıları çok daha düzenli olur. • SEO optimizasyonu ve güvenlik çok daha gelişmiştir. • MVC’de Spagetti kod dediğimiz iç içe geçmiş kodlamadan ve kontrol arkasına yazılmış yüzlerce satırlık kodlardan kurtuluruz.
Webforms’unAvantajları Nelerdir ? • Olay modeli ile geliştirme yapmaya olanak sağlar. Yüzlerce sunucu kontrolü üzerinden binlerce olay vardır. • Bir sayfaya özel işlevsellikler ekleyebilen Page Controller desenini kullanır. • Viewstateve sunucu tabanlı formlar yardımıyla sayfanın durum bilgisi kolaylıkla yönetilebilir. • Hızlı uygulama geliştirme yapmaya müsait olduğundan küçük gruplarla yapılacak karmaşık olmayan web projelerinde iyi çalışır. • MVC modeline göre daha az kod gerektirir.
Asp.Net MVC Nerelerde Tercih Edilmelidir? • SEO ve Sayfa hızının önemli olduğu Data Centric uygulamalarda MVC kullanmak daha avantajlıdır. • Arama motorları sayfa çıktılarını daha kolay anlıyacaktır ve MVC’nin mükemmel yönlendirme sistemi sayesinde urlyi daha temiz ve hem kullanıcılar hem de SEO için daha uygun bir şekle zahmetsizce çevrilebilir.
MVC 4 de Neler Gelecek • Varsayılan proje şablonu geliştiriliyor. Yani default olarak açılan sayfa artık daha modern ve güzel görünecek. • Jquery ile entegre olacak. Compodentler geliştiriliyor. • Geliştirilmiş proje şablonunun mobil versiyonu da olacak. • Windows AzureSDK'i destekleyecek. Eylül 2011 1.5 versiyonu. • Asenkron kontroller için görev desteği. • Visual Studio için kod tarifleri (Ufak kütüphaneler gibi kullanımı kolay ve paylaşılabilir paketler).
SON Hazırlayan : Volkan Dal ( Microsoft Certificated Professional Developer ) http://www.volkandal.com