Computer >> Máy Tính >  >> Lập trình >> C#

Metapackage trong C # Asp.net Core là gì?

Được biết, gói Microsoft.AspNetCore là một trong những gói được bổ sung thêm nhiều mẫu ASP.NET Core.

Gói Microsoft.AspNetCore nhiều lần được bao gồm như một trong những phụ thuộc dự án thông thường khi mở một dự án ASP.NET Core mới. Nó cung cấp nhiều gói thecrucial để thiết lập một ứng dụng ASP.NET Core cơ bản.

Mặc dù vậy, gói này không chứa bất kỳ dlls hoặc mã thực tế nào, nó chỉ chứa một loạt 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 mình, bạn mang lại tất cả các gói có liên quan cùng với các gói phụ thuộc của chúng và nó được gọi là gói siêu nhỏ.

Cụ thể, các gói mà 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 này bạn sẽ nhận được tùy thuộc vào phiên bản của gói Microsoft.AspNetCore mà bạn cài đặt.

Các phần phụ thuộc này cung cấp các thư viện cơ bản chính để thiết lập một máy chủASP.NET Core cơ bản sử dụng máy chủ web Kestrel và bao gồm Tích hợp IIS.

Về bản thân ứng dụng, chỉ với sự trợ giúp của gói này, bạn có thể tải cài đặt ứng dụng và các biến môi trường vào cấu hình, sử dụng IOptionsinterface và định cấu hình ghi nhật ký vào bảng điều khiển.

Đối với phần mềm trung gian, chỉ gói Microsoft.AspNetCore.Diagnostics được bao gồm, cho phép thêm phần mềm trung gian như ExceptionHandlerMiddleware, theDeveloperExceptionPageMiddleware và StatusCodePagesMiddleware.

Để hoàn thành một ứng dụng, chúng tôi không thể chỉ sử dụng Metapackage vì nó không cung cấp đủ các điều khiển nhưng chúng tôi có thể sử dụng gói Microsoft.AspNetCore.Mvc hoặcMicrosoft.AspNetCore.MvcCore để thêm các khả năng MVC vào ứng dụng của chúng tôi và cũng cần một số gói khác.

Siêu gói chỉ cố gắng sử dụng một số gói có thể được áp dụng cho nhiều ứng dụng để chúng tôi không cần tải thêm các gói phụ thuộc nhưng thực tế nó không ảnh hưởng gì vì nó cũng yêu cầu các gói khác. Do đó, nếu số lượng gói lớn hơn thì sự phụ thuộc sẽ tăng lên, điều này ảnh hưởng đến việc sử dụng thực sự của siêu gói. Ví dụ, một trong những phần phụ thuộc mà Microsoft.AspNetCore phụ thuộc vào đó là góiNETStandard.Library, đây cũng là một gói siêu nhỏ và do đó mức độ phụ thuộc tăng lên.