Asp.Net 5 ve MVC 6’da çok sayıda yenilik yapıldı. Asp.Net 5 modern hizmetleri ve web uygulamalarını desteklemesi bakımından baştan aşağı yenilendi. Asp.Net çapraz platform, açık kaynak ve hem bulutta hem kurum içinde çok verimli bir şekilde çalışıyor. Asp.Net 5 bugüne kadarki .Net frameworkler arasında en önemli sürüm olarak görülüyor.
Aşağıda Asp.Net 5 ve MVC 6’daki en önemli beş yenilik yer almakta.
1- Linux ve OSX üzerinde Asp.Net
Asp.Net 5 uygulamaları Windows’un yanı sıra Linux ve OSX’te de çalıştırılabiliyor. Bu özelliğiyle Asp.Net’i tamamen yeni bir tasarımcı ve geliştirici kitlesine açıyor.
Geleneksel Asp.Net’te Windows makineleri içerisinde işbirliği içinde çalışan profesyonel geliştiriciler ve tasarımcılar vardı. Startuplar ise Linux/OSX kullanıyordu.
Linux/OSX üzerinde uygulama geliştirebilme özelliğinin gelmesi her şeyi değiştirecek. Tasarımcılar ve geliştiriciler uygulamalarını WebStorm ve Sublime gibi en sevdikleri ortamlarda hiçbir zorluk yaşamadan geliştirebilecekler.
2- Artık Web Forms ve Visual Basic Yok
Asp.Net Web Forms artık Asp.Net 5’in bir parçası değil. .Net framework 4.6’yı hedef alarak Visul Studio’da Web Forms uygulamaları yapmak ise mümkün. Ancak bu uygulamalar Asp.Net 5’teki yeni özelliklerden faydalanamayacak.
Asp.Net 5 yalnızca C# destekliyor. Visual Basic için bir destek bulunmamakta.
3- İstemci tarafı geliştirme için destek – AngularJS, Grunt, Bower, etiket yardımcıları
AngularJS tek sayfalık uygulama yapmak için en önemli istemci tarafı framework olarak görülüyor. Visual Studio’nun 2015 sürümünde AngularJS’in uygulamaları, direktifleri ve modülleri bulunmakta.
Asp.Net 5’teki diğer bir önemli özellik ise etiket yardımcıları. Bunlar Asp.Net MVC uygulamalarında görüş oluşturmak bakımından çok büyük bir etkiye sahip. Etiket yardımcıları MVC yardımcılarının geleneksel kullanımına kıyasla çok daha iyi bir şekilde kullanılabiliyor.
Asp:net MVC 6’daki yeni form elemanında yalnızca HTML unsurları bulunmakta. Örneğin, Html.TextBoxFor () etiket yardımcısı yerine INPUT unsurunu kullanıyor. Asp.Net MVC 6’ya yeni bir asp-for sembolü eklenmiş. Bu unsurların ana kullanım amacı Asp.Net MVC’nin sunucu tarafı işlevselliği olan unsurların sayısını arttırmak.
Bunun yanı sıra, Asp.Net 5 front-end geliştiricileri tarafından da çok övgü alıyor çünkü Grunt’ı destekliyor. GruntJS geliştiricilerin CSS ve JavaScript dosyaları gibi kaynaklar yaratmalarını sağlayan bir tür görev çalıştırıcı. Örneğin, GruntJS JavaScript dosyalarının birleştirilmesi ve küçültülmesi için kullanılabilir. Farklı işler için birçok GruntJS eklentisi bulunmakta. GruntJS’i desteklemek için Nuget’in yanı sıra iki paket yöneticisinin de desteklenmesi gerekiyor. GruntJS eklentileri NPM paketi formunda dağıtıldığı için, Microsoft buna yönelik de destek ekledi. Microsoft ayrıca Bower aracılığıyla dağıtılan istemci tarafı kaynakları için de destek sunuyor.
4- Birleşik Web API ve MVC Uygulamaları ve Görüntüleme Bileşenleri (View Components)
Web API uygulamaları MVC’nin diğer versiyonlarındaki MVC uygulamalarından farklıydı. MVC uygulaması System.Web.MVC.Controller sınıfından faydalanırken, Web API uygulaması System.Web.Http.ApiController sınıfından faydalanıyor.
MVC 6 için hem Web API hem de MVC uygulamaları için tek bir uygulamada sınıfı kullanılıyor. MVC 6 için mevcut tek sınıf Microsoft.Asp.Net.MVC.Controller.
MVC 6 uygulamaları tarafından bir IActionResult gönderiliyor. Bir MVC uygulaması kullanıldığında bu bir görüntüleme olarak kullanılabiliyor. IActionResult bir Web API uygulaması kullanıldığında veri olarak kullanılabilir. Ayrıca, Hem Web API hem de MVC uygulamaları MVC 6’daki aynı yolu kullanıyor. Geliştiriciler her iki yoldan da faydalanabilir ve bu yolları projelerindeki tüm uygulamalara uygulayabilirler.
MVC 6’da artık alt uygulamalar bulunmuyor. Onun yerine görüntüleme bileşenleri getirilmiş durumda. Asp.Net MVC’nin önceki sürümleri alt uygulamaları harekete geçirmek için Html.Action () yöntemini kullanıyordu. Fakat Html.Action yardımcısı MVC 6 versiyonunda bulunmamakta.
Onun yerine View Components olarak adlandırılan alternatif bir terminoloji kullanılıyor. View Components yukarıda bahsi geçen alt uygulamalara benziyor. Uygulamaların bir aksiyonu olarak tanımlanmalarına rağmen aslında değiller. View Components alt uygulamalara kıyasla daha doğallar.
5- Asp.Net Bağımlılık enjeksiyonu ve xUnit.net
Asp.Net 5’te Service Locator örüntüsü ve bağımlılık enjeksiyonu için de destek bulunmakta. Yani, artık AutoFac ve Ninject gibi üçüncü taraf bağımlılık enjeksiyonu frameworklerine bağımlı olmaya gerek yok.
Bağımlılık enjeksiyonunun yardımıyla, geliştiricilerin yapması gereken tek şey kullandıkları platform içerisinde talep edilen bağımlılığı bildirmek. Bunun üzerine gerekli bağımlılık Asp.Net 5 frameworkü yardımıyla sunulur. Fakat bu enjeksiyonun uygulanması için ekstra bir aşamadan geçilmesi gerekir. Başlangıç hedefindeki bağımlılıklar Asp.Net’e mutlaka bildirilmelidir. FooService, BazService ve BarService kaydedildikten sonra, framework FooService’in kurulması için birer BazService ve BarService oluşturulması gerektiğini fark eder.
Ayrıca, Asp.Net 5’te artık Visual Studio test frameworkü bulunmamakta. Onun yerine test amaçlı xUnit.net framworkü var. Birim testi frameworkündeki bir birim testini tanımlamak için [TestMethod] ve [TestClass] olarak bilinen iki özellik kullanılıyordu.Asp.Net 5 içerisindeki xUnit.net frameworkü ise [TestMethod] yerine [Fact] özelliğini kullanıyor. Bu framworkte [TestClass] diye bir özellik bulunmamakta.
Aşağıda xUnit.net frameworkü kullanılarak hazırlanan bir kod parçası örneği bulunmakta.
{
[Fact]
public void SumofNumbers ()
{
// Arrange
var testcalculator = new Calculator ();
// Act
var result = testcalculator. SumofNumbers (1, 1);
// Assert
Assert. Equal (result, 13);
}