10 tính năng nổi bật của ASP.Net 5

Ngoc Huynh

ASP.Net vNext làm cho việc xây dựng các ứng dụng web tối ưu hóa đám mây nhanh hơn một cách dễ dàng, và cho phép bạn thực hiện điều tương tự như thế trên các hệ điều hành như Windows, Linux, hay Mac OS X.

ASP.Net 5 của Microsoft — hay còn được gọi là ASP.Net vNext — là bản phát hành mới nhất của framework linh hoạt và phổ biến của Microsoft dành cho xây dựng các ứng dụng Web hiện đại. Bản phát hành đầu tiên vào năm 2012 như là một phần của Microsoft .Net Framework 1.0, ASP.Net đã phát triển rất nhanh trong vòng một thập kỷ qua, nhưng người ta có thể cho rằng ASP.Net 5 là sự hiệu chỉnh quan trọng nhất của ASP.Net cho đến thời điểm hiện tại.

Với phiên bản 5, ASP.Net trở thành một framework mã nguồn mở, hiện nay đã có trên GitHub, cùng với sự linh hoạt trong vận hành đa nền tảng. Đúng vậy, bạn sẽ có thể xây dựng và thực thi các ứng dụng ASP.Net 5 trên các nền tảng như Windows, Linux, hay thậm chí là Mac OS X. Ngoài ra, ASP.Net 5 còn có nhiều cải tiến giúp việc xây dựng, thiết lập cấu hình và bảo trì các ứng dụng dễ dàng hơn.

Sau đây là những tính năng nổi bật của ASP.Net 5:

1. Linh hoạt vận hành đa nền tảng

ASP.NET 5 cho phép bạn linh hoạt tốt hơn khi host ứng dụng của bạn với hai môi trường sau: full .Net CLR (Common Language Runtime) và .Net Core CLR. full .Net CLR là hệ thống thực thi (runtime engine) mặc định mà có thể cung cấp khả năng tương thích với các ứng dụng lỗi thời. Nó chỉ chạy trên hệ điều hành Windows.

.NET Core thì hoàn toàn mới và được chia nhỏ thành các mô-đun, chạy đa nền tảng trong một thiết kế nhỏ gọn. Core CLR là mã nguồn mở và đa nền tảng, với các port dành cho Windows, Linux, Mac OS X, và FreeBSD. Nói tóm lại, hiện tại bạn sẽ có thể xây dựng ứng dụng trên một nền tảng và vận hành nó trên một hay thậm chí nhiều nền tảng khác.

2. Triển khai đám mây sẵn sàng

Nhờ vào Core runtime độc lập, có thể được triển khai cùng với ứng dụng của bạn, nên ASP.Net 5 đã sẵn sàng cho triển khai đám mây. Diagnostics, trạng thái của session (session state), bộ nhớ đệm (cache), và lập cấu hình (configuration) hiện tại sẽ làm việc trơn tru trên cả phần mềm on premise và trong đám mây. Thêm nữa, bây giờ nhiều ứng dụng ASP.Net 5 có được triển khai cùng chung một host nhưng được đặt cấu hình và cập nhật tách rời, do chúng không còn phải chia sẻ cùng runtime nữa. Với ASP.Net 5 hiện tại chúng ta có một ngăn xếp (stack) .Net tối giản mà được tối ưu hóa cho đám mây và server workload (hệ điều hành và ngăn xếp ứng dụng).

3. Framework nòng cốt được hợp nhất

Một trong những tính năng hấp dẫn nhất của ASP.NET5 là việc hợp nhất mô hình lập trình của ASP.Net MVC, ASP.Net Web API, và ASP.Net Web.Trong các phiên bản trước của ASP.NET, những framework này được thực hiện một cách riêng biệt và có phần trùng lặp cũng như mâu thuẫn.

Mô hình lập trình hợp nhất có nghĩa là bạn có thể tạo ra một ứng dụng web duy nhất xử lý các giao diện Web và dịch vụ dữ liệu mà không phải dung hòa sự khác biệt giữa 3 framework. Bây giờ bạn chỉ có một loại bộ điều khiển để xử lý các yêu cầu mà chủ yếu là các ứng dụng của MVC, Web API và Web Pages. Về bản chất, bây giờ bạn có một routing framework , một binding framework, và một filter pipeline.

