Bildiğiniz gibi 31 Mayıs 2012  tarihi itibariyle Visual Studio 2012 Release Candidate sürümü .Net Framework 4.5 ile birlikte piyasaya çıkmış bulunuyor. Yeni Visual Studio içerisinde bir çok yeni özelliği ve kolaylığı da barındırıyor. Bu özelliklerden en çok nasibini alan da kuşkusuz ASP.NET tarafı oluyor.


YENİ DİZAYN ÖZELLİKLERİ
         
   1)Intellisense, JS ve CSS özelliğini keşfedilebilir kılar
                     
   A) JavaScript’te Intellisense

 Visual Studio’nun önceki versiyonlarında geliştiriciler işin JavaScript yazma kısmına geldiklerinde intellisense özelliğinden mahrum kalıyorlardı. VS 2010’da bu sorun plug-in ler ve ekstra yüklemelerle giderilebiliyorkeni VS 2012 ile birlikte direk hizmetinize sunuluyor. Bu şu demek; artık hiçbir fonksiyon gelmemesi ya da JavaScript’e ait tüm fonksiyonların gelmesi yerine sadece değişkenin tipine bağlı olarak gelen fonksiyonlar gösterilecek.
   Burada document.ready function içinde tanımlanan bir string değişkeni var, ve bu değişgene ait kullanılabilecek özellikler intellisense içinde gösteriliyor. Bununla birlikte üzerine gelinen özellikle ilgili detaylı bilgi de geliştiriciye sunuluyor.



Trim() fonksiyonunu örnek alırsak ;


                      
  B) JQuery’de Intellisense
  VS 2012 bir adım daha ileri giderek sadece yalın JavaScript’te intellisense özelliğini sunmakla kalmıyor, aynı zamanda bu fonksiyonelliği JavaScript’in en üst kütüphanelerinden olan JQuery için de sağlıyor.
   Bu özelliği de document.ready fonksiyonunu örnek alarak inceleyelim. Öncelikle ‘$(‘ ifadesiyle JQuery şeçimini başlatıyoruz.


           
 Document’in ready fonksiyonu hazır bir olay olduğundan document.ready özelliği listede çıkacak ve VS 2012’nin size yardım etmeye ne kadar istekli olduğu görülecektir.


Resim yazısı ekle

                       
 C) CSS’de Intellisense
 Bildiğiniz üzere VS 2010 ve daha önceki sürümlerde de intellisense desteği mevcuttu fakat VS 2012 ile bir adım daha ileriye gidilerek full liste şeklinde specifik opsiyonlarla sunulmuştur.
            “-“ ibaresini yazarak başlayalım,


           
 Ayrıca Css kurallarının ihtiyacı olduğu doğru paramatreleri örnekleriye birlikte gösterir.


         
   Bu sayede geliştiriciler farklı tarayıcılara uygun olması gereken Css kurallarına göre kolaylıkla geliştirmelerini uygulayabilirler.
 Ek özellik olarak Css’de renk belirlerken VS 2012 size gömülü bir color-picker sunar.
 Örnek olarak background-color özelliğini kullanırken hızlı bir seçim için önce renkleri içeren yatay bir bar açılır.


         
   Eğer bu bar yeterli gelmezse,  sağdaki oku tıklayarak geliştirici daha derin renk seçeneklerini ve renk dizaynırını açabilir.


2) WAI-ARIA İnterneti Herkes Tarafından Kullanılabilir Yapar

WAI-ARIA nedir ?
           
 Wai-Aria “AJAX, HTML, JavaScript ve benzeri teknolojiler ile geliştirilmişdinamik içerik ve ileri seviye kullanıcı arayüz kontrolleri” ile uğraşmak için günümüz modern web uygulamalarında erişimin nasıl arttırılacağını anlatan özellikler kümesidir.

A)    Roller

Roller geliştiriciye her element için amaçları ayrı ayrı belirtmesine izin verir. Bunlar  daha sonra ekran okuyucular tarafından anlaşılması için kullanılr. Roller olmadan ekran okuyucular hangi elementin hangi işi yaptığını tahmin etmek zorunda kalabilirler.Aşağıdaki örnekte, basit bir “nav” elementinin menu olduğu ve child liste elementinin de menu items olduğu gösterilmiltir.


           
 Dikkat ettiyseniz, intellisense özelliği sayesinde bu elementlerin tanımlarını yapmanın kolaylaştığını görebilirsiniz. Artık geliştiriciler role property’sini intellisense ile çağırıp, fonksiyonlarını seçebilir. Olay bundan daha kolay olamaz.

B)    Aria ve durumlar

