Перейти к содержимому

Asp net core что это

  • автор:

Введение в 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 8 в ноябре 2023 года.

ASP.NET Core теперь полностью является opensource-фреймворком. Все исходные файлы фреймворка доступны на github в репозитории https://github.com/dotnet/aspnetcore/.

Архитектура и модели разработки

Текущую архитектуру платформы ASP.NET Core можно выразить следующим образом:

архитектура ASP.NET Core в C# и .NET

На самом верхнем уровне располагаются различные модели взаимодействия с пользователем. Это технологии построения пользовательского интерфейса и обработки ввода пользователя, как 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 MVC в .NET 8

  • Прежде всего это базовый 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

ASP.NET Core является кроссплатформенной, высокопроизводительной средой с открытым исходным кодом для создания современных облачных приложений, подключенных к Интернету.

ASP.NET Core позволяет выполнять следующие задачи:

  • Создавать веб-приложения и службы, приложения Интернета вещей (IoT) и серверные части для мобильных приложений.
  • Использовать избранные средства разработки в Windows, macOS и Linux.
  • Выполнять развертывания в облаке или локальной среде.
  • Запустите в .NET.

Преимущества, обеспечиваемые ASP.NET Core

Миллионы разработчиков использовали и продолжают использовать ASP.NET 4.x для создания веб-приложений. ASP.NET Core — это модификация ASP.NET 4.x с архитектурными изменениями, формирующими более рациональную и более модульную платформу.

