Мені хотілося б знати, що, чому або коли краще вибрати 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 сторінок на більш РЕСТЕВНУ "веб-платформу" шаблонових поглядів, що розділяє логіку коду між моделлю (бізнес / об'єкти даних) , вид (те, що бачить користувач) та контролери (з'єднання між ними). Модель WebForms (aspx) була спробою Майкрософт використовувати складне вбудовування в JavaScript для імітації більш стаціонарного додатка, схожого на програму WinForms у комплекті з подіями та життєвим циклом сторінки, яка змогла б зберігати власний стан зі сторінки на сторінку.
Вибір використовувати ту чи іншу завжди буде суперечливим, оскільки є аргументи за і проти обох систем. Мені подобається простота в архітектурі MVC (хоча маршрутизація - це все, але не просто) та легкість синтаксису Razor. Я вважаю, що архітектура WebForms занадто важка, щоб бути ефективною веб-платформою. Незважаючи на це, існує чимало випадків, коли фреймворк WebForms забезпечує дуже лаконічну та корисну модель із багатою структурою подій, яка чітко визначена. Це все зводиться до потреб програми та уподобань тих, хто її будує.
Razor - це двигун перегляду для ASP.NET MVC, а також движок шаблонів . Код Razor та вбудований код ASP.NET (код, змішаний з розміткою), спочатку збираються та перетворюються на тимчасову збірку перед виконанням. Таким чином, як і C # і VB.NET, вони компілюються в IL, що робить їх взаємозамінними, і Razor, і Inline код є взаємозамінними.
Тому це більше питання стилю та інтересу. Мені більше подобається бритва, а не вбудований код 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 може мати файли Code-Behind, що дозволяє вбудовувати логіку в окремий файл, який компілюється разом із представленням даних. У той час як спільнота розробки програмного забезпечення зростає, коли архітектури та модель Smart Client є щільно поєднаною як погана практика , це був головним способом виконання дій, і це все ще можливо з файлами .aspx / .ascx. Бритва, навмисно, не має такої якості.
Файли Cshtml - це ті, які використовує Razor, і як зазначено як відповідь на це питання , їх головна перевага полягає в тому, що вони можуть бути відображені всередині тестів одиниць. Різні відповіді на цю іншу тему принесуть багато інших цікавих моментів.