Wai-Aria’daki durumlar, elementin o anki durumunu  ifade eder. Örneğin; bir treeview oluştururken ekran okuyucuyu bir düğümün genişletilmiş ya da daraltılmış olup olmadığını hakkında bilgilendirmenin bir yolu olmalı, ki durumlar da tam burda devreye giriyor. Aria prefix’ini içeren attribute’lar kullanılark elementlere yerleştiriliyor.


           
 Aşşağıdaki resim VS 2012’yi iş başında gösteriyor. “aria-“ yazılodıktan sonra kullanılabilir olan seçenekler ekrana geliyor. Hatta bu yeni versiyon seçili attribute’un uygun değerini de göstreiyor.


     3)Modern Web Uygulamalarında HTML5 ve CSS3 Desteği
          
  Visual Studio’nun eski sürümlerinde HTML5 ve CSS3 desteği yalnızca ayrı bir yükleme şeklindeydi ve birçok geliştirici bundan haberdar değildi. Fakat VS 2012’ile birlikte bu destek size direk olarak sunuluyor.
 Bu özelliklere intellisense kullanılarak erişilebilir, ki bu da yeni kullanıcılara kolaylık sağlar.


DAHA İYİ WEB UYGULAMALRI İÇİN YENİ KODLAMA ÖZELLİKLERİ

1) ASP.NET WebAPI ile Daha iyi Web API’leri

MVC 4’ün tanıtımıyla birlikte Microsoft geliştiricilerin HTTP servis ile veri gönderimi için yeni, fantastik bir yol yarattı. WebAPI, WCF ile karşılaştırıldığında oldukça basit ve pek çok formatta içerik gönderebiliyor. WebAPI bir kere MVC 4 ile oluşturulduktan sonra kolaylıkla ASP.NET’in tüm versiyonlarında kullanılabilir.
WebAPI’ye başlayalım;
Öncelikle yeni bir proje oluşturalım. Bu örnek için standart ASP.NET AJAX projesi işimizi görecektir.

            Proje oluşturulduğuna göre sıra referansları eklemeye geldi. Solution explorer’da References klasörüne sağ tıklayarak Add Reference’i seçiyoruz ve alttaki referansları ekliyoruz.

            System.Web.Http.dll
            System.Web.Http.Common.dll
            System.Web.Http.WebHost.dll

            WebAPI de aynı MVC gibi çalışır, yollara dayalıdır. Servisin bitiş noktalarını erişilebilir yapmak için uygulamanın yolları ayarlanmalıdır. Yolları ayarlamak için, Global.asax’ı açın ve Application_Start methodunun içine aşağıdaki kodu girin.

(Not: Visual Studio’nun sizi sürekli uyarmaması için ve projeyi compile edebilmek için şunları eklemelisiniz: System.Web.Http and System.Web.Routing)
            Eğer daha önce ASP.NET MVC ile çalıştıysanız, izlediğimiz rota size tanıdık gelecektir. Basit olarak bu rota der ki; ‘/api’ ile başlayan bir istek geldiğinde bunu controller’a gönder, ve url içinde id varsa onu da gönder. Yol düzenleme için sıra geldi kontrol eklemeye. Solution Explorer’da asp.net projenizin üzerine sağ tıklayıp ADD>New Folder diyerek yeni bir klasör ekleyip ismini Api yapın. Dağa sonra bu klasöre sağ tıklayarak Add New Item’ı seçin.
            Add new item sekmesinde Web Api kontrolünü seçip, isim verin ve ardından Add butonuna tıklayın.

            Şimdi bu servisten genişleyen bir varlık oluşturalım. Bu örnek için basit bir Customer sınıfı olsun;

(Not: Genişletmek istediğiniz objede parametresiz constructor olduğundan emin olun. Akis takdirde serileştirmede problemler yaşanabilir.),
            Kontrolde, IQueryable<customer> döndüren yeni bir metod oluşturalım;

            Bu noktadan sonra artık bu servis tüm uygulamalar tarafından kullanılabilir.
            WebAPI modern tek sayfa uygulamalar ve Http üzerinden kaynak ihtiyacı olan diğer uygulamalar için mükemmel bir seçim.
           
 2) Çalışma Zamanında Güvenilirlik için Tiplerle Veri Bağlama
      Neden ?
  Web form kontrolleri her zaman bağlandığı veri kaynağının altında bulunan alana bağlanma özelliğine sahiptir. Asp.Net 4.5’un gelişiyle birlikte tam olarak ne tür bir obje veya veri bağlanacağını kesin olarak tanımlana yetisi kazanoyor. Bunu da intellisense özelliğiyle kolaylaştırıyor. Bu da geliştiricilere harf hatası ve benzeri durumlarla karşılaşmadan daha kolay kod geliştirme imkanı sunuyor.
            Örnek olarak Nortwind veritabanındaki Customer tablosunu ele alırsak;

            Bildiğiniz üzere bu veri bağlamalarında kullanılan bazı kontroller var. Repeater, GridView gibi... Yeni ItemType poperty’si bu veri bağlamalarına gelen başka bir yenilik. Bu property kullanılacak varlığa set edilir. Ki bizim örneğimizde bu Customer.
            Tek taraflı bağlamada, nesne kontrole bağlı olan o anki item veya nesnenin temsilini içerir.

            Intellisense sayesinde item nesnesine düzgün şekilde ulaşılabildiğine emin olabiliriz. Yukarıda da görüldüğü gibi item’ın üzerine gelindiğine ek bilgiler de görüntülenebiliyor.

            Çift taraflı bağlamada da Item yerine BindItem kullanılması dışında yaklaşım aynı.
            Bu durumun kullanışlılığı oldukça açık. Yazım yanlışı yapmaya açıık ve hangi alanın uygun olduğunun kontrol edilmesi gereken geleneksel Eval() ve Bind() ile karşılaşılabilen problemleri .Net 4.5 ve VS 2012 güçlü tipte kontrollerle çözmüş görünüyor.
           
 3) İstek Doğrulama ile YoD ( Yellow Screen of Dead)’dan  Korunma

   Asp.Net’in daha önceki versiyonlarında, eğer html veya script tag’ları formun bir bölümünde, Asp.Net YoD fırlatırdı..
   Örneğin bir form oluşturulur ve bu şekilde gönderilirse;

            Ve geliştirici değere şu şekilde erişmeyi denerse;

            ASP.NET bu durumdan memnun olmayacak ve şu şekilde geri dönecektir;

            Eğer geliştirici yine de HTML’nin sunucuya post edilmesini istiyorsa şu şekide, ASP.NET’i istek doğrulamayı geçmeye zorlamalıydı.

           
 Fakat sayfayı bu şekilde bırakarak çeşitli saldırılara karşı kırılgan olmasına sebebiyet verebilirsiniz.
            Artık ASP.NET 4.5 geliştiriciye istek doğrulamayı, post edilen değere gerçekten ulaşılana kadar erteleme imkanı sunar. O zaman bile sadece istenilen nesne doğrulanır.
            Yukarıdaki örnekte geliştirici metin kutusunun HTML göndermesine aşağıdakini web.config’e ekleyerek izin verir.

      
      Bu kod ASP.NET’e istek doğrulamayı, istenilen parametreye erişilene kadar ertelemesini söyler. Artık ASP.NET doğrulanmayan  nesnelere de erişimi destekler;

         
   Bu kod istek doğrulamayı es geçecektir ve istenilen nesneden post edilmiş ham değeri getirecektir.
            Yeni istek doğrulamayı erteleme yaklaşımı sayesinde hem geliştirici ham değerleri ihtiyacı olduğunda kullanabilme anlamında esneklik kazanacak, bunu yaparken de saldırılara karşı geliştiriciyi savunmasız bırakmaz.

HATALAR SİZİ YAKALAMADAN SİZ HATALARI YAKALAYIN

1)      Sayfa Dedektifi Düzenleme ile İlgili Başınızın Ağrımasını Önler

Sayfa dedektifi VS 2012 ile birlikte gelen, geliştirme ortamı ile modern tarayıcılardaki geliştirme araçları arasında köprü kuran yepyeni bir özellik. Bu özellik geliştiricilere hazırladıkları uygulamaları tarayıcı açmalarına gerek kalmadan görmelerini sağlar. Bunun içinde CSS içeriğini düzenleme, DOM yönlendirmesi, aranan spesifik elemanların bulunması, vb VS 2012 içinde mevcut.

Dedektifliğe Başlayalım.
Sayfa dedektifini kullanırken en kolay yaklaşım, ASP.NET WebForm sayfanızdaki bir elemanın içerisinde sağ tuşa tıklamak olacak.
Açılan listeden “View in Page Inspector”u seçmelisiniz.

            Eğer bu özelliği ilk defa kullanıyorsanız, şu pencere açılacaktır;

            Debug işlemi aktif olduktan sonra, VS 2012 içerisinde, alt kısımda Page Inspector Tools’da yeni sekme olarak açılacaktır.

            Yukarıda da görüldüğü gibi dedektif bize modern tarayıcıların sunduğu bir çok özelliği bizimle paylaşıyor. Sayfanın sol kısmında işlenmiş DOM’u gösterilirken, sağ tarafta da seçilen element için ilgili CSS ve özellikler gösteriliyor.