Bu yazımda MVC (Model View Controller) teknolojisine giriş yaparak bu teknolojiyi öğrenmeye, kullanmaya başlayacağız. Ayrıca belirtmek isterimki daha önce bu teknolojiyi bilen veya kullanan biri değilim. Ben de yeni yeni öğrenmeye ve kullanmaya çalışıyorum. Takip ettiğim kadarıyla ilgi duyduğum konuları barındıran ve tam istediğim gibi web geliştirme imkanı sağlayan bu teknolojiyi beraber öğrenerek iyi bir noktaya geleceğimizi umut ediyorum. Belirttiğim gibi hem öğreneceğim hem de öğrendiklerimi buradan sizlerle paylaşacağım ve hep beraber bu teknolojiyi kavramaya çalışacağız. Şimdilik kısa bir giriş yapalım ve bu teknolojiyi nasıl kullanmaya başlayacağımıza bakalım.
Öncelikle bu teknolijinin ne olduğuna neden çıktığına ve amacına bakalım. Asp.net MVC (Model View Controller) klasik Asp.net uygulamalarını daha hızlı daha performanslı hale getirmek için geliştirilmiş bir yöntem diyebiliriz. Adında taşıdığı 3 önemli özellik ile bu teknolojiyi tanımlayabiliriz.
İlk özellik olan
Model özelliği ile geliştireceğimiz uygulamada kullanacağımız veri yapılarını tanımlayabiliyoruz. Bu veri yapıları veritabanı class'ları, genel class'lar veya kendi ihtiyacımıza göre hazırladığımız yapılar olabilir. Diğer özellik
View ise normal bir asp.net sayfası gibi kullanılmakta ve bilgiler, veriler sunulmaktadır.
Controller özelliği ise ister Model özelliği ile belirlediğimiz yapıları kullanarak ister hazır yapıları kullanarak View özelliklerine verileri, bilgileri yükler ve View özelliklerinin çalışmasını kontrol eder. Bu özellikleri basitçe bu şekilde ifade edebiliriz.
Asp.net MVC Projesi Oluşturma
Asp.net MVC projesi hazırlamak için bilgisayarımızda Visual Studio 2008 Service Pack 1 yüklü olmalı. Bunun dışında MVC projesi oluşturmak için gereken MVC paketini yüklemeliyiz. (Visual Studio 2008 Service Pack 1'i
buradan , MVC paketini ise
buradan temin edebilirsiniz.)
Bu paketleri yükledikten sonra MVC projesi oluşturabilir ve çalıştırabiliriz. Bunun için Visual Studio 2008'i açmalı ve sırayla şu sekmeleri kullanmalıyız.
File ~
New ~
Project ~
Web (C# veya VB) ~
Asp.net MVC Web Application. Bu adımları aşağıda da görebiliriz.
Bu şekilde projemizi oluşturuyoruz. Projemiz oluştuktan sonra projemiz MVC uygulamasına uygun bir biçimde hazırlanarak geliyor. Bu yapıyı da şe şekilde gibi resmedebiliriz.
Görüldüğü gibi MVC projemizde Models, Views ve Controllers klasörleri teknolojinin ana temsilcileri. Models klasörü içinde kullanmak üzere kendi yapılarımızı tanımlıyoruz. Controllers klasörü içinde oluşturacağımız Controller ile Views içinde yer alan View'ları kontrol ediyoruz ve bu view'lara dataları, verileri yükleyebiliyoruz. Views klasörü altında da uygulamamızın sayfaları diyebileceğimiz elemanlar yer almakta. Contents klasörü tasarımda kullanılan css dosyasını, Scripts klasörü kullanılacak olan script dosyalarını (Jquery, Microsoft Ajax, MicroSoftMVC Ajax ve Jquery VS Doc script kütüphanlerinin çeşitli versiyonları) barındırmakta. Bizler de hazırlayacağımız uygulamalara göre bu yapıyı istediğimiz şekilde değiştirebilir, istediğimiz değişiklikleri, eklemeleri, çıkarmaları yapabiliriz.
Böylece MVC teknolojisini klasik Asp.net uygulamalarını daha hızlı daha performanslı yapabilmek için hazırlanmış bir teknoloji olarak tanımlayabiliriz. Bence sağladğı kolaylık, hız ve performans sebebiyle tercih edilmesi gereken bir teknoloji. Bu yüzden bu teknolojiyi incelemeye ve üzerinde çalışmaya karar verdim. Bundan sonra bu teknolojiyi nasıl kullanacağımız hakkında yazılarım devam edecek ve örnek uygulamalar hazırlayacağım.
İlk MVC yazım için hazırladığım örneği
buradan indirebilirsiniz.
Umarım MVC teknolojisini iyi bir şekilde öğrenir ve bu konuda iyi bir noktaya beraberce geliriz.
Not : Linkini verdiğim uygulamayı çalıştırmak için Visual Studio 2008 SP1 gerektiğinden bilgisayarında bu eklenti olmayanlar örneği çalıştırma da problem yaşayabilir. MVC paketi için gereken dll dosyalarını örnek içinde paylaştığım için MVC paketi bilgisayarında yüklü olmayanlar örneği çalıştırabilir. (İlerde MVC projelerini çalıştırmak için neler gerektiği hakkında daha detaylı yazım olacaktır.)