amerika gazete haberleri haberler
Yazılım

MVC öğrenmeli miyiz? MVC öğrenmek zor mu?

Microsoft uzun yıllar arkasında durduğu web forms yapısından sonra farklı bir kod çatısı olan MVC ile karşımıza çıkıyor. Peki biz bu MVC denen şeyi öğrenmeli miyiz? (MVC’nin ne olduğu hakkında genel bilgi için tıklayınız*)

Peki Microsoft neden sürekli başımıza yeni bir şeyler çıkartıyor? Web Forms ile ne güzel geçinip gidiyorduk değil mi? Önce Web Forms yapısında neler vardı, MVC neler getiriyor onları bir inceleyelim. Sonra hangisini kullanacağımıza karar verelim.

Web Forms’da ne vardı?

Web Forms çatısında, daha önce web programlama olarak bildiğimiz, “bana bu lazım, al sana şu” gibi bir yapının dışına çıktı Microsoft. Yani Classic ASP ile “istek-cevap” ilişkisinin bir model üstüne çıkarak, masaüstü uygulama geliştirirken kullanılan, tanımlanmış olaylar üzerinden programlama yapılmasını sağladı. Masaüstü uygulama yapan insanlar webe çok uzak kalmışlardı. Yazılıcmıyız ama webden anlamıyoruz diyen masaüstü uygulama geliştirenler, birden bire “webmaster” oldular. Çünkü Microsoft o zamanlar çok zekice(!) bir adım atarak, web programlama uzmanlarına masaüstünü kolaylaştıran, masaüstü programcılarına web programlamayı kolaylaştıran yeni bir yapıya geçiş yapmıştı.

Tabi yeni gelen her yapı gibi bu yapıda da büyük sıkıntılarla karşılaşıldı. Web programlama, masaüstü programlamaya göre daha hassas bir yapıya sahip olduğu için ve bir nevi deplasmanda oynadığın için ciddi sorunlara sebep oldu. Microsoft bazı adımları ile bunu düzeltmeye çalışsa da aslında gücü yetmedi. Bu da yeni bir yapıyı geliştirmeye itti.

Yaşanan sıkıntılara örnek vermek gerekirse,

Örnek -1

Microsoft HTML yapısını tamamen geriye atarak, sunucu taraflı kontroller geliştirerek, tamamen marjinal bir yapıya gitmeye çalışmıştı. Eskilerde Classic ASP’de olduğundan çok daha farklı bir yapıya adım atarak,

<input type="text" name="yazialani"/>

yerine,

<asp:TextBox id="tb2" TextMode="text" runat="server" />

gibi bir yapı geliştirdi. Tabiki bu yapı yine sonuç olarak derleme esnasında bildiğimiz <input taglarına çevrilip istemciye o şekilde gönderilmekteydi. Kontrole eklenen sınıflar ve id gibi bilgiler otomatik olarak eklendiğinden de istemci taraflı jQuery işlemlerini yapmak bir hayli zorlaşmaktaydı.

Tabi bu işin bir de tasarım tarafında gelen zorluklar oluşturuluyordu. Bir template beğendiniz, web sitenizin yönetim tarafına o template’yi uygulayacaksınız. PHP kullanıyorsanız sadece formları kendinize uyarlayarak basitçe kullanıp geçebilme şansına sahiptiniz. Ama Asp.NET’e geçtiyseniz burda çok sıkıntı yaşamaya başlıyorsunuz. <input geçen yerlerin hepsini sunucu taraflı kontrollere, yani <asp:TextArea gibi kodlarla değiştirmek zorunda kalacaktınız ki bu da sizi daha projeye başlamadan, projeden soğutmaya yetiyordu.

Örnek -2

Asp.NET sayfalarının performans problemlerini fazlasıyla duymuşsunuzdur. Performans konusunda bir PHP uygulaması ile, ASP.NET uygulaması kıyaslanamaz derecede fark oluşturuyordu. Bunun sebeplerinden bir tanesi de, en ufak bir işlem için sayfanın tamamının sunucuya gidip gelmesiydi. Bir işlem yapacaksanız “IsPostBack” ile sayfanın ilk defa yüklendiğini veya farklı seferlerde yüklendiğini kontrol etmemiz gerekiyordu. Bu yazılımcılar için büyük problemler oluşturuyordu. Bize kolaylık sağlaması gereken Microsoft bizi bu tür noktalarda hata yapmaya zorluyordu adeta!

Örnek -3

Asp.NET ile tanıştığımız göz bebeğimiz viewstate yapıları vardı. Bu yapı, sayfa sunucuya gidip geldiğinde tüm verileri bünyesinde barındırıyordu. Bir kaç tane input olduğunda sorun çıkartmayan bu yapı, iş başvurusu gibi veya haber ekleme ekranları gibi ekranlar oluşturduğumuzda fazla şişerek problem yapıyordu. Burada Microsoft’un web alanında çıkmazlarından bir tanesiydi.

Burada sadece 3 tane sorundan bahsettik. Fakat Asp.NET Web Forms konusu açıldığında eminim her yazılımcının söyleyecek şeyleri vardır. Çünkü ciddi zahmetler çekildi bu noktalarda. Hele ki MVC yapısı yaygınlaştıktan sonra yazılımcılardan “ulan madem…” ile başlayan cümleleri duymak çok da zor değil.

Özetle;

Türkiye’de şu an geliştirilen gerek kurumsal, gerek bireysel projelerin %85’inde MVC yapısının kullanılıyor olması ve yukarda bahsettiğimiz problemlerin yaşanmıyor olması bize ısrarla “MVC seni çağırıyor” diyor.

İlgili Makaleler

Başa dön tuşu
İstanbul evden eve nakliyat izmir dijital ajans dijital pazarlama