MVC Nedir? ASP.NET MVC Nedir?


Merhaba MVC Severler,

ASP.NET MVC 3 yazı dizime başlamadan öncelikli olarak bazı kavramlar hakkında fazla teknik detaya girmeden bilgi vereceğim.

MVC Nedir?

MVC(Model-View-Controller), ilk olarak 1979 yılında  Trygve Reenskaug tarafından tanımlandıktan sonra yazılım alanında kullanılmaya başlayan önemli bir mimari patern(architectural pattern)’dir. Ortaya atıldığı ilk yıllarda ismi “Thing-Model-View-Controller” sonradan basitleştirilerek şu an ki halini almıştır. MVC patern yazılım katmanlarının, örnek olarak display logic’ten data access logic’in, ayrı tutulduğu uygulamalar oluşturur.

MVC’de bir uygulamanın kullanıcı arayüzü 3 ana bölüme ayrılır:

  • Model: Data işlemlerinin ve iş kurallarının tanımlanır, class’lar oluşturulur
  • View: Kullanıcı arayüzünün nasıl gösterileceği tanımlanır
  • Controller: Kullanıcı arayüzündeki işlemler ile data ve/veya spesifik katman arasındaki iletişim sağlanır.

MVC tipik bir framework olmasına rağmen, özellikle bir mimaridir. Bunun anlamı spesifik class hiyerarşi veya object-oriented bir dil olmasa bile implement edilebilir.

MVC’yi Java’da, C++’ta, Php’de ve bir çok köklü dilde bulabilirsiniz.

ASP.NET MVC Nedir?

2002 yılında ilk defa yayınladığında(release), ASP.NET ve Web Form’ları bir bütün gibi ve aynı şey olarak düşünülüyordu. ASP.NET daima 2 katmanı destekledi:

  • System.Web.UI:Web Form katmanı, server kontrolleri, view state vb…
  • System.Web:modüller, handler’lar, HTTP Stack buna benzer
ASP.NET içerisinde geliştirilmiş hazır server kontrollerini sürükle-bırak yöntemi ile sayfalarımıza atıp, otomatik olarak bizim için oluşturulmuş HTML çıktılarına  sahip oluruz. Çalışmasını istediğimiz sayfadaki işlemleri handler’lar, moduller vasıtasıyla çalıştırırız. ASP.NET yerleşik olarak bir patern’e sahip değildir. Bu yazılım dünyası için büyük bir eksiklikti. ASP.NET MVC 2007 yılında duyuruluncaya kadar bu eksiklik hissedildi.

MVC patern’i web uygulamalarında sıklıkla kullanıyor, ASP.NET MVC içerisindeki kullanımı genel hatlarıyla:

  • Models: Kullanacağınız class’lar bulunur. Bu katmanda database’e erişim yollarınız ve metotlarınız yer almaktadır. Bu katman data erişim katmanı(access layer) olarak Entity Framework, NHibernate, ADO.NET ile database üzerinde veri işlemleri yapılması için kullanılır.
  • View: Dinamik olarak HTML kodları generate edilir.
  • Controller: View ve Model arasında ki iletişimi sağlar. Kullanıcı girişlerini yanıtlar, model ile haberleşir, hangi view’in render edileceğine karar verir.
Ayrıntılı bilgileri yazı dizimde yeri geldikçe konuşacağız.

Yaklaşık 2,5 yıl içerisinde 3 ana release oldu, Eylül ayındaki Build konferansında da ASP.NET MVC 4 Developer Preview olarak tanıtıldı.

Nasıl geliştirildi nerede geliştirildi kim geliştirdi diye soracak olursanız kısaca;

Şubat 2007 yılında, Microsoft’tan Scott Guthrie(“ScottGu”) tarafından ABD’nin doğu yakasındaki bir konferansa giderken uçakta ASP.NET MVC’nin çekirdeğini/temelini tasarlamıştır. Bir kaç yüz satır kod’dan oluşan basit bir uygulamaydı fakat salondakileri heyecanlandıran ve potansiyeli yüksek bir teknoloji olduğunu o zamandan hissettirmiştir.

Release olana kadar 9 preview release olmuştur. Sonunda ASP.NET MVC 1.0, 13 Mart 2009 yılında release oldu. Geçmiş sürümleri kıyaslamak yerine yer yer diğer yazılarımda bazı release notlarına yer vereceğim.

Sonuç

Özellikle ASP.NET MVC 3 Razor ile tanıştıktan klasik ASP.NET’ döneceğini sanmıyorum. Her projenizi bununla geliştirmek isteyeceksiniz diye düşünüyorum.

ASP.NET MVC uzun olduğu için .Net geliştiricileri kısaca MVC diye çağırıldığına çok fazla denk geldim. Bende bazen bu şekilde söylerim.

Kaynakça ve Daha fazla bilgi için:

Sonraki yazılarımda görüşmek üzere MVC ile kalın.

Her türlü soru ve önerinizi lütfen benimle paylaşın.

,

  1. #1 by mehmet hanif on Nisan 14, 2012 - 9:59 am

    hocam mvc ile ilgili yazılmış türkçe detaylı bir kaynağa ihtiyacımız var, 4 sürüm çıkınca yazarmısınız

    • #2 by Mahmut Can Sözeri on Nisan 14, 2012 - 8:51 pm

      ASP.NET MVC 4 ile ilgili yazı dizisine başlayacağım. İlginiz için teşekkürler. Siz tam olarak hangi konu ile ilgileniyorsunuz?

  1. ASP.NET MVC 3 Razor ile Uygulama Geliştirme Yazı Dizisi 1 – Yüklemeleri Yapmak ve Geliştirmeye Hazır Olmak « Mahmut Can Sözeri

Yorum yapın

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Değiştir )

Twitter picture

You are commenting using your Twitter account. Log Out / Değiştir )

Facebook photo

You are commenting using your Facebook account. Log Out / Değiştir )

Connecting to %s

Takip Et

Get every new post delivered to your Inbox.