Asp.NET MVC Nedir?
Herkese merhaba bu yazımda kısaca Asp.NET MVC nedir ona değineceğim.
Model, View, Controller kelimelerinin baş harflerinden oluşan dinamik web uygulamarı geliştirmemize yarayan bir web uygulamaları arayüzüdür. Microsoft tarafından 2007 yılında geliştirilmeye başlanmış olup gelişme süreçleri aşağıdaki gibidir.
|Tarih||Versiyon|
|10 Aralık 2007||ASP.NET MVC CTP|
|13 Mart 2009||ASP.NET MVC 1.0|
|16 Aralık 2009||ASP.NET MVC 2 RC|
|4 Şubat 2010||ASP.NET MVC 2 RC 2 [13]|
|10 Mart 2010||ASP.NET MVC 2|
|6 Ekim 2010||ASP.NET MVC 3 Beta|
|9 Kasım 2010||ASP.NET MVC 3 RC|
|10 Aralık 2010||ASP.NET MVC 3 RC 2|
|13 Ocak 2011||ASP.NET MVC 3|
|20 Eylül 2011||ASP.NET MVC 4 Developer Önizleme|
|15 Şubat 2012||ASP.NET MVC 4 Beta|
|31 Mayıs 2012||ASP.NET MVC 4 RC|
|15 Ağustos 2012||ASP.NET MVC 4|
|30 Mayıs 2013||ASP.NET MVC 4 4.0.30506.0|
|26 Haziran 2013||ASP.NET MVC 5 Önizleme|
|23 Ağustos 2013||ASP.NET MVC 5 RC 1|
|17 Ekim 2013||ASP.NET MVC 5|
|17 Ocak 2014||ASP.NET MVC 5.1|
|10 Şubat 2014||ASP.NET MVC 5.1.1|
|4 Nisan 2014||ASP.NET MVC 5.1.2|
|22 Haziran 2014||ASP.NET MVC 5.1.3|
|1 Temmuz 2014||ASP.NET MVC 5.2.|
|28 Ağustos 2014||ASP.NET MVC 5.2.2|
|9 Şubat 2015||ASP.NET MVC 5.2.3|
|12 Şubat2018||ASP.NET MVC 5.2.4|
|2 Mayıs 2018||ASP.NET MVC 5.2.5|
|11 Mayıs 2018||ASP.NET MVC 5.2.6|
|29 Kasım 2018||ASP.NET MVC 5.2.7|
Visual Studio 2014 de Asp.NET MVC 4.0 yüklü gelmekledir. Asp.NET MVC nin son sürümlerini yüklemek içinse http://www.asp.net/mvc/tutorials/mvc-5 adresini ziyaret edebilirsiniz.
Asp.NET MVC Çalışma Sistemi
MVC Framework'ün 3 katmanlı olduğundan bahsetmiştik(Model, View ve Controller) Şimdi basit bir uygulama ile bu mimariyi inceleyelim.
İlk olarak Visual Studioda bir MVC uygulaması açıyoruz (bende 4.0 sürümü yüklü). Projemin adını "Asp.NET MVC Giriş" yapıyorum.
Ardından karşımıza gelen Project Template penceresinden her hangi bir proje şablonu seçiyoruz. Ben Internet Application'ı seçtim.
Projemiz oluştuktan sonra Solition Explorer'da oluşan klasörlerimiz hakkında kısaca bilgi vermek gerekirse;
|App_Data||Veritabanı dosyalarının yer aldığı klasör.|
|App_Start||Uygulamamıza ilgili bazı yapısal ayarların işlenmesini sağlayan sınıfları barındıran ve uygulamamızın denetim masası denilebilecek klasördür.|
|Content||CSS ve imaj gibi JavaScript dosyaları haricinceki içeriklerin yer aldığı klasördür.|
|Controllers||Kullanıcıdan gelen isteklere göre Model ve View üzerinden gerçekleştirilecek işlemleri yönetir.|
|Filters||Filter kodları burada bulunur. Filterlar detaylı özelliklerdir. İleri derslerde değiniyor olacağız.|
|Images||Uygulamamıza ait resimleri koyabileceğimiz klasördür.|
|Models||Uygulamadaki verileri ve yapacağı davranışları yönetir.|
|Script||JavaScript ve Ajax dosyalarının yer aldığı klasördür.|
|Views||Son kullanıcı tarafından görüntülenecek dosyaların yer aldığı klasördür.|
Models, View, Controller klasörleri, MVC Framework'ün ana yapısını oluşturmaktadır. Bu yapı sayesinde uygulama üç kısım halinde parçalara bölünüp yürütülebilir. Her bir katmanda yürütülen işler diğer bir katmandan bağımsız halde gerçekleştirilebilir.
Model: Uygulamanın veri işleme ve yorumlama kurallarını barındırır. Web uygulamasının verilerini ve yapacağı davranışları yönetir. Yaptığı işlemlerin sonuçlarını Controller'a bildirmekle yükümlüdür. Kullanıcıdan gelen isteklere cevap verir. Models klasörü içerisinde veritabanı işlermlerini yürütmek için gerekli sorgular ve kodlar mevcuttur.
View: Kullanıcı arabirimini barındırır. Son kullanıcıya verilerin nasıl sunulacağı bu bölümde tasarlanır. Kullanıcının isteklerini Controller'a iletir. Views içerisinde oluşturulan klasörlerden Home ve Shared klasörleri MVC nin içinde yer alan standart klasörlerdir.
Home klasörünün içinde genellikle index sayfası yer alırken, Shared klasörünün içerisinde ise standar olarak Layout sayfası bulunmaktadır. Layout; Asp.NET içerisinde bulunanan MasterPage görevini yapmaktadır. Layot ile ilgili tanımlama _ViewStart.cshtml içerisinde yapılmaktadır. Örnek tanımlama aşağıdaki gibidir.
@{ Layout = "~/Views/Shared/_Layout.cshtml"; }
Controller: Kullanıcının yapacağı girdilere göre bu iki katmanı doğru çalıştırmakla yükümlüdür Kullanıcı sayfadan bir istekte bulunduğunda (request, input) Controller bunu denetler ve Modelden gelen işlemleri yürütür. Daha sonra View'da son kullanıcıya isteğinin karşılığını gösterir.
Controller bir denetçi gibi çalışır. Kullanıcının fare ve klavye girişlerimi yorumlar. Kullanıcıdan gelen isteklere göre uygulamanın hangi davranışları sergileyeceğini burada tanımlanır. Kulanıcıya verilecek cevap için arayüzü belirler. Model ve View bileşenlerinin yapacakları işlevleri belirler.
Controller klasörü içerisinde Account işlemleri için kullanacağımız AccountController adlı bir sınıf ve ana sayfada gerçekleştirilecek işlermler için kullanacağımız HomeController adlı bir sınıf yer alır. Bu sınıflar içerisinde gerçekleştirilecek işlemlere dair metotlar yer alır.
Bu metotlar ile kullanıcı tarafından gelen isteklere karşılık gerekli işlemler yürütülür ve Model ve View katmanları yönlendirilir.