RUEN

Переход с ASP.NET MVC к ASP.NET Core

Содержание:

  1. Введение
  2. Сравнение стеков технологий
  3. Полезные команды
  4. Сборка и запуск проекта
  5. Entity Framework Core

Введение

Одним из направлений деятельности нашей компании является веб-разработка. Для разработки сайтов мы используем ASP.NET MVC, и, по обыкновению, хостингом для нашего добра служит Windows Server. Но время идет, появляются новые технологии, а старые технологии эволюционируют, как, впрочем, и желания наших клиентов.

Со временем возникла нужда запустить новый проект на хостинге linux. Все бы ничего, задача, казалось бы, относительно тривиальная. Но в потребностях значилось использование нашей CMS, написанной на стеке ASP.NET MVC 5, что значительно усложняло задачу.

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

Сравнение стеков технологий

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

Использовалось

Наш выбор

Windows Server 2012 R2

Debian 8.8

IIS 8.5

Kestrel в связке Nginx 1.12

.NET framework 4.6

.NET Core

ASP.NET MVC 5

ASP.NET Core 1.1

Microsoft SQL Server

.NET Core 1.1

Entity Framework 6.1.3

Entity Framework 1.1

Встроенный механизм для создания бандлов и минификации

WebPack 2

Полезные команды

Сборка и запуск проекта

Для запуска и сборки проекта можно использовать dotnet run. Можно немного облегчить задачу и использовать команду dotnet run -watch . Данная команда запускает dotnet в режиме наблюдения за изменениями кода, и когда происходят изменения, проект автоматически пересобирается и затем запускается.

Чтобы ее использовать нужно добавить в файл проекта .csproj следующий код

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

Entity Framework Core

Для создания миграции в Entity Framework Core можно использовать команду dotnet ef migrations add {название миграции}.

Чтобы применить миграцию нужно использовать команду dotnet ef database update.

Чтобы использовать эту команду нужно добавить в .csproj следующий код:

И, естественно, использовать после этого команду dotnet restore.

Для функционирования сайта мы собираем cookie, данные об IP-адресе и местоположении пользователей.

Я согласен