Введение в ASP.NET Core
ASP.NET Core представляет технологию для создания веб-приложений на платформе .NET, развиваемую компанией Microsoft. В качестве языков программирования для разработки приложений на ASP.NET Core используются C# и F#.
История ASP.NET фактически началась с выходом первой версии .NET в начале 2002 года и с тех пор ASP.NET и .NET развивались параллельно: выход новой версии .NET знаменовал выход новой версии ASP.NET, поскольку ASP.NET работает поверх .NET. В то же время изначально ASP.NET была нацелена на работу исключительно в Windows на веб-сервере IIS (хотя благодаря проекту Mono приложения на ASP.NET можно было запускать и на Linux).
Однако 2014 год ознаменовал большие перемены, фактически революцию в развитии платформы: компания Microsoft взяла курс на развитии ASP.NET как кроссплатформенной технологии, которая развивается как opensource-проект. Данное развитие платформы в дальнейшем получило название ASP.NET Core , собственно как ее официально именут Microsoft до сих пор. Первый релиз обновленной платформы увидел свет в июне 2016 года. Теперь она стала работать не только на Windows, но и на MacOS и Linux. Она стала более легковесной, модульной, ее стало проще конфигурировать, в общем, она стала больше отвечать требованиям текущего времени.
Текущая версия ASP.NET Core, которая собственно и будет охвачена в текущем руководстве, вышла вместе с релизом .NET 7 в ноябре 2022 года.
ASP.NET Core теперь полностью является opensource-фреймворком. Все исходные файлы фреймворка доступны на github в репозитории https://github.com/dotnet/aspnetcore/.
Архитектура и модели разработки
Текущую архитектуру платформы ASP.NET Core можно выразить следующим образом:
На самом верхнем уровне располагаются различные модели взаимодействия с пользователем. Это технологии построения пользовательского интерфейса и обработки ввода пользователя, как MVC, Razor Pages, SPA (Single Page Application — одностраничные приложения с использованием Angular, React, Vue) и Balzor. Кроме того, это сервисы в виде встроенных HTTP API, библиотеки SignalR или сервисов GRPC.
Все эти технологии базируются и/или взаимодействуют с чистым ASP.NET Core, который представлен прежде всего различными встроенными компонентами middleware — компонентами, которые применяются для обработки запроса. Кроме того, технологии высшего уровня также взаимодействуют с различными расширениями, которые не являются непосредственной частью ASP.NET Core, как расширения для логгирования, конфигурации и т.д.
И на самом нижнем уровне приложение ASP.NET Core работает в рамках некоторого веб-сервера, например, Kestrel, IIS, библиотеки HTTP.sys.
Это вкратце архитектура платформы, теперь рассмотрим моделей разработки приложения ASP.NET Core:
- Прежде всего это базовый ASP.NET Core , который поддерживает все основные моменты, необходимые для работы соввременного веб-приложения: маршрутизация, конфигурация, логгирования, возможность работы с различными системами баз данных и т.д.. В ASP.NET Core 6 в фреймворк был добавлен так называемый Minimal API — минимизированная упрощенная модель, который еще упростила процесс разработки и написания кода приложения. Все остальные модели разработки работаю поверх базового функционала ASP.NET Core
- ASP.NET Core MVC представляет в общем виде построения приложения вокруг трех основных компонентов — Model (модели), View (представления) и Controller (контроллеры), где модели отвечают за работу с данными, контроллеры представляют логику обработки запросов, а представления определяют визуальную составляющую.
- Razor Pages представляет модель, при котором за обаботку запроса отвечают специальные сущности — страницы Razor Pages. Каждую отдельную такую сущность можно ассоциировать с отдельной веб-страницей.
- ASP.NET Core Web API представляет реализацию паттерна REST, при котором для каждого типа http-запроса (GET, POST, PUT, DELETE) предназначен отдельный ресурс. Подобные ресурсы определяются в виде методов контроллера Web API. Данная модель особенно подходит для одностраничных приложений, но не только.
- Blazor представляет фреймворк, который позволяет создавать интерактивные приложения как на стороне сервера, так и на стороне клиента и позволяет задействовать на уровне браузера низкоуровневый код WebAssembly.
Особенности платформы
- ASP.NET Core работает поверх платформы .NET и, таким образом, позволяет задействовать весь ее функционал.
- В качестве языков разработки применяются языки программирования, поддерживаемые платформой .NET. Официально встроенная поддержка для проектов ASP.NET Core есть у языков C# и F#
- ASP.NET Core представляет кросс-платформенный фреймворк, приложения на котором могут быть развернуты на всех основных популярных операционных системах: Windows, Mac OS, Linux. И таким образом, с помощью ASP.NET Core мы можем как создавать кросс-платформенные приложения на Windows, на Linux и Mac OS, так и запускать на этих ОС.
- Благодаря модульности фреймворка все необходимые компоненты веб-приложения могут загружаться как отдельные модули через пакетный менеджер Nuget.
- Поддержка работы с большинством распространенных систем баз данных: MS SQL Server, MySQL, Postgres, MongoDB
- ASP.NET Core характеризуется расширяемостью. Фреймворк построен из набора относительно независимых компонентов. И мы можем либо использовать встроенную реализацию этих компонентов, либо расширить их с помощью механизма наследования, либо вовсе создать и применять свои компоненты со своим функционалом.
- Богатый инструментарий для разработки приложений. В качестве инструментария разработки мы можем использовать такую среду разработки с богатым функционалом, как Visual Studio от компании Microsoft. Также можно использовать для разработки среду Rider от компании JetBrains. Кроме того, имеющаяся оснастка .NET CLI позволяет созадвать и запускать проекты ASP.NET в консоли. И таким образом, для написания кода можно использовать обычных текстовый редактор, например, Visual Studio Code .
Введение в ASP.NET Core
21.06.2017
1682
Рейтинг: 5 . Проголосовало: 1
Вы проголосовали:
Для голосования нужно авторизироваться
ASP.NET Core представляет собой существенный редизайн ASP.NET. В этом разделе представлены новые концепции в ASP.NET Core, а также содержатся объяснения, как они помогают разрабатывать современные веб-приложения.
Что такое ASP.NET Core?
ASP.NET Core – это новый общедоступный и кроссплатформенный фреймворк для создания современного облака приложений, связанных с подключением к интернету, таких как веб-приложения, приложения для интернета вещей и мобильных серверов. Приложения ASP.NET Core могут работать на .NET Core или на полной платформе .NET Framework. Этот фреймворк был спроектирован таким образом, чтобы обеспечить оптимизированную платформу разработки для приложений, которые перемещаются в облако или выполняются локально. Он состоит из модульных компонентов с минимальной перегрузкой, поэтому вы сохраняете гибкость при построении своих решений. Существует возможность разрабатывать и запускать кроссплатформенные ASP.NET Core приложения на Windows, Mac и Linux. Фреймворк ASP.NET Core общедоступен на GitHub.
Тема связана со специальностями:
Зачем строить ASP.NET Core?
Первая предварительная версия ASP.NET появилась почти 15 лет назад как часть платформы .NET Framework. С тех пор миллионы разработчиков использовали технологию для создания и запуска отличных веб-приложений. За эти годы удалось добавить и разработать множество возможностей.
ASP.NET Core имеет ряд архитектурных изменений, которые приводят к более компактной и модульной структуре. ASP.NET Core больше не основывается на файле System.Web.dll. Он основан на наборе детальных и хорошо структурированных пакетов NuGet. Это позволяет оптимизировать приложение с помощью пакетов NuGet, которые вам необходимы. Преимущества меньшей площади поверхности приложения включают: более строгую защиту, сниженный уровень обслуживания, улучшенную производительность и снижение затрат в модели «плати за то, что используешь».
С помощью ASP.NET Core вы достигните таких основных улучшений:
- Единая история создания для Web UI и Web APIs
- Интеграция современных клиентских фреймворков и схем разработки
- Конфигурация, готовая для работы в облаке и основывающаяся на окружении
- Встроенная поддержка внедрения зависимостей
- Новый легкий и модульный HTTP-запрос
- Возможность хостироваться в IIS либо в вашем собственном приложении
- Фреймворк построен на платформе .NET Core, которая поддерживает истинное совместное управление версиями приложений
- Поставка как полные NuGet пакеты
- Новый инструментарий, который упрощает разработку современных веб-приложений
- Сборка и работа кроссплатформенных ASP.NET приложений на Windows, Linux и Mac
- Общедоступный и социально-ориентированный фремворк
Видео курсы по схожей тематике:
How to C# Стартовый
How to C# Углубленный
Abdul Rashid Hamid
Создание web UI и web APIs с использованием ASP.NET Core MVC
- Вы можете создавать службы HTTP, которые охватывают широкий круг клиентов, включая браузеры и мобильные устройства. Поддержка нескольких форматов данных и согласования содержимого – уже встроены. ASP.NET Core — идеальная платформа для создания web APIs и RESTful приложений на .NET Core.
- Вы можете создавать хорошо факторизованные и тестируемые веб-приложения, которые следуют шаблону Модель-Вид-Контроллер (MVC).
- Razor обеспечивает продуктивный язык для создания Views
- Тег-хэлперы позволяют серверному коду участвовать в создании и рендеринге HTML- элементов в файлах Razor
- Привязка модели автоматически отображает данные из HTTP-запросов в параметры метода действия
- Проверка модели автоматически выполняет проверку на стороне клиента и на стороне сервера
Бесплатные вебинары по схожей тематике:
Какие алгоритмы должен знать программист
F# и функциональное программирование для C# разработчиков.
Практика C#. Создание блога с Blogifier.Core.
Разработка клиентской стороны
ASP.NET Core предназначен для беспроблемной интеграции с различными клиентскими платформами, включая AngularJS, KnockoutJS и Bootstrap.
Разница между 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 |
Эффективность применения технологии Asp. Net Core для разработки веб-приложений Текст научной статьи по специальности «Компьютерные и информационные науки»
Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Шарапов Николай Романович
В настоящее время вопрос разработки веб-приложений является актуальным. Соответственно существует необходимость в анализе технологии, с помощью которой можно реализовывать веб-приложение .
i Надоели баннеры? Вы всегда можете отключить рекламу.
Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Шарапов Николай Романович
Архитектура технологии разработки веб-приложений Asp. Net Core MVC
О содержании учебного курса «Гибридные приложения для мобильных устройств»
Распределенная информационная система поиска литературы
Разработка библиотеки для генерации семантических данных
Решение задачи построения запросов в системе тематического поиска на основе распознавания частично структурированных текстов
i Не можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.
Текст научной работы на тему «Эффективность применения технологии Asp. Net Core для разработки веб-приложений»
ЭФФЕКТИВНОСТЬ ПРИМЕНЕНИЯ ТЕХНОЛОГИИ ASP.NET CORE ДЛЯ РАЗРАБОТКИ ВЕБ-ПРИЛОЖЕНИЙ Шарапов Н.Р.
Шарапов Николай Романович — бакалавр, направление: информационные системы и технологии, кафедра геоинформационных систем, факультет информатики и робототехники, Уфимский государственный авиационный технический университет, г. Уфа
Аннотация: в настоящее время вопрос разработки веб-приложений является актуальным. Соответственно существует необходимость в анализе технологии, с помощью которой можно реализовывать веб-приложение. Ключевые слова: ASP.NET Core, разработка, веб-приложение.
ASP.NET Core — это бесплатный веб-фреймворк с открытым исходным кодом, разработанный компанией Майкрософт и предназначенный для создания различного рода веб-приложений: от небольших веб-сайтов до крупных веб-порталов и веб-сервисов [1].
ASP.NET Core, являющийся продолжением платформы ASP.NET, способен функционировать поверх двух сред разработки приложений: .NET Framework для Windows и кросс-платформенной .NET Core, которая может быть развернута на таких ОС как Windows, Mac OS X, Linux, что позволяет разработчикам проектировать кросс-платформенные приложения. ASP.NET Core поставляется полностью в виде пакетов NuGet, использование которых позволяет взаимодействовать только с теми компонентами, которые необходимы для разработки, что позволяет не нагружать проект лишними зависимостями. За счет маленькой величины контактной зоны приложения имеются следующие достоинства: высокая степень защищенности, минимальное обслуживание и усовершенствованная эффективность.
В качестве инструментария разработки возможно использование Visual Studio, начиная с версии 2015 года, а также Visual Studio Code, которая способна работать на Windows, Mac OS X и Linux. При разработке в Visual Studio имеется встроенная поддержка многофункциональных инструментов Bower, Grunt и Gulp, позволяющих управлять скриптами JavaScript и стилями CSS, оптимизируя процесс веб-разработки.
ASP.NET Core также содержит фреймворк MVC, связывающий эффективность MVC, Web API и Web Pages [2]. В предшествующих версиях данные технологии применялись по отдельности и по этой причине включали большое количество дублирующей функций. На данный момент они объединены в единую программную модель ASP.NET Core MVC.
Выделяют следующие особенности ASP.NET Core:
— Отсутствие компиляции (компиляция непрерывна, поэтому разработчику не нужно вызывать команду компиляции);
— Модульный фреймворк, распространяемый через пакеты NuGet;
— Поддержка спецификации OWIN (Open Web Interface for .NET), позволяющая отвязать веб-приложение от конкретного веб-сервера для автономной работы;
— Единый стек веб-разработки, сочетающий Web UI и Web API;
— Упрощенный и модульный конвейер HTTP-запросов, основывающийся на Katana и OWIN;
— Создание и запуск кросс-платформенных приложений ASP.NET Core для Windows, Mac и Linux;
— Среда, основанная на облачной системе конфигурации;
— Открытый исходный код;
— Возможность одновременной работы с различными версиями ASP.NET Core;
— Возможность введения зависимостей;
— Расширяемость, основывающаяся на возможности добавления в проект дополнительных компонентов.
Таким образом, сравнивая ASP.NET с другими широко используемыми средствами веб-разработки, такими как PHP, Node.js или Ruby on Rails, можно выделить одно ключевое достоинство. Перечисленные платформы являются интерпретируемыми, в то время как C# — компилируемый язык. Это дает системе .NET серьезное преимущество в скорости работы. Все компоненты, не требуя интерпретатора, работают с фреймворком, который, в свою очередь, также скомпилирован и вызывает напрямую функции операционной системы, а большинство ошибок отлавливаются разработчиком в момент компиляции. Также наличие паттерна MVC позволяет разграничить написание кода на 3 основные части, что в свою очередь значительно добавляет удобство пользования.
1. ASP.NET Core. [Электронный ресурс], 2018. Режим доступа: https://www.asp.net/core/overview/aspnet-vnext/ (дата обращения: 02.07.2018).
2. ASP.NET Core. [Электронный ресурс], 2018. Режим доступа: https://metanit.com/sharp/aspnet5/ (дата обращения: 04.07.2018).
АРХИТЕКТУРА ТЕХНОЛОГИИ РАЗРАБОТКИ ВЕБ-ПРИЛОЖЕНИЙ ASP.NET CORE MVC Шарапов Н.Р.
Шарапов Николай Романович — бакалавр, направление: информационные системы и технологии, кафедра геоинформационных систем, факультет информатики и робототехники, Уфимский государственный авиационный технический университет, г. Уфа
Аннотация: технология разработки веб-приложений ASP.NET Core MVC является актуальной. Соответственно имеется необходимость в анализе архитектуры данной технологии.
Ключевые слова: ASP.NET Core MVC, архитектура, веб-приложение.
ASP.NET Core MVC
ASP.NET Core является кроссплатформенной, высокопроизводительной средой с открытым исходным кодом для создания современных облачных приложений, подключенных к Интернету. Приложения ASP.Net Core, разработанные с помощью паттерна MVC, имеют соответствующий архитектурный шаблон: модель -представление — контроллер [1].
Модель — описывает используемые в приложении данные, а также логику, которая связана непосредственно с данными. Как правило, объекты моделей хранятся в базе данных.
Представление — отвечают за визуальную часть или пользовательский интерфейс, также может содержать логику, связанную с отображением данных.
Контроллер — представляет центральный компонент, который обеспечивает связь между пользователем и приложением, представлением и хранилищем данных. Он содержит логику обработки запроса пользователя. Контроллер получает вводимые пользователем данные и обрабатывает их. И в зависимости от результатов обработки отправляет пользователю определенный вывод.