Лучшие практики javascript для разработчиков asp.net mvc

Извините, что вопрос настолько субъективен.

Я ищу некоторые практические примеры того, как лучше управлять javascript в приложениях asp.net mvc.

До jQuery я старался избегать использования javascript как можно больше. Теперь я использую это много, но чувствую, что, возможно, пропустил некоторые рекомендации/рекомендации по структурированию кода javascript в более крупных веб-приложениях.

Некоторые вещи, за которые я виноват и хочу отойти от:

  • Встроенный javascript в моих представлениях. Я не говорю о массах кода, но для меня не редкость иметь некоторый код инициализации для каждого представления.
  • Один большой "сайт" javascript файл. По мере роста списка плагинов, используемых в моем приложении (например, jquery ui), тоже моя функция "запуска", которая инициализирует каждый плагин. Часто это делается для того, чтобы избежать проблемы 1 (добавление встроенного javascript). Возможно, файл javascript для представления является лучшим решением?
  • Все кажется очень процедурным. Я привык работать объектно-ориентированным способом в .net, но когда дело доходит до javascript, это, кажется, выходит из окна. Теперь я знаю, что ООП, безусловно, возможно, и рекомендуется с помощью javascript, но я мог бы сделать некоторые практические примеры того, как я должен делать это в контексте реального веб-приложения.
  • Структура имен/структура проекта. Я видел несколько примеров пространства имен javascript (в силу объектов) и вроде этого подхода, но опять-таки мог сделать с некоторыми дополнительными знаниями.

Любые сайты, книги и т.д., которые могут рекомендовать люди, будут оценены.

Ответ 1

Я думал, что брошу свои 2 цента.

  • Лучшая практика предлагает не использовать JScript в представлениях, и это, как я нашел, можно предотвратить, используя HTML-помощники, содержащие JScript или push JScript в JS файлы и инициализировать его в вашем помощнике HTML. Это то, что использует сторонний элемент управления MVC (например, Telerik). Если вы решите нажать JScript в свой контроллер, вы обнаружите, что он становится довольно грязным.

  • Я часто оказываюсь в том же сценарии, где у меня есть JS файл для каждого представления, но его можно объединить, чтобы иметь один JS для каждого модуля. Это еще раз зависит от того, насколько сложным может быть ваш код. Если вы обнаружите, что многие представления имеют одинаковую инициализацию, вы можете перейти к базовому виду. Это также считается лучшей практикой.

  • Вы обнаружите, что JScript довольно OO, и это связано с тем, как JScript использует JSON. Я считаю, что гибкость JScript заставляет его казаться отходить от ООП. Мой ограниченный опыт работы с JScript заключается в том, чтобы держать его коротким и кратким, и это приведет к повторному использованию повторно используемых JScripts.

  • Я думаю, что это может быть связано с практикой в ​​JScript. Самая большая проблема, которую я нахожу здесь, - это не с интервалом между именами, а как избежать дублирования/двойной загрузки JScripts. Если представления должны быть "самодостаточными", теоретически следует загружать собственные JScripts, но это заставит JScripts загружаться несколько раз или даже создавать конфликты. Опять же, хороший помощник HTML может спасти вас здесь (aplogies, у меня нет хорошего примера, но Google это и вы не ошибетесь).

В целом, JScript очень мощный и открывает веб-программирование на совершенно новый уровень. JScript будет все больше и больше частью веб-платформы, особенно когда все перемещаются в HTML 5. С MVC и JSript существует 100 различных способов сделать то же самое, и лучшая практика может занять вас до сих пор. Остальное зависит от вас, чтобы решить, в зависимости от того, чего вы пытаетесь достичь, кто ваша целевая аудитория и какие браузеры вы поддерживаете.

Ответ 2

Я использовал описанный здесь подход:

http://weblogs.asp.net/jaimedelpalacio/archive/2011/03/23/a-way-to-organize-your-javascript-code.aspx

Мне было бы интересно узнать, что вы об этом думаете.

Обратимся к аналогичному вопросу о SO

Есть ли лучший способ организовать javascript в одном файле с определенным кодом для нескольких страниц?

Ответ 3

Для меня библиотеки, такие как KnockoutJS, помогли мне организовать мой JS-код, он действительно мощный, я использовал его для нескольких проектов, и он работал очень хорошо. (Я также разработчик mpc asp.net, но это относится и к другим технологиям, кроме того, парень, который его изобрел, имеет большой опыт работы с aspnet mvc)