ASP.NET MVC Nedir, Ne İşe Yarar?

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.

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.

Model View Controller

Model View Controller

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 Life Cycle

MVC Life Cycle

MVC’nin diğer bir önemli yapıtaşı Routing mekanizmasıdır.

Routing

Routing, istemci’nin uygulamaya yaptığı isteği uygun Controller ve Action’a yönlendiren yapıdır. İstemci, isteği uygulamanın belli bir adresine gönderir, routing mekanizması sayesinde ilgili adres için en uygun Controller ve içerisindeki Action tespit edilir ve çalıştırılır.

Neden ASP.NET MVC tercih etmeliyim?

MVC ile istemci’nin isteğine karşılık üretilen çıktı üzerinde çok büyük kontrol imkanı vardır. Bu sayede her alanına müdahele edebildiğimiz ve isteğe en uygun çıktının üretilebilmesi sağlanmıştır.

MVC ile tekrar kullanılabilir (reusable) kod üretmek mümkündür. MVC’nin katmanları birbirinden ayrıldığı için her bir katmanın başka projelerde kullanılabilmesi sağlanmıştır.

MVC ile istemci’nin istek göndereceği adresler üzerinde çok büyük kontrol imkanı vardır. Bu sayede adres’in içerik ile tam bir ilişki içerisinde olması sağlanmıştır. Arama motorları için adres-içerik ilişkisi önemli olduğu için uygulamanın bulunabilirliğine katkısı yüksektir.

MVC ile test edilebilir uygulamalar geliştirme çok kolaylaşmıştır. Katmanların birbirinden ayrı olması ve Test Driven Development yapmayı kolaylaştırıcı mimarisi sayesinde test edilebilir uygulama geliştirilebilmesi sağlanmıştır.

Sonuç

MVC uzun yıllardır bir çok framework’te ve programlama dilinde kullanılmış (Java, PHP, vb.) ve olgunlaşmış bir desendir. ASP.NET MVC sayesinde .Net framework dilleri ile MVC pattern kullanılarak hızlı çalışan, test edilebilir, tekrar kullanılabilir parçaları olabilen web uygulamaları geliştirilebilmesi sağlanmıştır.

 

Herkes Görsün:

Bunlar da hoşunuza gidebilir...

26 Cevaplar

  1. Hakan Yılmaz dedi ki:

    MVC nedir merak ediyordum, çok faydalı bir makale olmuş, kafamdaki tüm sorular giderildi. Elinize sağlık.

  2. Romario dedi ki:

    Aslında MVC gelmeden önce de ASP.Net ile bayağı işler başarıyorduk ancak sayfaları düzenlemek çok zaman alıyordu. MVC yöntemi ile çok daha fazla sayıda sayfayı çok daha kısa sürede düzenlemek mümkün olduğu gibi aynı zamanda programcıyı yanlış alışkanlıklardan da kurtarması açısından iyi bir gelişme.

  3. eray nilüfer dedi ki:

    Makale çok anlaşılır ve net olmuş. Bende MVC hakkında temel bilgiyi sizden öğrendim diyebilirim. Çıktı alıp arşivime ekledim. Teşekkür ederim..

    • borsoft dedi ki:

      Teşekkürler Eray;
      Kafana takılan konuları çekinmeden sorabilirsin.
      İyi çalışmalar.

  4. Yasin dedi ki:

    Bora bey videolarınızı seminerlerinizi elimden geldiğince takip ediyorum.Açık akademi ile anlattığınız html5,css3,javascript ile güzel bir site yaptım.Benden çok sizin emeğiniz var.İletişim formunu yapmak için koyulkduğum yolda yine karşılaştık.Bana önerebileceğiniz asp.net mvc eğitimi varmı?e-posta atarsanız sevinirim…

    • borsoft dedi ki:

      Selam Yasin,

      Şu an Mvc eğitimi çekiyoruz.
      Yine Açık Akademi:) Yine Engin Polat Ve Ben.

      Beklerizz:)

  5. Kamran dedi ki:

    SQL server ile MVC -nin farklari hakkinda yazsaniz iyi olur

    • borsoft dedi ki:

      Selamlar Kamran,
      Bu ikisi arasında bir bağlantı yok. SqlServer DataBase teknolojilerinden biri(DB’nin fiziksel olarak saklandığı sunucu..mdf,.ldf dosyalarının bulunduğu fiziksel makina), MVC ise, 90ların sonundan beri kullanılan web uygulamaları geliştirme metodolojisi.

      İyi çalışmalar.

  6. Ahmet dedi ki:

    Şu patern kavramı kafama tam oturmadı. Ne çeşit paternler var.

  7. kadir dedi ki:

    merhaba,

    Asp.NET MVC’yi örneklerle anlatan bir yazınız var mı?

  8. Hasan dedi ki:

    Guzel bir çalışma olmuş ellerinize sağlık

  9. Gunes dedi ki:

    tesekkurler, harika bir yazi.

  10. Fahreddin dedi ki:

    bora hocam ,
    Teşekkürler ellerine sağlık

  11. Kenan dedi ki:

    Asp.core yoxsa Asp.net MVC oyrensek daha iyi olur ,yoksa her ikisnde?

  12. Ahmet dedi ki:

    güzel anlatım

  13. Furkan dedi ki:

    Sade ve anlaşılır bir anlatım. Verilen bilgiler için teşekkürler.

  1. 22 Haziran 2016

    […] Kaynak:   Engin Polat  –  Bora Kaşmer […]

Bir cevap yazın

E-posta hesabınız yayımlanmayacak.