ASP.Net:MVC
Bu bölümde ASP.Net MVC konusu ele alınmıştır. ASP.Net, Microsoft firması tarafından geliştirilen bir web uygulaması geliştirme çatısıdır. Uygulama geliştime çatılar, bir platformda uygulama geliştirebilmek için gerekli olan kütüphaneleri, editörleri, programlama dillerini sunan yazılımlar bütünüdür. Bu çatılar sayesinde istenilen platformda daha hızlı uygulama geliştirmek mümkündür.
ASP.Net öncesinde ASP (Active Server Pages) ile kullanılmaktaydı ve hem sunucu hem de istemci taraflı kodlar aynı sayfa içerisine yazılmaktaydı. ASP.Net geliştirilmesi ile birlikte bu kodlar birbirinden ayrılarak daha düzenli bir kod yazım ortamı oluşturulmuştur. ASP.Net ilk lanse edildiği dönemde, web uygulamaları geliştirmek için Web Form ortamını tanıtmıştır.
Web Form uygulamaları, windows form uygulamalarına benzer olarak olay tabanlı web uygulaması geliştirmeye olanak sağlayan web uygulaması geliştirme ortamıdır. Bu ortam sayesinde sunucu taraflı kodlar, "code behind" ismi verilen teknikle arayüzü oluşturan istemci kodlarından ayrıştırılmıştır. Uygulamayı temel anlamda iki bölüme ayıran bu yöntem ile bir çok başarılı web uygulaması geliştirilmiştir ancak uygulama geliştirilirken alınan bu performans, uygulamanın çalışması esnasında bazı sınırlılıklardan dolayı alınamamıştır. Örnek olarak web form uygulamalarında sayfa durumlarının, sayfanın kaynak kodunda saklanması, oluşturulan kontrollerin sunucu kontrolleri olarak oluşturulmasından kaynaklı sunucunun render açısında iş yükün artması gibi sebepler gösterilebilir.
Web Form uygulamalarının sırasında, MVC tekniği ile uygulama geliştirme platformu sunulmuştur. MVC, Model View Controller kelimelerinin baş harflerinden oluşmaktadır ve bir uygulama geliştirme desenidir. Microsoft bu deseni kendi ürettiği ASP.Net çatısına uyarlayarak yazılım geliştiricilere sunmuştur.
ASP.Net MVC adını verdiği bu yeni geliştirme ortamı, yazılım geliştiricilere kodları çok daha iyi ayrıştırarak, test edilebilir, hata ayıklamasının daha kolay yapıldığı kodlar üreterek uygulama geliştirme imkanı sunmuştur. Günümüzde bir çok web uygulamasının bu yöntem ile geliştirildiği görülmektedir.
Bu yapı içerisinde Controller'lar, kullanıcıdan gelen istekleri karşılayarak gerekli işlemleri içlerinde bulundurduğu action metod adı verilen metodlarla gerçekleştirmekte ve kullanıcıya View'lar aracılığı ile sonuçları göstermektedir. Bu işlemler sırasında verileri gösterirken gerektiğinde model katmanını da kullanmaktadır.
Model katmanında, uygulama içerisindeki verilerin bellekte temsil edilebilmesi için gerekli class'lar bulunmaktadır.
View'ler ise kullanıcıya işlenen verilerin gösterildiği katman olarak tanımlanmaktadır. View'ler içerisinde istemci taraflı HTML, CSS, JavaScript gibi kodlarla birlikte aynı zamanda sunucu taraflı kodlar da yazılabilmektedir. Bu kodların yazılabilmesi ve okunabilmesi Razor adı verilen yazım kuralları ile sağlanmaktadır.
Kullanıcıya her sayfada gösterilmek istenen verileri için Layout View adı verilen kavram kullanılmaktadır. Örneğin uygulamanın gezinme menüsü, layout içerisinde kodlanarak her sayfada aynı şekilde gösterilebilir. Bunun getirdiği kolaylık ise, bir değişiklik yapılması gerektiğinde tek yerde yapılarak bu değişikliğin her sayfaya yansıtılmasıdır.
Controller katmanı sunucu taraflı çalışan bir katman olduğundan, veritabanları ya da diğer kaynaklardan elde ettiği verileri kullanıcıya göstermek için View’lere taşıyabilir. Controller’dan View’lere veri taşımak için, ViewData, ViewBag, TempData ve ViewModel yöntemleri kullanılabilir.