Содержание
- ASP.NET Core — новая эпоха в развитии ASP.NET
- Преимущества, обеспечиваемые ASP.NET Core Why choose ASP.NET Core?
- Создание веб-API и пользовательского веб-интерфейса с помощью ASP.NET Core MVC Build web APIs and web UI using ASP.NET Core MVC
- Клиентская разработка Client-side development
- ASP.NET Core для платформы .NET Framework ASP.NET Core targeting .NET Framework
- Рекомендуемая схема обучения Recommended learning path
- Миграция с .NET Framework Migration from the .NET Framework
- Загрузка примера How to download a sample
- Следующие шаги Next steps
ASP.NET Core — новая эпоха в развитии ASP.NET
Платформа ASP.NET Core представляет технологию от компании Microsoft, предназначенную для создания различного рода веб-приложений: от небольших веб-сайтов до крупных веб-порталов и веб-сервисов.
С одной стороны, ASP.NET Core является продолжением развития платформы ASP.NET. Но с другой стороны, это не просто очередной релиз. Выход ASP.NET Core фактически означает революцию всей платформы, ее качественное изменение.
Разработка над платформой началась еще в 2014 году. Тогда платформа условно называлась ASP.NET vNext. В июне 2016 года вышел первый релиз платформы. А в сентябре 2019 года вышла версия ASP.NET Core 3.0, которая собственно и будет охвачена в текущем руководстве.
ASP.NET Core теперь полностью является opensource-фреймворком. Все исходные файлы фреймворка доступны на GitHub.
ASP.NET Core может работать поверх кросс-платформенной среды .NET Core, которая может быть развернута на основных популярных операционных системах: Windows, Mac OS, Linux. И таким образом, с помощью ASP.NET Core мы можем создавать кросс-платформенные приложения. И хотя Windows в качестве среды для разработки и развертывания приложения до сих пор превалирует, но теперь уже мы не ограничены только этой операционной системой. То есть мы можем запускать веб-приложения не только на ОС Windows, но и на Linux и Mac OS. А для развертывания веб-приложения можно использовать традиционный IIS, либо кросс-платформенный веб-сервер Kestrel.
Благодаря модульности фреймворка все необходимые компоненты веб-приложения могут загружаться как отдельные модули через пакетный менеджер Nuget. Кроме того, в отличие от предыдущих версий платформы нет необходимости использовать библиотеку System.Web.dll.
ASP.NET Core включает в себя фреймворк MVC, который объединяет функциональность MVC, Web API и Web Pages. В предыдущих версии платформы данные технологии реализовались отдельно и поэтому содержали много дублирующей функциональности. Сейчас же они объединены в одну программную модель ASP.NET Core MVC. А Web Forms полностью ушли в прошлое.
Кроме объединения вышеупомянутых технологий в одну модель в MVC был добавлен ряд дополнительных функций.
Одной из таких функций являются тэг-хелперы (tag helper), которые позволяют более органично соединять синтаксис html с кодом С#.
ASP.NET Core характеризуется расширяемостью. Фреймворк построен из набора относительно независимых компонентов. И мы можем либо использовать встроенную реализацию этих компонентов, либо расширить их с помощью механизма наследования, либо вовсе создать и применять свои компоненты со своим функционалом.
Также было упрощено управление зависимостями и конфигурирование проекта. Фреймворк теперь имеет свой легковесный контейнер для внедрения зависимостей, и больше нет необходимости применять сторонние контейнеры, такие как Autofac, Ninject. Хотя при желании их также можно продолжать использовать.
В качестве инструментария разработки мы можем использовать последние выпуски Visual Studio, начиная с версии Visual Studio 2015. Кроме того, мы можем создавать приложения в среде Visual Studio Code, которая является кросс-платформенной и может работать как на Windows, так и на Mac OS X и Linux.
Для обработки запросов теперь используется новый конвейер HTTP, который основан на компонентах Katana и спецификации OWIN. А его модульность позволяет легко добавить свои собственные компоненты.
Если суммировать, то можно выделить следующие ключевые отличия ASP.NET Core от предыдущих версий ASP.NET:
Новый легковесный и модульный конвейер HTTP-запросов
Возможность развертывать приложение как на IIS, так и в рамках своего собственного процесса
Использование платформы .NET Core и ее функциональности
Распространение пакетов платформы через NuGet
Интегрированная поддержка для создания и использования пакетов NuGet
Единый стек веб-разработки, сочетающий Web UI и Web API
Конфигурация для упрощенного использования в облаке
Встроенная поддержка для внедрения зависимостей
Кроссплатформенность: возможность разработки и развертывания приложений ASP.NET на Windows, Mac и Linux
Развитие как open source, открытость к изменениям
Эти и другие особенности и возможности стали основой для новой модели программирования.
ASP.NET Core является кроссплатформенной, высокопроизводительной средой с открытым исходным кодом для создания современных облачных приложений, подключенных к Интернету. ASP.NET Core is a cross-platform, high-performance, open-source framework for building modern, cloud-based, Internet-connected applications. ASP.NET Core позволяет выполнять следующие задачи: With ASP.NET Core, you can:
- Создавать веб-приложения и службы, приложения IoT и серверные части для мобильных приложений. Build web apps and services, IoT apps, and mobile backends.
- Использовать избранные средства разработки в Windows, macOS и Linux. Use your favorite development tools on Windows, macOS, and Linux.
- Выполнять развертывания в облаке или локальной среде. Deploy to the cloud or on-premises.
- Работать в .NET Core или .NET Framework. Run on .NET Core or .NET Framework.
Преимущества, обеспечиваемые ASP.NET Core Why choose ASP.NET Core?
Миллионы разработчиков использовали и продолжают использовать ASP.NET 4.x для создания веб-приложений. Millions of developers have used (and continue to use) ASP.NET 4.x to create web apps. ASP.NET Core — это модификация ASP.NET 4.x с архитектурными изменениями, формирующими более рациональную и более модульную платформу. ASP.NET Core is a redesign of ASP.NET 4.x, with architectural changes that result in a leaner, more modular framework.
ASP.NET Core предоставляет следующие преимущества: ASP.NET Core provides the following benefits:
- Единое решение для создания пользовательского веб-интерфейса и веб-API. A unified story for building web UI and web APIs.
- Разработано для тестируемости. Architected for testability.
- Razor Pages делает создание кодов сценариев для страниц проще и эффективнее. Razor Pages makes coding page-focused scenarios easier and more productive.
- Blazor позволяет использовать в браузере язык C# вместе с JavaScript. Blazor lets you use C# in the browser alongside JavaScript. совместное использование серверной и клиентской логик приложений, написанных с помощью .NET; Share server-side and client-side app logic all written with .NET.
- Возможность разработки и запуска в ОС Windows, macOS и Linux. Ability to develop and run on Windows, macOS, and Linux.
- Открытый исходный код и ориентация на сообщество. Open-source and community-focused.
- Интеграция современных клиентских платформ и рабочих процессов разработки. Integration of modern, client-side frameworks and development workflows.
- Поддержка размещения служб удаленного вызова процедур (RPC) с помощью gRPC. Support for hosting Remote Procedure Call (RPC) services using gRPC.
- Облачная система конфигурации на основе среды. A cloud-ready, environment-based configuration system.
- Встроенное введение зависимостей. Built-in dependency injection.
- Упрощенный высокопроизводительный модульный конвейер HTTP-запросов. A lightweight, high-performance, and modular HTTP request pipeline.
- Следующие возможности размещения: Ability to host on the following:
- Kestrel Kestrel
- Службы IIS IIS
- HTTP.sys HTTP.sys
- Nginx Nginx
- Apache Apache
- Docker Docker
Создание веб-API и пользовательского веб-интерфейса с помощью ASP.NET Core MVC Build web APIs and web UI using ASP.NET Core MVC
ASP.NET Core MVC предоставляет функции, которые позволяют создавать веб-интерфейсы API и веб-приложения. ASP.NET Core MVC provides features to build web APIs and web apps:
- Шаблон Model-View-Controller (MVC) помогает сделать веб-API и веб-приложения тестируемыми. The Model-View-Controller (MVC) pattern helps make your web APIs and web apps testable.
- Razor Pages — это основанная на страницах модель программирования, которая упрощает и повышает эффективность создания пользовательского веб-интерфейса. Razor Pages is a page-based programming model that makes building web UI easier and more productive.
- Разметка Razor предоставляет эффективный синтаксис для страниц Razor и представлений MVC. Razor markup provides a productive syntax for Razor Pages and MVC views.
- Вспомогательные функции тегов позволяют серверному коду участвовать в создании и отображении HTML-элементов в файлах Razor. Tag Helpers enable server-side code to participate in creating and rendering HTML elements in Razor files.
- Благодаря встроенной поддержке нескольких форматов данных и согласованию содержимого веб-API становятся доступными для множества клиентов, включая браузеры и мобильные устройства. Built-in support for multiple data formats and content negotiation lets your web APIs reach a broad range of clients, including browsers and mobile devices.
- Привязка модели автоматически сопоставляет данные из HTTP-запросов с параметрами методов действия. Model binding automatically maps data from HTTP requests to action method parameters.
- Проверка модели автоматически выполняется на стороне сервера и клиента. Model validation automatically performs client-side and server-side validation.
Клиентская разработка Client-side development
ASP.NET Core легко интегрируется с распространенными клиентскими платформами и библиотеками, в том числе Blazor, Angular, React и Bootstrap. ASP.NET Core integrates seamlessly with popular client-side frameworks and libraries, including Blazor, Angular, React, and Bootstrap. Подробнее см. Введение в ASP.NET Core Blazor и связанные материалы о разработке на стороне клиента. For more information, see Введение в ASP.NET Core Blazor and related topics under Client-side development.
ASP.NET Core для платформы .NET Framework ASP.NET Core targeting .NET Framework
Приложения ASP.NET Core 2.x могут выполняться в .NET Core или .NET Framework. ASP.NET Core 2.x can target .NET Core or .NET Framework. Приложения ASP.NET Core, предназначенные для .NET Framework, не являются кроссплатформенными — они выполняются только в Windows. ASP.NET Core apps targeting .NET Framework aren’t cross-platform—they run on Windows only. Как правило, ASP.NET Core 2.x состоит из библиотек .NET Standard. Generally, ASP.NET Core 2.x is made up of .NET Standard libraries. Библиотеки, написанные на .NET Standard 2.0 под управлением любой платформы .NET с реализацией .NET Standard 2.0. Libraries written with .NET Standard 2.0 run on any .NET platform that implements .NET Standard 2.0.
ASP.NET Core 2.x поддерживается в версиях .NET Framework с реализацией .NET Standard 2.0: ASP.NET Core 2.x is supported on .NET Framework versions that implement .NET Standard 2.0:
- Настоятельно рекомендуем использовать последнюю версию .NET Framework. .NET Framework latest version is strongly recommended.
- .NET Framework 4.6.1 и более поздних версий. .NET Framework 4.6.1 and later.
ASP.NET Core версии 3.0 и более поздних будут выполняться только в .NET Core. ASP.NET Core 3.0 and later will only run on .NET Core. Дополнительные сведения об этом изменении см. в разделе Первое знакомство с предстоящими изменениями в ASP.NET Core 3.0. For more details regarding this change, see A first look at changes coming in ASP.NET Core 3.0.
При использовании .NET Core существуют некоторые преимущества, и их число увеличивается с каждым выпуском. There are several advantages to targeting .NET Core, and these advantages increase with each release. Преимущества .NET Core по сравнению с .NET Framework включают: Some advantages of .NET Core over .NET Framework include:
- Кроссплатформенность. Cross-platform. Выполняется на macOS, Linux и Windows. Runs on macOS, Linux, and Windows.
- Повышение производительности Improved performance
- Управление параллельными версиями Side-by-side versioning
- Новые интерфейсы API New APIs
- Открытый исходный код Open source
Мы прилагаем максимум усилий, чтобы устранить различия API между .NET Framework и .NET Core. We’re working hard to close the API gap from .NET Framework to .NET Core. Благодаря пакету обеспечения совместимости Windows в .NET Core доступны тысячи API-интерфейсов, созданных только для Windows. The Windows Compatibility Pack made thousands of Windows-only APIs available in .NET Core. Эти API-интерфейсы не были доступны в .NET Core 1.x. These APIs weren’t available in .NET Core 1.x.
Рекомендуемая схема обучения Recommended learning path
Для знакомства с разработкой приложений ASP.NET Core рекомендуется изучить следующую последовательность учебников и статей. We recommend the following sequence of tutorials and articles for an introduction to developing ASP.NET Core apps:
Пройдите учебник по тому типу приложения, которое вы собираетесь разрабатывать или обслуживать: Follow a tutorial for the type of app you want to develop or maintain:
| Тип приложения App type | Сценарий Scenario | Учебник Tutorial |
|---|---|---|
| Веб-приложение Web app | Разработка нового приложения For new development | Начало работы с Razor Pages Get started with Razor Pages |
| Веб-приложение Web app | Обслуживание приложения MVC For maintaining an MVC app | Начало работы с MVC Get started with MVC |
| Веб-интерфейс API Web API | Создание веб-API* Create a web API* | |
| Приложение режима реального времени Real-time app | Начало работы с SignalRGet started with SignalR | |
| Приложение Blazor Blazor app | Начало работы с BlazorGet started with Blazor | |
| Приложение удаленного вызова процедур Remote Procedure Call app | Начало работы со службой gRPC Get started with a gRPC service |
Пройдите учебник, посвященный основам доступа к данным: Follow a tutorial that shows how to do basic data access:
| Сценарий Scenario | Учебник Tutorial |
|---|---|
| Разработка нового приложения For new development | Razor Pages с Entity Framework Core Razor Pages with Entity Framework Core |
| Обслуживание приложения MVC For maintaining an MVC app | MVC с Entity Framework Core MVC with Entity Framework Core |
Прочтите обзор функций ASP.NET Core, относящихся ко всем типам приложений: Read an overview of ASP.NET Core features that apply to all app types:
Просмотрите содержание, чтобы найти другие интересующие вас темы. Browse the Table of Contents for other topics of interest.
* Доступен новый учебник по веб-API с прохождением в браузере, не требующий установки локальной интегрированной среды разработки. * There is a new web API tutorial that you follow entirely in the browser, no local IDE installation required. Код выполняется в Azure Cloud Shell, а для тестирования используется curl. The code runs in an Azure Cloud Shell, and curl is used for testing.
Миграция с .NET Framework Migration from the .NET Framework
Справочное руководство по миграции приложений ASP.NET на ASP.NET Core см. в статье . For a reference guide to migrating ASP.NET apps to ASP.NET Core, see .
Загрузка примера How to download a sample
Многие статьи и учебники содержат ссылки на примеры кода. Many of the articles and tutorials include links to sample code.
- Загрузите ZIP-файл репозитория ASP.NET. Download the ASP.NET repository zip file.
- Распакуйте файл Docs-master.zip. Unzip the Docs-master.zip file.
- Перейдите в папку примера по URL-адресу, указанному в примере. Use the URL in the sample link to help you navigate to the sample directory.
Директивы препроцессора в примере кода Preprocessor directives in sample code
Для демонстрации нескольких сценариев в примерах приложений используются директивы препроцессора #define и #if-#else/#elif-#endif , выборочно компилирующие и запускающие разные фрагменты примеров кода. To demonstrate multiple scenarios, sample apps use the #define and #if-#else/#elif-#endif preprocessor directives to selectively compile and run different sections of sample code. В примерах, где применяется этот подход, задайте в начале файлов C# директиву #define для определения символа, связанного со сценарием, который нужно запустить. For those samples that make use of this approach, set the #define directive at the top of the C# files to define the symbol associated with the scenario that you want to run. Для запуска сценария в некоторых примерах потребуется определить символ в начале нескольких файлов. Some samples require defining the symbol at the top of multiple files in order to run a scenario.
Например, в следующем списке символов #define видно, что доступно четыре сценария (один сценарий на символ). For example, the following #define symbol list indicates that four scenarios are available (one scenario per symbol). В текущем примере конфигурации запускается сценарий TemplateCode : The current sample configuration runs the TemplateCode scenario:
Чтобы запустить в примере сценарий ExpandDefault , задайте символ ExpandDefault и оставьте остальные символы раскомментированными: To change the sample to run the ExpandDefault scenario, define the ExpandDefault symbol and leave the remaining symbols commented-out:
Дополнительные сведения об использовании директив препроцессора C# для выборочной компиляции фрагментов кода см. в разделах #define (Справочник по C#) и #if (Справочник по C#). For more information on using C# preprocessor directives to selectively compile sections of code, see #define (C# Reference) and #if (C# Reference).
Регионы в примере кода Regions in sample code
Некоторые примеры приложений содержат фрагменты кода внутри директив C# #region и #endregion. Some sample apps contain sections of code surrounded by #region and #endregion C# directives. Система сборки документации вставляет эти регионы в обработанные разделы документации. The documentation build system injects these regions into the rendered documentation topics.
Названия регионов обычно содержат слово "фрагмент". Region names usually contain the word "snippet." В следующем примере показан регион с именем snippet_WebHostDefaults : The following example shows a region named snippet_WebHostDefaults :
На предыдущий фрагмент кода C# указывает ссылка в следующей строке в файле Markdown раздела: The preceding C# code snippet is referenced in the topic’s markdown file with the following line:
Вы можете спокойно проигнорировать или удалить директивы #region и #endregion вокруг кода. 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.
Следующие шаги Next steps
Дополнительные сведения см. в следующих ресурсах: For more information, see the following resources:

