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 April 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 April 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?

  2. #3 by Emine on August 15, 2012 - 3:00 pm

    Hocam yazınızı ilgiyle okudum. Kendim için notlar alırken bazı sözcüklerinizi Türkçe haliyle yazmam gerekti. implemet etmek: uyarlamak, data: veri, class: sınıf, render etmek: gerçeklemek, object-oriented: nesne yönelimli, vb..
    Dilimize yer ettiği için, daha iyi anlaşılması açısından İngilizce karşılıklarını yazdığınızı anlayabiliyorum. Ancak Türkçe’sini yazdıktan sonra parantez içerisinde İngilizce’sinin yazılmasının daha doğru olduğunu düşünüyorum.
    Verdiğiniz bilgiler için teşekkürler..Kolay gelsin..

    • #4 by Mahmut Can Sözeri on August 15, 2012 - 11:48 pm

      Merhaba,

      İlginiz için teşekkür ediyorum. Yazdığını Türkçe karşılığı olan kelimeler arasında Implement etmenin ve Render etmenin karşılığı maalesef sizin söylemiş olduğunuz tanımlar ile teknik olarak çevirilemiyor. Yani ben anlatmak istediğimin karşılığını bu kelimeler ile bulamadım ama diğer kalimeler için söylediklerinize katılıyorum. Bundan sonra bu şekilde kullanmaya özen göstereceğim.

      İyi çalışmalar

      Kolay gelsin

  3. #5 by Adil Atalay on December 24, 2014 - 12:31 pm

    MVC projemdeki view klasörün içindeki projemi bir türlü açamıyorum.

    ASP.NET Web API
    Home API
    Welcome to ASP.NET Web API! Modify the code in this template to jump-start your

    ile başlayan bir sayfa açılıyor. Ne yapmam gerek?

    • #6 by Mahmut Can Sozeri on February 6, 2015 - 11:14 am

      Merhaba Adil Bey,

      Tam olarak nasıl bir işlem yapıyorsunuz. Ekran görüntüsü de paylaşarak sorunuzu tam olarak sorara mısınız?

      Teşekkürler.

  4. #7 by web tasarım fiyatları on October 26, 2015 - 2:36 am

    İlgiyle takip ediyorum teşekkürler

  5. #9 by php web yazılım on May 7, 2016 - 5:27 pm

    Arama motorlarında arama yaparken sitenizi buldum paylaşımlarınız dikkatimi çekti teşekkürlerimi sunarım

  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
  2. 2012 Yılında Blogumun İle İlgili Rakamlar « Mahmut Can Sözeri
  3. [Blog Post(Turkish)] ASP.NET MVC İle İlgili Tüm Yazılarım (29 Yazı, 1 Yazı Dizisi ve 1 İpucu Serisi) « Mahmut Can Sozeri
  4. ASP.NET MVC 3 Razor ile Uygulama Geliştirme Yazı Dizisi 5 – İlk Uygulamamız (Empty Template ile) | Mahmut Can Sozeri

Leave a Reply

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 / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s