Следует ли мне изучать ASP.NET MVC или ASP.NET Core?
В основе ASPdotNET Core лежит паттерн MVC. Таким образом, с ASPdotNET Core вы де-факто будете создавать MVC-приложения.
Теперь проясним некоторые другие вопросы.
В самом начале эры ASPdotNET не было всех этих модных MVC, MVVM, MVP ( эти шаблоны существовали, однако не использовались на практике при создании веб-приложений ) шаблоны, и Microsoft начала с концепции, похожей на Windows Forms, которая уже в те времена была очень популярна благодаря простоте создания пользовательских интерфейсов (хотя код почти всегда был беспорядочным из-за отсутствия надлежащей реализации разделения задач). Поэтому Microsoft создала платформу для создания веб-приложений с похожей концепцией под названием ASPdotNET Web Forms.
Web Forms были хороши, однако они пытались превратить нестационарную природу HTTP в государственную, ViewState rubbish появился, чтобы обеспечить некоторый способ сохранения состояния приложения между запросами. Это было относительно удобно с точки зрения разработчика, однако в больших приложениях это был ад для пользователей, так как из-за ViewState размер запросов резко увеличивался. Также Web Forms предоставляли слабый контроль над разметкой и стилями. Чтобы что-то изменить, вам нужно было продать свою душу. В более поздних версиях Web Forms ситуация несколько улучшилась, но все равно оставались проблемы.
Ruby in Rails начинал становиться очень популярным, поскольку был построен по паттерну MVC с правильным разделением проблем и тому подобными вещами (Модели были предназначены для бизнес-части приложения, Представления - для представления, а Контроллеры были мостами для соединения Моделей и Представлений, обработки запросов и отправки ответов - короче говоря, очень удобная и комфортная вещь).
Поэтому Microsoft решила создать нечто подобное, и появился ASPdotNET MVC. Он быстро стал популярным, и, очевидно, Microsoft поняла, что это правильный способ делать вещи. Проблема заключалась в том, что он был построен поверх существующего фреймворка ASPdotNET, поэтому различные ненужные вещи остались еще со времен Web Forms, также он не был кроссплатформенным, и вам нужно было размещать его только в IIS (на Windows). И тогда они решили создать что-то с нуля со всеми преимуществами паттерна MVC, но без лишних накладных расходов. Таким образом, ASPdotNET Core теперь кроссплатформенный (внутри есть новый кроссплатформенный http-сервер под названием Пустельга ).
Резюме
Начните с ASPdotNET Core и используйте .NET Core в качестве фреймворка вместо .NET Framework (именно здесь вы достигнете кроссплатформенных преимуществ). Если вам когда-нибудь понадобится поддерживать или работать на более старых версиях ASPdotNET, принципы остаются теми же, так что не беспокойтесь.
Извините, что долго отвечаю, но просто хочу прояснить ситуацию.
Ваше здоровье!
Comments