Почему ASP.NET MVC 4 имеет так много пакетов NuGet и действительно ли это важно?
Как говорится в заголовке, почему в проектах ASP.NET MVC 4 есть много пакетов NuGet? Разделяется ли вся инфраструктура в пакетах? Какие из них действительно важны для пустого проекта, который будет веб-сайтом, без API и т.д.
UPDATE
Чтобы уточнить, у меня нет проблемы, ну, если вы не посчитаете основное замешательство как одно. Я просто хочу знать, почему в новых проектах MVC 4 установлено так много пакетов по умолчанию? Пустой проект содержит одну полную страницу пакетов. Интернет-проект состоит из трех полных страниц пакетов.
Мне просто интересно, почему это происходит потому, что мои текущие проекты MVC 3 используют максимум пять пакетов.
Ответы
Ответ 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 для вас.