Computer >> 컴퓨터 >  >> 프로그램 작성 >> C#

C# Asp.net Core의 메타패키지란 무엇입니까?

<시간/>

Microsoft.AspNetCore 패키지는 많은 ASP.NET Core 템플릿에 추가된 패키지 중 하나로 알려져 있습니다.

Microsoft.AspNetCore 패키지는 새 ASP.NET Core 프로젝트를 열 때 일반적인 프로젝트 종속성 중 하나로 반복적으로 포함됩니다. 기본 ASP.NET Core 애플리케이션을 배치하는 데 중요한 여러 패키지를 제공합니다.

그러나 이 패키지에는 실제 dll이나 코드 자체가 포함되어 있지 않으며 추가 패키지에 대한 일련의 종속성이 있을 뿐입니다. 이 패키지를 프로젝트에 추가하면 관련된 모든 패키지와 해당 패키지가 의존하는 dll을 가져올 수 있으며 이를 메타패키지라고 합니다.

구체적으로 나열하는 패키지는 다음과 같습니다. -

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

받게 되는 이러한 패키지의 버전은 설치하는 Microsoft.AspNetCore 패키지의 버전에 따라 다릅니다.

이러한 종속성은 Kestrel 웹 서버를 사용하고 IIS 통합을 포함하는 basicASP.NET Core 서버를 설정하기 위한 기본 기본 라이브러리를 제공합니다.

애플리케이션 자체의 관점에서, 이 패키지만으로도 애플리케이션 설정 및 환경 변수를 구성에 로드하고, IOptions 인터페이스를 사용하고, 콘솔에 대한 로깅을 구성할 수 있습니다.

미들웨어의 경우 Microsoft.AspNetCore.Diagnostics 패키지만 포함되어 있어 ExceptionHandlerMiddleware, DeveloperExceptionPageMiddleware 및 StatusCodePagesMiddleware와 같은 미들웨어를 추가할 수 있습니다.

응용 프로그램을 완성하려면 Metapackage만 사용할 수 없습니다. 메타패키지가 충분한 제어를 제공하지 않기 때문입니다. 그러나 Microsoft.AspNetCore.Mvc 또는 Microsoft.AspNetCore.MvcCore 패키지를 사용하여 응용 프로그램에 MVC 기능을 추가할 수 있으며 일부 다른 패키지도 필요합니다.

메타패키지는 더 많은 종속성을 로드할 필요가 없도록 많은 응용 프로그램에 적용할 수 있는 많은 패키지를 사용하려고 시도하지만 실제로는 다른 패키지도 필요하기 때문에 그렇게 하지 않습니다. 따라서 패키지 수가 많으면 종속성이 증가하여 메타패키지의 실제 사용에 영향을 미칩니다. 예를 들어 Microsoft.AspNetCore가 의존하는 종속성 중 하나는 NETStandard.Library 패키지이며, 이 패키지도 메타패키지이므로 종속성이 증가합니다.