ASP.NET 5 ilk kez 1.0 versiyonu ile yaklaşık 15 yıl kadar önce duyurulmuştu. Milyonlarca geliştirici irili ufaklı birçok uygulamasını ASP.NET üzerinde geliştirdiler ve geliştirmeye güncel sürümler ile de devam etmekteler.

ASP.NET 5 in genel yapısına baktığımızda çok daha yalın ve modüler bir çekirdek framework mimarisi olduğunu görüyoruz. ASP.NET 5 System.Web.dll ‘inden bağımsız demiştik. Artık bunun yerine yalnızca ihtiyacımız olanları optimize etmemizi sağlayan NuGet paketleri bulunmakta. Bu sayede uygulama güvenliğini artırmak, hizmet yükünü azaltmak ve ayrıca “ne kullanıyorsan onun bedelini öde” modeli ile performansı artırılabilmekte.

ASP.NET 5 yeniden inşa edilirken günümüz web uygulamalarının ihtiyaçları düşünülerek tasarlanmıştır. Web uygulamalarınızın kullanıcı ara yüzü ve Web API’ ler günümüzün modern istemci taraflı frameworkleri ile birlikte çalışma gereksinimleri de düşünülmüştür. Ayrıca ASP.NET 5 dependency injection desteği de sunuyor. Böylece daha önce kullandığımız ninject vb. injection yöntemlerini projemize sonradan dahil etmemize de gerek kalmadı.

Özetleyecek olursak ASP.NET 5 aşağıda sıralanan temel iyileştirmeleri sunaktadır.

  • NET 5 MVC 6, Web API 3, Web Pages 4, SignalR3 ün yeni cloud optimizasyonunu da içeriyor.
  • MVC Web Api ve Web Pages tek bir framework içerisinde birleştirilmiş olarak MVC 6 adı ile sunuluyor. Bu da üç programlama yaklaşımını birlikte getiriyor. Web siteleri ve servisler için tek bir programlama modeli gibi. Örneğin : Birleşik controller, routing kavramları, action selection, filters, model binding ve dahası var. Bu şekilde aynı HTTP üzerinden tek controller, MVC view lerimizi ve Web Api cevaplarımızı dönebiliyor.
  • NET vNext uygulamalarının cloud ortamına hazır olduğundan bahsetmiştik. Session state, caching gibi servisler hosting ortamına bağlı olarak (cloud yada geleneksel hosting hizmetleri) davranışlarını ayarlayacaklar. Cloud yada geleneksel hosting için doğru implementasyonu sağlamak için perde arkasında dependency injection kullanılıyor. Bu şekilde uygulamalarımızı geleneksel hostlarımızdan clouda kolayca taşıyabiliyoruz. Kod değişikliği yapmamız da gerekmiyor.
  • .NET in sonraki versiyonu .NET vNext host agnostic . Yani Host bilinmez olarak geliyor. Bu sayede ASP.NET vNext uygulamalarımızı IIS üzerinde veya kendi hostunuz üzerinde custom process dahilinde host edebilirsiniz.
  • NET vNext side by side deployment desteği de sunuyor. Eğer uygulamanız cloud optimizasyonu alt kümelerini de kullanıyor ise, .NET vNext te dahil olmak üzere uygulamanızın tüm bağımlılıklarını bin altına yükleyerek deploy edebilirsiniz. Bu sayede uygulamanızı aynı sunucudaki diğer uygulamalar etkilenmeden güncelleyebilirsiniz.
  • Dependency injection framework içerisine inşa edilmiş. Artık tercih ettiğiniz IoC container ı kullanabilirsiniz.
  • Geliştirdiğimiz kodları dinamik olarak derlemek için .NET vNext Roslyn compiler kullanıyor. Bu sayede kod dosyalarımızı düzenleyip değişiklikleri browserımızı refresh ederek görebiliyoruz. Projemizi durdurmak yada rebuild yapmak ta gerekmiyor.
  • .NET vNext açık kaynaklı ve cross platform da çalışabiliyor. Mono, MAC ve Linux üzerinde de çalışabildiği anlamına geliyor.