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

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

Windows предлагает широкий спектр языков, платформ и инструментов для создания приложений, включая WinUI, React Native для настольных компьютеров, 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 в существующем приложении, ознакомьтесь с руководствами для конкретной платформы.

React Native для desktop

React Native — это платформа разработки, которая позволяет создавать кросс-платформенные приложения. React Native для desktop включает React Native для Windows и macOS, что обеспечивает поддержку React Native в пакете SDK для Windows. React Native для desktop позволяет использовать JavaScript для создания собственных приложений Windows для всех устройств, поддерживаемых Windows 10 и Windows 11. К ним относятся компьютеры, планшеты, 2-in-1s, Xbox, Смешанная реальность устройства и т. д.

При использовании React Native для Desktop вы пишете большую часть кода приложения в JavaScript или TypeScript, а платформа создает собственное приложение XAML UWP. Если приложению требуется вызывать API платформы, обычно это можно сделать с помощью одного из многих модулей сообщества или, если нужный модуль еще не существует, вы можете легко написать собственный.

Ниже приведены некоторые причины выбора React Native для Desktop:

  • Вам нужно обеспечить максимально возможное совместное использование кода на разных платформах или у вас есть веб-свойства, с которыми требуется совместно использовать код.
  • Высокая производительность разработки и оптимизированный внутренний цикл благодаря быстрому обновлению.
  • Основные характеристики приложения (производительность, доступность, интернационализация) находятся на уровне характеристик собственного приложения UWP.
  • У вас есть опыт работы с JavaScript или TypeScript, а также желание использовать эти языки.
  • Вы хотели бы использовать библиотеки JavaScript в npmjs.com, а также многие собственные библиотеки.
  • Приложение будет использовать характерные для платформы элементы управления, вид, анимацию и цвета, благодаря чему оно воспринимается естественно в Windows. Кроме того, приложения React Native для классических приложений не должны компрометировать набор API, которые они могут вызывать, так как платформа позволяет вызывать API платформы, а также создавать собственные диспетчеры представлений и собственные модули.
  • Большое и растущее сообщество, а также множество модулей сообщества.

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

WPF

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

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

Совет

Если вы уже инвестировали в WPF, вы можете продолжать использовать его и воспользоваться вариантами модернизации в .NET 9. Вы можете создавать приложения, зная, что Корпорация Майкрософт продолжает инвестировать в WPF. Дополнительные сведения см. в статье о платформе разработки клиентских приложений.

Если у вас есть приложение 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" в существующем проекте и модернизации классических приложений.

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

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

.NET MAUI использует возможности WinUI в Windows, а также включает выполнение в других операционных системах. Еще один кроссплатформенный вариант, прогрессивный веб-приложения (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 для desktop 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

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

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