Я работаю со своей командой разработчиков ASP.NET, чтобы попытаться создать «лучший» HTML-код (т.е. чище) при рендеринге страниц. На данный момент .NET имеет неприятную тенденцию делать такие вещи, как выгрузка JavaScript на страницу, что делает его обязательным требованием для элементов управления формами и не позволяет формам работать, когда JS недоступен. В некоторых случаях мы изо всех сил пытаемся преодолеть это, не добавляя заметный кусок к оценкам времени разработки.
Раньше я работал с MVC - через Struts в Java - и обнаружил, что в этом случае я смог сохранить HTML-страницы именно такими, какими я хотел их видеть. (Эта точка зрения основана на статическом HTML "в лучшем случае", который я обычно разрабатывал заранее, а затем передал Java-программистам для заполнения пробелов.)
Это сработало очень хорошо, и мы смогли создать одни из «лучших» веб-страниц из CMS, которые я видел. Может ли .NET MVC дать мне необходимое разделение, или было бы ложной экономией откладывать драгоценное время на разработку, чтобы проверить это?
Если .NET MVC не предоставит мне такого детального контроля над разделением, любые рекомендации по методам программирования .NET, библиотекам и т. д. Могут быть действительно полезны.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


В зависимости от движка просмотра, который вы собираетесь использовать. да.
Но вы можете легко проверить это, посмотрев на источник страницы на предмет переполнения стека. Это не дзен-сад, но довольно чистый.
Еще несколько уточнений:
Рендеринг страниц выполняется механизмом просмотра. Вы можете использовать стандартный движок просмотра или существующие, такие как nVelocity или Brail, как и в случае с монорельсом. http://www.chadmyers.com/Blog/archive/2007/11/28/testing-scottgu-alternate-view-engines-with-asp.net-mvc-nvelocity.aspx
Поскольку движок представления отвечает за создание HTML, результат зависит от вашего выбора. Но большинство движков просмотра в этом отношении лучше, чем ванильный ASP.Net.
ASP.NET MVC Framework даст вам гораздо более знакомое разделение. Поскольку в MVC Framework нет состояния просмотра и т. д., Вам не придется беспокоиться о том, что JavaScript будет сброшен на ваши страницы. Вы увидите только те вызовы JavaScript, которые вы добавляете вручную.
Вы можете по большей части разделять HTML / CSS / JS, как если бы вы делали это в другой структуре.
Есть ли особые предостережения, о которых мне следует знать?
Не совсем - это довольно просто, если вы исходите из точки зрения использования HTML и заполнения дыр фреймворком ASP.NET MVC. Я бы порекомендовал заглянуть на сайт Стивена Вальтера: weblogs.asp.net/StephenWalther, чтобы найти множество руководств и asp.net/mvc.
@Wrestlevania сказал:
any recommendations for .NET coding practices, libraries, etc. which might would be really helpful.
Я стараюсь поддерживать высокий уровень разделения при кодировании в ASP.Net. Я обнаружил, что если я избегаю элементов управления asp и придерживаюсь как можно большего количества базовых элементов html, я могу избежать любой ситуации, когда ASP.Net будет склонен вводить дополнительный CSS или JS на мою страницу. Например, используйте span вместо asp: literal, button вместо asp: button и т. д.
Единственный элемент управления ASP, который я использую, - это повторитель, который используется для создания таблицы. Любую необходимую мне функциональность, похожую на элемент управления asp, я либо реализую на javascript, либо использую фреймворк, например jquery.
Мы частично работаем над ограничениями такого рода, но я сталкиваюсь с сопротивлением (отдельная проблема!), Чтобы полностью отказаться от элементов управления ASP. В настоящее время я использую jQuery для большей части кода JavaScript, и, помимо изменения некоторых идентификаторов в ASP, он работает хорошо. Спасибо.
Asp.Net MVC поможет вам разделить html / css / js, поскольку в нем будет меньше функций, которые не позволят вам хранить их отдельно.
Например, помощники Html обычно возвращают только это: Html. С этого момента вы можете по своему усмотрению сохранить всю информацию о стиле, связанную только с атрибутами класса.
Подумайте также о методах, которым вы обычно следуете с такой библиотекой, как jQuery. Это отличный пример того, как сохранить функциональность сценария полностью в ваших js и вне вашего html, применяя поведение обработки событий к элементам при загрузке страницы на основе таких вещей, как тип элемента, класс и идентификатор.
Не могли бы вы уточнить / привести примеры? Я не программист ASP, поэтому не понимаю, что вы имеете в виду. Я пытаюсь найти альтернативы, чтобы представить их своей команде. Заранее спасибо.