ASP.NET Core предоставляет следующие преимущества:

  • Единое решение для создания пользовательского веб-интерфейса и веб-API.
  • Разработано для тестируемости.
  • Razor Pages упрощает написание кода для сценариев страниц и повышает его эффективность.
  • Blazor позволяет использовать в браузере язык C# вместе с JavaScript. совместное использование серверной и клиентской логик приложений, написанных с помощью .NET;
  • Возможность разработки и запуска в ОС Windows, macOS и Linux.
  • Открытый исходный код и ориентация на сообщество.
  • Интеграция современных клиентских платформ и рабочих процессов разработки.
  • Поддержка размещения служб удаленного вызова процедур (RPC) с помощью gRPC.
  • Облачная система конфигурации на основе среды.
  • Встроенное введение зависимостей.
  • Упрощенный высокопроизводительный модульный конвейер HTTP-запросов.
  • Возможность размещения на следующих узлах:
    • Kestrel
    • IIS
    • HTTP.sys
    • Nginx
    • Apache
    • Docker

    Создание веб-API и пользовательского веб-интерфейса с помощью ASP.NET Core MVC

    ASP.NET Core MVC предоставляет функции, которые позволяют создавать веб-интерфейсы API и веб-приложения.

    • Шаблон Model-View-Controller (MVC) помогает сделать веб-API и веб-приложения тестируемыми.
    • Razor Pages — это основанная на страницах модель программирования, которая упрощает и повышает эффективность создания пользовательского веб-интерфейса.
    • Разметка Razor предоставляет эффективный синтаксис для страниц Razor Pages и представлений MVC.
    • Вспомогательные функции тегов позволяют серверному коду участвовать в создании и отображении HTML-элементов в файлах Razor.
    • Благодаря встроенной поддержке нескольких форматов данных и согласованию содержимого веб-API становятся доступными для множества клиентов, включая браузеры и мобильные устройства.
    • Привязка модели автоматически сопоставляет данные из HTTP-запросов с параметрами методов действия.
    • Проверка модели автоматически выполняется на стороне сервера и клиента.

    Клиентская разработка

    ASP.NET Core включает в себя Blazor создание интерактивного веб-интерфейса, а также интегрируется с другими популярными платформами JavaScript внешнего интерфейса, такими как Angular, React, Vue и Bootstrap. Подробнее см. в статье ASP .NET CoreBlazor и сопутствующих материалах в разделе Разработка на стороне клиента.

    Целевые версии платформы ASP.NET Core

    ASP.NET Core 3.x или более поздней версии может использовать только .NET.

    Существует несколько преимуществ для целевой платформы .NET, и эти преимущества увеличиваются при каждом выпуске. Некоторые преимущества .NET по сравнению с платформа .NET Framework включают:

    • Кроссплатформенность. Выполняется в Windows, macOS и Linux.
    • Улучшение производительности
    • Управление параллельными версиями
    • Новые интерфейсы API
    • Открытый исходный код

    Рекомендуемая схема обучения

    Для знакомства с разработкой приложений ASP.NET Core рекомендуется изучить следующую последовательность учебников.

      Пройдите учебник по тому типу приложения, которое вы собираетесь разрабатывать или обслуживать.

    Тип приложения Сценарий Учебник
    Веб-приложение Разработка нового веб-интерфейса на стороне сервера Начало работы с Razor Pages
    Веб-приложение Обслуживание приложения MVC Начало работы с MVC
    Веб-приложение Разработка веб-интерфейса на стороне клиента Начало работы с Blazor
    Веб-интерфейс API Службы HTTP RESTful Создание веб-API†
    Приложение удаленного вызова процедур Разработка в соответствии с парадигмой «Сначала контракт» с использованием Protocol Buffers Начало работы со службой gRPC
    Приложение режима реального времени Двунаправленный обмен данными между сервером и подключенными к нему клиентами Начало работы с SignalR
    Сценарий Учебник
    Разработка нового приложения Razor Pages с Entity Framework Core
    Обслуживание приложения MVC MVC с Entity Framework Core

    †Доступен интерактивный учебник по веб-API. Локальная установка средств разработки не требуется. Код выполняется в Azure Cloud Shell в браузере, а для тестирования используется curl.

    Миграция с .NET Framework

    Справочное руководство по переносу приложений ASP.NET 4.x в ASP.NET Core см. в разделе «Обновление от ASP.NET до ASP.NET Core».

    ASP.NET Core является кроссплатформенной, высокопроизводительной средой с открытым исходным кодом для создания современных облачных приложений, подключенных к Интернету. ASP.NET Core позволяет выполнять следующие задачи:

    • Создавать веб-приложения и службы, приложения Интернета вещей (IoT) и серверные части для мобильных приложений.
    • Использовать избранные средства разработки в Windows, macOS и Linux.
    • Выполнять развертывания в облаке или локальной среде.
    • Работать в .NET Core или .NET Framework.

    Преимущества, обеспечиваемые ASP.NET Core

    Миллионы разработчиков использовали и продолжают использовать ASP.NET 4.x для создания веб-приложений. ASP.NET Core — это модификация ASP.NET 4.x с архитектурными изменениями, формирующими более рациональную и более модульную платформу.

    ASP.NET Core предоставляет следующие преимущества:

    • Единое решение для создания пользовательского веб-интерфейса и веб-API.
    • Разработано для тестируемости.
    • Razor Pages упрощает написание кода для сценариев страниц и повышает его эффективность.
    • Blazor позволяет использовать в браузере язык C# вместе с JavaScript. совместное использование серверной и клиентской логик приложений, написанных с помощью .NET;
    • Возможность разработки и запуска в ОС Windows, macOS и Linux.
    • Открытый исходный код и ориентация на сообщество.
    • Интеграция современных клиентских платформ и рабочих процессов разработки.
    • Поддержка размещения служб удаленного вызова процедур (RPC) с помощью gRPC.
    • Облачная система конфигурации на основе среды.
    • Встроенное введение зависимостей.
    • Упрощенный высокопроизводительный модульный конвейер HTTP-запросов.
    • Возможность размещения на следующих узлах:
      • Kestrel
      • IIS
      • HTTP.sys
      • Nginx
      • Apache
      • Docker

      Создание веб-API и пользовательского веб-интерфейса с помощью ASP.NET Core MVC

      ASP.NET Core MVC предоставляет функции, которые позволяют создавать веб-интерфейсы API и веб-приложения.

      • Шаблон Model-View-Controller (MVC) помогает сделать веб-API и веб-приложения тестируемыми.
      • Razor Pages — это основанная на страницах модель программирования, которая упрощает и повышает эффективность создания пользовательского веб-интерфейса.
      • Разметка Razor предоставляет эффективный синтаксис для страниц Razor Pages и представлений MVC.
      • Вспомогательные функции тегов позволяют серверному коду участвовать в создании и отображении HTML-элементов в файлах Razor.
      • Благодаря встроенной поддержке нескольких форматов данных и согласованию содержимого веб-API становятся доступными для множества клиентов, включая браузеры и мобильные устройства.
      • Привязка модели автоматически сопоставляет данные из HTTP-запросов с параметрами методов действия.
      • Проверка модели автоматически выполняется на стороне сервера и клиента.

      Клиентская разработка

      ASP.NET Core легко интегрируется с популярными клиентскими платформами и библиотеками, включая BlazorAngular, React, Vue и Bootstrap. Подробнее см. в статье ASP .NET CoreBlazor и сопутствующих материалах в разделе Разработка на стороне клиента.

      ASP.NET Core для платформы .NET Framework

      Приложения ASP.NET Core 2.x могут выполняться в .NET Core или .NET Framework. Приложения ASP.NET Core, предназначенные для .NET Framework, не являются кроссплатформенными — они выполняются только в Windows. Как правило, ASP.NET Core 2.x состоит из библиотек .NET Standard. Библиотеки, написанные на .NET Standard 2.0 под управлением любой платформы .NET с реализацией .NET Standard 2.0.

      ASP.NET Core 2.x поддерживается в версиях .NET Framework с реализацией .NET Standard 2.0:

      • Рекомендуется использовать последнюю версию .NET Framework.
      • .NET Framework 4.6.1 или более поздней версии.

      ASP.NET Core 3.0 или более поздней версии работает только в .NET Core. Дополнительные сведения об этом изменении см. в разделе Первое знакомство с предстоящими изменениями в ASP.NET Core 3.0.

      При использовании .NET Core существуют некоторые преимущества, и их число увеличивается с каждым выпуском. Преимущества .NET Core по сравнению с .NET Framework включают:

      • Кроссплатформенность. Выполняется на macOS, Linux и Windows.
      • Улучшение производительности
      • Управление параллельными версиями
      • Новые интерфейсы API
      • Открытый исходный код

      Благодаря пакету обеспечения совместимости Windows в .NET Core доступны тысячи API-интерфейсов, созданных только для Windows, что позволяет расширить диапазон API при переходе с .NET Framework на .NET Core. Эти API-интерфейсы не были доступны в .NET Core 1.x.

      Рекомендуемая схема обучения

      Для знакомства с разработкой приложений ASP.NET Core рекомендуется изучить следующую последовательность учебников и статей.

        Пройдите учебник по тому типу приложения, которое вы собираетесь разрабатывать или обслуживать.

      Тип приложения Сценарий Учебник
      Веб-приложение Разработка нового приложения Начало работы с Razor Pages
      Веб-приложение Обслуживание приложения MVC Начало работы с MVC
      Веб-интерфейс API Создание веб-API†
      Приложение режима реального времени Начало работы с SignalR
      Сценарий Учебник
      Разработка нового приложения Razor Pages с Entity Framework Core
      Обслуживание приложения MVC MVC с Entity Framework Core

      †Доступен новый учебник по веб-API с прохождением в браузере, не требующий установки локальной интегрированной среды разработки. Код выполняется в Azure Cloud Shell, а для тестирования используется curl.

      Миграция с .NET Framework

      Справочное руководство по переносу приложений ASP.NET в ASP.NET Core см. в разделе «Обновление от ASP.NET до ASP.NET Core».

      Загрузка примера

      Многие статьи и учебники содержат ссылки на примеры кода.

      1. Загрузите ZIP-файл репозитория ASP.NET.
      2. Распакуйте файл AspNetCore.Docs-main.zip .
      3. Чтобы получить доступ к примеру приложения из статьи в распакованном репозитории, используйте URL-адрес примера ссылки из статьи для перехода к папке примера. Как правило, пример ссылки из статьи отображается в ее верхней части. Текст ссылки: Просмотрите или загрузите пример кода.

      Директивы препроцессора в примере кода

      Для демонстрации нескольких сценариев в примерах приложений используются директивы препроцессора #define и #if-#else/#elif-#endif , выборочно компилирующие и запускающие разные фрагменты примеров кода. В примерах, где применяется этот подход, задайте в начале файлов C# директиву #define для определения символа, связанного со сценарием, который нужно запустить. Для запуска сценария в некоторых примерах потребуется определить символ в начале нескольких файлов.

      Например, в следующем списке символов #define видно, что доступно четыре сценария (один сценарий на символ). В текущем примере конфигурации запускается сценарий TemplateCode :

      #define TemplateCode // or LogFromMain or ExpandDefault or FilterInCode 

      Чтобы запустить в примере сценарий ExpandDefault , задайте символ ExpandDefault и оставьте остальные символы раскомментированными:

      #define ExpandDefault // TemplateCode or LogFromMain or FilterInCode 

      Дополнительные сведения об использовании директив препроцессора C# для выборочной компиляции фрагментов кода см. в разделах #define (Справочник по C#) и #if (Справочник по C#).

      < webBuilder.UseStartup (); >); #endregion «` The preceding C# code snippet is referenced in the topic’s markdown file with the following line: «`md [!code-csharp[](sample/SampleApp/Program.cs?name=snippet_WebHostDefaults)] «` You may safely ignore (or remove) the `#region` and `#endregion` directives that surround the code. Don’t alter the code within these directives if you plan to run the sample scenarios described in the topic. Feel free to alter the code when experimenting with other scenarios. For more information, see [Contribute to the ASP.NET documentation: Code snippets](https://github.com/dotnet/AspNetCore.Docs/blob/main/CONTRIBUTING.md#code-snippets). —>

      Критические изменения и советы по безопасности

      Критические изменения и рекомендации по безопасности отображаются в репозитории объявлений. Объявления можно ограничить определенной версией, выбрав фильтр меток.

      Следующие шаги

      Дополнительные сведения см. на следующих ресурсах:

      • Начало работы с ASP.NET Core
      • Публикация приложения ASP.NET Core в Azure с помощью Visual Studio
      • Основы ASP.NET Core
      • В еженедельном выпуске ASP.NET Community Standup рассматривается ход работы и планы команды. Помимо этого, публикуются новые блоги и стороннее программное обеспечение.

      Совместная работа с нами на GitHub

      Источник этого содержимого можно найти на GitHub, где также можно создавать и просматривать проблемы и запросы на вытягивание. Дополнительные сведения см. в нашем руководстве для участников.

      Путь ASP.NET Core [уровень 1] Основы

      ASP.NET Core — новейший фреймворк для кроссплатформенной веб разработки. Пока его популярность (как и количество вакансий) только начинает набирать обороты самое время узнать о нем побольше. Ну а для того, чтобы все знания не испарились сразу после прочтения — добавим существенную практическую часть. Создадим простое приложение, для тестирования прочитанного.

      Если вы считаете, что уже достаточно круты в новом фреймворке — можете попробовать пройти тест до того, как прочтете статью. Линк. Весь код проекта можно посмотреть на гитхабе.

      Первая часть включает:

      • Что такое .NET Core и ASP.NET Core?
      • Основы создания приложения и его структура
      • Добавление новых элементов, скаффолдинг
      • Основы встроенного Dependency Injection
      • Деплоймент в Azure

      Разберемся в терминах. Один из наиболее не понятных моментов — это зависимость между старым фреймворком ASP.NET MVC и новым ASP.NET Core, а также в чем отличия .NET и .NET Core. Начнем с последнего. .NET Core — это общая платформа для разработки программного обеспечения. Фактически это еще одна реализация стандарта .NET (другие реализации — .NET, Mono). Отличия и особенности этой реализации (.NET Core) в том, что она:

      • С открытым исходным кодом
      • Кроссплатформенная
      • Гибкая в установке — может быть внутри приложения и можно поставить несколько версий на одной и той же машине
      • Все сценарии работы поддерживаются с помощью консольных инструментов

      В чем же тогда особенности и отличия ASP.NET Core от предыдущего ASP.NET? Некоторые из них это:

      • Возможность намного лучше контролировать нужные модули, сборки. Например, нет жесткой привязки к IIS, System.Web.dll
      • Встроенный функционал для внедрения зависимостей
      • Открытый исходный код
      public class Program < public static void Main(string[] args) < var host = new WebHostBuilder() .UseKestrel() .UseStartup() .Build(); host.Run(); > > public class Startup < public void ConfigureServices(IServiceCollection services) < >public void Configure(IApplicationBuilder app) < >> 

      Класс Statup можно, в какой-то степени, охарактеризовать как новый вариант Global.asax (Это класс для глобальной настройки всего приложения в предыдущей версии ASP.NET). Грубо говоря, можно сказать, что метод ConfigureServices нужен для конфигурации контейнера для внедрения зависимостей и его сервисов, а метод Configure для конфигурации конвейера обработки запросов.

      Приступим к практической реализации

      Для того, чтобы лучше понять все новшества, создадим ASP.NET Core приложение на основе .NET Core.

      Чтобы облегчить себе жизнь, выберем Web Application и поменяем аутентификацию на Individual User Accounts. Таким образом Visual Studio уже сгенерирует весь нужный код для базового приложения.

      Рассмотрим детальней что же нового появилось в ASP.NET Core. С точки зрения разработки вся концепция осталась прежней. Структура проекта базируется на паттерне MVC. Для работы с данными по умолчанию используем Entity Framework, логика описана в классах-контроллерах, на уровне представлений используем синтаксис cshtml + новая фишка tag helpers.

      Проверим классы Program.cs и Startup.cs, они действительно выглядят такими же, как было описано выше. Конечно класс Startup не совсем пуст, а уже вмещает функционал для считывания конфигурации, настройки базового логирования, маршрутизации и привязку на нашу модель базы данных.

      Дополним модель базы данных сущностями для создания и прохождения тестов. Будем использовать следующие сущности: Набор тестовых вопросов — TestPackage, Сам вопрос (тест) — TestItem, Результат теста — TestResult. Пример можно посмотреть тут. Радует, что EntityFramework Core уже поддерживает большинство функционала и можно полноценно пользоваться Code First миграциями.

      Добавляем логику

      Теперь, когда у нас есть модель базы данных, мы можем приступить к созданию логики для нашего приложения. Самый простой способ создания админки — это механизм scaffolding. Для этого, кликаем правой кнопкой мыши по папке контроллеров и выбираем Add → New Scaffold Item:

      Выбираем «MVC Controller с представлениями, с использованием Entity Framework». Этот шаблон позволяет нам быстро создать контроллер и вьюхи для управления одной конкретной моделью. Проделаем такой трюк для TestPackage и TestItem. В результате у нас есть готовый прототип админки для нашей системы. Можно запустить проект и зайти на страницы этих контроллеров, просто добавить его имя без слова Controller в конец адреса, например, /testpackages. Конечно в ней еще не все идеально, поэтому нужно допилить некоторые моменты и сделать их более удобными.

      После создания модели и простого функционала для работы с ней, можно перейти к самому процессу прохождения тестов. В общем, все выглядит просто. Сервер присылает вопрос, варианты, мы отсылаем назад ответ. Сервер сохраняет его. В конце теста показываем результат. Добавим код для этого поведения.

      В общем, все что нужно для теста у нас есть.

      Основы Dependency Injection в ASP.NET Core

      Важным новшеством новой версии ASP.NET так же является встроенный механизм внедрения зависимостей. В 2016 году уже никого не удивишь тем, что механизм внедрения зависимостей можно перенести внутрь фреймворка. Мало какое серьёзное приложение пишут без использование этого подхода. DI в ASP.NET Core реализован достаточно базово, но в то же время позволяет решить большинство задач управления зависимостями.

      Конфигурация контейнера осуществляется в методе ConfigureServices класса Startup. Пример:

       // Add framework services. services.AddDbContext(options => options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection"))); services.AddIdentity>() .AddEntityFrameworkStores() .AddDefaultTokenProviders(); services.AddMvc(); // Add application services. services.AddTransient(); services.AddTransient(); 

      Можно заметить, что для контекста базы данных и Identity фреймворка есть дополнительные, не типичные методы их регистрации. Это позволяет более гибко их сконфигурировать. В этот подход регистрации сервисов очень красиво вписываются extension-методы.

      После регистрации сервисов, самый легкий способ получить из в коде (например, в контроллерах) — это просто добавить параметр конструктора типа, который был зарегистрирован. Такие контроллеры по умолчанию создаются скаффолдингом.

      Деплой

      Одним из самых простых способов деплоймента остается Microsoft Azure. Нам достаточно самых базовых настроек для полноценной работы. Развертывание сайта на сервере все так же просто — с помощью нескольких кликов, начиная с контекстного меню на файле проекта.

      Выводы

      Пока не известно будущее «классического» .NET фреймворка, так как он, все же, является более стабильным и проверенным, поэтому может существовать еще довольно долго (привет, Python 2), хотя возможна и ситуация быстрой миграции большинства девелоперов на Core версии (не такой уже .NET и старый — 14 лет всего лишь).

      Очень радует стабильность текущей версии фреймворков и инструментов. Хотя они и не идеальны, но главное, что можно полноценно писать код. Фреймворки Microsoft, как всегда, подкупают тем, что если ты был знаком с предыдущей версией, то уже знаешь больше половины следующей. Для хорошего ASP.NET девелопера, можно начинать писать на Core вообще не читая документацию, хотя многие вещи будут не понятны. Правда потом, сложно писать на обычном ASP.NET, к хорошему быстро привыкают.

      Также удивляет количество вопросов на StackOverflow. Вопросы, что касаются основных вещей уже отлично гуглятся с приставкой ASP.NET Core. Часто ответы на них ведуть на Github и на дискуссии разработчиков самого фреймворка, что для мира .NET является совсем новым опытом. Очень необычными и интересным.

      Введение в ASP.NET Core

      daniel-roth

      21.06.2017

      1771

      Рейтинг: 5 . Проголосовало: 1
      Вы проголосовали:
      Для голосования нужно авторизироваться

      advertisement advertisement

      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.

      advertisement advertisement

      Тема связана со специальностями:

      Зачем строить 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
      • Общедоступный и социально-ориентированный фремворк

      Видео курсы по схожей тематике:

      C# Углубленный. Ускоренный курс

      C# Углубленный. Ускоренный курс

      Unit тестирование в C#

      Unit тестирование в C#

      C# 8.0 Стартовый

      Создание web UI и web APIs с использованием ASP.NET Core MVC

      • Вы можете создавать службы HTTP, которые охватывают широкий круг клиентов, включая браузеры и мобильные устройства. Поддержка нескольких форматов данных и согласования содержимого – уже встроены. ASP.NET Core — идеальная платформа для создания web APIs и RESTful приложений на .NET Core.
      • Вы можете создавать хорошо факторизованные и тестируемые веб-приложения, которые следуют шаблону Модель-Вид-Контроллер (MVC).
      • Razor обеспечивает продуктивный язык для создания Views
      • Тег-хэлперы позволяют серверному коду участвовать в создании и рендеринге HTML- элементов в файлах Razor
      • Привязка модели автоматически отображает данные из HTTP-запросов в параметры метода действия
      • Проверка модели автоматически выполняет проверку на стороне клиента и на стороне сервера

      Бесплатные вебинары по схожей тематике:

      Стоит ли учить C# в 2023?

      Стоит ли учить C# в 2023?

      Шахматная IT Арена для программистов. III тур - Проходная пешка и рокировка

      Шахматная IT Арена для программистов. III тур — Проходная пешка и рокировка

      Техники тестирования для С# разработчиков. Уровень Advanced. Часть 1.

      Техники тестирования для С# разработчиков. Уровень Advanced. Часть 1.

      Разработка клиентской стороны

      ASP.NET Core предназначен для беспроблемной интеграции с различными клиентскими платформами, включая AngularJS, KnockoutJS и Bootstrap.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *