Вопрос

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

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

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

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

  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 Cassette больше нет необходимости включать кофейный скрипт и другие функции Cassette, если вам просто нужны пакеты и разрешение зависимостей js. Так что на данный момент Cassette для меня явный победитель.

Это было полезно?

Решение

Информация о связке 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 также добавлена новая функция, которая делает его легко уменьшить или «минимизировать» размер загружаемого контента.

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

Другие советы

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

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

Cassette по-прежнему является интересной альтернативой, поскольку в ней есть встроенная поддержка less и coffescript.Он также поддерживает шаблоны HTML, если вас интересуют фреймворки mvc на стороне клиента (магистраль, нокаут и т. Д.)

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top