Прошло много времени с момента релиза ASP.NET Core 1.0. Затем появились версии 1.1, 2.0… В общем и целом серверные компоненты и технология оказались достаточно качественными, в них было замечено всего лишь несколько багов. Кроме того, начиная с вышеупомянутой версии 1.1, было добавлено бессчётное множество различных полезных примочек к Entity Framework Core и самой ASP.NET Core. Помимо прочего, стоит также отметить радикальные отличия в структуре проектов, которые могут показаться слегка непривычными, но являются жизненно необходимыми для взаимодействия проектов .Net Core с другими типами проектов. Но ожиданиям качественного инструмента пришел конец. Произошел релиз Visual Studio 2017, и она успела зарекомендовать себя как достаточно стабильная версия. К тому же я без проблем сумел перенести мои проекты на базе project.json в новый формат файлов MSBuild без всяких проблем. Помимо прочего, стоит также отметить целую серию приятных улучшений стандартной среды языка .NET. Мы долго ждали и дождались – наконец-то стандарт .NET Core (вместе с технологией ASP.NET Core) успешно захватывает IT-рынок и обладает целым рядом полезных инструментов для разработки. Если вы из компании, которая от стольких лет ожидания успела натереть себе мозоль – определенно, вам есть чему радоваться.
Итак, ASP.NET Core сейчас уже на полках. Так в каких случаях нам стоит забыть про старый добрый ASP.NET и опробовать его кроссплатформенную версию? Позволю себе поделиться мнением.
Новые проекты
Если вы начинаете разработку нового проекта с использованием MVC-подхода и/или Web API, вам определенно нужно обратить свое внимание на ASP.NET Core. Технология содержит в себе целую серию значительных улучшений, которые заметно отличают ее от предшественницы. Помимо прочего, она также может похвастаться первоклассной системой внедрения зависимостей. ASP.NET Core также обладает специальными tag-helper`ами. Используя сервис TestServer, вы запросто сумеете производить локальные тесты прямо на свое ПК (забудьте про падения через неверную конфигурация фаервола). Web API теперь внедрены в ASP.NET Core MVC, потому теперь нет никакой необходимости использовать сторонние библиотеки с кучей дублирующих компонентов. Также скорость работы значительно выше, плюс, помимо прочего, арсенал может похвастаться значительно большим количеством опций, нежели MVC5/WebAPI2, который в значительной мере привязан к IIS.
Но что, если проект имеет среди зависимостей сторонние библиотеки (собственные или чьи-то еще), которые требуют полноценной среды .NET Framework, не включенной в .NET Core?
Нет никаких проблем. При желании в ASP.NET Core можно включить полноценный .NET Framework. Желаете использовать ваш Entity Framework 6 или NHibernate для работы с данными? Да ради Бога. Все прекрасно будет работать и в ASP.NET Core. Единственное, что вы от этого утратите – это кроссплатформенность, ибо эти сервисы могут быть запущены только в рамках Windows-сервера.
У меня нет времени переучивать команду на ASP.NET Core!
На счастье, переход на новую платформу не займет много времени, если ваша команда уже знакома с ASP.NET MVC и/или Web API. Концепция Core – использовать все, что было раньше, но значительно лучше. Контроллеры и представления никуда не делись. Представления все еще используют Razor. Маршрутизация по сути своей осталась прежней – она даже стала немного проще. Фильтры также особо не изменились, а Web API добавили своего удобства в использовании (так как они были интегрированы в MVC). Конечно, отличия все же есть, но это не критично. Несколько новых вещей, вроде того, как запускается приложение или как работает middleware, выучить придется, но в целом опыт работы на предыдущей ASP.NET Core MVC тут будет решать очень многое.
Я хочу поместить приложение в контейнер на Linux!
Тогда вы можете желать только ASP.NET Core. Вы не сможете использовать библиотеки из среды .NET Framework, но что касательно стандартных компонентов .NET Core – полный вперед. И да, вы также можете помещать свои приложения под Azure на Linux.
Судьба приложений на ASP.NET MVC 5 и/или Web API 2
Предугадать тут что-либо конкретное будет несколько затруднительно. Если эти приложения работают и запускаются без проблем, не думаю, что необходимость переходить под ASP.NET Core такая уж срочная. Однако, несколько причин, по которым стоит интегрировать подобные программы под ASP.NET Core, все же есть:
- Сама поддержка. Если вы бы хотели деплоить приложение и его сервер вместе, без привязки к IIS – Core, – это однозначно ваш выбор.
- Поддержка различных платформ. Порой использование Windows-ориентированных серверов может быть дороже прочих других. Возможно, вы могли слышать об поддержке контейнеров, Докера и так далее. Core все это поддерживает – причем на очень даже приличном уровне.
- Множественные приложения. Приходилось ли вам запускать несколько экземпляров приложения на одной и той же машине? ASP.NET Core позволит это делать значительно удобнее и эффективнее, нежели традиционный ASP.NET.
- Тестирование и Domain-Driven Design (DDD). Если ваша команда следует этому подходу, пишет тестируемое программное обеспечение, то ASP.NET Core (и Entity Framework Core) привнесёт целый ряд полезных фич, которые значительно могут упростить жизнь.
Программы Web Forms
Если ваше приложение базируется на веб-формах, возможно, вам лучше всего будет оставаться на ASP.NET. Microsoft активно инвестирует в эту технологию. Существует множество способов улучшить качество кода, используя внедрение зависимостей и прочее. Но смена платформы на ASP.NET Core MVC будет такой же «болезненной», как и переход на ASP.NET MVC 5,4,3,2,1. Что хуже, используя MVC 5, вы можете запускать страницы отдельно друг от друга, но проделать подобное с ASP.NET Core не представляется возможным. Лично я могу посоветовать оставаться на веб-формах до тех пор, пока приложение не потребует полноценной замены. В плане нагрузки на данные, потребовалось бы применить стиль SPA-приложений со значительно большим количеством клиентского кода и фрейморков типа Angular 2, или React.
Другие размышления
Хотя Visual Studio – прекрасный инструмент для разработки приложений, эта среда не бесплатная (за исключением комьнити-версии). Помимо прочего, она Windows-ориентированная (да, есть VS для MacOS, но это совершенно другое приложение). Если же студия для вас по причине цены или размеров неприемлема, .NET Core будет воистину полезным приобретением. Вы можете на MacOS, Linux (и, разумеется, под Windows) работать в Visual Studio Code!
Подобным образом, если ваши приложения больше ориентированы на клиентскую часть, ASP.NET Core порадует более облегченными размерами. В то время, как фронтендеры превозносят NodeJS как быструю технологию (и ее возможность исполнять js-код на сервере), ASP.NET Core может также исполнять Node.JS на сервере (и вы также можете работать под JS на сервере, если вам захочется). Используя TechEmpower, ASP.NET Core, развернутый с использованием Kestrel, может обрабатывать до 1 миллиона запросов за секунду на том же ПК и в рамках того же приложения, в то время, как NodeJS обрабатывает всего около 175 тысяч в секунду.
Подведем итоги
Безусловно, ваш опыт и ваше мнение может сильно отличаться от моего, потому вопрос о том, стоит ли переходить на ASP.NET Core для некоторых может остаться открытым. И, конечно, ASP.NET Core далеко не единственная технология, используя которую вы будете создавать свое следующее веб-приложение. Однако, тема этой статьи как раз-таки ASP.NET Core, с которым мне приходилось долго проработать. К тому же, написано очень много официальной документации на официальном сайте Microsoft. Я не советую переходить на ASP.NET Core лишь потому, что он такой новый и весь из себя красивый. Решение перейти должно быть тщательно взвешенным и подкрепленным весомыми аргументами, которые я постарался привести в своей статье.
Что дальше?
Разработка ASP.NET Core продолжается. Уверен, версия 2.0 – далеко не последняя! Было бы неплохо взглянуть на обновленный SignalR и новую функциональность разор-страниц.
Автор перевода: Евгений Лукашук






