MVC de en kullanışlı yapılardan biri de Area kavramıdır. Peki nedir bu Area kavramı? ASP.NET MVC projemizde Area yapısı sayesinde birden fazla alt alanlar (yapılar) ekleyebiliriz. Alt alan dediğimiz ne oluyor? diyebilirsiniz. Ana projenin altında, ama kendi içinde yapılandırılmış alt projeler gibi de düşünebilirsiniz. Mesela Yönetici yetkisindeki kullanıcılar için alt proje kapsamında Admin panel yapabilirsiniz. Kendi sitemde kullandığım area örneklerini inceleyelim isterseniz. Daha açıklayıcı olacaktır.
Projemize sağ tıklayıp Add -> Area diyelim ve areamızın ismini vererek projemize ekleyelim.

Ben projeme Admin ve Mobile isimli 2 adet area ekledim. Area yapılarının görünümü şu şekildedir.

Her area altında “Controllers”, “Models” ve “Views” klasörleri yer almaktadır. Bu klasörler içerisine Admin ve Mobile arealarının kendilerine özgü Controller, Model ve View’larını yerleştirmekteyiz.
AdminAreaRegistration ve MobileAreaRegistration dosyalarımız ise arealarımızın URL Routing'lerini tanımladığımız yerlerdir.
public override void RegisterArea(AreaRegistrationContext context)
{
context.MapRoute(
"Mobile_default",
"Mobile/{controller}/{action}/{id}",
new { action = "Index", id = UrlParameter.Optional });
}
Global.asax dosyamızdaki
AreaRegistration.RegisterAllAreas();ile Arealarımız projeye dahil edilmektedir. Daha sonra her bir area'nın Controller'larını oluşturup bu controllerlara View'lar ekleyerek işlemimizi tamamlıyoruz.
Artık sitemize bir mobile aygıttan girdiğimizde sitenin Mobile versiyonunu gezebiliriz. Sonuç olarak mobile tarayıcılar için projemizde bir alt proje(area) oluşturduk. Mobile tarayıcıları MVC'de tespit edip nasıl ayrı bir area'ya yönlendireceğimizi ise daha sonra başka bir makalede anlatmayı düşünüyorum. Görüşmek üzere...
YORUMLAR (5)