В этой статье содержатся сведения, необходимые для начала создания приложений для классической среды Windows.
Windows предлагает широкий спектр возможностей для создания приложений, включая C++, .NET и другие новые технологии, такие как открытый код средства wSL и Rust. С таким количеством вариантов, это может быть трудно знать, где начать.
Библиотека пользовательского интерфейса Windows (WinUI) 3 — это последняя платформа пользовательского интерфейса для классических приложений Windows, включая управляемые приложения, использующие C# и .NET, а также собственные приложения, использующие C++ с API Win32. Он все еще находится под очень активной разработкой, поэтому, хотя он может не иметь возможности соответствовать всем вашим потребностям сегодня это созревать с каждым выпуском.
Включая систему Fluent Design во все интерфейсы, элементы управления и стили, WinUI предоставляет единообразные, интуитивно понятные и доступные возможности на основе новейших шаблонов пользовательского интерфейса. WinUI 3 предоставляется в пакете SDK для приложений Windows. Пакет SDK для приложений для Windows включает единый набор API и инструментов, которые могут согласованно использоваться любым приложением Win32 на C++ или .NET на C# в различных целевых версиях ОС Windows.
Классические приложения Win32 (иногда называемые просто классическими приложениями) — это исходный тип собственных приложений Windows, которым требуется прямой доступ к Windows и оборудованию. Благодаря этому такой тип будет лучшим выбором, если требуется самый высокий уровень производительности и прямой доступ к системному оборудованию.
Использование API Win32 с C++ позволяет достичь наивысшего уровня производительности и эффективности благодаря повышению контроля над целевой платформой с помощью неуправляемого кода, что возможно в управляемой среде выполнения, такой как WinRT и .NET. Однако такой уровень контроля над исполнением приложения требует большей осмотрительности и внимания для правильного выполнения, и позволяет извлекать выгоду из производительности разработки для производительности среды.
Вот несколько основных особенностей интерфейса API Win32 и C++ предложений, позволяющих создавать высокопроизводительные приложения.
Оптимизация на уровне оборудования, включающая тщательный контроль за выделением ресурсов, время существования объектов, макет данных, выравнивание, байтовую упаковку и многое другое.
Доступ к наборам инструкций, ориентированных на производительность, например SSE и AVX, с помощью встроенных функций.
Эффективное и строго типизированное универсальное программирование с помощью шаблонов.
Эффективные и надежные контейнеры и алгоритмы.
DirectX, в частности Direct3D и DirectCompute (обратите внимание, что UWP также предлагает межпрограммное взаимодействие с DirectX).
Используйте C++/WinRT для создания современных классических приложений Win32 с эффективным доступом к интерфейсам API среды выполнения Windows (WinRT).
У вас также есть доступ к современным возможностям платформы Windows и API, предоставляемым пакетом SDK для приложений Windows. Дополнительные сведения см. в статье Модернизация классических приложений.
WPF — это надежная платформа для управляемых приложений Windows с доступом ко всем компонентам .NET или .NET Framework, в которой используется разметка XAML для отделения пользовательского интерфейса от кода. Эта платформа создана для классических приложений, для которых требуется расширенный пользовательский интерфейс, настройка стилей и сценарии с большим объемом графики. Навыки разработки WPF похожи на навыки разработки WinUI 3, поэтому миграция из WPF в приложения WinUI 3 проще, чем миграция с Windows Forms.
У вас также есть доступ к современным возможностям платформы Windows и API, предоставляемым пакетом SDK для приложений Windows. Дополнительные сведения см. в статье Модернизация классических приложений.
Windows Forms — это исходная платформа для управляемых приложений Windows с упрощенной моделью пользовательского интерфейса с доступом ко всем компонентам .NET или .NET Framework. Это позволяет разработчикам быстро приступить к созданию приложений, даже новичкам на платформе. Это платформа быстрой разработки приложений на основе форм с большой встроенной коллекцией визуальных и невизуальных элементов управления, поддерживающих перетаскивание. Windows Forms не использует XAML, поэтому при переносе приложения в WinUI 3 пользовательский интерфейс будет полностью переписан.
У вас также есть доступ к современным возможностям платформы Windows и API, предоставляемым пакетом SDK для приложений Windows. Дополнительные сведения см. в статье Модернизация классических приложений.
На универсальной платформе Windows (UWP) предоставляется система общих типов, интерфейсы API и модель приложений для всех устройств под управлением UWP. Вы можете не только использовать UWP для создания классических приложений для компьютеров под управлением Windows — UWP также является единственной платформой с поддержкой написания собственных универсальных приложений для выполнения на Xbox, HoloLens и в Surface Hub. Приложения UWP могут быть собственными или управляемыми.
UWP — это платформа с широкими возможностями настройки, которая использует разметку XAML для отделения пользовательского интерфейса (представления) от кода (бизнес-логики). UWP подходит для классических приложений, которым требуется расширенный пользовательский интерфейс, настройка стилей и сценарии с большим объемом графики. UWP также имеет встроенную поддержку Системы дизайна Fluent для работы с UX по умолчанию и обеспечивает доступ к API Windows Runtime (WinRT).
У вас не будет доступа к API, предоставляемым пакетом SDK для приложений Windows. Чтобы использовать пакет SDK для приложений Windows, потребуется перенести приложение UWP в WinUI 3. Дополнительные сведения см. в статье о переходе на SDK для приложений Windows.
Варианты кросс-платформенной поддержки
WinUI также служит основой для кросс-платформенных технологий, обеспечивающих великолепные возможности Windows с использованием разных языков программирования. .NET MAUI и React Native для Windows используют возможности WinUI в Windows, а также включение выполнения в других операционных системах. Еще один кроссплатформенный вариант, прогрессивный веб-приложения (PWAs), — это веб-сайты, которые работают так же, как установленные, собственные приложения в Windows и других поддерживаемых платформах, в то время как обычные веб-сайты в браузерах.
Мультиплатформенный пользовательский интерфейс приложений .NET (MAUI) — это кросс-платформенная архитектура с открытым кодом для создания приложений Android, iOS, macOS и Windows, которые используют собственный пользовательский интерфейс и службы каждой платформы из единой базы кода .NET. Так как .NET MAUI ориентируется на использования собственных возможностей платформ, это решение использует WinUI 3 и пакет SDK для приложений Windows для реализации последних возможностей для пользователей в Windows. Благодаря этому приложения получают все необходимое с WinUI 3, а также возможность взаимодействовать с другими платформами.
.NET MAUI для Windows станет отличным выбором, если:
Вы хотите сохранить как можно больший объем кода .NET в мобильных и классических приложениях.
Вы хотите поставлять приложения на другие компьютерные и мобильные платформы, помимо Windows, с поддержкой собственных возможностей платформы.
Вы хотите использовать C# и (или) XAML для создания кросс-платформенных приложений.
Вы используете Blazor для веб-разработки и хотите включить все или одну часть этого решения в мобильное или классическое приложение.
Прогрессивные веб-приложения (PWAs) предоставляют доступ к открытым веб-технологиям для обеспечения кроссплатформенного взаимодействия. PwAs предоставляют пользователям возможность работы с приложением, настроенным для своих устройств. PWAs — это веб-сайты, которые постепенно расширены для работы как установленные, собственные приложения на вспомогательных платформах (включая Windows), в то время как обычные веб-сайты в других браузерах.
При установке в Windows ЦС так же, как и другие приложения. Например:
PWA можно добавить в меню .
PWA можно закрепить на панели задач.
ЦП может обрабатывать файлы.
ЦС могут выполняться при входе пользователя.
PVA можно отправить в Microsoft Store, где миллионы пользователей Windows могут обнаруживать и легко устанавливать их вместе с другими приложениями Windows.
React Native — это платформа разработки, которая позволяет создавать кросс-платформенные приложения.
React Native для Windows предоставляет поддержку React Native для пакетов SDK Windows 10 и Windows 11, позволяя использовать JavaScript для создания собственных приложений Windows для всех устройств, поддерживаемых Windows 10 и Windows 11, включая ПК, планшеты, трансформеры, Xbox, устройства смешанной реальности и т. д.
При использовании React Native для Windows вы пишете основную часть кода приложения или весь код на JavaScript или TypeScript, а платформа создает собственное приложение XAML UWP. Если приложению требуется вызывать API платформы, обычно это можно сделать с помощью одного из многих модулей сообщества или, если нужный модуль еще не существует, вы можете легко написать собственный.
Ниже приведены некоторые преимущества React Native для Windows:
Вам нужно обеспечить максимально возможное совместное использование кода на разных платформах или у вас есть веб-свойства, с которыми требуется совместно использовать код.
Высокая производительность разработки и оптимизированный внутренний цикл благодаря быстрому обновлению.
Основные характеристики приложения (производительность, доступность, интернационализация) находятся на уровне характеристик собственного приложения UWP.
У вас есть опыт работы с JavaScript или TypeScript, а также желание использовать эти языки.
Вы хотели бы использовать библиотеки JavaScript в npmjs.com, а также многие собственные библиотеки.
Приложение будет использовать характерные для платформы элементы управления, вид, анимацию и цвета, благодаря чему оно воспринимается естественно в Windows. Кроме того, при использовании приложений React Native для Windows не нужно идти на компромиссы в отношении набора API, которые они могут вызывать, так как платформа позволяет вызывать API платформы, а также писать собственные диспетчеры представлений и собственные модули.
Источник этого содержимого можно найти на GitHub, где также можно создавать и просматривать проблемы и запросы на вытягивание. Дополнительные сведения см. в нашем руководстве для участников.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделе https://aka.ms/ContentUserFeedback.