ASP.NET MVC Nedir?
Microsoft firmasının MVC mimarisini ASP.NET içerisine ekleyerek oluşturduğu ASP.NET MVC yapısı nedir, nasıl kullanılır ile ilgili bilgiler yer alıyor.
ASP.NET MVC nedir?
Web teknolojilerinin gelişmesiyle birlikte 2007 yılında ASP.NET içerisine eklenen bir yazılım mimarisidir.
ASP.NET hakkında bilgi almak için ASP.NET Nedir? yazıma bakabilirsiniz.
Geliştirilen web uygulamalarındaki bölümlerin artmasıyla beraber yazılan kodlarda artmaktadır.
Yazılan kodların artması, geliştirilen uygulama için uygun bir mimarinin seçilmemesi kodların karmaşıklaşmasına, kod bakım süresinin uzamasına neden olur.
Microsoft bu sorunu çözmek için web uygulamalarında sıklıkla kullanılan MVC mimarisini ASP.NET içerisine entegre etmiştir.
MVC yani Model-View-Controller en basit şekilde geliştirilen uygulamaların parçalara ayrılmasıdır.
Parçalara ayrılmasındaki neden SOC Separation Of Concerns yani sorumlulukların ayrılması prensibidir.
Her bir parçanın kendine göre görevleri vardır.
- Model – Uygulamada kullanılacak verilerin bulunduğu, veritabanı ile ilgili bağlantının yapıldığı katmandır.
- View – Model içerisindeki verilerin görselleştirilmesinden sorumlu katmandır.
- Controller – Model ile View arasındaki bağlantıyı sağlayan katmandır. View’dan gelen ekleme, silme, güncelleme vb. isteklere cevap verir.
Örneğin; Kullanıcı View katmanındaki görsel form alanı aracılığıyla ekleme işlemi için veri gönderir.
Gönderilen veriler Controller katmanında kontrol edilir.
Kontrol edilen veriler uygunsa Model katmanına aktarılarak ekleme tamamlanır.
Kontrol başarısızsa View katmanına geri bildirim gönderilir.
Controller katmanındaki kontrol işlemleri zorunlu değildir.
NOT: ASP.NET MVC bir Nuget paketidir.
ASP.NET MVC kullanımı
Projeye MVC paketini dahil etmek için Nuget paket yöneticisinden Microsoft.AspNet.Mvc veya Microsoft.AspNetCore.App paketini eklemek yeterli olacaktır.
Paket dahil edildikten sonra paket için gerekli olan diğer paketlerde yüklenecektir.
Paket kurulduktan sonra Controller için Controllers klasörü, Model için Models klasörü, View için Views klasörü oluşturularak MVC yapısı oluşturulabilir.
Yapı oluşturulduktan sonra Controller içerisine gelen isteklere cevap veren metotlar (Action) Routing olarak adlandırılan tabloya eklenerek ASP.NET MVC projesi oluşturulabilir.
Ayrıca Visual Studio geliştirme ortamında ASP.NET projesi olarak MVC özelliği seçildiğinde Microsoft tarafından hazırlanan MVC şablonu kullanılabilir.
ASP.NET MVC nasıl çalışır
ASP.NET MVC, ASP.NET projelerinin başlangıç dosyası olan Global.asax (.NET Framework), Program.cs (.NET Core) içerisine Routing tablosunu ekler.
.NET Framework routing yapısı
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
.NET Core routing yapısı
app.UseMvc(routes =>
{
routes.MapRoute(
name: "default",
template: "{controller=Home}/{action=Index}/{id?}");
});
Routing temel olarak gelen istekleri MVC içerisinde yer alan Controller katmanı/parçası ile eşleştirir.
Routing hakkında detaylı bilgi için ASP.NET MVC Routing yazıma bakabilirsin.
Controller
Gelen istek herhangi bir Controller ile eşleştikten sonra içerisinde yer alan komutlar çalıştırılır.
Örnek .NET Framework Controller yapısı
public ActionResult Index()
{
return View();
}
Örnek .NET Core Controller yapısı
public IActionResult Index()
{
return View();
}
Controller içeriği gelen isteğe göre Model içerisinde yer alan bir değerde gönderebilir.
Buradaki View metodu Controller sınıfında yer alan ve bir NYP özelliği olan kalıtım ile miras alınarak kullanılmıştır.
Benzer şekilde Controller ve ControllerBase sınıfında yer alan Json, Redirect gibi metotlarda kullanılabilir.
Controller hakkında detaylı bilgi için ASP.NET MVC Controller yazıma bakabilirsin.
View
View metodu çalıştırıldığında Views klasöründe yer alan Controller sınıfına ait View parçasını kullanıcıya gönderecektir.
ASP.NET MVC yapısında View katmanına komutların dahil edilmesi için Template Engine olarak adlandırılan yapı kullanılır.
Bu sayede View katmanında yer alan görsel arayüze değerler dahil edilir.
Template Engine yapısının desteğine göre koşul, döngü, değişken kullanımı gibi imkanlara sahiptir.
View hakkında detaylı bilgi için ASP.NET MVC View yazıma bakabilirsin.
Model
Model kısmı ise genellikle POCO olarak adlandırılan sınıflardan ibarettir.
Burada yer alan sınıflar ORM olarak adlandırılan yapı sayesinde veritabanı ile eşleştirilir ve ihtiyaca göre Controller içerisinde kullanılır.
Örnek Model dosyası aşağıda yer almaktadır.
public class Person
{
public int ID { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public string Email { get; set; }
public string FullName => $"{FirstName} {LastName}";
}
NOT: Model örnek olması amacıyla basit tutulmuştur.
Model hakkında detaylı bilgi için ASP.NET MVC Model yazıma bakabilirsin.
.NET Derslerine buradan ulaşabilirsiniz.
Hayırlı günler dilerim.