Sunuyu indir
Sunum yükleniyor. Lütfen bekleyiniz
1
ASP.NET Web FORMS -> MVC FRAMEWORK
Hazırlayan Koray KIRDİNLİ
2
Index ASP.NET Web Forms MVC hakkında ön bilgi
MVC’nin avantaj ve dezavantajları Routing mekanizması Razor View Engine
3
Microsoft Web Forms Vizyonu
2002 yılında 1.0 versiyonu piyasaya sürüldü. Amacı kolay web uygulamaları geliştirilebilmesi sağlamaktı. Event Base Mimari Viewstate, Postback ve Page Life cycle kavramları
4
ASP.NET Form sayfası
5
Sayfanın HTML çıktısı __doPostBack(eventTarget, eventArgument) javascript fonksiyonu otomatik olarak oluşturuldu. Bu fonksiyon sayesinde aspx sayfalarında postback yapılabiliniyor.Bu metod 2 tane parametre alıyor. 1. parametre'de tıklanılan kontrolün id'si, 2. parametrede varsa bu tıklamaya ilişkin ek bilgiler bulunuyor. Bu javascript metodu çalıştığında birinci parametdeki değer __EVENTTARGET adındaki gizli form alanına yazılıyor. 2. parametredeki alan __EVENTARGUMENT gizli alanına yazılıyor. Daha sonra tüm form sunucuya (aynı sayfa üzerine) submit ediliyor. Formda bulunan gizli bu form alanları sayesinde (form submit yapıldığından) ASP.NET hangi kontrolün tıklandığını ve bu kontrole ait ek argumanları bilmektedir ayrıca bu kontrole ait Event Handler metodları var ise (olay yakalayıcı) o metodları çalıştırmaktadır.
6
Web Formun Eksileri (-)
Viewstate’in giden gelen verinin büyük olması Page Life Cycle ‘ın karmaşık olması (bkz:page life cycle) Server kontrollerin html çıktılarına müdahale edilemez. Id lerle uğraşmak zordur. Tasarım ile kod birbirinden mantıksal olarak ayırması zordur. Codebehind koda müsaittir. Test edilmesi çok zor.
7
MVC hakkında ön bilgi MVC bir programlama dili değil bir programlama modelidir. Web Forms’da olduğu gibi ASP.NET framework altyapısı kullanılır. Veri ve gösterimi birbirinden soyutlamayı sağlar. Japonya’da geliştirilen Ruby dilinden ilham almıştır. Japonya’da geliştirilen Ruby isimli bir programlama dili MVC’nin altyapısına ilham kaynağı oldu . Ruby platform bağımsız her yerde çalışabildiği için bir çok web programcısı bu dili projelerinde kullanılır oldu ve bir anda çok popüler hale geldi. Sinatra isimli bir kütüphane ile Ruby ile kod yazmak kolaylaştırılmış. Bir diğer konu ise Node.js(Javascriptin server tarafında çalışan versiyonu). Bunun sayesinde sistem kaynakları verimli çalışabiliyor. Client’dan istek alınıyor ve gönderiliyor. Server tarafında iş bittiği anda cevap dönüyor böylece thread beklemiyor. (Javascript callback) Özgür Yazılım mentalitesinin .NET dünyasında oturmasıyla birlikte Java dünyasından esinlenilerek geliştirilmiş projeler ve kod yazarken kolaylık sağlayan yardımcı programlar zaten günlük olarak kullandığımız ürünler
8
MVC’nin Artıları (+) Viewstate kullanmadığı için giden-gelen mesajların boyutu küçüktür. Uygulama Model-View-Controller şeklinde mantıksal olarak bölündüğü için kod karmaşasının önüne geçilir. FrontController tasarım deseni sayesinde bütün istekler merkezi bir controller tarafından yönlendirilebilir. Test Driven Development desteği hat safhadadır. Tasarımcı ve developer'ın ayrı çalışabilmesine olanak sağlar. Güçlü routing yapısı sayesinde arama motorları tarafından kolayca indekslenebilir ayrıca daha anlaşılır bir url çıktısı elde edilir. Open Source (Bir çok community tarafından da destekleniyor.)(ALT.NET David Laribee) FrontController : Aynı datayı kullanan farklı view’lerin aynı controller tarafından karşılanması
9
MVC’nin Eksileri (-) HTML ile daha çok uğraşı gerektirir
Hazır bileşen olmadığı için Spagetti kod yazılmak zorunda kalınır Geliştirme web forms’a göre daha zor FrontController : Aynı datayı kullanan farklı view’lerin aynı controller tarafından karşılanması
10
Standart Kütüphaneler
11
“Model”, “View”, “Controller”
Controller post ve get işlemleri yapar. View den datayı alıp model’e post edebilir veya modelden veriyi alıp view de gösterilmesini sağlar. Model: Uygulamaya logic olarak eklenecek veri katmanını oluşturduğumuz bölümdür. Veri tabanı işlemlerimiz için tablolarımızı ve saklı yordamlarımızı (store procedure) Ado.Net Entity model veya LinQ model yardımı ile kullanabileceğimiz katman olarak tanımlayabiliriz. View: Kullanıcı kontrollerinin, bileşenlerin gösterildiği ve son kullanıcının gördüğü katmandır. Genel olarak model katman üzerinde yer alan tablo kolonlarına göre oluşturulur. Genel yapısı dışında Asp.Net uygulamalarında da yapabildiğimiz gibi tasarımsal öğeleri ekleyerek (css, resim, animasyonlar (Flash, Silverlight, v.b. ) gibi) daha zengin web uygulamaları da oluşturabilmemiz mümkündür. Controller: View katman üzerinde yapılan işlemler sonucunda sayfanın hangi sayfaya yönleneceğine, ya da veri tabanı üzerinde işlem mi yapacağına ilişkin işlemlerin tutulduğu katmandır.
12
Routing Mekanizması MVC Routing modülü browserdan gelen istekleri ilgili controller sınıfına yönlendirmekle yükümlüdür. Global.asax dosyasında Application_Start metodunda bir route table initialize edilir. URL /Home/Index/3 : HomeController.Index(3)
13
Razor View Engine MVC 3.0 ile gelen bir görüntüleme biçimidir.
<% %> işareti Daha anlaşılır ve esnek Asp.Net Mvc 3 teknolojisiyle birlikte gelen razor view engine görüntüleme biçimidir. Razor syntaxaracılıyla ana makine kısmında ( server side ) çalışacak kodların ayrımını işareti aracılıyla yapmaktayız.
14
MVC kullanan bazı siteler
Msn.com Bing.com Dell.com Stackoverflow.com Marketwatch.com Codeplex.com Starbuck.com …
15
Sonuç olarak MVC Forms, Web Forms’un yerine geçmeyecek sadece web forms’a bir alternatif. Web Forms = Rapid Application Development, zengin kontrol kütüphanesi (Intranet) MVC Forms = Daha performanslı (Internet)
16
Teşekkürler
Benzer bir sunumlar
© 2024 SlidePlayer.biz.tr Inc.
All rights reserved.