Giới thiệu ASP.NET Core

ASP.NET Core là phiên bản mới được thiết kế lại của framework web ASP.NET có mục tiêu chính là chạy trên nền tảng .NET Core.

ASP.NET Core là một framework đa nền tảng, miễn phí, mã nguồn mở để xây dựng các ứng dụng như ứng dụng web, ứng dụng IoT và API cho di động. Nó được thiết kế để chạy trên cả server cũng như đám mây.

Giống như .NET Core, nó có cấu trúc mô đun với những thành phần cơ bản và sau đó các tính năng nâng cao khác có thể được thêm vào dưới dạng các gói NuGet theo yêu cầu ứng dụng. Điều này dẫn đến hiệu suất cao, yêu cầu ít bộ nhớ hơn, kích thước triển khai ít hơn và dễ bảo trì.

ASP.NET Core là một framework mã nguồn mở được hỗ trợ bởi Microsoft và cộng đồng, vì vậy bạn cũng có thể đóng góp hoặc tải xuống mã nguồn từ Kho lưu trữ ASP.NET Core trên Github .

ASP.NET 3.x chỉ chạy trên .NET Core 3.x, trong khi ASP.NET Core 2.x chạy trên .NET Core 2.x cũng như .NET Framework.

Lõi ASP.NET

Tại sao chọn ASP.NET Core?

  • Hỗ trợ nhiều nền tảng: Các ứng dụng ASP.NET Core có thể chạy trên Windows, Linux và Mac. Vì vậy, bạn không cần phải xây dựng các ứng dụng khác nhau cho các nền tảng khác nhau bằng các framework khác nhau.
  • Nhanh: ASP.NET Core không còn phụ thuộc vào System.Web.dll cho giao tiếp giữa máy chủ và trình duyệt. ASP.NET Core cho phép chúng ta thêm các gói mà chúng tôi cần cho ứng dụng của mình. Điều này làm giảm đường ống yêu cầu và cải thiện hiệu suất và khả năng mở rộng.
  • IoC Container: Tích hợp sẵn IoC Container tích hợp để xử lý phụ thuộc tự động giúp nó có thể duy trì và kiểm tra được.
  • Tích hợp với các framework UI hiện đại: Nó cho phép bạn sử dụng và quản lý các framework UI hiện đại như AngularJS, ReactJS, Umber, Bootstrap, v.v. bằng cách sử dụng Bower (trình quản lý gói cho web).
  • Lưu trữ: Ứng dụng web ASP.NET Core có thể được lưu trữ trên nhiều nền tảng với bất kỳ máy chủ web nào như IIS, Apache, v.v. Nó không chỉ phụ thuộc vào IIS như một .NET Framework tiêu chuẩn.
  • Chia sẻ mã: Nó cho phép bạn xây dựng một thư viện lớp có thể được sử dụng với các khung .NET khác như .NET Framework 4.x hoặc Mono. Do đó, một cơ sở mã duy nhất có thể được chia sẻ trên các khung.
  • Phiên bản ứng dụng song song: ASP.NET Core chạy trên .NET Core, hỗ trợ chạy đồng thời nhiều phiên bản ứng dụng.
  • Kích thước triển khai nhỏ hơn: Ứng dụng ASP.NET Core chạy trên .NET Core, nhỏ hơn .NET Framework đầy đủ. Vì vậy, ứng dụng chỉ sử dụng một phần của .NET CoreFX sẽ có kích thước triển khai nhỏ hơn. Điều này làm giảm kích thước triển khai.

Cài đặt ASP.NET Core

Ở đây bạn sẽ học cách chuẩn bị một môi trường phát triển để xây dựng các ứng dụng .NET Core / ASP.NET Core.

.NET Core có thể được cài đặt theo hai cách: Bằng cách cài đặt Visual Studio 2017/2019 hoặc bằng cách cài đặt .NET Core Runtime hoặc SDK.

Trình cài đặt .NET Core đã chứa các thư viện ASP.NET Core, do đó không có trình cài đặt riêng cho ASP.NET Core.

Cài đặt Visual Studio

Hiện tại, .NET Core 2.1 và .NET Core 3.1 đang có sự hỗ trợ lâu dài. Visual Studio 2017 hỗ trợ .NET Core 2.1, trong khi Visual Studio 2019 hỗ trợ cả hai phiên bản.

Bạn có thể sử dụng IDE yêu thích của mình, chẳng hạn như Visual Studio, Visual Studio Code, Sublime Text, v.v. để phát triển, khôi phục, xây dựng và chạy ứng dụng .NET Core. Tại đây, chúng tôi sẽ sử dụng Visual Studio 2019.

Nếu bạn không có Visual Studio trên PC phát triển thì nên cài đặt Visual Studio 2019 mới nhất. Nếu bạn đã có Visual Studio 2017 hoặc 2019, thì bạn đã cài đặt .NET Core 2.1.

Tải xuống và cài đặt Visual Studio 2019 dựa trên HĐH của bạn từ đây . Chọn phiên bản phù hợp theo giấy phép của bạn. Phiên bản cộng đồng miễn phí cho sinh viên, cộng tác viên nguồn mở và cá nhân.

Trong quá trình cài đặt, chọn khối lượng công việc "Phát triển đa nền tảng .NET Core". Điều này sẽ cài đặt .NET Core 2.1. Tuy nhiên, bạn cần cài đặt .NET Core 3.1 SDK riêng.

Cài đặt Visual Studio 2019

Sau khi cài đặt, bạn có thể kiểm tra bằng cách mở dấu nhắc lệnh (hoặc thiết bị đầu cuối trong Mac) và nhập dotnet --version và nhấn Enter. Điều này sẽ hiển thị phiên bản cài đặt và thông tin sử dụng, như hiển thị bên dưới.

C:\Users\dev>dotnet --version
2.1.805

Cài đặt .NET Core 3.x

Như bạn đã thấy, trình cài đặt Visual Studio 2019 bao gồm .NET Core 2.1 nhưng không phải .NET Core 3.x. Bạn cần cài đặt riêng.

Để tải xuống phiên bản .NET Core mới nhất, hãy truy cập https://dotnet.microsoft.com/download và chọn nền tảng bạn đang sử dụng.

Cài đặt .NET Core

Như bạn có thể thấy ở trên, .NET Core Runtime và .NET Core SDK là những thứ khác nhau.

.NET Core Runtime chỉ được sử dụng để chạy ứng dụng .NET Core, trong khi .NET Core SDK bao gồm các công cụ và thư viện để phát triển các ứng dụng .NET Core.

Để thiết lập môi trường phát triển, chúng tôi cần cài đặt .NET Core SDK cho nền tảng mà chúng tôi sử dụng để phát triển như Windows, Linux hoặc Mac.

Ở đây chúng tôi sẽ cài đặt .NET Core SDK vì chúng tôi đang chuẩn bị môi trường phát triển để xây dựng các ứng dụng .NET Core.

Nếu bạn đang định chạy ứng dụng .NET Core, thì hãy cài đặt .NET Core Runtime trên máy chủ hoặc máy tính để bàn hoặc máy khách của bạn.

Nhấp vào nút Download .NET Core SDK để tải xuống phiên bản mới nhất của trình cài đặt .NET Core SDK. Nó sẽ tải xuống .NET Core 3.1 SDK khi viết bài này.

Sau khi tải xuống trình cài đặt, bấm vào nó để bắt đầu cài đặt.

.NET Core SDK

Nhấp vào nút Install và làm theo trình hướng dẫn để cài đặt .NET Core 3.1 SDK.

Sau khi cài đặt, bây giờ bạn có thể phát triển các ứng dụng .NET Core / ASP.NET Core. Hãy tìm hiểu về nó ở những bài viết tiếp theo.

Các phiên bản của ASP.NET Core

Version Release date Released with
.NET Core 1.0 27/06/2016 Visual Studio 2015 Update 3
.NET Core 1.1 16/11/2016 Visual Studio 2017 Version 15.0
.NET Core 2.0 14/08/2017 Visual Studio 2017 Version 15.3
.NET Core 2.1 30/05/2018 Visual Studio 2017 Version 15.7
.NET Core 2.2 04/12/2018 Visual Studio 2019 Version 16.0
.NET Core 3.0 23/09/2019 Visual Studio 2019 Version 16.3
.NET Core 3.1 03/12/2019 Visual Studio 2019 Version 16.4
.NET 5 11/2020 (dự kiến)

Mẫu thiết kế MVC trong ASP.NET Core

