Sayfalar

22 Ocak 2013 Salı

ASP.NET MVC DERSLERİ ( 1.2 ) ASP.NET MVC 4 GENEL BAKIŞ

ASP.NET MVC 4 daha gelişmiş güncellemelerle yayınlanmıştır. Bunlardan bazılar aşağıdaki gibidir:
  • ASP.NET Web API
  • Varsayılan hazır şablonlar güncellenmiştir.
  • Jquery Mobile kullanan varsayılan mobil şablon.
  • Display Modes
  • Asenkron Controller lar için görev desteği.
  • Bundling ve minification.


ASP.NET Web API

Web API, tarayıcılar ve mobil cihazları içerisinde barındıran istemcilere HTTP servis sağlamayı kolaylaştıran bir yapıdır.
Aslında HTTP servis yapısını kolaylaştıran bir yapıdır.Çünkü ASP.NET MVC ile hemen hemen aynı özelliklere sahiptir. Örneğin;

  • Routing: MVC url yapılandırması ile aynı yapıyı kullanır.
  • Model Binding, Validation: Aynen MVC de ki gibi kullanıcı girdilerini modellere bağlar. Yine aynen MVC deki gibi bir attribute-based validation yapısı vardır.
  • Filters: Web API de [Authorize] gibi attribute-based filtreleri destekler.
  • Scaffolding: Controller lar içerisinde modellere bağlı olarak iskeletler oluşturabiliriz.
  • Easy Unit Testibility:Birim testler MVC de ki gibi kolaydır.
Web API nin sadece kendine ait bazı özellikleri de vardır. Bunlar;
  • HTTP Programlama Modeli
  • HTTP Olaylarını Action Methodlar İçerisinde Yakalama
  • İçerik Eşleştirme
  • Kod Tabanlı Ayarlamalar

GÜNCELLENEN HAZIR ŞABLONLAR

MVC 4 ile beraber hazır gelen MVC 4 hazır şablonu da değişmiştir.

MVC 3 hazır şablon:



MVC 4 hazır şablon



MVC 4 ile gelen bu yeni tasarımın çok güzel bir özelliği vardır. Bu özellik sayesinde mobil tarayıcılarda da aynı tasarım aynı görüntüyü sağlayacaktır. Bu yeni tasarımın adı fluid web layouts (sıvı web düzenleri).

JQUERY MOBILE KULLANAN HAZIR MOBİL ŞABLON

Her ne kadar MVC 4 ile gelen şablon mobil tarayıcılar içinde düzgün çalışsada MVC 4 de mobil tarayıcılar için farklı bir tasarımda sunmaktadır. Bu hazır proje şablonunda mobil için gerekli script dosyasıda içerisinde gelmektedir.

        MVC 4 Mobil Şablon                                                            MVC 4 Hazır Şablon

DISPLAY MODES

MVC 4 de yeni gelen özelliklerden biride display modes. MVC uygulaması hangi tarayıcıdan girdiginizi yakalayıp ona göre HTML sayfası yüklemektedir. Örneğin masaüstü tarayıcıdan girince View/Home/Index.cshtml çalışırken, mobil tarayıcıdan girince View/Home/Index.mobile.cshtml sayfası çalışır.

Kendi özel tarayıcımızıda yazabiliriz. Örneğin:
DisplayModeProvider.Instance.Modes.Insert(0, new DefaultDisplayMode("WinPhone")
{
    ContextCondition = (context => context.GetOverriddenUserAgent().IndexOf
    ("Windows Phone OS", StringComparison.OrdinalIgnoreCase) >= 0)
});

BUNDLING VE MINIFICATION

Minification script sıkıştırma tekniklerinden biridir. Script kodlarındaki değişkenlerin isimlerini kısaltır, boşlukları ve yorum satırlarını siler. Kodları olabilecek en düşük boyuta kadar indirir.
Bundling ise, özellikle script güncellemelerinde, scriptlerin yolunu güncellemeden değişikliği uygulamaya yarar. Örneğin, MVC 4 de bir proje oluşturduğumuzda /App_Start/BundleConfig.cs dosyasının içerisinde aşağıdaki gibi kodlar mevcuttur.
bundles.Add(new ScriptBundle("~/bundles/jquery").Include(
"~/Scripts/jquery-{version}.js"));

Bu kod sayesinde jquery kütüphanesini yenisi ile değiştirdiğinizde bütün referans ettiğiniz yerlerde değiştirmek zorunda değilsiniz. Çünkü yukarıdaki kodda yer alan {version} tanımlaması sayesinde versiyon numarasını otomatik olarak güncelleyecektir, scriptleri referans ederken aşağıdaki gibi bir kod yeterli.
@Scripts.Render("~/bundles/jquery")

AÇIK KAYNAK KODLU KÜTÜPHANELER

MVC 4 hazır şablonda ayrıca açık kaynak kodlu kütüphaneleri barındırır. JSON.Net ve DotNetOpenAuth kütüphaneleri. JSON.Net ile kendi modellerimizi Json formatına kod yazmadan çevirebiliriz. DotNetOpenAuth ise, Açık ID (google, facebook, twitter, ...vb) gibi sitelerdeki üyelikleri kullanarak, uygulamaya uye olmak için kolaylıklar sağlayan bir açık kaynak kodlu kütüphanedir.

MVC 4 HAZIR ŞABLONDA BULUNAN DİĞER ÖZELLİKLER

App_Start kalsörü içerisinde bulunan sınıfların özellikleri:

  • AuthConfig.cs: Açık ID (OAuth) ile alakalı ayarların yapıldığı sınıf.
  • BundleConfig.cs: Css ve Scriptlerin tanımlandığı sınıf (bundling için).
  • FilterConfig.cs: Attribute filtrelerinin tanımlandığı sınıf.
  • RouteConfig.cs: Routing ayarlarını barındırır.
  • WebApiConfig.cs: Web API ile alakalı ayarlar.

Açık kaynak kod özellikler hakkında daha detaylı bilgi için
http://www.asp.net/whitepapers/mvc4-release-notes



4 yorum: