- Введение в ASP.NET Core
- Архитектура и модели разработки
- Особенности платформы
- ASP.NET
- Interactive web UI with C#
- Web Apps
- APIs
- Real-time
- Microservices
- What is ASP.NET?
- Learn ASP.NET
- Fast and scalable
- Build secure apps
- Active community and open-source
- Free hosting on Azure
- Ready to get started?
- ASP.NET Web Apps
- Interactive web UI with C#
- Dynamically render HTML with Razor
- Seamless integration with your data
- Build secure web apps
- Scaffolding, forms, and validation
- Built-in support for JavaScript UI frameworks
- Model View Controller (MVC)
- Your platform, your tools
- Free hosting on Azure
- Ready to get started?
Введение в 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
Free. Cross-platform. Open source.
A framework for building web apps and services with .NET and C#.
Supported on macOS, Windows, and Linux
Interactive web UI with C#
Blazor is a feature of ASP.NET for building interactive web UIs using C# instead of JavaScript. Blazor gives you real .NET running in the browser on WebAssembly.
Web Apps
Build full stack web apps with HTML, CSS, JavaScript, and C#
APIs
Develop REST APIs for a range of clients, including browsers and mobile devices
Real-time
Enable bi-directional communication between server and client, in real-time
Microservices
Create independently deployable microservices that run on Docker containers
What is ASP.NET?
.NET is a developer platform made up of tools, programming languages, and libraries for building many different types of applications.
ASP.NET extends the .NET developer platform with tools and libraries specifically for building web apps.
Learn ASP.NET
Learn all about ASP.NET has to offer with our tutorials, video courses, and docs.
Fast and scalable
ASP.NET performs faster than any popular web framework in the independent TechEmpower benchmarks.
Data sourced from official tests available at TechEmpower Round 21.
Build secure apps
ASP.NET supports industry standard authentication protocols. Built-in features help protect your apps against cross-site scripting (XSS) and cross-site request forgery (CSRF).
ASP.NET provides a built-in user database with support for multi-factor authentication and external authentication with Google, Twitter, and more.
Active community and open-source
Get quick answers to questions with an active community of developers on Stack Overflow, Microsoft Q&A, and more.
NET is open source on GitHub, with over 100,000 contributions and 3,700 companies already contributing.
Free hosting on Azure
Get 10 ASP.NET websites for free with Microsoft Azure.
You can also deploy to any major cloud platform, your own Linux or Windows servers, or one of many hosting providers.
Ready to get started?
Our step-by-step tutorial will help you get ASP.NET running on your computer.
ASP.NET Web Apps
Use .NET and C# to create websites based on HTML5, CSS, and JavaScript that are secure, fast, and can scale to millions of users.
Interactive web UI with C#
Blazor is a feature of ASP.NET for building interactive web UIs using C# instead of JavaScript. Blazor gives you real .NET running in the browser on WebAssembly.
Dynamically render HTML with Razor
Razor provides a simple, clean, and lightweight way to create dynamic web content using HTML and C#.
With Razor you can use any HTML or C# feature. You get great editor support for both, including IntelliSense, which provides auto-completion, real-time type and syntax checking, and more.
Seamless integration with your data
The popular Entity Framework (EF) data access library lets you interact with databases using strongly typed objects.
Most popular databases are supported, including SQLite, SQL Server, MySQL, PostgreSQL, DB2 and more, as well as non-relational stores such as MongoDB, Redis, and Azure Cosmos DB.
Build secure web apps
ASP.NET provides a built-in user database with support for multi-factor authentication and external authentication with Google, Twitter, and more.
ASP.NET supports industry standard authentication protocols. Built-in features help protect your apps against cross-site scripting (XSS) and cross-site request forgery (CSRF).
Scaffolding, forms, and validation
Quickly scaffold user interfaces to interact with your data model, including query and update.
Dynamically generate HTML forms based on your strongly typed data model. Declaratively define validation rules, using C# attributes, which are applied on the client and server.
Built-in support for JavaScript UI frameworks
ASP.NET integrates seamlessly with popular JavaScript frameworks. Get started quickly with ASP.NET and React or Angular, using preconfigured templates.
Model View Controller (MVC)
MVC is a design pattern used to decouple user-interface (view), data (model), and application logic (controller). ASP.NET has built-in support for the MVC pattern, making it easy to follow this design pattern.
Your platform, your tools
ASP.NET is cross-platform, allowing you to develop and deploy web apps on your OS.
The Visual Studio product family provides a great .NET development experience on Windows, Linux, and macOS.
If you prefer to use a different editor, there are .NET command-line tools and plugins for many popular editors.
Free hosting on Azure
Get 10 ASP.NET websites for free with Microsoft Azure.
You can also deploy to any major cloud platform, your own Linux or Windows servers, or one of many hosting providers.
Ready to get started?
Our step-by-step tutorial will help you get ASP.NET running on your computer.