Кассетные комплекты против MVC4-комплектов - PullRequest
43 голосов
/ 22 февраля 2012

В настоящее время я работаю над прототипом решения ASP.NET MVC 3, которое будет использоваться в качестве основы для нескольких переписываний проекта (из веб-форм).

Одна из целей, которые я ставлю перед собой, состоит в том, чтобы реализовать некоторое управление сценариями в приложении, а не то, что у нас есть в настоящее время.

MVC 3 имеет недостаток ИМХО: если вам нужен определенный скрипт, указанный в частичном представлении или представлении шаблона - вы можете в конечном итоге либо потерять контроль над тем, где находится блок скрипта в отображаемом HTML, либо указать каждый зависимый файл javascript в родительском представлении.

Я серьезно подумывал об использовании http://getcassette.net/ в качестве основы для решения описанной проблемы. Однако последний выпуск бета-версии MVC4 заставил меня снова усомниться: наборы MVC действительно похожи на наборы кассет, и я снова растерялся:

  1. Должен ли я внедрить кассету сейчас, а затем перейти на комплекты MVC4?

  2. Должен ли я сам реализовать какой-нибудь упрощенный диспетчер скриптов (например, вспомогательный класс Scripts в предварительном просмотре MVC4), а затем перейти на MVC4

  3. Или я должен интегрировать кассету в проект и надеяться, что она будет в большей степени ориентирована на будущее, чем реализация MVC (мне действительно не нравится этот вариант сейчас, просто из-за большого количества кассет с зависимостями).

У меня нет опыта работы с самой кассетой, и мне очень трудно провести сравнение самостоятельно, и я был бы признателен за любые ответы или подсказки.

EDIT: Я просто подумал, что есть еще один вариант: установка бета-пакета nuget для комплектации MVC: https://nuget.org/packages/Microsoft.Web.Optimization

ВЫВОД: Чем больше я смотрю на реализацию пакета MVC4, тем большую разницу я замечаю: пакеты MVC4 не решают проблему MVC3, описанную выше - они просто выполняют пакетирование и минимизацию. Более того, кассета не только способна отображать теги сценария в определенном месте, но и способна упорядочивать их в правильном порядке, что не является тривиальным. Поэтому в настоящий момент меня не устраивает ни одно из решений, и я постараюсь придумать собственную минималистичную реализацию, надеясь, что ситуация улучшится в будущем.

Но если вы не боитесь добавить в свой проект зависимости 5 + и кучу изменений web.config - выбирайте кассету. Я надеюсь, что в какой-то момент он будет обновлен, чтобы использовать связывание MVC внутри, чтобы уменьшить дублирование функциональности, и, надеюсь, станет более модульным.


UPDATE: Начиная с версии 2.0 кассеты, больше нет необходимости включать кофейный скрипт и другие функции кассеты, если вам просто нужно связывание и разрешение js-зависимостей. Так что на данный момент Кассета является для меня явным победителем.

Ответы [ 4 ]

10 голосов
/ 22 февраля 2012

Информация о комплектации ASP.NET MVC находится здесь: http://weblogs.asp.net/scottgu/archive/2011/11/27/new-bundling-and-minification-support-asp-net-4-5-series.aspx.

ASP.NET добавляет функцию, которая позволяет легко «связывать» или «Объединить» несколько файлов CSS и JavaScript в меньшее количество HTTP-запросов. Это заставляет браузер запрашивать намного меньше файлов и, в свою очередь, сокращает время, необходимое для их получения.

В следующем выпуске ASP.NET также добавлена ​​новая функция, которая делает его легко уменьшить или «минимизировать» размер загружаемого контента.

Похоже, это по сути то же самое, что и кассета. При прочих равных условиях используйте решение, которое является родным для ASP.NET MVC.

9 голосов
/ 22 февраля 2012

Я использовал кассету в моем последнем проекте, и он работает довольно хорошо. На самом деле, если вы используете NuGet, настройки не так уж и велики, поэтому я думаю, что не составит труда использовать кассету сейчас, а потом переключаться позже, если вы захотите.

Еще одна вещь, которую следует учитывать, это то, что кассета выполняет меньше компиляции. Я не уверен, что комплектация MVC4 делает это или нет, так как у меня не было времени прочитать об этом.

4 голосов
/ 23 февраля 2012

Кассета - все еще интересная альтернатива, поскольку она имеет встроенную поддержку less и coffescript. Он также поддерживает HTML-шаблоны, если вы заинтересованы в клиентских инфраструктурах mvc (backbone, knockout и т. Д.)

1 голос
/ 30 апреля 2013

Как дополнение к этому, поддержка LESS и CoffeeScript была добавлена ​​в пакет обновления 2 для Visual Studio 2012, поэтому она начинает все больше и больше походить на то, что было бы лучше добавить, какие преобразования вам необходимы для собственной реализацииобъединение / минификация, поддерживаемая в MVC4, в отличие от кассеты в долгосрочной перспективе.

...