.NET Core và ASP.NET Core


171

Chính xác thì sự khác biệt giữa .NET Core và ASP.NET Core là gì?

Họ loại trừ lẫn nhau? Tôi nghe nói ASP.NET Core được xây dựng trên .NET Core, nhưng nó cũng có thể được xây dựng trên .NET framework đầy đủ.

Vậy chính xác thì ASP.NET Core là gì?


Câu trả lời:


209

Cập nhật 2020 : Lưu ý rằng ASP.NET Core 3 trở lên phụ thuộc vào .NET Core và không còn có thể được sử dụng trên .NET Framework. Mô tả dưới đây dành cho ASP.NET Core 1.x-2.x; việc tách lớp vẫn đúng với ASP.NET Core 3.0 nhưng lớp ASP.NET Core không còn có thể được sử dụng trên .NET Framework trong 3.0+.

.NET Core là thời gian chạy. Nó có thể thực thi các ứng dụng được xây dựng cho nó.

ASP.NET Core là một tập hợp các thư viện tạo thành một Khung để xây dựng các ứng dụng web. Các thư viện ASP.NET Core có thể được sử dụng trên cả .NET Core và "Full .NET Framework" (đã được vận chuyển với các cửa sổ trong nhiều năm).

Điều khó hiểu là một ứng dụng sử dụng các thư viện và công cụ của ASP.NET Core thường được gọi là "Ứng dụng ASP.NET Core", theo lý thuyết không nói là nó được xây dựng cho .NET Core hay .NET Framework. Vì vậy, "Ứng dụng ASP.NET Core" cũng là "Ứng dụng .NET Core" hoặc "Ứng dụng .NET Framework".

Hình ảnh này cho thấy mối quan hệ của các công nghệ liên quan (lấy từ bài đăng trên blog này ) Công nghệ ứng dụng web .NET

Ở đây bạn có thể thấy rằng ASP.NET Core được xây dựng "trên đỉnh" cả .NET Framework và .NET Core, trong khi "ASP.NET" (bây giờ thường được gọi là "ASP.NET cổ điển") chỉ là .NET Framework.


22
Vì vậy, những gì chúng ta gọi là cổ điển ASP? "Cổ đại"? : p
Dan Schnau 23/07/17

1
Vì vậy, nếu ứng dụng được phát triển bằng cách sử dụng ASP.NET Core thì trên máy chủ web, chúng ta cần phải cài đặt .NET Core RuntimeASP.NET Core runtimechỉ cần ASP.NET Core runtimelà đủ
LP13

Tùy thuộc vào phiên bản, 2.1 sẽ tách nó ra một chút, nhưng miễn là bạn cài đặt "gói lưu trữ" trên các máy chủ, bạn sẽ ổn. Nếu bạn phát triển cho ASP.NET Core trên .NET Framework, bạn vẫn cần gói lưu trữ cho mô-đun IIS cần thiết
Martin Ullrich

3
@DanSchnau, chúng tôi có "Classic ASP", "ASP.NET" AKA "Classic ASP.NET" và "ASP.NET Core", vì vậy không có xung đột nào cả :)
Gouda

@ LP13: Không có "ASP.NET Core Runtime", nó chỉ là một gói các gói không thể tự chạy (w / o .NET Core được cài đặt sẵn hoặc vận chuyển dưới dạng ứng dụng độc lập)
Tseng

43

ASP.NET Core sử dụng .NET Core - tất cả các phụ thuộc đều khép kín, có thể sử dụng hầu hết các gói NuGet, không thể sử dụng các gói dành riêng cho Windows, có thể thực thi trên Windows, Linux và Mac.

ASP.NET Core sử dụng .NET Framework - hầu hết các phụ thuộc đều khép kín, chỉ thực thi trên Windows, sẽ có quyền truy cập vào các gói NuGet dành riêng cho Windows, cần phiên bản .NET framework được nhắm mục tiêu cài đặt trên máy.


8
Ai đặt tên cho những điều này? Điều này là siêu khó hiểu.
Nick

1
@Nick: Microsoft tiếp thị. Họ có một lịch sử lâu dài về điều này. Họ chưa phát hiện ra web - sử dụng các danh từ chung cho các sản phẩm (không tốt trong thế giới công cụ tìm kiếm nơi các từ ít phổ biến cụ thể hơn sẽ tốt hơn, tốt nhất là các từ duy nhất không có trong từ điển).
Peter Mortensen

23

ASP.NET Core là một trong những khối lượng công việc được .NET Core hỗ trợ.

Từ hướng dẫn .NET Core :

Chính nó, .NET Core bao gồm một mô hình ứng dụng duy nhất - ứng dụng bảng điều khiển - rất hữu ích cho các công cụ, dịch vụ địa phương và các trò chơi dựa trên văn bản. Các mô hình ứng dụng bổ sung đã được xây dựng trên .NET Core để mở rộng chức năng của nó, chẳng hạn như:

  • Lõi ASP.NET
  • Nền tảng Windows phổ quát Windows 10 (UWP)
  • Xamarin.

Đây là một câu trả lời phù hợp hơn cho tôi. .Net Core cho ứng dụng bảng điều khiển, ASP.Net Core cho ứng dụng web.
Shawn Zhang

5

.NET Framework là phiên bản cuối cùng của nó. Sẽ không có cái nào khác sau 4.8. Microsoft sẽ tiếp tục với .NET Core. Từ lúc này, bạn nên thích .NET Core cho các dự án của bạn.


2

Trên hết, tôi muốn thêm rằng có thể giúp đỡ ai đó.

Có một thứ gọi là phần mềm trung gian tiêm trong đường ống yêu cầu .NET Core. Nếu được triển khai chính xác, điều này rất hữu ích, vì nó có thể tự động chặn các ngoại lệ của ứng dụng và giúp việc đăng nhập dễ dàng hơn ở một nơi thay vì đăng nhập theo mọi phương thức.


Bạn có thể thêm một hoặc nhiều tài liệu tham khảo / liên kết vào câu trả lời của bạn không?
Peter Mortensen
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.