Solucionado (ver solução)

Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

Solucionado
(ver solução)
1
resposta

Diferença entre service.AddMVC e service.Add.MVCCore

Gostaria de saber a diferença entre os dois métodos acima, tendo em vista que estamos implementando a aplicação com o framework aspNetCore MVC, mas não usamos o MVCCore como serviço.

1 resposta
solução!

Olá, Ulisses

O método AddMVC pode ser usado numa única instrução:

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

Com AddMvc(), você já tem uma série de configurações automaticamente prontas, como autorização, mapeamento, views, mecanismo do Razor, etc.

Por outro lado, quando você usa AddMvcCore(), você está adicionando somente o essencial do MVC. Isso significa que você precisa adicionar outras opções de configuração manualmente:

public void ConfigureServices(IServiceCollection services)
{
    // ...
    var builder = services.AddMvcCore();
    builder.AddApiExplorer();
    builder.AddAuthorization();
    AddDefaultFrameworkParts(builder.PartManager);
    builder.AddFormatterMappings();
    builder.AddViews();
    builder.AddRazorViewEngine();
    builder.AddCacheTagHelper();
    builder.AddDataAnnotations();
    builder.AddJsonFormatters();
    builder.AddCors();
    // ...
}

Sem essas outras configurações do builder, sua aplicação irá falhar, porque ela não terá suporte a views, razor, mapeamentos, etc.

Então você precisaria de um ótimo motivo, como por exemplo excluir alguns componentes, para usar AddMvcCore() em vez de AddMvc() já que este já adiciona várias configurações que são consideradas imprescindíveis numa aplicação comercial.