Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этой статье содержатся сведения, необходимые для начала создания приложений для 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 для настольных систем включает 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 см. по следующим ссылкам:
- Репозиторий React Native для Windows на сайте GitHub
- React Native для репозитория macOS на GitHub
- Справочник по API
- Ресурсы React Native для настольных компьютеров
WPF (Windows Presentation Foundation)
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, Blazor Hybrid или прогрессивного веб-приложения (PWA). Многие другие варианты доступны (вот список популярных вариантов), но эти варианты являются хорошими отправными точками.
.NET MAUI использует возможности WinUI в Windows, а также включает выполнение в других операционных системах. Blazor Hybrid объединяет настольные и мобильные родные клиентские фреймворки с .NET и Blazor. Еще один кроссплатформенный вариант, прогрессивный веб-приложения (PWAs), — это веб-сайты, которые работают так же, как установленные, собственные приложения в Windows и других поддерживаемых платформах, в то время как обычные веб-сайты в браузерах.
Дополнительные сведения см. на следующих вкладках.
Мультиплатформенный пользовательский интерфейс приложений .NET (MAUI) — это кроссплатформенная платформа для создания приложений Android, iOS, macOS и Windows. С помощью .NET MAUI можно использовать собственный пользовательский интерфейс и службы каждой платформы из одной базы кода .NET. Так как .NET MAUI предпочитает собственный интерфейс платформы, он использует WinUI и пакет SDK для приложений Windows, чтобы приложения получили последнюю версию пользовательского интерфейса в Windows. Этот подход предоставляет приложениям доступ ко всему, что вы получаете с помощью WinUI, а также возможность доступа к другим платформам.
.NET MAUI для Windows является отличным выбором, если вы:
- Хотите предоставить общий доступ к максимальному объему кода .NET в мобильных и классических приложениях.
- Хотите отправить приложение за пределы Windows в другие целевые объекты для настольных компьютеров и мобильных устройств с собственными возможностями платформы.
- Хотите использовать C# и (или) XAML для создания кроссплатформенных приложений.
- Используете Blazor для веб-разработки и хотите включить все или часть этого в мобильное или классическое приложение.
Дополнительные сведения о .NET MAUI см. по следующим ссылкам:
Сравнение функций платформы разработки приложений
У вас есть множество вариантов разработки приложений для Windows. Лучший вариант зависит от требований приложения, существующего кода и вашего опыта работы с технологией. В следующей таблице перечислены самые популярные платформы разработки приложений, доступные в Windows, и функции, поддерживаемые каждой платформой.
| Функция | .NET MAUI | Блэйзор Гибрид | React Native для desktop | XAML UWP (Windows.UI.Xaml) | Win32 (MFC или ATL) | Windows Forms | WinUI 3 | WPF (Windows Presentation Foundation) |
|---|---|---|---|---|---|---|---|---|
| Язык | C# | C# | JavaScript, TypeScript | C#, C++, Visual Basic | C++, Rust | C#, Visual Basic | C#, C++ | C#, Visual Basic |
| Язык пользовательского интерфейса | XAML/Код | Бритва | JSX | XAML | Код | Код | XAML | XAML |
|
Конструктор пользовательского интерфейса (перетаскивание) |
Не поддерживается | Не поддерживается | Не поддерживается | Поддерживается | Не поддерживается | Поддерживается | Не поддерживается | Поддерживается |
| Отладка пользовательского интерфейса | Горячая перезагрузка | Горячая перезагрузка | Быстрое обновление | Горячая перезагрузка | - | Горячая перезагрузка | Горячая перезагрузка | Горячая перезагрузка |
| Плавный дизайн | Поддерживается | Поддерживается | Поддерживается | Поддерживается (через WinUI 2) | Не поддерживается | Не поддерживается | Поддерживается | Не поддерживается |
| .СЕТЬ | .СЕТЬ | .СЕТЬ | Н/П | .NET Core и .NET Native | Н/П | .NET и платформа .NET Framework | .СЕТЬ | .NET и платформа .NET Framework |
| Пакет SDK для приложений Windows | Поддерживается (дополнительные сведения) | Поддерживаетсяс помощью MAUI | Поддерживается (дополнительные сведения) | Не поддерживается | Поддерживается | Поддерживается (дополнительные сведения) | Поддерживается | Поддерживается (дополнительные сведения) |
| Отлично подходит для сенсорного ввода | Поддерживается | Поддерживается | Поддерживается | Поддерживается | Не поддерживается | Не поддерживается | Поддерживается | Не поддерживается |
| Кроссплатформенные приложения | Поддерживается | Поддерживается | Поддерживается | Не поддерживается | Не поддерживается | Не поддерживается | Не поддерживается | Не поддерживается |
| Приложения Xbox/HoloLens | Не поддерживается | Не поддерживается | Поддерживается | Поддерживается | Не поддерживается | Не поддерживается | Не поддерживается | Не поддерживается |
| Песочница (AppContainer) | Не поддерживается | Не поддерживается | Поддерживается | Поддерживается | Не поддерживается | Не поддерживается | Не поддерживается | Не поддерживается |
| В настоящее время поддерживается | Поддерживается | Поддерживается | Поддерживается | Поддерживается | Поддерживается | Поддерживается | Поддерживается | Поддерживается |
| Получение обновлений | Поддерживается | Поддерживается | Поддерживается | Поддерживается (безопасность и исправление ошибок) | Поддерживается | Поддерживается | Поддерживается | Поддерживается |
| План выхода продуктов | GitHub | GitHub | GitHub | Недоступно | Недоступно | GitHub | GitHub | GitHub |
Дополнительные сведения о каждом из этих вариантов:
- Часто задаваемые вопросы разработчиков Windows
- Пользовательский интерфейс многоплатформенного приложения .NET (.NET MAUI)
- гибридный ASP.NET Core Blazor
- React Native для desktop
- Универсальная платформа Windows (UWP)
- Рекомендации по выбору между ATL и MFC
- Формы Windows
- Windows Presentation Foundation (WPF)
- WinUI в пакете SDK для приложений Windows (WinUI 3)
Следующие шаги
-
Использование WinUI для начала разработки приложений для Windows
WinUI — это рекомендуемая платформа для приложений Windows. Эти шаги помогут вам быстро приступить к работе.
-
Настройка среды разработки в Windows
Windows не просто отлично подходит для разработки приложений, работающих в Windows. Это также мощная среда для разработки приложений для любой платформы. Узнайте больше о средствах и вариантах, доступных для максимальной разработки.
Windows developer