ASP.NET 4.5 ve Visual Studio 2012 ile gelen yeni harika özellik(ler)

Ağustos 2012 | Hakan Köse, İnternet Girişimcisi
Kısa bir süre önce .NET Framework 4.5 ve Visual Studio 2012 Release oldu ve heyecanla indirip kullanmaya başladık. Gelen yeni özellikler hali hazırda Release Candidate sürümünde daha önce duyurulmuş ve tartışılmış olsada, güncellemeler ile birlikte resmen kullanmaya başladık ve burada benim en çok hoşuma giden özelliklerle ilgili kısa notlar paylaşmak istiyorum.
ASP.NET 4.5 ile yeni gelen özelliklerin tam listesine buradan erişebilirsiniz:
asp.net/vnext/overview/whitepapers/whats-new

1.Bundling and Minification for CSS and Scripts
Bir çok yazılımcının ihtiyaç duyduğu ve ASP.NET'çiler için cidden çözülmesi kolay olmayan bir problem olan ve benim top feature listemde sıralamaya giren özellik bu. Aslında Microsoft'un bunu çok zaman önce yapması gerekirdi diyenlerdenseniz şuradaki yorumumu okumanızı tavsiye ederim:
inploid.com/t/gectigimiz-10-yil-icinde-microsoftun-yaptigi-en-buyuk-hatalar-nelerdir/
Bundling & Minification özelliğinin kullanım yöntemleri ihtiyaca göre değişiyor ve hem Development time, hem de Production'da otomatize edilmiş bir şekilde çalışabiliyor. Web.config'de Debug 'tan Release moduna geçmeniz yeterli. (Gerçi bu konuda ufak bir bug var ama çözümlenebiliyor)
Bundling & Minification kullanımını nasıl yapacağınızı merak ediyorsanız şunları inceleyin derim:
abhijitjana.net/2011/10/06/bundling-and-minification-in-asp-net-4-5/
asp.net/mvc/tutorials/mvc-4/bundling-and-minification

2.Stongly Typd Data Contols
Bu ise çok çok uzun zamandır olması gereken bir özellikti ve sonunda geldi. Bildiğiniz üzere ASP.NET'te Repeater, DataList.. gibi kontollerin ItemTemplate yani şablonları içinde herhangi bir datayı bağlamak için Eval("") veya Bind("") kullanılıyor.

<asp:Repeater ID="Repeater1" runat="server">
<ItemTemplate>
     <asp:Label runat="server" Text='<%# Eval("Username")%>'></asp:Label>
</ItemTemplate>
</asp:Repeater>


Bunun yarattığı problemler ve performans üzerine etkileri çoğu kez tartışılmıştır. Performanstan ziyade yarattığı problemler bence daha ön plandaydı;
Örneğin; bağladığınız nesnenin bir property'si yada nesnenin tümü değiştiğinde sırayla Template içinde de bulup yenilemeniz gerekiyordu. Bu bence çok ilkel bir yöntemdi :)
Gelelim yeniliğin ne olduğuna; artık data kontollerinin "ItemType" isminde bir property'si var ve bu property ile data kontrolüne hangi nesneyi bağladığınız belirtiyorsunuz. Böylece; "Eval" yerine "Item." ile belirttiğiniz nesnenin tüm property'leri intellisense ile popüle ediliyor. Şöyle ki;

<asp:Repeater ID="Repeater1" runat="server" ItemType="User">
<ItemTemplate>
      <asp:Label runat="server" Text='<%# Item.Username %>'></asp:Label>
</ItemTemplate>
</asp:Repeater>

Gördüğünüz üzere; data kontrolüne bağladığım nesnenin "User" olduğunu belirtmiş ve şablon içinde ise Item.Username ile istediğim property'yi bağlamış oluyorum. Bu işlem daha önceki yöntemlere göre hem daha hızlı kod yazmanızı, hemde daha performanslı bir yapıyı sağlamış oluyor.

3.CSS Editör
NOT: Bu özelliklerden bir kısmı Web Essential Tools 2012 eklentisi ile birlikte gelmektedir. visualstudiogallery.msdn.microsoft.com/07d54d12-7133-4e15-becb-6f451ea3bea6
Bu ise benim gözümde Top listesinde 3. sırada olan yenilikleri içeriyor. CSS editör o kadar iyi hale getirilmiş ki; daha CSS kodunu yazmaya başlarken size eksiklerinizi gösteriyor ve onayınızla otomatik düzeltiyor. Ayrıca Web Essential tools ile iç içe çok güzel fonksiyonlar eklenmiş. Şöyle ki;
Otomatik olarak ise düzeltme yapıldığında şu hali alıyor:

Bir diğer ek not ise sağ tıkladığınızda ise menüde çıkan Web Essential Tools:
Tüm CSS dosyası üzerinde yukarıda bahsettiğim otomatik düzeltmeleri topluca yapmanız mümkün. Çok daha az satırda ve daha uyumlu kodlanmış bir CSS dosyası herkesin ihtiyacı, onlarda bunu sağlamışlar :)
İlerleyen süreçte, bir çok yeni özellikle daha karşılaşacağız sanırım. Microsoft'taki ekibi bu yenilikler için tebrik etmek gerekiyor sanırım :)