Поделиться через


Обзор параметров платформы

В этой статье содержатся сведения, необходимые для начала создания приложений для Windows.

Windows предлагает широкий спектр языков, платформ и инструментов для создания приложений, включая WinUI, WPF, C++, C#, .NET и различные кроссплатформенные платформы. Здесь мы предоставляем информацию, чтобы помочь вам решить, какой вариант лучше всего подходит для вас.

WinUI

.

Мы рекомендуем WinUI и пакет SDK для приложений Windows, чтобы создавать приложения, которые выглядят отлично и используют последние выпуски Windows. Если вы не знакомы с разработкой Windows или начинаете работу с новым приложением Для Windows, WinUI предоставляет ресурсы, необходимые для создания отличных приложений для Windows 11.

WinUI — это уровень пользовательского интерфейса на основе разметки XAML, содержащий современные элементы управления и стили для создания приложений Windows. Как собственный слой пользовательского интерфейса для пакета SDK для приложений Windows, он воплощает Fluent Design, предоставляя каждому приложению Windows полированную ощущение, что клиенты ожидают.

Примечание.

Пакет SDK для приложений Windows — это набор новых компонентов и средств разработчика, представляющих последнюю эволюцию платформы разработки приложений Для Windows. Пакет SDK для приложений Windows предоставляет единый набор API-интерфейсов и средств, которые можно использовать в классических приложениях в Windows 11 и нижней версии До Windows 10 версии 1809.

Хотя WinUI является собственным уровнем пользовательского интерфейса, вы можете использовать пакет SDK приложений Windows с приложениями WPF, WinForms или Win32. Если вы разработали приложения для Windows раньше, но хотите приступить к работе с пакетом SDK для приложений Windows в существующем приложении, ознакомьтесь с руководствами для конкретной платформы.

WPF

WPF — это хорошо установленная платформа для классических приложений Windows с доступом к .NET или платформа .NET Framework. Как и WinUI, он также использует разметку XAML для разделения пользовательского интерфейса от кода. WPF предоставляет полный набор функций разработки приложений, включающих элементы управления, привязку данных, макет, трехмерную графику, анимацию, стили, шаблоны, документы, мультимедиа, текст и типографию. WPF является частью .NET, поэтому вы можете создавать приложения, включающие другие элементы .NET API.

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

Если у вас есть приложение WPF .NET , у вас также есть доступ к современным функциям платформы Windows и API, предоставляемым пакетом SDK для приложений Windows. Дополнительные сведения см. в статье "Использование пакета SDK для приложений Windows" в приложении WPF и модернизации классических приложений.

Совет

Если вам нужна дополнительная помощь в выборе платформы для вашего приложения, ознакомьтесь с рекомендациями по выбору оптимальной платформы приложений для модуля обучения проекта разработки Windows.

Другие параметры собственной платформы

Многие приложения для Windows написаны с помощью Win32, Windows Forms или UWP. Каждая из этих платформ поддерживается и будет продолжать получать исправления ошибок, надежности и безопасности, но различные уровни инвестиций для новых функций и стилей. Дополнительные сведения об этих типах приложений см. на следующих вкладках.

Классические приложения Win32 (иногда называемые просто классическими приложениями) — это исходный тип собственных приложений Windows, которым требуется прямой доступ к Windows и оборудованию. Это делает Win32 типом приложения для приложений, которым требуется высокий уровень производительности и прямой доступ к системным оборудованию.

Использование API Win32 с C++ позволяет достичь наивысшего уровня производительности и эффективности, используя более контроль над целевой платформой с неуправляемыми кодом, чем это возможно в управляемой среде выполнения, такой как WinRT и .NET. Однако такой уровень контроля над исполнением приложения требует большей осмотрительности и внимания для правильного выполнения, и позволяет извлекать выгоду из производительности разработки для производительности среды.

Вот несколько основных особенностей интерфейса API Win32 и C++ предложений, позволяющих создавать высокопроизводительные приложения.

  • Оптимизация на уровне оборудования, включающая тщательный контроль за выделением ресурсов, время существования объектов, макет данных, выравнивание, байтовую упаковку и многое другое.
  • Доступ к наборам инструкций, ориентированных на производительность, например SSE и AVX, с помощью встроенных функций.
  • Эффективное и строго типизированное универсальное программирование с помощью шаблонов.
  • Эффективные и надежные контейнеры и алгоритмы.
  • DirectX, в частности Direct3D и DirectCompute.
  • Используйте C++/WinRT для создания современных классических приложений Win32 с эффективным доступом к интерфейсам API среды выполнения Windows (WinRT).

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

