Имеет ли смысл использовать голый ASP.NET? [требует правки]

396
07 февраля 2017, 18:16

Имеет ли смысл использовать голый ASP.NET? Есть ли в этом какая-нибудь необходимость когда-нибудь?

Самое актуальное в .NET для создания Web App-это MVC?

Answer 1

"Голого ASP.NET" не существует. Существуют такие технологии, как ASP.NET WebForms, ASP.NET MVC и ASP.NET WebApi. Еще есть технология ASP.NET WebPages, основанная на движке Razor.

И под "голым ASP.NET" могут пониматься разные вещи.

Вариант 1 - ASP.NET WebForms

Признаки WebForms - файлы с расширениями .aspx, .ashx, .asmx

WebForms появились исторически первыми, и по традиции иногда называются просто ASP.NET. Использовать их в новых проектах нет никакого смысла - они просто устарели.

Вариант 2 - ASP.NET WebPages без ASP.NET MVC

Признаки WebPages - файлы с расширениями .cshtml

Обычно эти файлы "лежат" в папке Views и не могут открываться из браузера напрямую, вместо этого они вызываются из контроллера ASP.NET MVC. Но если их разместить за пределами папки Views - их можно будет открыть прямо из браузера!

Ничего магического в названии папки Views нет - там просто по умолчанию валяется web.config, который запрещает обращаться к cshtml-файлам напрямую

В некотором смысле, одиноко лежащий вне Views .cshtml-файл можно назвать "голым ASP.NET WebPages". И такое решение вполне может иметь смысл - если надо по-быстрому отобразить динамическую страницу без особых заморочек наподобие того как это делают PHP или JSP.

Вариант 3 - ASP.NET WebApi + статические файлы в веб-проекте ASP.NET MVC

Фактически, это два разных проекта (серверная и клиентская части), добавленные в пустой проект ASP.NET MVC для удобства разработки (как вариант - в два разных пустых проекта).

Так делать имеет смысл, поскольку пустой проект ASP.NET MVC предоставляет больше инструментальных возможностей, нежели пустой веб-проект или вин-сервис (вин-сервис даже не запустить без студии без дописывания отдельной "отладочной" ветки запуска в Main).

Но перед релизом лично я бы все же вынес ASP.NET WebApi в отдельный self-hosted вин-сервис.

Вариант 4 - просто статический сайт под видом ASP.NET MVC-проекта

Так делать не очень умно, ASP.NET MVC статическому сайту не требуется.

READ ALSO
Почему при передаче параметра в массиве POST, условие не срабатывает?

Почему при передаче параметра в массиве POST, условие не срабатывает?

Ничего не отображается, я уже облегчал, убрал, то что идёт после && и всё рано не работает, почему у меня постоянно не работают такие простые...

473
Не могу получить переменные с двух foreach

Не могу получить переменные с двух foreach

Добрый день! Помогите начинающему пожалуйста! Получаю через api ЯндексДиск список папок:

474
Контракты в Laravel 5.4

Контракты в Laravel 5.4

Где в Laravel 54 хранятся контракты?

549