Разница между ASP.NET Core и ASP.NET MVC и ASP.NET Core MVC и ASP.NET
В вопросе сложность в том, что перечисленное нужно сравнивать не по одному какому то параметру.
Вы своим вопросом подразумеваете, что это — штуки, котрые относятся к одному «классу технологий» и которые в силу этого можно легко сравнить.
Чтобы в этом разобраться, надо окунуться в прошлое.
Сначала была ASP. Это была такая «слегка подправленная php-шечка от Microsoft», где в ходу было смешение html и кода, но уже была строгая типизация и возможность подключения COM-компонентов.
Это открывало широкие возможности для постороения сайтов с активным содержимым по технологии server-side, потому что JS в этот момент находился в зачаточном состоянии хорошо подходил только для рисования снежинок на главной странице в период с декабря по март.
Потом, так как абрревиатура ASP уже была известна аудитории (а Microsoft вообще очень любит трехбуквенные абревиатуры) появилась ASP.NET
Это был огромный шаг вперед, который позволил применять возможности NET Framework на серверной стороне WEB сайтов. Под «возможности» здесь подразумеваются возможности языков (C#, VB.NET, и, кажется, F# — и все они КОМПИЛИРОВАЛИСЬ в промежуточный байт-код, котрый выполнялся при помощи NET runtime). Но, так как NET Framework (версий 1, 2, 3, 3.5, 4, 4.5, 4.51, 4.52, 4.6, 4.7 и 4.8) был только под винду, он был гвоздями прибит к IIS и Microsoft Server, что, конечно же, вызывало иронические усмешки у всех бородатых линукс-админов.
Одновременно появилась ASP.NET MVC, что обозначало применение шаблона Model-View-Сontroller в ASP.NET. Фактически, вместо беспорядочно сгруппированного кода, предлагалось разделить код на сущности, относящиеся к Model, View или Controller.
Для того, чтобы стать кроссплатформенной, была рождена .NET Core. Которая одинаково работает как на винде, так и на линуксе. Это огромный фреймворк, по масштабу сопоставимый с Spring’ом из мира Java. Его часть, имеющая отношение к WEB, названа ASP.NET Core. В ней была возможность применения шаблона MVC, и именно это, скорее всего, подразумевается под ASP.NET Core MVC.
В силу того, что писать много аббреиатур подряд скучно, названия стали сокращать, например, с ASP.NET Core MVC до .NET Core MVC, и вообще — кто во что горазд.
Фактически, в .NET Core есть:
.NET Core — весь фреймворк.
ASP.NET Core — часть фреймворка, заточенная под WEB.
ASP.NET Core MVC — часть фреймворка, заточенная под WEB, в которой применен шаблон MVC
Поэтому, возвращаясь к вопросу, при сравнении нужно пользоваться такой схемой:
- В названии технологии есть ASP или ASP.NET? Если да — значит, эта технология имеет отношение к WEB. Если просто «ASP» — скорее всего, .NET просто «забыли дописать», потому что технология ASP очень древняя и сейчас уже не применяется.
- В названии технологии есть Core? Если да — то технология кросспалтформенная и основана на фреймворке .NET Core. Если в названии технологии есть Framework или просто слово Core отсутствует — скорее всего, имеется в виду фреймворк NET Framefork, работающий только под Windows
- В названии технологии есть MVC? Если да — то применяется шаблон разделения на Model-View-Controller, если нет — обходятся как то без этого. Или сократили часть аббревиатуры, посчитав, что все и так догадаются.
Таким образом, ответ на Ваш текущий вопрос (а до редактиования вопроса у Вас упоминалось еще использование шаблона MVC) такой:
| Название технологии | WEB или общего назначения? | Кроссплатформенная? | | | | | | ASP.NET Core | WEB | да | | | | | | .NET Core | общего назначения | да | | | | | | ASP.NET? | WEB | нет, только Windows |
.NET Framework и ASP.NET — платформы для веб‑разработки
.NET Framework — это программная платформа, выпущенная компанией Microsoft, которая подходит для разных языков программирования. ASP.NET — технология создания веб‑приложений и веб‑сервисов от компании Microsoft. Она является составной частью платформы Microsoft .NET и развитием более старой технологии Microsoft ASP.
Считается, что платформа .NET Framework явилась ответом компании Microsoft на набравшую к тому времени большую популярность платформу Java. ASP.NET основывается на Common Language Runtime: разработчики могут писать код для ASP.NET, используя практически любые языки программирования, некоторые из которых входят в комплект .NET Framework (C#, Visual Basic.NET и JScript .NET), а другие могут быть установлены дополнительно (IronRuby, IronPython, PHP, Perl, Smalltalk, Haskell и др.). Тем не менее, нередко используется не вполне корректный термин «.NET-программист», который, видимо, характеризует разработчика на любом языке программирования, который может быть использован в .NET‑проекте.
Некоторые особенности ASP.NET:
- Компилируемый код выполняется быстрее, а большинство ошибок отлавливается ещё на стадии разработки.
- Расширяемый набор элементов управления и библиотек классов, ускоряющий разработку.
- Возможность кэширования всей страницы, её частей или данных, используемых на странице.
- Возможность разделения визуальной части и бизнес‑логики по разным файлам, есть возможность выделять часто используемые шаблоны пользовательских элементов управления, таких как меню сайта, наличие master‑страниц для задания шаблонов оформления, поддержка AJAX (расширение ASP.NET AJAX).
- Расширяемые модели событий, обработки запросов и серверных элементов управления.
- Поддержка CRUD‑операций при работе с таблицами через GridView.
- Возможно создание веб‑приложений, которые реализуют шаблон Model-View-Controller (ASP.NET MVC Framework).
.NET достаточно широко распространён в сфере разработки внутрикорпоративных программных продуктов, но в веб‑разработке всё же встречается относительно редко, как и другие программные продукты корпорации Microsoft. Поэтому найти разработчиков для веб‑проекта бывает достаточно непросто. Использование .NET «тянет» за собой покупку и иного ПО от корпорации Microsoft (серверной ОС, СУБД и т.п.). Технология достаточно дорогая в разработке и сопровождении: кроме затрат на покупку лицензий на необходимое ПО существенный вклад в бюджет проектов вносят высокие зарплаты разработчиков.
Статья опубликована в 2014 году
Тематические статьи
Почему стоит выбрать Ruby on Rails для разработки веб‑приложения или сайта?
Разработку сложных веб‑проектов с использованием фреймворков на текущий момент экономически целесообразно вести на одном из следующих языков: PHP, Ruby, Python, Java, C#. Каждый из языков имеет далеко не по одному фреймворку, написанному на нём.
В этой статье мы не будем рассматривать преимущества языка программирования Ruby и фреймворка Ruby on Rails с технической стороны, а рассмотрим факторы, влияющие на выбор этой платформы с точки зрения бизнеса.
Разница между .NET и ASP.NET
Ключевое отличие: .NET — это программная структура / инфраструктура, разработанная Microsoft, используемая для разработки, запуска и развертывания приложений нового поколения и веб-служб XML. ASP.NET является частью веб-приложения .NET Framework, которая используется для создания динамических веб-приложений и веб-сервисов на любом языке .NET.

.NET — это программная структура / инфраструктура, разработанная Microsoft, используемая для разработки, запуска и развертывания таких приложений, как консольные приложения, оконные службы, веб-службы и веб-приложения. ASP.NET — это веб-приложение .NET Framework, которое используется для создания динамических веб-страниц. Следовательно, разница заключается в ASP.NET, поскольку он специально предназначен для веб-приложений, тогда как .NET может поддерживать как консольные, так и веб-приложения. Common Language Runtime является важным компонентом .NET, который используется для предоставления независимой от языка платформы, а также выполняет такие задачи, как управление памятью, обработка исключений, отладка, безопасность кода и компиляция. Библиотека классов .NET Framework содержит множество повторно используемых классов, интерфейсов и т. Д .; все вместе известные как типы. Система Common Type системы определяет, как типы объявляются, используются и управляются во время выполнения. Он также поддерживает межъязыковую интеграцию. Весь исходный код .NET компилируется в промежуточный язык, также известный как IL, и затем IL преобразуется в машинный код. .NET Framework предоставляет такие преимущества, как
1. Обеспечивает согласованную объектно-ориентированную инфраструктуру программирования.
2. Развертывание программного обеспечения сведено к минимуму, а также проблемы с версиями.
3. Согласованность в разработке оконных и веб-приложений.
4. Способствует безопасному выполнению кода
.NET Framework переместил разработку приложений в сторону сервера, а не клиента. Благодаря CLR многие языки работают как языки .NET, но при условии, что они должны следовать правилам и стандартам, установленным CLR.

ASP.NET — это эволюция от ASP. ASP.NET использует языки .NET, такие как C #, C ++, Jscript.NET, VB.NET и т. Д., Для создания HTML-страниц. .NET поддерживает разработку как на стороне клиента, так и на стороне сервера, а ASP.NET предоставляет расширяемую архитектуру управления на стороне сервера и модель привязки данных на стороне сервера. ASP.NET также может называться набором классов .NET, которые обрабатывают HTTP-запрос и затем генерируют HTTP-ответ. ASP.NET построен на платформе .NET, поэтому можно использовать любой язык программирования .NET. Когда создается экземпляр страницы, сначала происходит событие, называемое PreInit, он вызывает метод Page_PreInit, используемый для установки темы страницы. Далее происходит событие Init, вызывая метод Page_Init, который инициализирует объекты страницы. Затем происходит событие Load, и выполняется обработчик события Page_Load. Событие Init возникает только один раз, когда страница запрашивается впервые. Событие Load возникает при каждом запросе. Получается ответ, а затем происходит событие Unload, которое вызывает Page_Unload, что обычно освобождает ресурсы, используемые страницей.
В чем разница между C#, .NET, ASP.NET, WEB Forms?
Всем привет, объясните пожалуйста разницу между C#, .NET, ASP.NET, web forms (если можно не сильно бросайте камнями).
Что для чего нужно и что за умное словечко «платформа»? Если можно то с аналогией для Java.
- Вопрос задан более трёх лет назад
- 3660 просмотров
Комментировать
Решения вопроса 1

Станислав Макаров @Nipheris Куратор тега C#
C# это Java.
.NET это CLR и различные библиотеки (какие — зависит от формы поставки .NET, например .NET Framework, Silverlight или .NET Core).
CLR это JVM.
CIL это байткод Джавы.
ASP.NET MVC это Spring.
ASP.NET Web Forms это тоже веб-фреймворк, только с другой идеологией (более старый, чем MVC).
Что для чего нужно и что за умное словечко «платформа»?
Непонятен контекст.
Ответ написан более трёх лет назад
Нравится 3 5 комментариев