Общие рекомендацииGeneral guidance

В этом разделе представлена сводка относительно выбора .NET 5 или .NET Framework.This section provides a summary of when to choose .NET 5 or .NET Framework. Дополнительные сведения об этих вариантах представлены в последующих разделах.We provide more details about these choices in the sections that follow.

Используйте .NET 5 с контейнерами Windows или Linux для контейнерного серверного приложения Docker в следующих случаях:Use .NET 5, with Linux or Windows Containers, for your containerized Docker server application when:

  • для создания кроссплатформенных решений;You have cross-platform needs. Например, вы хотите использовать контейнеры и Windows, и Linux.For example, you want to use both Linux and Windows Containers.

  • Архитектура приложения основана на микрослужбах.Your application architecture is based on microservices.

  • Вам нужно быстро запустить контейнеры, и вы хотите использовать небольшой объем памяти на каждый контейнер, чтобы получить более высокую плотность или больше контейнеров на единицу оборудования для снижения затрат.You need to start containers fast and want a small footprint per container to achieve better density or more containers per hardware unit in order to lower your costs.

Вкратце, при создании новых контейнерных приложений .NET следует рассматривать .NET 5 как вариант по умолчанию.In short, when you create new containerized .NET applications, you should consider .NET 5 as the default choice. Он имеет множество преимуществ и лучше соответствует концепции и стилю работы с контейнерами.It has many benefits and fits best with the containers philosophy and style of working.

Дополнительное преимущество использования .NET 5 заключается в том, что можно параллельно запускать версии .NET для приложений на одной и той же машине.An extra benefit of using .NET 5 is that you can run side-by-side .NET versions for applications within the same machine. Данное преимущество более важно для серверов или виртуальных машин, которые не используют контейнеры, так как контейнеры изолируют версии .NET, нужные приложению.This benefit is more important for servers or VMs that do not use containers, because containers isolate the versions of .NET that the app needs. (При условии, что они совместимы с базовой ОС.)(As long as they are compatible with the underlying OS.)

Используйте .NET Framework для серверных приложений в контейнерах Docker в следующих случаях.Use .NET Framework for your containerized Docker server application when:

  • В настоящее время приложение использует .NET Framework и имеет строгие зависимости от Windows.Your application currently uses .NET Framework and has strong dependencies on Windows.

  • Необходимо использовать API Windows, которые не поддерживаются .NET 5.You need to use Windows APIs that are not supported by .NET 5.

  • Требуются сторонние библиотеки .NET или пакеты NuGet, недоступные для .NET 5.You need to use third-party .NET libraries or NuGet packages that are not available for .NET 5.

Использование .NET Framework в Docker может улучшить качество развертывания, сводя к минимуму проблемы развертывания.Using .NET Framework on Docker can improve your deployment experiences by minimizing deployment issues. Данный сценарий "подъема и смены" важен для контейнеризации приложений прежних версий, которые изначально были разработаны с использованием классической платформы .NET Framework, например ASP.NET WebForms, веб-приложений MVC или служб WCF (Windows Communication Foundation).This "lift and shift" scenario is important for containerizing legacy applications that were originally developed with the traditional .NET Framework, like ASP.NET WebForms, MVC web apps or WCF (Windows Communication Foundation) services.

Дополнительные ресурсыAdditional resources

  • Электронная книга. модернизация существующих приложений .NET Framework с помощью Azure и контейнеров WindowsE-book: Modernize existing .NET Framework applications with Azure and Windows Containers
    https://aka.ms/liftandshiftwithcontainersebook

  • Примеры приложений: модернизация устаревших веб-приложений ASP.NET с помощью контейнеров WindowsSample apps: Modernization of legacy ASP.NET web apps by using Windows Containers
    https://aka.ms/eshopmodernizing