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
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’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.
MVC nedir merak ediyordum, çok faydalı bir makale olmuş, kafamdaki tüm sorular giderildi. Elinize sağlık.
Teşekkür ederim.
Yazılarım devam edicek.
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.
Razor view engin buna büyük imkan sağlamaktadır.
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..
Teşekkürler Eray;
Kafana takılan konuları çekinmeden sorabilirsin.
İyi çalışmalar.
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…
Selam Yasin,
Şu an Mvc eğitimi çekiyoruz.
Yine Açık Akademi:) Yine Engin Polat Ve Ben.
Beklerizz:)
SQL server ile MVC -nin farklari hakkinda yazsaniz iyi olur
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.
Şu patern kavramı kafama tam oturmadı. Ne çeşit paternler var.
Selam Ahmet,
Bu büyük bir kavram. Uzun sürede deneyimle oturacak birşey. Uzun süre derken en az bir yıllık bir süreç. S.O.L.I.D ile başla bakalım sonra da paternlere girersin. Kolay gelsin.
http://www.borakasmer.com/typescript-ile-solid/
İyi çalışmalar.
merhaba,
Asp.NET MVC’yi örneklerle anlatan bir yazınız var mı?
Guzel bir çalışma olmuş ellerinize sağlık
Teşekkürler.
tesekkurler, harika bir yazi.
Teşekkürler Güneş :)
bora hocam ,
Teşekkürler ellerine sağlık
Ben teşekkür ederim.
Asp.core yoxsa Asp.net MVC oyrensek daha iyi olur ,yoksa her ikisnde?
Bence önceliğinizi .Net Core’a verebilirsiniz.
güzel anlatım
Teşekkürler :)
Sade ve anlaşılır bir anlatım. Verilen bilgiler için teşekkürler.
Ben teşekkür ederim.