none
Отладочные и релизные версии javascript в проектах MVC RRS feed

  • Вопрос

  • Здравствуйте коллеги.

    Активно разрабатывал в WebForms, сейчас есть необходимость освоить MVC и портировать приложение на него. Возник вопрос по поводу разделения версий скриптов для отладочного и релизного режима.

    В WebForms, скрипты подключенные через ScriptRefference коллекции объекта ScriptManager'a самостоятельно подключали к странице отладочные "*.debug.js" или релизные "*.js" файлы, в зависимости от настройки в web.config или определения режима самого СкриптМэнэджера.

    В MVC нечто подобное, насколько я понял, из коробки, реализуется с помощью bundles, но только для версии MVC > 2 или 3. UrlHelper.Content судя по исходникам функционала, подобного СкриптМэнэджеру не предоставляет.

    Какие есть варианты решения ситуации:

    1. Расширить UrlHelper самостоятельно, и внести туда нужный функционал?

    2. Перейти на новую версию MVC и использовать бандлы (тогда сразу же сопутствующий вопрос - насколько вообще идеологически оправданно бандловать каждый файл отдельно, т.к. пока сгруппировать файлы в коллекции ни по каким признакам невозможно)?

    3. Есть механизм реализующий функционал СкриптМэнэджера в части инджэкта отладочных/релизных версий файлов МВЦ из коробки, о котором я пока не знаю?

    Заранее спасибо!

    20 февраля 2015 г. 6:15

Ответы

  • "Что делать тем, у кого версия 3? Вариант перейти на более новую версию принимается как самый последний." - использовать более новую версию, если у вас MVC, а не Web Forms то особых сложностей в этом нет. Хотя возможно и со старыми: тут и тут.

    " Идеологический вопрос был следующим. Представим, что есть 3 скрипт файла, большие, с абсолютно не зависящим друг от друга функционалом. Ну и скажем, 3 страницы, где используется 1 из таких файлов. Бандловать все 3 файла в одну коллекцию бесмысленно, т.к. будем на страницы загружать 2/3 ненужных скриптов." - да верно.

    "Т.е. бандловать надо отдельно каждый файл. Т.е. мне и интересно - нормальная ли это практика бандловать отдельно по файлу, как в описанном выше случае. Если да - то отлично, значит это нормальный паттерн." - да нормально, вы можете бандловать по отдельности, а запрашивать как хотите, по одному, по два, по три...


    Сделаем содержимое сообщества лучше, вместе!

    • Помечено в качестве ответа Olisevich_Eugene 24 февраля 2015 г. 4:02
    20 февраля 2015 г. 15:44
    Модератор

Все ответы

  • Судя по всему вы давно уже не интересовались новшествами ASP.NET. Бандлы и прочее уже едины для всей технологии. СкриптМэнэджер перестаёт быть актуальным, если вы неи спользуете WebForms, да и в этом случае я бы посоветовал вам отделять скрипты от разметки.

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

    "Есть механизм реализующий функционал СкриптМэнэджера в части инджэкта отладочных/релизных версий файлов МВЦ из коробки, о котором я пока не знаю?" - в принципе бандлы это и делают. Я бы посоветовал вам почитать тут.


    Сделаем содержимое сообщества лучше, вместе!

    20 февраля 2015 г. 6:45
    Модератор
  • Спасибо за ответ.

    Давайте тогда уточним для понимания:

    1. Ок, бандлы это круто и я в курсе. Но, опять же - бандлы, судя по вашей же ссылке, идут в комплекте только с версии asp.net 4.5. Что делать тем, у кого версия 3? Вариант перейти на более новую версию принимается как самый последний.

    2. Идеологический вопрос был следующим. Представим, что есть 3 скрипт файла, большие, с абсолютно не зависящим друг от друга функционалом. Ну и скажем, 3 страницы, где используется 1 из таких файлов. Бандловать все 3 файла в одну коллекцию бесмысленно, т.к. будем на страницы загружать 2/3 ненужных скриптов. Т.е. бандловать надо отдельно каждый файл. Т.е. мне и интересно - нормальная ли это практика бандловать отдельно по файлу, как в описанном выше случае. Если да - то отлично, значит это нормальный паттерн.

    20 февраля 2015 г. 7:03
  • "Что делать тем, у кого версия 3? Вариант перейти на более новую версию принимается как самый последний." - использовать более новую версию, если у вас MVC, а не Web Forms то особых сложностей в этом нет. Хотя возможно и со старыми: тут и тут.

    " Идеологический вопрос был следующим. Представим, что есть 3 скрипт файла, большие, с абсолютно не зависящим друг от друга функционалом. Ну и скажем, 3 страницы, где используется 1 из таких файлов. Бандловать все 3 файла в одну коллекцию бесмысленно, т.к. будем на страницы загружать 2/3 ненужных скриптов." - да верно.

    "Т.е. бандловать надо отдельно каждый файл. Т.е. мне и интересно - нормальная ли это практика бандловать отдельно по файлу, как в описанном выше случае. Если да - то отлично, значит это нормальный паттерн." - да нормально, вы можете бандловать по отдельности, а запрашивать как хотите, по одному, по два, по три...


    Сделаем содержимое сообщества лучше, вместе!

    • Помечено в качестве ответа Olisevich_Eugene 24 февраля 2015 г. 4:02
    20 февраля 2015 г. 15:44
    Модератор