Solucionado (ver solução)
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.