16 Aralık 2018 Pazar

MVC nedir ? Test İşleminde yararlı mıdır ?

MVC, uygulama geliştirmede (özellikle web uygulaması  ve  mobil uygulama  geliştirmede(Swift)) önemli yere sahip mimari desenlerden biridir. Günümüzde MVC denince akla Microsoft’un geliştirdiği ASP.NET MVC Framework gelmektedir, oysa 1979 yılından beri (Microsoft 1975 yılında kurulmuştur) yazılım dünyasında yer almaktadır.
MVC, Model , View , Controller kelimelerinin baş harflerinden oluşur ve her kelime MVC’nin farklı bir katmanını ifade eder. Bu katmanlar arasındaki bağlantılar test sürecini iş süreçlerini birbirinden ayırmaktadır.

Model
MVC dünyasında model uygulama verisinin veya durumunun saklandığı yerdir, genellikle veritabanı veya xml/json dosyası formatındadır.
Model, veri katmanını (database, xml, json dosyası, vb.) uygulamadan izole eder, böylece diğer katmanlarda veri katmanının neresi olduğunun bilinmesine gerek kalmaz.Model katmanı sıklıkla Entity Framework, Nhibernate, LLBLGen, vb. gibi araçlar kullanılarak oluşturulur.

View
View, istemcinin gördüğü arayüzü içeren katmandır, genellikle Model katmanındaki verinin kullanılması ile oluşturulur. View katmanının Model ve Controller katmanlarından ayrılması ile arayüz değişikliklerinin uygulamanın diğer katmanlarını değiştirmeye gerek kalmadan yapılabilmesi sağlanmıştır.

View katmanında HTML5 ve CSS3 gibi son versiyon teknolojiler kullanmak mümkündür. HTML5 ve CSS3 ile masaüstü ve mobil tarayıcılarda çalışabilen uygulamalar geliştirmek çok kolaylaşmıştır. 
Controller
Controller, istemciden gelen isteği işlemek, Model ve View katmanları arasında köprü olmak gibi görevleri yerine getirir. Controller içerisinde bir veya daha fazla Action olabilir, genellikle her Action bir web sayfası üretmek için veya her bir Activity yönetmek için kullana bilir. 
MVC’nin diğer bir önemli yapıtaşı Routing mekanizmasıdır.
Routing
Routing, istemci’nin uygulamaya yaptığı isteği uygun Controller ve Action’a yönlendiren yapıdır. İstemci, isteği uygulamanın belli bir adresine gönderir, routing mekanizması sayesinde ilgili adres için en uygun Controller ve içerisindeki Action tespit edilir ve çalıştırılır.
Neden  MVC tercih etmeliyim?
MVC ile istemci’nin isteğine karşılık üretilen çıktı üzerinde çok büyük kontrol imkanı vardır. Bu sayede her alanına müdahele edebildiğimiz ve isteğe en uygun çıktının üretilebilmesi sağlanmıştır.
MVC ile tekrar kullanılabilir (reusable) kod üretmek mümkündür. MVC’nin katmanları birbirinden ayrıldığı için her bir katmanın başka projelerde kullanılabilmesi sağlanmıştır.
MVC ile istemci’nin istek göndereceği adresler üzerinde çok büyük kontrol imkanı vardır. Bu sayede adres’in içerik ile tam bir ilişki içerisinde olması sağlanmıştır. Arama motorları için adres-içerik ilişkisi önemli olduğu için uygulamanın bulunabilirliğine katkısı yüksektir.

MVC ile test edilebilir uygulamalar geliştirme çok kolaylaşmıştır. Katmanların birbirinden ayrı olması ve Test Driven Development yapmayı kolaylaştırıcı mimarisi sayesinde test edilebilir uygulama geliştirilebilmesi sağlanmıştır. MVC ardından bir çok mimari ortaya çıkmıştır. Bu mimariler MVP ve MVVM dir. Bu tarasım mimariler test aşamısını dahada kolaylaştırmıştır. Her ne kadar MVC test işlemini kolaylaştırmış olsada bir  çok eksi yönleride mevcuttur. Bu tasarımlarım desenlerinin her birini ayrı ayrı işleyeceğiz.Sizde bu şekilde hangi tasarım desene ile uygulama geliştire bileceğinize karar vere bileceksiniz. Her tasarım modelinin kendi içinde eksik ve artı yönleri mevcuttur. Ben  tasarım modeli olarak MVVM tercih etmekteyim. Bu tasarım modeli benim için  artı yönleri daha fazladır. Kısacası attığınız  taş kurbayı ürkütmesi gerekmektedir.

Hiç yorum yok:

Yorum Gönder