Uzun bir zaman sonra Merhaba MVC severler 🙂 Fazla detaya girmeden MVC kavramını açıklamak istiyorum, aslında açıklamak istediğim ASP.NET Web Form ile ASP.NET MVC arasındaki temel farklar. MVC ile tanışmadan önce Web Form ile çalışmalar yapmaktaydım. Fakat MVC ile tanıştıktan sonra gerçekten bakış açım değişti, bir nevi “Çağ Atlamak” diyebilirim. Neyse başlayalım…
MVC; Model , View , Controller kelimelerinin baş harflerinden oluşur ve her kelime MVC’nin farklı bir platformunu ifade eder. Model,View ve Controller’ın her birinin ayrı ayrı görevleri vardır. Fakat Asp.net Web Form da her şey iç içedir, çok karışıktır,anlaşılabilirliği zayıftır ve MVC’ye göre çok yavaştır.
MODEL
Veritabanına erişim, sınıflar(class),veritabanı ilişkileri gibi data ile ilgili işlemlerin yanısıra, Entity Framework, Linq tol Sql, NHibernate, Ado.Net gibi frameworkleri içerisinde bulunduran platformdur. Kısacası data(veri) işlemleri bu katmanda gerçekleşir.
VIEW
Kısacası, uygulamanızın kullanıcılarınızın gözüyle gördüğü kısmıdır, arayüzdür. Ayrıca VIEW sayfalarında HTML, C#, JAVASCPRIT, AJAX ve JSON kodlarının hepsi kullanılabilir.
CONTROLLER
Controller ise, VIEW ve MODEL arasında köprü görevini üstlenir, yani basitça anlatırsak, veritabanından gelen bilgileri arayüzde oluşturmak için,yani arayüzde göstermek için kullanılan platformdur. İşte MVC’nin başlıca farklarından biriside budur. Web Form da bu göreve üstlenen .aspx.cs’dir, fakat her işlem birbirinden kopuktur ve anlaşılabilirliği zayıftır.
Ayrıca bunlardan farklı olarak gözlemlediğim çok önemli bir ayrıntı var. Biliyorsunuz ki web sitelerinde Javascript,Json ve AJAX parametlerini kullanmak çok büyük bir avantajdır. Kullanıcıya özel işlemleri bu parametlerle yapmamız gerekir.Örneğin bir e-ticaret sitesinde bir ürün almak istediğinizde , “Ürünün adetini artırma” seçeneği kullanıcıya özeldir, bu işlemi Javascript kodlarıyla yapmak çok büyük bir avantajdır. Asp.net Web Form da bu işlemi yapamadım desem yeridir çünkü Javascript kodlarının uyumunu sağlayamadım, fakat MVC de ise bu işlemi çok kolay bir şekilde yaptım. Buda önemli farklılıklardan birisidir.
Önümüzdeki ay ASP.NET MVC ile üzerinde çalıştığım E-ticaret sitemi yayınlamaya çalışacağım, aradaki farkları oradan açıklamak çok daha açıklayıcı olacaktır.