Asp.Net MVC

Asp.Net MVC’ye Giriş – İlk Projem

Merhaba arkadaşlar, web programlamada Asp.Net Web Form'dan sonra Asp.Net MVC ile projelerimizi düzenli ve bir mantık çerçevesi içinde geliştirmeye devam ediyoruz. İlk olarak, eğer okumadıysanız Sergen Ekicinin MVC Giriş makalesini mutlaka okumalısınız. 

MVC den biraz bahsetmek istiyorum özellikle nelerin olduğu, nelerin olmadığı konusunda biraz ayrıntıya inmekte fayda var. 

1.Asp.Net MVC'de Neler Var ? 

  • Öncelikle Asp.Net Web Form'dan biraz uzaklaşan bir durum toolbox nesnelerimiz ve nesnelerin bulunduğu pencere MVC 'de tamamen kaldırılmış durumda. Merak etmeyin istediklerinizi yine kullanabileceksiniz. 
  • Bir diğer durum ise artık tek bir uzantıya takılı kalmak yok. Asp.Net Web Form'da kullanılan .aspx uzantısı artık kalkmış durumda ve işin garibi MVC de uzantı kullanılmıyor. Eğer kullanmak istiyorsanız istediğiniz uzantıyı küçük bir yöntemle kullanabilme şansınız var. 
  • View yani normal html kodlarınızı yazdığınız yerde artık C# kodlarını kolayca kullanarak istediğiniz tüm işlemleri yapma kolaylığı yaşayacaksınız. Aslına bakarsanız benim için en büyük devrim sanırım bu olay.
  • Artık karmakarışık bir projeden kurtuluyorsunuz. MVC( Model View Controller ) ile farklı yerlerde aynı tarz kodlarınızı yazarak bu karmaşadan kurtulacaksınız.
  • Bir diğer durum ise ViewState kullanılmadığı için sayfa içerisinde gereksiz verilerden kurtulup projenizin performansını arttırabileceksiniz.
  • Varsayılan bir URL routing tanımlıdır ve varsayılan bu sistemi çok rahat genişletme imkanımız vardır. Bu sayede anlaşılır URL'ler üretiriz ve bunun SEO'ya katkısı çok büyüktür.
  • Asp.Net Web Form'da olan özellikler MVC içinde geçerlidir. Session, caching, authentication gibi.
  • Önemli ve son bir noktayı daha belirtecek olursak eğer Web Form'da alışık olduğunu olaylar(Event) MVC de tamamen kalkmış durumda.

2.Web Uygulamalarında Neden MVC Kullanmalıyız ?

Madde madde gidecek olursak.

  • Ölçeklenebilir olması.
  • Bakımının kolay olması.
  • Test Driven Developmet iş sürecine uygun olması.
  • Arama motoru dostu içerik ve url üretimi olması.
  • Microsoft destekli olarak, Codeplex üzerinde açık kaynak olarak devam etmesi.

3. Proje Oluşturma

MVC'ye basit bir giriş yaptıktan sonra projemizi kurmayı ve proje içerisinde bir kaç özellik göstererek MVC serüvenine devam edeceğiz.

 

New Project > Visual C# > Web > .Net Framework 4 > ASP.NET MVC 4 Web Application ve ardından okey diyoruz. Project Template kısmında boş (Empty) bir proje yerine üzerinde inceleme yapabileceğimiz başlangıç projesi olarak bir Basic proje oluşturuyoruz. 

4. _Layout.cshtml Tanıma

Resim 1

Resim 1 de görüldüğü üzere Basic projede varsayılan bir _Layout.cshtml dosyası geliyor.Bu dosyayı daha önceden kullandığınız Master Page olarak görebilirsiniz. MVC de kullandığınız view dosyalarınızın tümünün uzantısı .cshtml'dir. View içindeki gelen kodlarda, varsayılan bir HTML iskeleti geliyor ve bu iskeletin <title></title> etiketleri içerisinde @ViewBag.Title adlı bir özellik geliyor. Bu özellik Layout'u kullanan Viewlerimizden gelen Title(sayfa isimlerini) verilerini almak için kullanılır. 

Diğer @Styles.Render ve @Scripts.Render kodlarımızla projemizde bulunan Style(.css) ve JavaScript(.js) dosyalarımızı kolayca projemize dahil edebiliyoruz. Basic projelerinde gelen varsayılan Style dosyaları "Content" adlı klasörün altında ve JavaScript dosyaları "Scripts"  adlı klasörün altında bulunur.

@RenderBody() kodu ile oluşturulacak diğer View'lerdeki içerik Layout'tan render edilecektir. Yani oluşturmuş olduğumuz Layout kullanan View'lerimizin içindeki kodları bu kısma çekmek için kullanırız.

5.Controller Oluşturma

Controller nedir peki diye soracak olursanız eğer Controller View sayfalarımızı oluşturacağımız .cs dosyasıdır. Asp.Net Web Form'da alışık olduğunuz eventler artık yok ve işlemlerinizi controllerda yapacaksınız. Oluşturmaya başlayalım.

Resim 2

Resim 3

Add > Controller dedikten sonra çıkan pencerede Default1Controller yazan kısmı HomeController olarak değiştirip Empty olarak okeyleyip oluşturuyoruz.Resim3

HomeController yapmamızın sebebi MVC projelerinde default olarak;

  • ~/Views/Home/Index.aspx
  • ~/Views/Home/Index.ascx
  • ~/Views/Shared/Index.aspx
  • ~/Views/Shared/Index.ascx
  • ~/Views/Home/Index.cshtml
  • ~/Views/Home/Index.vbhtml
  • ~/Views/Shared/Index.cshtml
  • ~/Views/Shared/Index.vbhtml

dosyalarının olup olmadığını kontrol eder. Bu Web Formda default.aspx di. Normal HTML de index.html ve PHP de index.php olduğu gibi MVC'de de yukarıdaki Index dosyaları aranır. Shared, Layout ve Partial View dosyalarını bulundurduğumuz klasör ve controller olduğu için home controllerı kurarak home klasörü oluşturup içinde Index.cshtml dosyası oluşturacağız.

6. View Oluşturma

 

Resim 4

Public ActionResult Index() in üzerine sağ tıklayarak Add View yapıyoruz. 

Resim 5

Ardından açılan pencerede View name kısmına Index yazıyoruz. Model class ve layout kullanma kısmını boş olarak işaretliyoruz. Sonraki makalelerimizde Model'e ve Layout'a ayrıntılı olarak değineceğiz.

Resim 6

Solution Explorer penceresinde Views klasörünün içine Home klasörü oluşturuldu ve bunun içerisine Index.cshtml view dosyası eklendi.

Artık projemiz çalıştırabilir durumda. Çalıştırmadan önce viewin içine bakarsak eğer. Bir kaç kod göreceksiniz. Bu kodlar HTML iskeleti bunların tümünü silip yerine sadece 

<title>Index<</title>

Index 

etiketini ve kelimesini ekleyebilirsiniz. Değişen hiç bir şey olmayacaktır. Resim7

Resim 7

Artık projenizi istediğiniz tarayıcıda startlayabilirsiniz.

Çıktı: 

Resim 8

Neler Öğrendik ?

Bu makalemizde Asp.Net Web Form ile Asp.Net MVC arasındaki farkları, MVC'de nelerin varolduğunu, hangi özelliklerin olduğunu, neden MVC kullanmamız gerektiğini, nasıl proje oluşturulduğunu, nasıl controller eklendiğini ve nasıl view eklendiğini öğrenmiş olduk.

Bir sonraki makalemde görüşmek üzere..

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir