Я хотел бы знать, что, почему и когда лучше выбирать cshtml, а что, почему или когда лучше выбирать технологии aspx? Для чего предназначены эти две технологии?
Спасибо,
Я хотел бы знать, что, почему и когда лучше выбирать cshtml, а что, почему или когда лучше выбирать технологии aspx? Для чего предназначены эти две технологии?
Спасибо,
Ответы:
Как ответили другие люди .cshtml
(или, .vbhtml
если это ваш вкус), предоставляет отображение обработчика для загрузки механизма MVC. .aspx
Расширение просто загружает Aspnet_isapi.dll , который выполняет компиляцию и обслуживает до веб - форм. Разница в сопоставлении обработчиков - это просто метод, позволяющий им сосуществовать на одном сервере, позволяя приложениям MVC и приложениям WebForms жить под общим корнем.
Это позволяет http://www.mydomain.com/MyMVCApplication быть действительным и обслуживаться с правилами MVC вместе с http://www.mydomain.com/MyWebFormsApplication, чтобы быть действительным как стандартная веб-форма.
Изменить:
Что касается разницы в технологиях, шаблонная структура MVC (Razor) предназначена для возврата страниц .Net на более RESTful «веб-платформу шаблонных представлений, разделяющих логику кода между моделью (бизнес-объекты / объекты данных). , представление (то, что видит пользователь) и контроллеры (связь между ними). Модель WebForms (aspx) была попыткой Microsoft использовать сложное встраивание javascript для имитации приложения с отслеживанием состояния, похожего на приложение WinForms, в комплекте с событиями и жизненным циклом страницы, которые могли бы сохранять свое состояние от страницы к странице.
Выбор того или иного варианта всегда будет спорным, потому что есть аргументы за и против обеих систем. Мне, например, нравится простота архитектуры MVC (хотя маршрутизация совсем не проста) и простота синтаксиса Razor. Я считаю, что архитектура WebForms слишком тяжелая, чтобы быть эффективной веб-платформой. При этом существует множество случаев, когда фреймворк WebForms предоставляет очень сжатую и удобную модель с богатой четко определенной структурой событий. Все сводится к потребностям приложения и предпочтениям его разработчиков.
Razor - это механизм просмотра для ASP.NET MVC, а также механизм шаблонов . Код Razor и встроенный код ASP.NET (код, смешанный с разметкой) сначала компилируются, а перед выполнением превращаются во временную сборку. Таким образом, так же, как C # и VB.NET оба компилируются в IL, что делает их взаимозаменяемыми, коды Razor и Inline взаимозаменяемы.
Поэтому это скорее вопрос стиля и интереса. Мне удобнее пользоваться razor, чем встроенным кодом ASP.NET, то есть я предпочитаю страницы Razor (cshtml) страницам .aspx.
Представьте, что вы хотите получить Human
класс и отрендерить его. В файлах cshtml вы пишете:
<div>Name is @Model.Name</div>
В файлах aspx вы пишете:
<div>Name is <%= Human.Name %></div>
Как видите, @
знак бритвы значительно упрощает смешивание кода и разметки.
Model
используется для строго типизированных представлений, в которых вы определяете свой тип вверху с помощью model
ключевого слова.
Хотя синтаксис, безусловно, отличается между Razor ( .cshtml
/ .vbhtml
) и WebForms ( .aspx
/ .ascx
) (Razor является более кратким и современным из двух), никто не упомянул, что, хотя оба могут использоваться в качестве механизмов просмотра / шаблонов, традиционный ASP.NET Элементы управления веб-форм могут использоваться в любых файлах .aspx или .ascx (даже в сочетании с архитектурой MVC).
Это актуально в ситуациях, когда давно существующие решения проблемы были созданы и упакованы в подключаемый компонент (например, элемент управления загрузкой больших файлов), и вы хотите использовать его на сайте MVC. С Razor этого не сделать. Однако вы можете выполнять ту же внутреннюю обработку, что и в традиционной архитектуре ASP.NET с представлением веб-формы.
Кроме того, представления веб-форм ASP.NET могут иметь файлы скрытого кода, что позволяет встраивать логику в отдельный файл, который компилируется вместе с представлением. В то время как сообщество разработчиков программного обеспечения растет и считает тесно связанные архитектуры и шаблон Smart Client плохой практикой , раньше это было основным способом решения задач и все еще очень возможно с файлами .aspx / .ascx. Бритва намеренно не имеет такого качества.
Файлы Cshtml используются Razor, и, как указано в ответе на этот вопрос , их главное преимущество заключается в том, что они могут отображаться внутри модульных тестов. Различные ответы на эту другую тему принесут много других интересных моментов.