14. Razor’un Özellikleri
Kısa/özlü, anlamlı ve akıcı
Öğrenmesi kolay
Yeni bir dil değildir
Herhangi bir text editor ile çalışır
Mükemmel intellisense
Test edilebilir
16. Avantajları Nelerdir?
Temiz HTML
Katmanlı mimari
Test Unit
View Engine desteği
JavaScript kütüphaneleri ile uyum
İsteğe bağlı URL haritası
SEO dostu URL
View State ve PostBack yok
Temel ASP.NET özelliklerini destekler
Sayfa boyutları
Mobil Template
18. ASP.NET MVC’nin Tarihsel Gelişimi
Date Version
10 December 2007 ASP.NET MVC CTP
13 March 2009 ASP.NET MVC 1.0
16 December 2009 ASP.NET MVC 2 RC
4 February 2010 ASP.NET MVC 2 RC 2
10 March 2010 ASP.NET MVC 2
6 October 2010 ASP.NET MVC 3 Beta
9 November 2010 ASP.NET MVC 3 RC
10 December 2010 ASP.NET MVC 3 RC 2
13 January 2011 ASP.NET MVC 3
20 September 2011 ASP.NET MVC 4 Developer Preview
15 February 2012 ASP.NET MVC 4 Beta
31 May 2012 ASP.NET MVC 4 RC
15 Aug 2012 ASP.NET MVC 4
20. Kaynaklar
İngilizce
http://www.asp.net/mvc/mvc4
http://msdn.microsoft.com/en-
us/library/gg416514(v=vs.98).aspx
http://weblogs.asp.net/scottgu/
ASP.NET MVC 4, Wrox
ASP.NET MVC 4, Apress
Türkçe
http://mcansozeri.com/blog/
21. Teşekkürler
Mahmut Can Sözeri
Yazılım Eğitmeni, Danışman
mcs@mcansozeri.com
http://mcansozeri.com
Notas do Editor
Ortaya atıldığı ilk yıllarda adı thing-model-view-controller di sonrada bugünkü halini aldı. Önemli bir mimari patterndir.MVC’debiruygulamanınkullanıcıarayüzü 3 anabölümeayrılır:Model: Data işlemlerininveişkurallarınıntanımlanır, class’laroluşturulurView: KullanıcıarayüzününnasılgösterileceğitanımlanırController: Kullanıcıarayüzündekiişlemlerile data ve/veyaspesifikkatmanarasındakiiletişimsağlanır.MVC tipikbir framework olmasınarağmen, özelliklebirmimaridir. Bununanlamıspesifik class hiyerarşiveya object-oriented birdilolmasa bile implement edilebilir.
2002 yılında ilk defayayınladığında(release), ASP.NET ve Web Form’larıbirbütüngibiveaynışeyolarakdüşünülüyordu. ASP.NET daima 2 katmanıdestekledi:System.Web.UI:Web Form katmanı, server kontrolleri, view state vb…System.Web:modüller, handler’lar, HTTP Stack bunabenzerASP.NET içerisindegeliştirilmişhazır server kontrollerinisürükle-bırakyöntemiilesayfalarımızaatıp, otomatikolarakbizimiçinoluşturulmuş HTML çıktılarına sahipoluruz. Çalışmasınıistediğimizsayfadakiişlemlerihandler’lar, modullervasıtasıylaçalıştırırız. ASP.NET yerleşikolarakbirpatern’esahipdeğildir. Bu yazılımdünyasıiçinbüyükbireksiklikti. ASP.NET MVC 2007 yılındaduyuruluncayakadarbuetkinlikhissedildi.MVC patern’i web uygulamalarındasıklıklakullanıyor, ASP.NET MVC içerisindekikullanımıgenelhatlarıyla:Models: Kullanacağınızclass’larbulunur. Bu katmandadatabase’eerişimyollarınızvemetotlarınızyeralmaktadır. Bu katman data erişimkatmanı(access layer) olarak Entity Framework, NHibernate, ADO.NET ile database üzerindeveriişlemleriyapılmasıiçinkullanılır.View: Dinamikolarak HTML kodları generate edilir.Controller: View ve Model arasındakiiletişimisağlar. Kullanıcıgirişleriniyanıtlar, model ilehaberleşir, hangiview’in render edileceğinekararverir.Şubat 2007 yılında, Microsoft’tan Scott Guthrie(“ScottGu”) tarafındanABD’nindoğuyakasındakibirkonferansagiderkenuçakta ASP.NET MVC’ninçekirdeğini/temelinitasarlamıştır. Birkaçyüzsatırkod’danoluşanbasitbiruygulamaydıfakatsalondakileriheyecanlandıranvepotansiyeliyüksekbirteknolojiolduğunu o zamandanhissettirmiştir.Release olanakadar 9 preview release olmuştur. Sonunda ASP.NET MVC 1.0, 13 Mart 2009 yılında release oldu.
MVC’debiruygulamanınkullanıcıarayüzü 3 anabölümeayrılır:Model: Data işlemlerininveişkurallarınıntanımlanır, class’laroluşturulurView: KullanıcıarayüzününnasılgösterileceğitanımlanırController: Kullanıcıarayüzündekiişlemlerile data ve/veyaspesifikkatmanarasındakiiletişimsağlanır.MVC tipikbir framework olmasınarağmen, özelliklebirmimaridir. Bununanlamıspesifik class hiyerarşiveya object-oriented birdilolmasa bile implement edilebilir.Yıllardır javada, C++’Ta ve phpde kullanılmaktadır.
View’lerinizi HTML çıktısıolarak render etmekiçinkullanılanbirmekanizma/teknoloji’dir.
Kısa/Özlü, AnlamlıveAkıcı – Razor karaktersayısınıvetıklayacağınıztuşsayısını en azaindirirvekodunakışınıakıcıyapar, hızlandırır. Birçok template sözdizilimininaksine, HTML’iniziçerisinde server blogunuayrıcabelirtmenizegerekyoktur. Derleyicikodunuzdananlamçıkarakzekidir. Kodunuztemizdir. Razor ilehızlıveeğlenceliyazın.ÖğrenmesiKolay – Min kodgereksinimesahipolduğuiçinöğrenmesi son derecekolaydır. Sahipolduğunuzdilive HTML bilginizikullanırsınız.Yeni BirDilDeğildir – Yeni birdiliöğrenmeyizorunlukılmanınyerinevarolan C#/VB dillerinindekibecelerinizikullanmasınısağlar.HerhangiBir Text Editor İle Çalışır – Razor herhangibirözelaraç(tool)a ihtiyaçduymaz. Herhangibir text editorukullanabilirsiniz. Notepad bile olabilir.MükemmelIntellisense – Yukarıdakimadde de herhangibireditordeyazabilirsinizdedim. Şimdi de gelmişintellisensediyorum. Evetdiyorumçünkü Visual Studio 2010 update’iiletamamenRazor’udestekleyenbir text editoresahipolursunuz.Test Edilebilir – Yeni View Engine uyarlaması Test Uniteleriaracılığıyla test edilmesinidestekler.
Provides fine control over rendered HTMLCleaner generation of HTML (well as clean as you keep it)Clear separation of concernsProvides application layer unit testingCan support multiple view engines, such as Brail, NHaml, NVelocity, XSLT, etc.Easy integration with JavaScript frameworks like jQuery or Yahoo UI frameworksAbility to map URLs logically and dynamically, depending on your useRESTful interfaces are used by default (this helps out with SEO)No ViewState and PostBack modelSupports all the core ASP.NET features, such as authentication, caching, membership, etc.Size of the pages generated typically much smaller because of the lack of the ViewState
Not event driven by the framework, so it maybe more difficult for ASP.NET Web Form developers to understandRequires the need to understand, at least at the basic level, HTTP, HTML, CSS, and JavaScriptThird party library support is not as strongNo direct upgrade path from Web FormsNo ViewState and PostBack model (makes it more difficult to preserve state)