Biết rằng gói Microsoft.AspNetCore là một trong các gói được thêm vào nhiều mẫu ASP.NET Core.
Gói Microsoft.AspNetCore được đưa vào liên tục như một trong những phụ thuộc dự án thông thường khi mở dự án ASP.NET Core mới. Nó cung cấp nhiều gói quan trọng để thiết lập một ứng dụng ASP.NET Core cơ bản.
Tuy nhiên, gói này không chứa bất kỳ dll hoặc mã thực tế nào, nó chỉ chứa một chuỗi các phụ thuộc vào các gói bổ sung. Bằng cách thêm gói này vào dự án của bạn, bạn mang theo tất cả các gói liên quan cùng với dll của chúng mà nó phụ thuộc và điều đó được gọi là một metapackage (gói siêu).
Cụ thể, các gói nó liệt kê là −
Microsoft.AspNetCore.Diagnostics Microsoft.AspNetCore.Hosting Microsoft.AspNetCore.Routing Microsoft.AspNetCore.Server.IISIntegration Microsoft.AspNetCore.Server.Kestrel Microsoft.Extensions.Configuration.EnvironmentVariables Microsoft.Extensions.Configuration.FileExtensions Microsoft.Extensions.Configuration.Json Microsoft.Extensions.Logging Microsoft.Extensions.Logging.Console Microsoft.Extensions.Options.ConfigurationExtensions NETStandard.Library
Phiên bản của các gói bạn nhận được phụ thuộc vào phiên bản gói Microsoft.AspNetCore bạn cài đặt.
Các phụ thuộc này cung cấp các thư viện cơ bản chính để thiết lập máy chủ ASP.NET Core cơ bản sử dụng Kestrel web server và bao gồm IIS Integration.
Về ứng dụng bản thân, với sự giúp đỡ của gói này đơn lẻ, bạn có thể tải cài đặt ứng dụng và biến môi trường vào cấu hình, sử dụng interface IOptions, và cấu hình logging ra console.
Đối với middleware, chỉ gói Microsoft.AspNetCore.Diagnostics được bao gồm, cho phép thêm middleware như ExceptionHandlerMiddleware, DeveloperExceptionPageMiddleware và StatusCodePagesMiddleware.
Để hoàn thiện một ứng dụng, chúng ta không thể chỉ dùng Metapackage vì nó không cung cấp đủ điều khiển nhưng chúng ta có thể dùng gói Microsoft.AspNetCore.Mvc hoặc Microsoft.AspNetCore.MvcCore để thêm khả năng MVC vào ứng dụng, và cũng cần một số gói khác.
Metapackage chỉ cố gắng dùng một số gói có thể áp dụng cho nhiều ứng dụng để chúng ta không cần tải thêm phụ thuộc nhưng thực tế nó không làm được vì nó yêu cầu các gói khác cũng. Do đó, nếu số lượng gói lớn thì phụ thuộc tăng lên ảnh hưởng đến việc sử dụng thực tế của metapackage. Ví dụ, một trong những phụ thuộc mà Microsoft.AspNetCore phụ thuộc là gói NETStandard.Library, cũng là một metapackage và do đó phụ thuộc tăng lên.