MVC 1970’lerde geliştirilmiş bir Design Pattern (Tasarım Deseni)’dir. Microsoft’a özgü bir şey değildir.Microsoft Web’e adapte edilmiştir. M : Model -> Verileri tanımladığımız kısım.Arayüzden bağımsızdır. V: View -> Kullanıcının gördüğü kısım (.cshtml sayfalar) C: Controller -> Requestleri yakalayan kısım.Model ve View arasında köprü görevi görür.View’den gelen istekleri yakalar.Model’den gerekli verileri alır sonrasında View’ gönderir. Proje Oluşturma 1. 2. 3. 4. File > New > Project (Ctrl+Shift+N) sekmesine gidiyoruz. Templates > Visual C# > Web sayfasına gidiyoruz. ASP:NET Web Application Seçiyoruz. Name: kısmına proje adımızı, Location: kısmından çalışacağımız dizini seçip OK diyoruz. 5. Açılan ekrandan proje türümüzü (örn:Empty) seçiyoruz.Aynı ekranın altındaki kutulardan MVC yazanı işaretleyip OK diyoruz. Projemizi çalıştırmak için öncelikle projemize bir Controller eklemeliyiz. Solution Explorer’dan Controllers dosyasına sağ tıklayıp sırasıyla Add > Controller diyoruz. Açılan pencerede istediğimiz bir controller türünü(örn:MVC 5 Controller – Empty) seçiyoruz ve add diyoruz. Açılan pencereden Controller’umıza sondaki Controller kelimesini bozmadan bir isim(örn:ProductController) veriyoruz ve Add diyoruz. Controller oluşturulduktan sonra aynı isimde Views klasörünün altında bir klasör oluştu. URL Yapısı Domain/Controller/Method/id(opsiyonel) şeklinde olmalıdır. NOT: Controller ekledikten sonra içine methodlarımızı tanımlamaya başlıyoruz.Her method bir View’a karşılık geliyor.View’larımızın içine .cshtml uzantılı dosyalarımızı oluşturuyoruz ve bunlar kullanıcının göreceği sayfalarımız oluyor.Bu dosyamızın içine “@” yazdıktan sonra C# gibi kodlama yapabiliyoruz..Ayrıca View’ımız bir parametre alacaksa .cshtml dosyamızın üst kısmına @model ProjeAdı.Models.SınıfAdı tanımımızı yaptıktan sonra html taglerinin arasında @Model diyip kullanabiliyoruz. NOT: Kullanıcının gönderdiği istekler Controller’da yakalanıyor.Yakalanan istekler Model ile işleniyor.Ve daha sonra View’a gönderiliyor.View’da kullanıcıya istediğimiz şekilde işleyip sonucu gösteriyor. NOT: Action ile beraber route’u tanımlamak istiyorsak RouteConfig sınıfında Metodun içine routes.MapMvcAttributeRoutes() metodunu tanımlıyoruz.Sonra Controller’da Action Result’umuzun hemen üstünde [Route(controller/method/parametre)] şeklinde tanımlıyoruz ve action result o istekte çalışacak olarak ayarlanıyor. NOT: ViewData ve ViewBag ile veri taşıyabiliriz ama çok kullanılması önerilmiyor bunlar yerine ViewModels adında bir klasörde View Modellerimizi tanımlayım View’larda normal @model şeklinde kullanılması daha uygundur.