Пакеты кассет и пучков MVC4
В настоящее время я работаю над прототипом решения 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-разрешение зависимостей. Итак, на данный момент Кассетт явный победитель для меня.
Ответы
Ответ 1
Информация об объединении 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.
Ответ 2
В конечном итоге я использовал Cassette в своем последнем проекте, и он работает очень хорошо. На самом деле не очень много настроек, если вы используете NuGet, поэтому я думаю, что было бы не слишком сложно использовать Cassette, а затем переключиться позже, если вы захотите.
Еще одна вещь, которую следует учитывать, - это то, что Cassette делает компиляцию меньше. Я не уверен, что слияние MVC4 делает это или нет, так как я не успел его прочитать.
Ответ 3
Кассета по-прежнему интересная альтернатива, поскольку она имеет встроенную поддержку для меньшего количества и coffescript. Он также поддерживает HTML-шаблоны, если вас интересуют рамки mvc на стороне клиента (магистраль, нокаут и т.д.).
Ответ 4
Так же, как обновление для этого, в пакете обновления 2 для Visual Studio 2012 добавлена поддержка LESS и CoffeeScript, поэтому она начинает выглядеть все более и более, так как было бы лучше добавить, какие преобразования вам нужны для собственной реализации Bundling/Minification, поддерживаемые в MVC4, чем в Cassette в долгосрочной перспективе.