ASP.NET Core là một framework mạnh mẽ dành cho phát triển ứng dụng web, và đây cũng là công nghệ Microsoft đầu tư phát triển nhiều nhất trong thời gian qua.
Trong thời gian gần đây, nhu cầu học và làm việc với ASP.NET Core đã tăng lên rất nhanh. Hiện nay đã có khá nhiều tài liệu bài bản và chuyên sâu về ASP.NET Core, từ sách in, sách điện tử, bài giảng video, đến các website/blog dành riêng cho chủ đề này.
Rất tiếc rằng hầu hết các tài liệu này viết bằng tiếng Anh, điều này tạo ra một rào cản không nhỏ với các bạn sinh viên. Tuy nhiên, không cần phải lo lắng nữa vì Tự học ICT đã xây dựng một tập bài giảng chuyên sâu về Hướng dẫn tự học lập trình ASP.NET Core. Tập bài giảng này sẽ giúp bạn bắt nhịp với công nghệ mới này từ những vấn đề cơ bản đến nâng cao.
Giới thiệu chung về ASP.NET Core
ASP.NET Core là một framework của Microsoft hỗ trợ phát triển các ứng dụng web. Phiên bản đầu tiên của ASP.NET Core được phát hành vào tháng 6 năm 2016.
Truyền thống và hiện đại
ASP.NET Core được thiết kế lại hoàn toàn để phù hợp cho phát triển các ứng dụng web hiện đại. Trong ASP.NET Core, cả framework và platform cho thực thi ứng dụng đều được xây dựng lại. Ngoài ra, ASP.NET Core còn bổ sung những tính năng mới không có trong ASP.NET truyền thống.
Mặc dù được xây dựng lại từ đầu, ASP.NET Core vẫn kế thừa những ưu điểm của ASP.NET. Vì vậy, việc chuyển đổi từ ASP.NET sang ASP.NET Core không hề khó khăn đối với những lập trình viên đã quen thuộc với ASP.NET.
Cộng đồng và doanh nghiệp
ASP.NET Core thu hút sự quan tâm rất lớn từ cộng đồng do đây là một framework mã nguồn mở. Sự đóng góp của cộng đồng đã giúp ASP.NET Core phát triển rất nhanh chóng.
Đây là công nghệ mới nhất được Microsoft khuyến khích sử dụng để phát triển các ứng dụng web hiện đại, đặc biệt là dự án mới. Nhiều công ty đã và đang chuyển sang sử dụng ASP.NET Core, đặc biệt khi phát triển các dự án mới. Do đó, nhu cầu học và làm việc với công nghệ mới này đang tăng lên rất nhanh.
Ưu nhược điểm của ASP.NET cũ
Để hiểu vì sao Microsoft quyết định xây dựng một framework mới là ASP.NET Core, chúng ta cần nói qua một vài vấn đề của ASP.NET truyền thống.
Lịch sử của ASP.NET
ASP.NET ra đời từ năm 2002 và là một phần của .NET Framework 1.0. Ban đầu, ASP.NET được phát triển nhằm thay thế cho ASP (Active Server Pages, ra đời từ năm 1996) và cạnh tranh với PHP.
Bên trên ASP.NET, Microsoft xây dựng hai mô hình lập trình khác nhau để hỗ trợ lập trình viên: Web Forms và MVC.
Web Forms ra đời năm 2002 và hướng tới mô hình web "stateful" dựa trên sự kiện tương tự như Windows Forms. Tuy nhiên, mô hình lập trình của Web Forms có quá nhiều vấn đề, đặc biệt là đối với các ứng dụng lớn. Web Forms dần bị thay thế bởi mô hình MVC.
ASP.NET MVC ra đời năm 2009 dựa trên mô hình kiến trúc MVC (Model - View - Controller), tương tự như Ruby on Rails, Django hay Java Spring. Mô hình này đã trở thành một trong những mô hình lập trình phổ biến và được sử dụng rộng rãi.
Vấn đề của ASP.NET
Cả hai mô hình lập trình trong ASP.NET (Web Forms và MVC) đều được xây dựng trên cùng một framework sử dụng thư viện System.Web.dll, một phần của .NET Framework lớn. Điều này mang lại cả ưu điểm và nhược điểm.
ASP.NET có thể sử dụng tất cả các tính năng của .NET Framework và ASP.NET, nhưng điều này cũng đồng nghĩa với việc framework này bị giới hạn bởi .NET Framework. Ví dụ, chu kỳ phát hành của .NET Framework không phù hợp với các ứng dụng web hiện đại.
ASP.NET cũng gắn chặt với dịch vụ hosting của Windows sử dụng IIS, điều này khiến ASP.NET không thể hoạt động trên các hệ điều hành khác.
Những lý do trên đã thúc đẩy Microsoft xây dựng một framework hoàn toàn mới cho phát triển ứng dụng web và đặt tên nó là ASP.NET Core.
.NET Core và ASP.NET Core
ASP.NET Core được thiết kế nhằm đáp ứng các yêu cầu:
- Phát triển và hoạt động đa nền tảng.
- Có kiến trúc dựa trên các module.
- Phát triển hoàn toàn ở dạng mã nguồn mở.
- Phù hợp với xu hướng hiện đại của ứng dụng web.
Để đạt được các yêu cầu trên, Microsoft xây dựng một platform mới đảm bảo nhẹ, nhanh, đa nền tảng, đó là .NET Core. Hiện tại, .NET Core hoạt động được trên Windows, macOS và Linux.
.NET Core và .NET Framework là hai platform độc lập, nhưng .NET Core chứa rất nhiều API giống như của .NET Framework. Điều này giúp lập trình viên dễ dàng chuyển đổi sang .NET Core mà không cần phải học lại mọi thứ từ đầu. .NET Core có thể được xem như một bộ phận tách ra từ .NET Framework.
ASP.NET Core là một tầng bổ sung xây dựng dựa trên ứng dụng console của .NET Core, nhằm chuyển đổi nó thành một ứng dụng web. Từ phiên bản 3, .NET Core hỗ trợ phát triển ứng dụng Windows desktop.
ASP.NET Core có thể hoạt động trên .NET Framework và .NET Core, nhưng có một số hạn chế và sự khác biệt. ASP.NET Core 3.0 chỉ chạy trên .NET Core 3.0.
ASP.NET Core và .NET Framework
ASP.NET Core có thể hoạt động trên .NET Framework, tuy nhiên, quan hệ giữa ASP.NET Core và .NET Framework không phải là đơn giản.
ASP.NET Core chứa hệ thống API của riêng mình và sử dụng các API cơ bản của .NET Framework. Tuy nhiên, ASP.NET Core và .NET Framework là hai platform độc lập, và việc chạy ASP.NET Core trên .NET Framework sẽ làm mất bớt những ưu điểm của ASP.NET Core.
ASP.NET và ASP.NET Core
Các phần trên đã giúp ta hiểu vị trí và một số khác biệt quan trọng giữa ASP.NET Core và ASP.NET truyền thống. Cả hai đều hỗ trợ nhiều mô hình lập trình khác nhau, nhưng trong ASP.NET Core, các mô hình này được thống nhất và sử dụng chung class và thư viện.
Nếu bạn đã quen với ASP.NET, việc tiếp cận ASP.NET Core sẽ rất dễ dàng. Các khái niệm đã có trong ASP.NET như Router, Model-binding, Razor v.v. đều có mặt trong ASP.NET Core.
ASP.NET Core cung cấp nhiều loại ứng dụng khác nhau, từ ứng dụng web truyền thống sử dụng Razor pages và MVC, đến các ứng dụng đơn trang (SPA) sử dụng Angular, React, và các REST API thông qua Web API.
ASP.NET Core cũng hỗ trợ các hệ quản trị nội dung (CMS) như Orchard Core và Piranha, giúp bạn phát triển nhanh các website với các tính năng cơ bản.
Lộ trình học ASP.NET Core sẽ đa dạng và phụ thuộc vào nền tảng hiện tại của bạn. Tuy nhiên, Microsoft khuyến nghị bắt đầu bằng Razor Pages hoặc ASP.NET Core MVC, sau đó tiếp tục với một hệ quản trị nội dung (CMS) như Piranha hoặc Orchard Core.
Nếu bạn muốn phát triển ứng dụng web client-side, hãy tiếp tục học SignalR và Blazor.
Hy vọng bài viết này giúp bạn hiểu rõ hơn về ASP.NET Core và khám phá các khía cạnh khác nhau của nó.