Ответ 1
Посмотрите на класс MvcServiceCollectionExtensions.cs
на ASP.NET Core MVC GitHub repo:
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 и т.д.
В настоящее время я буду следовать тому, что предлагает ваш учебник, и придерживаться AddMvc()
.