4. Host agnosticism

Bây giờ ASP.Net 5 là host agnostic. Nó bao gồm một mô đun HTTP mới yêu cầu đường dẫn được tối ưu hóa và có thể làm chủ trên bất kỳ nền tảng nào dưới đây:

. Internet Information Services (IIS)

. Owin (Open Web Interface for .Net)

. Kestrel

.Tự làm chủ trong một quá trình tùy chỉnh

Host agnosticism là một tính năng tuyệt vời không chỉ loại trừ các sự phụ thuộc vào không gian tên (namespace) System.Web kế thừa, mà còn thúc đẩy sự phản hồi của ứng dụng cho một quy mô đáng kể.

Các ứng dụng của ASP.Net 5 không nhắc đến Web server. Hiếm khi host agnosticism được làm cho dễ dàng thông qua “các giao diện tính năng (feature interfaces) được cung cấp bởi IapplicationBuilder. Điều này sẽ giúp các ứng dụng của Asp.Net 5 có thể chuyển đổi giữa các host một cách uyển chuyển.

Tiêu chuẩn OWIN xác định giao điện giữa Web server và Web clients hay các ứng dụng web. Katana là sự triển khai OWIN của Microsoft, Katana còn hợp nhất một số bộ phận của middleware. Về bản chất , Kestrel là một Web server đa nền tảng từ Microsoft và nó có thể được sử dụng với ASP.Net 5.

5. Hiệu suất được cải thiện

Framework của ASP.Net 5 kết hợp một tối ưu hóa, modular pipeline cho phép bạn chỉ plug in các thành phần mà ứng dụng của bạn cần tới. Pipeline này dựa trên các tiêu chuẩn của OWIN và kết hợp hầu hết các kinh nghiệm từ dự án Katana. Runtime này không còn phụ thuộc vào hợp ngữ (assembly) System.Web, giảm thiểu phí tổn có liên quan đến việc xử lý các yêu cầu của HTTP và do dó nâng cao thông lượng (throughput) của ứng dụng.

6. Dynamic compilation

ASP.Net 5 mang đến một tính năng mới xuất sắc thúc đẩy lập trình nhanh hơn. Đây là một tính năng đã được trông đợi rất nhiều, và hiện nay đã có trong ASP.Net 5. Việc phát triển trong ASP.Net 5 giống như sự phát triển của một ngôn ngữ năng động, bởi vì hiện tại quá trình biên dịch sẽ diễn ra tự động. Bạn có thể lưu lại các thay đổi vào các tệp tin mã nguồn mở của mình và xem các kết quả một cách đơn giản bằng cách refresh trình duyệt web của bạn.

7. Hỗ trợ Dependency injection (DI)

Design patterns giúp bạn chỉ ra các vấn đề đang tái diễn và sự phức tạp trong các ứng dụng của bạn dễ dàng hơn. Một trong những design pattern phổ biến nhất là dependency injection, còn được biết đến là pattern “đảo ngược kiểm soát”. Bạn có thể sử dụng dependency injection để xây dựng các bộ phận ứng dụng được nối lại với nhau lỏng lẻo và giúp cho việc kiểm thử và bảo trì dễ dàng hơn.

ASP.Net 5 mang đến sự hỗ trợ gắn liền tuyệt vời dành cho dependency injection và các locator pattern của dịch vụ. Các framework của ASP.Net trước đây như MVC, Web API, và SignalR cũng hỗ trợ dependency injection, nhưng không được nhất quán và toàn diện. ASP.NET 5 cung cấp lớp DI trừu tượng được xây dựng sẵn một cách nhất quán. Bạn có thể truy xuất đến dịch vụ ngay tại lúc khởi động, trong middleware, trong filters hoặc controller, trong model binding hoặc bất kỳ chỗ nào mà bạn muốn dùng dịch vụ của bạn.

ASP.NET 5 bao gồm DI container tối giản để khởi động hệ thống, nhưng bạn cũng có thể dễ dàng thay thế container mặc định với container mà bạn chọn.

