В настоящее время я работаю над прототипом решения ASP.NET MVC 3, которое будет использоваться в качестве базы для нескольких перезаписываемых проектов (из веб-форм).
Одна из целей, которые у меня есть, - реализовать некоторое управление script в приложении, в отличие от тех, которые у нас есть.
MVC 3 имеет дефект IMHO: если вам нужен конкретный script, указанный на частичном представлении или представлении шаблона - вы можете потерять контроль над тем, где блок script находится в визуализированном HTML или должен указать каждый зависимый файл javascript на родительском представлении.
Я серьезно рассматриваю возможность использования http://getcassette.net/ в качестве основы для решения описанной проблемы. Однако последний выпуск бета-версии MVC4 снова заставил меня снова сомневаться: MVC Bundles выглядит очень похоже на Cassette Bundles, и я снова запутался:
-
Нужно ли использовать кассету сейчас и переносить на пакеты MVC4?
-
Должен ли я реализовать некоторый упрощенный менеджер script сам (вспомогательный класс типа scripts в предварительном просмотре MVC4), а затем перейти к MVC4
-
Или мне нужно интегрировать кассету в проект и надеяться, что она будет более надежной, чем MVC-imlementation (мне действительно не нравится эта опция прямо сейчас из-за наличия большого количества кассет зависимостей).
У меня нет опыта работы с самой Кассеткой, и мне очень сложно сделать сравнение, и я бы оценил любые ответы или подсказки.
EDIT: Я просто подумал, что есть еще один вариант: установка пакета beta nuget для комплектации MVC: https://nuget.org/packages/Microsoft.Web.Optimization
ВЫВОД: Чем больше я смотрю на реализацию пакета MVC4, тем большую разницу я замечаю: пакеты MVC4 не адресуют проблему MVC3, описанную выше, - они просто связывают и минимизируют. Кроме того, кассета не только способна отображать теги script в определенном месте, но также способна упорядочить их в правильном порядке, что не является тривиальным. Поэтому на данный момент я не удовлетворен ни одним из решений, и я попытаюсь придумать свою минималистичную реализацию, надеясь, что ситуация улучшится в будущем.
Но если вы не боитесь добавлять в свой проект 5 + и связывать изменения web.config, переходите на кассету. Я надеюсь, что в какой-то момент он будет обновлен, чтобы использовать объединение MVC внутри, чтобы уменьшить дублирование функций, и, надеюсь, станет более модульным.
UPDATE: Начиная с версии 2.0 Cassette больше не нужно включать кофе script и другие функции кассеты, если вам просто нужны пакеты и js-разрешение зависимостей. Итак, на данный момент Кассетт явный победитель для меня.