ASP.NET уже давно является
популярным фреймворком для разработки, а точнее с момента своего появления в
2002. Однако веб разработка на старом ASP.NET была ориентрирована на Windows. Для того что
бы получить поддержку и на других платформах Microsoft выпустила .NET Core. ASP.NET Core это фреймворк для
разработки веб приложений который выполняется на .NET Core.
Microsoft выпустила .NET Core 1.0, ASP.NET Core 1.0 и Entity Framework Core 1.0 в июне 2016. Этот релиз стал началом новой эры – эры в которой веб разработчики могут
создавать приложения ориентированные на различные операционные системы.
ASP.NET Core это очень серьёзное изменение
старого ASP.NET и он уже стал весьма популярным. ASP.NET Core это базовый, составной
фреймворк с открытым исходным кодом который вы можете использовать для создания
веб и клауд приложений. ASP.NET Core – кроссплатформенный фреймворк – он доступен на Windows, Linux и Mac. Данная статья описывает стратегию которая может
использоваться для перехода с ASP.NET на ASP.NET Core.
Переход к ASP.NET Core
Пожалуй самый
главный момент о котором вы должны помнить когда будете переходить со старого
ASP.NET на ASP.NET Core – это те изменения в коде которые вам необходимо
сделать для решения вопросов совместимости. Я буду рассказывать о существующих
средствах, которые облегчаю этот процесс, позже в этой статье. Вы должны
создать список ссылок BCL и
зависимостей, которые необходимо изменить если они не используются в .NET Core. Обратите
внимание что .NET Core это просто подмножество фреймворка .NET – поэтому,
вам пожалуй будет интересно узнать что в вашем коде придется менять для того
что бы он работал на новом фреймворке. Другой момент о котором вы должны
позаботиться, это сторонние зависимости, которые должны быть либо изменены,
либо, в худшем случае, вовсе удалены при миграции на .NET Core.
Первое, что вы
должны сделать – это создать новый пустой проект “ ASP.NET Core Web application” с таким же
названием как и у вашего старого проекта. Я бы посоветовал снача создавать
проект с минимальным набором кода и функциональности, а уж потом по мере
продвижения переносить код со старого проекта в новый.
Примечание:
Проект на .NET Core
должен иметь указаную версию используемого .NET Core
в секции <TargetFramework>
проектного файла csproj,
как показано ниже.
<TargetFramework>netcoreapp2.0</TargetFramework>
Также необходимо указать информацию
о используемой версии в global.json.
{
"sdk": {
"version": "2.0.0"
}
}
Похожим
образом необходимо указать версию в секции <ItemGroup> проектного файла.
<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.All"
Version="2.0.0" />
</ItemGroup>
Использование .NET
Portability Analyzer
Наилучшей стратегией для понимания процесса
миграции является анализ требований по переносу. И здесь вам придет на помощь the .NET Portability Analyzer. Это отличное средство которое позволит вам с
пользой проанализировать процесс портирования вашего приложения на .NET Core.
Есть три вариации
.NET Portability Analizer, которые включают следующее:
- Консольное приложение
- Расширение Visual Studio
- .NET Core приложение
Мы будем использвать расширение студии для примера. Для
того что бы начать с инструментом работу, выполните следующие шаги:
- В студии нажмите на Tools -> Extensions and Updates
- Далее, выберите .NET Portability Analizer и укажите целевую платформу – версии .NET Core и ASP.NET Core на которые нужно мигрировать существующее приложние.
- Создайте новый проект ASP.NET и укажите для него .NET Framework 4.6
- Назовите и сохраните проект
- Выберите его и нажмите на "Analyze Assembly Portability" в контекстном меню.
После окончания анализа вы
получите отчет в окне Portability Analysis Results. Обратите внимание
что окно содержит три закладки:
- Portability Summary: Отображает итоговый отчет, которые содержит информацию о портировании проекта на целевую платформу
- Details: Эта закладка показывает более подробную информацию которая поможет понять существующие несовместимости.
- Missing Assemblies: Эта закладка содержит список сборок и компонентов, котоыре не были включены в отчет. Основная причина их исключения – то что они находтся в Global Cache Assembly (GAC)
Вы можете более подробно
разобраться со стратегиями
миграции здесь.
Выводы
В статье мы описали
стратегии, лучшие практики и инструменты которые могут быть полезны при
переводу приложений со старого ASP.NET к ASP.NET Core. Приятного чтения
Комментариев нет:
Отправить комментарий