Mẫu thiết kế MVC (MVC design pattern: View - Model - Controller) là mẫu thiết kế đã tồn tại trong một vài thập kỷ và nó đã được sử dụng trên nhiều công nghệ khác nhau, từ Smalltalk đến C++, Java và bây giờ là C# và .NET như một mẫu thiết kế để bạn sử dụng khi xây dựng tầng giao diện người dùng (presentation layer).

  • Mẫu thiết kế MVC là mẫu thiết kế phổ biến cho tầng giao diện người dùng của ứng dụng phần mềm.
  • Trong các ứng dụng lớn, bạn thường kết hợp mẫu thiết kế MVC của tầng UI với các mẫu thiết kế khác trong ứng dụng, như các mẫu truy cập dữ liệu và các mẫu tin nhắn.
  • Tất cả sẽ kết hợp cùng nhau để xây dựng nên ứng dụng hoàn chỉnh.

MVC tách giao diện người dùng (UI) của một ứng dụng thành ba phần sau:

  • Model: Một tập hợp các lớp mô tả dữ liệu bạn đang làm việc.
  • View: Định nghĩa giao diện người dùng.
  • Controller: Một tập hợp các lớp xử lý giao tiếp từ người dùng, luồng ứng dụng tổng thể và logic dành riêng cho ứng dụng.

Ý tưởng đằng sau MVC

Bây giờ chúng ta hãy hiểu ý tưởng đằng sau MVC.

  • Ý tưởng là bạn sẽ có một thành phần được gọi là view chịu trách nhiệm hiển thị giao diện người dùng.
  • View làm việc với model và model đó chứa tất cả dữ liệu mà view cần hiển thị.
  • Trong một ứng dụng web, view có thể không có bất kỳ mã nào được liên kết với nó.
  • View có thể chỉ chứa mã HTML và một số biểu thức lấy dữ liệu từ model và đặt chúng vào đúng vị trí trong mã HTML.
  • Controller tổ chức mọi thứ. Khi một yêu cầu HTTP được gửi đến một ứng dụng MVC, yêu cầu đó được chuyển đến controller và sau đó tùy thuộc vào controller, nó có thể làm việc với cơ sở dữ liệu, hệ thống file hoặc model.
Kiến trúc MVC trong ASP.NET Core

Trong MVC, controller nhận được yêu cầu HTTP và nó sẽ thực hiện một vài xử lý để đáp ứng yêu cầu này.

Ví dụ khi người dùng truy cập URL /books như hình dưới đây. Yêu cầu này sẽ được gửi tới controller, controller sẽ truy cập database để lấy lên danh sách các quyển sách, tiếp đó nó sẽ tạo model lưu trữ thông tin những quyển sách, cuối cùng nó chuyển model tới view phù hợp để tạo ra giao diện HTML và trả về cho người dùng.

Mô hình MVC trong ASP.NET Core
  • Model không biết gì về yêu cầu HTTP hoặc controller.
  • Model chỉ chịu trách nhiệm lưu giữ thông tin sách mà người dùng muốn xem, cũng như mọi logic liên quan đến danh sách những quyển sách đó.
  • Model chỉ là một lớp C# mà chúng ta có thể sử dụng và bạn có thể có nhiều hơn một lớp nếu bạn có một mô hình phức tạp.
  • Một khi model đã được tạo, controller có thể chọn view để hiển thị model.
  • View sẽ lấy thông tin trong model để xây dựng trang HTML.
  • Cuối cùng, trang HTML đó được gửi lại cho máy khách trong phản hồi HTTP và toàn bộ giao dịch yêu cầu và phản hồi HTTP được hoàn thành.

Đây là những điều cơ bản của mẫu thiết kế MVC và ý tưởng đằng sau mẫu này là để tách biệt các mối quan tâm. Vì vậy, controller chỉ chịu trách nhiệm nhận một yêu cầu và xây dựng một model. Model sẽ mang dữ liệu chúng ta cần đưa vào view. Sau đó, view chỉ chịu trách nhiệm chuyển đổi model đó thành HTML.



Bài viết liên quan:

View Layout, View Start, View Imports là gì? Lợi ích và các sử dụng View Layout, View Start, View Imports trong ASP.NET Core.

Tất tần tật về View, Razor View, Layout View, View Start, View Import, Tag Helpers trong ASP.NET Core MVC.

ActionResult trong ASP.NET Core là gì? Có những loại ActionResult nào? Làm sao để sử dụng ActionResult trong ASP.NET Core.