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