У вас также есть доступ к современным возможностям платформы Windows и API, предоставляемым пакетом SDK для приложений Windows. Дополнительные сведения см. в статье "Использование пакета SDK для приложений Windows" в существующем проекте и модернизации классических приложений.

Варианты кросс-платформенной поддержки

Если вам нужно, чтобы приложение было кроссплатформенным, рассмотрим .NET MAUI, прогрессивное веб-приложение (PWA) или React Native для Windows. Есть много других вариантов (вот список популярных вариантов), но это некоторые хорошие начальные точки.

.NET MAUI использует возможности WinUI в Windows, а также включает выполнение в других операционных системах. React Native для Windows позволяет создавать приложения, которые работают на всех устройствах, поддерживаемых Windows 10 и Windows 11 (а не только на компьютерах). Еще один кроссплатформенный вариант, прогрессивный веб-приложения (PWAs), — это веб-сайты, которые работают так же, как установленные, собственные приложения в Windows и других поддерживаемых платформах, в то время как обычные веб-сайты в браузерах.

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

Мультиплатформенный пользовательский интерфейс приложений .NET (MAUI) — это кросс-платформенная архитектура с открытым кодом для создания приложений Android, iOS, macOS и Windows, которые используют собственный пользовательский интерфейс и службы каждой платформы из единой базы кода .NET. Так как .NET MAUI предпочитает собственный интерфейс платформы, он использует WinUI и пакет SDK для приложений Windows, чтобы приложения получили последнюю версию пользовательского интерфейса в Windows. Это дает приложениям доступ ко всему, что вы получаете с помощью WinUI, а также возможность доступа к другим платформам.

.NET MAUI для Windows станет отличным выбором, если:

  • Вы хотите сохранить как можно больший объем кода .NET в мобильных и классических приложениях.
  • Вы хотите поставлять приложения на другие компьютерные и мобильные платформы, помимо Windows, с поддержкой собственных возможностей платформы.
  • Вы хотите использовать C# и (или) XAML для создания кросс-платформенных приложений.
  • Вы используете Blazor для веб-разработки и хотите включить все или одну часть этого решения в мобильное или классическое приложение.

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

Сравнение функций платформы разработки приложений

Существует широкий спектр вариантов разработки приложений для Windows. Лучший вариант зависит от требований приложения, существующего кода и вашего опыта работы с технологией. В следующей таблице перечислены самые популярные платформы разработки приложений, доступные в Windows, и функции, поддерживаемые каждой платформой.

Функция .NET MAUI Blazor Hybrid React Native (RNW) XAML UWP (Windows.UI.Xaml) Win32 (MFC или ATL) Windows Forms WinUI 3 WPF
Язык C# C# JavaScript, TypeScript C#, C++, Visual Basic C++, Rust C#, Visual Basic C#, C++ C#, Visual Basic
Язык пользовательского интерфейса XAML/Code Razor JSX XAML Код Код XAML XAML
Конструктор пользовательского интерфейса
(перетаскивание)
Отладка пользовательского интерфейса Горячая перезагрузка Горячая перезагрузка Быстрое обновление Горячая перезагрузка - Горячая перезагрузка Горячая перезагрузка Горячая перезагрузка
Fluent Design ✅ (через WinUI 2)
.NET .NET .NET Н/П .NET Core и .NET Native Н/П .NET и платформа .NET Framework .NET .NET и платформа .NET Framework
Пакет SDK для приложений Windows ✅ (дополнительные сведения) с помощью MAUI ✅ (дополнительные сведения) ✅ (дополнительные сведения) ✅ (дополнительные сведения)
Отлично подходит для сенсорного ввода
Кроссплатформенные приложения
Приложения Xbox/HoloLens
Песочница (AppContainer)
В настоящее время поддерживается
Получение обновлений ✅ (безопасность и исправление ошибки)
План выхода продуктов GitHub GitHub GitHub Недоступно Недоступно GitHub GitHub GitHub

Дополнительные сведения о каждом из этих вариантов:

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