ASP.NET MVC nedir? Neden MVC tercih etmeliyim?

Piyasada birçok yazılım firmasının ASP.NET MVC üzerinde Entity Framework kullanarak websiteler (modüller) yaptıklarını gördüm. Aşina olduğumuz .NET masaüstü uygulamalarını sadece Windows üzerinde kalmayıp, platform bağımsız çalışması için website tabanlı olarak kullandığınızı hayal edin. Bunun için yine Microsoft tarafından geliştirilen ASP.NET MVC kullanıyoruz. MVC’yi tanımlamadan önce ASP.NET neymiş ona bir bakalım.

Daha önce “Sorularla Nesne Tabanlı Programlama” diye bir yazı serisi paylaşmıştım. Sorularla ilerleme taktiği hoşuma gittiği için bu konuda da bu şekilde devam etmek istiyorum.

ASP.NET nedir?

Dinamik web siteleri oluşturmak adına kullanılan PHP, ASP gibi dillerden sonra, son teknoloji olarak web dünyasında yerini alan bir dildir. MasterPage gibi bazı kavramlar da ASP.NET ile yaygınlaştı.

MasterPage olayı aynı şeyleri tekrar tekrar yazmamak demek, diyebiliriz. Örneğin 5 sayfalık bir web siteniz olsun. Bu sayfaların her birinde aynı tasarım var fakat içerik farklı. Şimdi, her sayfa yapımında tasarımı tekrar kopyala-yapıştır yaptığınızı ve sadece içeriğindeki kodları değiştirdiğinizi farz edelim. Daha sonra tasarımda ufacık bile bir değişiklik yapmak istediğinizde her sayfayı tek tek düzenlemeniz gerekir. Beş sayfalık bir site için bu sorun olmayabilir belki fakat birçok sayfa olduğunu düşünürseniz saçma bir uğraş olur.

MasterPage mantığında ise belli bir kalıp yapıyorsunuz ve sonra diğer sayfaları o kalıptan türeterek sadece içeriğini ekliyorsunuz. Değişiklik yapmak istediğinizde sadece masterpage sayfanızı düzenlemek yeterli. Onu düzenlediğiniz zaman ondan türetilen tüm sayfalarda bu değişiklik geçerli olacak.

ASP.NET MVC nedir?

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: Veritabanına erişim, sınıflar(class),veritabanı ilişkileri gibi data ile ilgili işlemlerin yanısıra, Entity Framework, Linq tol Sql, NHibernate, Ado.Net gibi frameworkleri içerisinde bulunduran katmandır.  Kısacası data (veri) işlemleri bu katmanda gerçekleşir.

View: Bu katman kullanıcının ekranda gördüğü katman olarak adlandılır. Bu kısımda Html, Css, Javascript arayüz teknolojileri kullanılır.

Controller: Kullanıcının View vasıtasıyla verdiği komutların, Model işlenmesini sağlayan katmandır. Kısacası Model ile View arasındaki katmandır. Metotlar,değişkenler , fonksiyonlar  buradan çağrılarak kullanılır.

Neden ASP.NET MVC tercih etmeliyim?

  • MVC ile istemcinin 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 istemcinin istek göndereceği adresler üzerinde çok büyük kontrol imkanı vardır. Bu sayede adresin 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.
  • 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’den bahsetmişken Javascript ve Ajax‘a da değinmek lazım.

Javascript Nedir?

JavaScript, birçok kaynakta da göreceğiniz üzere Netscape firması tarafından geliştirilmiş olan bir script dilidir. JavaScript bize etkileşimli ve dinamik web sayfaları hazırlama imkanı vermektedir. Sözdizimi Java’ya benzese de Java ve JavaScript birbirinden farklı teknolojilerdir.

Javascript, HTML kodlarının arasında yazılıp tarayıcıya gönderilir. Tarayıcılarımız, bu kodları alıp yorumlayarak ekrandaki HTML nesnelerinin yer değiştirmesi, özellik değiştirmesi gibi işlemleri yaparlar. Yani javascript kodları, sunucumuzda yorumlanmak yerine, bizim bilgisayarımız üzerinde çalışırlar. Tüm bu dinamizmi yaratan olay da budur.

Ajax Nedir?

Ajax etkili ve interaktif web projelerini çabucak yapmanızı sağlayacak, tüm popüler web browserlarda çalışan ücretsiz bir frameworktür. Asynchronous JavaScript And XML kelimelerinin kısaltmasıdır. Html, css, dom, javascript, xml, httprequest gibi birçok bileşenin birleştirilmesiyle geliştirilmiş bir teknolojidir.

Bu düşünce önce JSP geliştiricileri tarafından ortaya atılmış daha sonra da Microsoft tarafından desteklenmiştir. Microsoft ilk önce bunu ATLAS olarak geliştirmiş daha sonra da ASP.NET AJAX olarak desteğini sürdürmüştür. Yani ajax; ne bir dil, ne de bir kütüphane değildir. Ajax, sadece bir yöntemdir.

Ajax‘da daha önceden var olan JavaScript ve XML dillerini, web tarayıcısında bulunan XmlHttpRequest nesnesi ile birlikte kullanır. Peki, bu bize ne sağlar? İstekler XmlHttpRequest ile gönderilince sunucu ve istemci arasında taşınan veriler sıkıştırılmış olur ve aradaki bant genişliği boş yere işgal edilmemiş olacağı için aynı anda yapılan birçok işlemde daha fazla perfonmans kazancımız olur.

 

 

Kaynaklar: 
• ASP.NET MVC Nedir, Ne İşe Yarar? / borakasmer.com
• MVC mimarisi ve ASP.Net MVC nedir? / webmaster.kitchen
• MVC Nedir? ASP.NET MVC Nedir? / mcansozeri.wordpress.com
• Javascript Nedir? / deltawebsistem.com
• JavaScript Nedir? Nerelerde Kullanılır? Nasıl Öğrenilir? / ahmetiscan.web.tr
• Ajax Nedir? / yazilimmutfagi.com
• Ajax Nedir? / dijitalders.com

Yorum yaz: