programing

ASP.NET Core MVC 개발에 AddMvc 또는 AddMvcCore를 사용해야합니까?

procenter 2021. 1. 15. 19:45
반응형

ASP.NET Core MVC 개발에 AddMvc 또는 AddMvcCore를 사용해야합니까?


책에서 ASP.NET Core MVC를 배우고 있는데, 문제의 코드 스 니펫은 다음과 같습니다.

// CHAPTER 4 - ESSENTIAL C# FEATURES
namespace LanguageFeatures {

    public class Startup {

        public void ConfigureServices(IServiceCollection services) {
            services.AddMvc();
        }

        // etc.

이 책은 ASP.NET MVC가 아닌 ASP.NET Core MVC에 관한 것이기 때문에 다음과 같이 사용 AddMvcCore()하기보다는 사용해야한다고 생각 AddMvc()합니다.

public void ConfigureServices(IServiceCollection services)
{
    services.AddMvcCore(); // as opposed to:
    //services.AddMvc();
}

내가 여기서하는 것이 맞습니까?


ASP.NET Core GitHub 리포지토리MvcServiceCollectionExtensions.cs클래스를 살펴보세요 .

public static IMvcBuilder AddMvc(this IServiceCollection services)
{
    if (services == null)
    {
        throw new ArgumentNullException(nameof(services));
    }

    var builder = services.AddMvcCore();

    builder.AddApiExplorer();
    builder.AddAuthorization();

    AddDefaultFrameworkParts(builder.PartManager);

    // Order added affects options setup order

    // Default framework order
    builder.AddFormatterMappings();
    builder.AddViews();
    builder.AddRazorViewEngine();
    builder.AddCacheTagHelper();

    // +1 order
    builder.AddDataAnnotations(); // +1 order

    // +10 order
    builder.AddJsonFormatters();

    builder.AddCors();

    return new MvcBuilder(builder.Services, builder.PartManager);
}

AddMvcCore()그리고 AddMvc()둘은 반환 IMvcBuilder더 구성 할 수있는 MVC 서비스를 사용할 수 있습니다.

AddMvcCore(), 이름에서 알 수 있듯이 핵심 구성 요소 만 추가하므로 다른 미들웨어 (프로젝트에 필요한)를 직접 추가해야합니다.

AddMvc()내부적 AddMvcCore()으로 Razor 뷰 엔진, JSON 포맷터, CORS 등과 같은 다른 미들웨어를 호출 하고 추가합니다.

For now, I would follow what your tutorial suggests and stick to AddMvc().

ReferenceURL : https://stackoverflow.com/questions/40097229/should-i-use-addmvc-or-addmvccore-for-asp-net-core-mvc-development

반응형