Home / Yazılım / ASP.NET MVC Nedir? Temel Elemanları Nelerdir?

ASP.NET MVC Nedir? Temel Elemanları Nelerdir?

MVC (Model View Controller) Tasarım Kalıbı

MVC son dönem nesne yönelimli programlamanın temel taşlarından olan bir tasarım kalıbıdır. MVC kalıbı bir probleme ilişkin modeli, görünümü (örneğin nasıl bir ekranda görüntüleneceğini) ve bunları kontrol eden yapıyı birbirinden ayırır. MVC kalıbına ilişkin genel bir kod aşağıdaki gibidir:

using System;
using System.Collections.Generic;
namespace CSD
{
public class App
{
public static void Main()
{
ProductController controller = new ProductController();
controller.Display();
controller.Input();
}
}
static class ProductDB
{
private static List<Product> ms_products;
static ProductDB()
{
ms_products = new List<Product>;();
ms_products.Add(new Product(1, "Kitap";));
ms_products.Add(new Product(2, "laptop";));
ms_products.Add(new Product(3, "Phone";));
}
public static Product[] GetAllProducts()
{
return ms_products.ToArray();
}
public static void Add(Product p)
{
ms_products.Add(p);
}
//...
}

class ProductInputView {
public Product Input()
{
Console.WriteLine(“Id yi giriniz”);
int id = int.Parse(Console.ReadLine());
Console.WriteLine(“İsmi giriniz”);
string name = Console.ReadLine();
return new Product(id, name);
}
}
class ProductView {
private Product[] m_products;
public ProductView(Product[] products)
{
m_products = products;
}
public void DisplayProducts()
{
foreach (Product p in m_products)
Console.WriteLine(p);
}
}
class ProductController {
public void Display()
{
Product[] products = ProductDB.GetAllProducts();
ProductView view = new ProductView(products);
view.DisplayProducts();
}
public void Input()
{
ProductInputView view = new ProductInputView();
Product p = view.Input();
ProductDB.Add(p);
this.Display();
}
}
//Model
class Product
{
private int m_id;
private string m_name;
public Product(int id, string name)
{
m_name = name;

m_id = id;
}
public int Id { get { return m_id; } set { m_id = value; } }
public string Name { get { return m_name; } set { m_name = value; } }
public override string ToString()
{
return string.Format(“[{0}]{1}”, m_id, m_name);
}
}
}

Burada Product isimli sınıf bir model, ProductView ise nasıl görüntüleneceğine ilişkin sınıftır. Burada önemli olan problemin View ve Modelin birbirinden bağımsız olarak Controller tarafından çözülmesidir.

Burada model view u bilmeyebilir fakat view modelini bilmektedir. Yukarıdaki program parçası tamamıyla olmasa da ASP.NET MVC teknolojisinin çalışma prensibine uygundur. Burada dikkat edilirse her view işlemi için controller sınıfında birer metot karşılık getirilmiştir. Bu durum esnek çalışmayı sağlamakta. Tasarım aşamasıyla programlama aşamasını ayrı ayrı ya da beraber olarak yapabilme yeteneği kazandırmaktadır. Yani, iyi bir tasarımcı programlama bilmese de bir sayfa tasarımı yapabilir, programcı da bu tasarımı alıp sadece HTML kontrollerini kullanarak uygulamayı geliştirebilir.

ASP.NET MVC Teknolojisi

Bilindiği gibi ASP.NET Microsoft firmasının .NET ortamında Web uygulamaları geliştirmek için tasarladığı bir kütüphanedir. Bu kütüphane içerisinde MVC tasarım kalıbını kullanarak web uygulamaları geliştirmek için tasarlanmış yeni nesil kütüphane sistemine ASP.NET MVC denilmektedir.

ASP.NET MVC Varsayılan Durumlar

ASP.NET MVC teknolojisi programcı hiç bir belirleme yapmaksızın default bir takım belirlemelerle geliştirmeye olanak sağlamaktadır. Buna İngilizce olarak “convention” denilmektedir. Bu belirlemeler değiştirilebilmektedir. Ancak bir çok durumda değiştirilmesine gerek olmayabilir. Bu belirlemelerde bir takım varlıklar (dosya, page ya da sınıf) belirli dizinler içerisinde aranacaktır. Yani programcı varlıkları bu dizinlere koyarsa ASP.NET MVC tarafında bir belirleme yapmaksızın program ilgili işlemleri yapacaktır.

ASP.NET MVC Projesinin Temel Elemanları

Burada boş bir ASP.NET MVC projesinin temel elemanları anlatılacaktır. Bu elamanlar genel olarak dizinler ve dosyalar şeklindedir. Bir proje içerisinde yukarıda anlatılan view, model ve controller sınıflarına default dizinler bulunur. Şüphesiz bu dizinlerin hiç birisi zorunlu değildir. Hatta sıfırdan bir ASP.NET MVC projesi “hard coded” oluşturulabilir.

App_Start dizini bir takım ilk belirlemelere ilişkin dinamik kodları içermektedir. Örneğin RoutoConfig.cs dosyası ile routing işlemleri belirlenmektedir. App_Data dizini içerisinde adından da anlaşılacağı gibi bir takım veriler bulundurulur. Örneğin bir takım dosyalar, ya da özellikle veritabanı dosyaları burada bulundurulabilir. Scripts dizininde genel olarak javascript ya da jquery dosyaları bulundurulur.

ASP.NET MVC Kullanımı

ASP.NET MVC teknolojisi genel olarak controller içerisindeki action metotlara dayanmaktadır. Yani bir durum için controller sınıf içerisindeki bir metot çağrılmaktadır. ASP.NET Web Forms tarafındaki her sayfanın bir sınıfla eşleştirilmesi (code behind) durumu bu teknoljide yoktur. Ya da örneğin postback gibi bir mekanizma burada yoktur. Controller sınıfları ASP.NET MVC için default olarak Controllers isimli bir dizin altında aranır. Ayrıca yine default olarak tüm controller sınıflarının isimleri “Controller” ile bitirilmektedir.

Her view un görevi gibi ASP.NET MVC teknolojisinde de view bir görünümün tasarımını içermektedir. Ancak ASP.NET Web Forms ya da PHP gibi teknolojilerden farklı olarak bir view elamanı diskte bir dosyaya karşılık gelmeyebilir. Eğer bir view bir dosyaya karşılık gelecekse bu dosya ASP.NET MVC için default olarak proje içerisindeki views isimli dizin altında aranacaktır.

Model genel olarak verinin nasıl tutulduğuna ilişkin bellekteki nesnenin karşılık geldiği sınıf bildirimidir. Bu sınıflar programcı tarafından yazılabileceği gibi bir takım araçlar yardımıyla da veri tabanı yönetim sistemlerinden üretilebilmektedir. Bir model ASP.NET MVC için default olarak Models isimli bir dizin içerisinde aranacaktır. Ancak bunun başka dizinlerde kullanımına çok rastlanmaktadır.

Rate this post

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Mualla Premium Chocolate