8. Tag helper

Tag helper là tính năng mới trong ASP.Net 5, tính năng này cho phép kích hoạt quá trình xử lý trước của attributes (thuộc tính của HTML) với nội dung của server-side. Về bản chất, tag helpers là một phương thức mới dành cho bạn để kích hoạt việc render động (dynamic render) trong ASP.Net. Để làm việc với tag helpers, bạn cần phải cài đặt hợp ngữ (assembly ) Microsoft.AspNet.Mvc.TagHelpers đang sử dụng NuGet, rồi sau đó thêm nó vào view của bạn là @addtaghelper .

“Microsoft.AspNet.Mvc.TagHelpers”.

Hãy xem xét đoạn lập trình sau đây có sử dụng HTML helper:

@model IDG.Models.Magazine
@using (Html.BeginForm())
{
<div>
@Html.LabelFor(m => p.AuthorName, “Author Name:”)
@Html.TextBoxFor(m => p.AuthorName)
</div>
<input type=”submit” value=”Create” />
}

Bạn có thể thực hiện việc sử dụng tag helpers tương tự trong đoạn lập trình dưới đây:

@model IDG.Models.Magazine
@addtaghelper “Microsoft.AspNet.Mvc.TagHelpers”
<form asp-controller=”Authors” asp-action=”Create” method=”post”>
<div>
<label asp-for=”AuthorName”>Author Name:</label>
<input asp-for=”AuthorName” />
</div>
<input type=”submit” value=”Create” />
</form>

Phương pháp tag helpers thì rõ ràng, dễ đọc, và ngắn gọn. Ngoài ra, bạn không cần thêm AntiForgeryToken.

Bạn cũng có thể tạo ra một tag helper tùy chỉnh bằng cách mở rộng lớp TagHelper và gạt sang một bên các phương pháp dưới đây:

public override void Process(TagHelperContext context, TagHelperOutput output)

public override void ProcessAsync(TagHelperContext context, TagHelperOutput output)

9. Việc đặt cấu hình được đơn giản hóa

Với ASP.Net 5 bạn không cần phải sử dụng Web.config file dùng để lưu trữ các giá trị cấu hình (configuration value) nữa. Hơn thế nữa, bạn có thể triển khai ứng dụng trong đám mây và sử dụng Startup.cs file để ứng dụng của bạn có thể đọc dữ liệu cấu hình cần thiết một cách tự động. Startup.cs file đặc trưng giống như thế này:

public partial class Startup {
public Startup(IHostingEnvironment env)
{
Configuration = new Configuration()
.AddJsonFile(“config.json”)
.AddEnvironmentalVariables();
}
}
Đoạn lập trình trên minh họa cách bạn có thể thiết lập ứng dụng để có thể đọc được dữ liệu cấu hình từ JSON file. Startup.cs file giúp thêm hay loại bỏ các configuration source dễ dàng dành cho ứng dụng của bạn.

10. Quản lý dependency đơn giản hơn

Với ASP.Net 5 việc quản lý các dependency của dự án đơn giản hơn nhiều. Để thêm hay cập nhật các dependency của dự án, thì bạn có thể sử dụng hoặc NuGet, trình quản lý gói mã nguồn mở và miễn phí dành cho nền tảng phát triển của Microsoft, hoặc bạn có thể điều chỉnh project.json file bằng cách sử dụng text editor. Với Visual Studio 2015, thậm chí bạn còn có thể sử dụng IntelliSense để giúp định vị các gói NuGet mà bạn cần thêm vào.

Tóm lại, ASP.Net 5 là mã nguồn mở, đa nền tảng, và là một framework có khả năng thúc đẩy lập trình nhanh hơn và cho phép bạn xây dựng các ứng dụng cho cả các web server truyền thống và đám mây. Nó cũng đã được thiết kế lại để mang đến hiệu suất tốt hơn và cấu hình đơn giản hơn và triển khai ở khắp các nền tảng hệ điều hành phổ biến.

Chia sẻ bài viết ngay

Nguồn bài viết : http://www.devsaran.com/