Asp.net MVC(Model View Controller) dünyasına giriş yapıyoruz şimdi zaman kaybetmeden MVC ye giriş yapıp ilk projemizi oluşturalım.
ASP.NET MVC, MVC pattern’ini ASP.NET’e eklemek için Microsoft’un geliştirdiği framework’tür. ASP.NET MVC’nin ne olduğunu anlamak için öncelikle MVC’nin ne olduğunu incelemekte fayda var.
Model
MVC dünyasında model uygulama verisinin veya durumunun saklandığı yerdir, genellikle veritabanı veya xml/json dosyası formatındadır.
Model, veri katmanını (database, xml, json dosyası, vb.) uygulamadan izole eder, böylece diğer katmanlarda veri katmanının neresi olduğunun bilinmesine gerek kalmaz.
Model katmanı sıklıkla Entity Framework, Nhibernate, LLBLGen, vb. gibi araçlar kullanılarak oluşturulur.
View
View, istemcinin gördüğü arayüzü içeren katmandır, genellikle Model katmanındaki verinin kullanılması ile oluşturulur. View katmanının Model ve Controller katmanlarından ayrılması ile arayüz değişikliklerinin uygulamanın diğer katmanlarını değiştirmeye gerek kalmadan yapılabilmesi sağlanmıştır.
View katmanında HTML5 ve CSS3 gibi son versiyon teknolojiler kullanmak mümkündür. HTML5 ve CSS3 ile masaüstü ve mobil tarayıcılarda çalışabilen uygulamalar geliştirmek çok kolaylaşmıştır. Hatta Windows Store uygulamaları geliştirmek için HTML5 ve CSS3 teknolojilerinden yararlanılabilir.
Controller
Controller, istemciden gelen isteği işlemek, Model ve View katmanları arasında köprü olmak gibi görevleri yerine getirir. Controller içerisinde bir veya daha fazla Action olabilir, genellikle her Action bir web sayfası üretmek için kullanılır.
MVC, uygulama geliştirmede (özellikle web uygulaması geliştirmede) önemli yere sahip mimari desenlerden biridir. Günümüzde MVC denince akla Microsoft’un geliştirdiği ASP.NET MVC Framework gelmektedir, oysa 1979 yılından beri (Microsoft 1975 yılında kurulmuştur) yazılım dünyasında yer almaktadır.
MVC, Model , View , Controller kelimelerinin baş harflerinden oluşur ve her kelime MVC’nin farklı bir katmanını ifade eder.
MVC’yi açarak şöyle bir tanım yapabiliriz aslında:
Uygulamalarımız için verilerin yönetimini sağlayan bir model. Her model bir veritabanı içerisinde yer alan bir veya birden fazla tabloyu temsil etmektedir.
Uygulamalarımızın görsel olarak temsil edilmesidir. Bu web sitelerinde bildiğimiz HTML, JavaScript ve CSS yapılarıdır.
Veri modelimiz ve görünüm arasında bir nevi bir ayırıcıdır.
Özetlersek, oluşturmuş olduğumuz uygulamalarımız için kullanıcının iş modeli ile uygulamasının görünümü arasında yani kullanıcı arayüz kısmı arasında ayrım yapan ve böylelikle uygulamaların farklı amaçlara hizmet eden kısımları ile birlikte diğer kısımların birbirine karışmasını önleyen bir mimari modeldir.
Şimdi ilk defa bir MVC proje nasıl oluşturulur buna değinelim. Visual Studio’da File menüsünden New Prject diyerek yeni bir proje oluşturalım. Bu kısmı açtığımızda bir çok proje template’ini görebiliriz. Bizim projemiz C# tabanlı olacağı için Templates alanında C# seçiyoruz. Buradan WEB seçeneğini seçiyoruz. Daha sonra ASP.NET Web Application seçiyoruz. Projemize bir isim vermemiz gerekiyor, ben Basit_MVCProje ismini verdim.
Daha sonra OK diyoruz. Karşımızı bir dialog penceresi geliyor. Bu pencerede birden fazla WEB template’i yer alıyor. Buradan MVC Template seçiyoruz. Daha sonra change authentication seçeneğini seçiyoruz.
Bu arada ek bilgi vereyim. Bir MVC template üzerinde 4 tipte authentication (kimlik doğrulama) seçeneği yer alır. Bunlar:
No Authentication: Bu seçenekte herhangi bir doğrulama yoktur. Doğrudan herkes kullanabilir.
Individual User Accounts: Bu seçenekler kullanıcılar, daha önceden kendilerine tanımlı olan kullanıcı adı ve şifreleri ile sisteme giriş yapabilecekler. Ayrıca günümüzde çok fazla kullanılmakta olan sosyal platform oturum açma kimlik bilgileri ile de oturum açabilecekler. Facebook, twitter, Google veya Microsoft Hesabı gibi. Bu noktada aynı zamanda sosyal medya platformu ile giriş yapan kullanıcılar için tabloda yeni kimlikleri oluşturularak, sürekli olarak orada bilgileri tutulacak. Bilgilerin tutulmasından maksat, bizim sitemiz için giriş yapmış oldukları kullanıcı adı ve isim bilgileri.
Organizational Accounts: Bu seçenek ile uygulamamız active directory, microsoft azure active directory, veya office 365 gibi yapılar ile entegre şekilde çalışabilecek.
Windows Authentication: Bu seçenek ile de uygulamamız kullanıcılar oturum açtıkları windows authentication ile sisteme girilebilecek.
Çıkan pencerede No Authentication seçiyoruz ve OK diyoruz. Bir sonraki pencere için de OK diyoruz.
Daha sonra projemiz oluşturuluyor. Burada bilgisayarınızın performasına göre proje oluşturulması vakit alabilir. Normalde maksimum 1-2 dk içinde proje oluşturulur.
Daha sonra Visual Studio üzerinde projeyi açabilirsiniz. Tabi bizim amacımız bu kadar basit bir şeyi anlatmak değil, MVC ile tanışmak Şimdi MVC proje oluştuğunda sağ da solution explorer altında bir takım klasörler otomatik olarak oluşturulmuş durumda. Bunlara değinelim.
Views klasörü iki tane alt klasör içermektedir, bunlar home ve shared klasörleri. Home klasörü Controller klasörü içinde yer alan HomeController ile eşleşmektedir. Shared klasörü ise diğer klasörlerdeki kontroller ile ortak kodları içeren bir klasördür.
Böylelikle yazımısın başında belirttiğimiz gibi MVC model de iş modeli ile uygulamaların iş modelinin dışında yer alan kodlarımızın ayrıldığını görebiliyoruz. Ayrıca yeniden kullanılabilir özellikle olan layoutlar da bu yapıda mevcuttur. Ek olarak verilerin alt kümesini içeren bir veya birden fazla sayfada görünebilir bir yapıya sahip partial views yapıları da mevcuttur. Bu yapıları sayfalarınıza dahil edebilirsiniz.
Uygulamayı çalıştırdığımızda aşağıdaki gibi bir asp.net sayfası çalışır. Tabi şu an hiç bi şey yapmadık. Mevcut tanımlı yapı üzerinde olan Home, About ve Contact linklerini üstte görebilirsiniz. Yavaş yavaş mvc model üzerinde çalışmaya başlayacağız. Bu yazımız şimdilik bu kadar olsun