Подтвердить что ты не робот

Почему ASP.NET MVC 4 имеет так много пакетов NuGet и действительно ли это важно?

Как говорится в заголовке, почему в проектах ASP.NET MVC 4 есть много пакетов NuGet? Разделяется ли вся инфраструктура в пакетах? Какие из них действительно важны для пустого проекта, который будет веб-сайтом, без API и т.д.

UPDATE

Чтобы уточнить, у меня нет проблемы, ну, если вы не посчитаете основное замешательство как одно. Я просто хочу знать, почему в новых проектах MVC 4 установлено так много пакетов по умолчанию? Пустой проект содержит одну полную страницу пакетов. Интернет-проект состоит из трех полных страниц пакетов.

Мне просто интересно, почему это происходит потому, что мои текущие проекты MVC 3 используют максимум пять пакетов.

4b9b3361

Ответ 1

Как говорится в заголовке, почему в проектах ASP.NET MVC 4 есть много пакетов NuGet?

Это вопрос, который вам нужно задать дизайнерам фреймворка.

Какие из них действительно важны для пустого проекта, который будет веб-сайтом, без API и т.д.

Здесь строгий минимум, который позволит вам настроить маршрутизацию и определить контроллер с действием, отображающим представление Razor:

<packages>
  <package id="Microsoft.AspNet.Mvc" version="4.0.20710.0" targetFramework="net40" />
  <package id="Microsoft.AspNet.Razor" version="2.0.20710.0" targetFramework="net40" />
  <package id="Microsoft.AspNet.WebPages" version="2.0.20710.0" targetFramework="net40" />
  <package id="Microsoft.Web.Infrastructure" version="1.0.0.0" targetFramework="net40" />
</packages>

или если вы предпочитаете только 1/2 страницы:

enter image description here

Ответ 2

ASP.NET MVC все чаще поставляется через пакеты NuGet с момента обновления ASP.NET MVC 3 Tools. Это дает несколько преимуществ:

  • Обновление до компонентов, поставляемых через NuGet - сам MVC и другие связанные компоненты (Razor, Web API), не дожидаясь появления новой "большой" версии ASP.NET MVC,.NET или Visual Studio.
  • Это также означает, что вы можете использовать отдельные части по своему усмотрению вне MVC - например, Web API можно использовать вне ASP.NET.
  • Все больше и больше компонентов распределяются между слоями пользовательского интерфейса и другими частями ASP.NET. Некоторые примеры: маршрутизация разделяется с веб-формами и веб-страницами, Razor разделяется с веб-страницами, новые части OAuth разделяются с веб-формами.

Вы заметите, что в проекте из базового шаблона вы получите следующие пакеты:

  • Microsoft.AspNet.Mvc
  • Microsoft.AspNet.Razor
  • Microsoft.AspNet.WebApi
  • Microsoft.AspNet.WebApi.Client
  • Microsoft.AspNet.WebApi.Core
  • Microsoft.AspNet.WebApi.WebHost
  • Microsoft.AspNet.WebPages
  • Microsoft.Net.Http
  • Microsoft.Web.Infrastructure
  • Newtonsoft.Json

Пять из девяти используются для Web Api, который был высококомпонентным, чтобы позволить разработчикам проявлять большую гибкость в отношении того, где и как они могут их использовать. Если вы хотите минимизировать пакеты NuGet, вы можете использовать базовый шаблон.

Когда вы переходите в базовые и интернет-шаблоны, вы увидите больше пакетов для поддержки дополнительных функций, предоставляемых проектами. Интернет предлагает несколько пакетов кода с открытым исходным кодом, а не с Microsoft, таких как библиотеки OAuth и JavaScript.

Есть много пакетов JavaScript, что очень полезно, когда вы думаете об этом, так как это означает, что NuGet автоматически обрабатывает зависимости JavaScript для вас - если вы хотите обновить jQueryUI, который, в свою очередь, требует новой версии jQuery, он автоматически обновит jQuery для вас.