Кассетные комплекты против MVC4-комплектов

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

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

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

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

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

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

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

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

РЕДАКТИРОВАТЬ: Я только что понял, что есть еще один вариант: установка бета-пакет Nuget для комплектации MVC: https://nuget.org/packages/Microsoft.Web.Optimization

ЗАКЛЮЧЕНИЕ: Чем больше я смотрю на реализацию пакета MVC4, тем большую разницу я замечаю: пакеты MVC4 не решают проблему MVC3, описанную выше - они просто выполняют пакетирование и минимизацию. Более того, кассета не только способна отображать теги сценария в определенном месте, но и способна упорядочивать их в правильном порядке, что не является тривиальным. Поэтому в настоящий момент меня не устраивает ни одно из решений, и я постараюсь придумать собственную минималистичную реализацию, надеясь, что ситуация улучшится в будущем.

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


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

4 ответа

Решение

Информация о комплектации 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.

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

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

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

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

Другие вопросы по тегам