Что такое собственные окна

Обновлено: 21.11.2024

При создании приложения React Native для Windows с помощью интерфейса командной строки вы получите приложение универсальной платформы Windows (также известное как приложение UWP).

Приложения Win32 Desktop и приложения RNW

Независимо от того, являетесь ли вы новичком в разработке приложений для Windows или ветераном настольных приложений Win32, следующие часто задаваемые вопросы должны ответить на некоторые распространенные вопросы.

Когда вы добавите поддержку Windows в собственное приложение React с помощью шагов, описанных в разделе «Установка расширения Windows», интерфейс командной строки react-native-windows создаст для вас приложение UWP.

Независимо от языка вашего приложения приложения RNW являются приложениями UWP и поэтому имеют следующие характеристики:

Набор API-интерфейсов, к которым может получить доступ это приложение, является подмножеством всех API-интерфейсов Windows (т. е. тех, которые доступны через WinRT). См.:

Приложение работает внутри контейнера приложений — своего рода песочницы. Это обеспечивает безопасный способ установки приложений, доступ к системным ресурсам, таким как файловая система, и позволяет системе управлять временем их существования (например, приостанавливать приложение, когда оно не находится на переднем плане). Это означает, что по умолчанию приложение RNW не может получить доступ к произвольным расположениям файловой системы, запустить произвольные процессы и т. д. Приложения UWP, которым необходим доступ к таким возможностям, могут сделать это с помощью объявлений возможностей приложения.

Приложения React Native для Windows подписаны и упакованы. Упаковка — это механизм, с помощью которого приложение и его зависимости получают идентификатор, который используется для определения того, должны ли вызовы API, требующие системных возможностей (например, доступ к файловой системе), быть успешными или нет.

Приложения React Native для Windows можно распространять, устанавливать и обновлять следующими способами:

  • через Microsoft Store.
  • через частный Магазин, если вы представляете коммерческую или образовательную организацию. См. также раздел Распространение бизнес-приложений среди предприятий.
  • с помощью Установщика приложений.

Стоит отметить, что вы не можете просто "скопировать EXE", поскольку пакет приложения содержит не только основной исполняемый файл, включая манифест приложения, активы, зависимые библиотеки фреймворка и т. д.

Кроме того, к процессу отправки в Магазин предъявляются следующие требования:

Использование библиотек, отличных от WinRT

Все используемые вами библиотеки должны быть собраны как компоненты WinRT. Другими словами, вы не сможете легко связать библиотеки, созданные для настольных приложений Win32, без дополнительной работы.

Локальное тестирование и внутренний цикл

Для внутренней разработки вы можете развернуть свое приложение в целях тестирования, загрузив неопубликованное приложение и развернув его с помощью регистрации свободного файла. При сборке в режиме отладки (который используется по умолчанию) npx react-native run-windows выполняет регистрацию свободного файла вашего приложения, чтобы установить его локально. При запуске npx react-native run-windows с параметром --release CLI установит реальный пакет на ваш локальный компьютер. Это требует, чтобы приложение было подписано, а сертификат, который оно использует для подписи, должен быть доверенным для машины, на которой будет установлено приложение. См. Создание сертификата для подписи пакета и Введение в сертификаты.

Отладка сбоев и отчеты о проблемах

Если в вашем приложении происходит "жесткий сбой" (собственный код сталкивается с ошибкой, и ваше приложение закрывается), вам следует изучить нативную часть кода. Если проблема связана с уровнем Microsoft.ReactNative, отправьте сообщение об ошибке в репозиторий React Native для Windows и предоставьте собственную трассировку стека и, в идеале, аварийный дамп с символами. Для вашего удобства вы можете использовать скрипт для сбора собственного аварийного дампа и трассировки стека. Вот инструкции:

Сценарий настроит автоматический сбор дампа сбоев для вашего приложения, загрузит встроенные инструменты отладки (включая отладчик командной строки cdb) и попросит вас воспроизвести сбой.

На этом этапе вы можете запустить приложение (например, из меню "Пуск", если вы уже развернули его на локальном устройстве). При сбое приложения создается аварийный дамп. Затем вы можете нажать Enter, чтобы возобновить выполнение скрипта, и скрипт будет использовать cdb для автоматического анализа аварийного дампа и вывода результатов в файл analysis.log .

Затем сценарий скопирует содержимое журнала в буфер обмена, откроет файл журнала в блокноте и запустит браузер, чтобы зарегистрировать проблему в репозитории react-native-windows, где вы можете вставить трассировку стека в шаблон ошибки.

Джейсон Фитцпатрик

Джейсон Фитцпатрик
Редактор по особым поручениям

Джейсон Фитцпатрик — главный редактор LifeSavvy, дочернего сайта How-To Geek, посвященного лайфхакам, советам и рекомендациям. Он имеет более чем десятилетний опыт публикации и является автором тысяч статей для Review Geek, How-To Geek и Lifehacker.Джейсон работал редактором Weekend Lifehacker до того, как присоединился к How-To Geek. Подробнее.

Когда люди говорят о запуске собственного программного обеспечения, эмуляции и совместимости программного обеспечения, что именно они имеют в виду? Продолжайте читать, пока мы углубляемся в концепцию нативного программного обеспечения.

Сегодняшняя сессия вопросов и ответов проводится благодаря SuperUser — подразделению Stack Exchange – группы веб-сайтов вопросов и ответов, созданной сообществом.

Вопрос

Читатель SuperUser Throsby интересуется, что значит запускать программное обеспечение в исходном виде. Он пишет:

Мне было интересно, что означает, что программное обеспечение работает изначально. Что такое такое программное обеспечение и чем оно отличается от программного обеспечения, которое не запускается изначально? Как узнать, будет ли данное программное обеспечение работать на моем компьютере? Есть ли вероятность, что на моем компьютере уже есть программное обеспечение, работающее по умолчанию?

Прочитайте прекрасную аналогию, объясняющую, что именно означает быть нативным в данной системе.

Ответ

Делтик, участник программы SuperUser, предлагает фантастическую аналогию, которая показывает, что значит для программного обеспечения быть нативным и какое другое программное обеспечение можно найти в данной системе:

Программное обеспечение является родным для платформы, если оно было разработано для работы на этой платформе.

Платформа обычно относится к операционной системе, но также может можно применять к таким устройствам, как Nintendo Game Boy.

В качестве примера возьмем Game Boy, он получает свое программное обеспечение с картриджей. Эти картриджи содержат код, который изначально запускается на Game Boy.

Эмуляторы — это слой, позволяющий запускать программное обеспечение, разработанное для одной платформы, на другой. Например, существуют эмуляторы, которые могут выполнять образы картриджей Game Boy и позволяют вам играть в игры Game Boy на компьютере или даже на мобильном телефоне.

Уровень совместимости чем-то похож на эмулятор. Когда 64-битные компьютеры и операционные системы стали массовыми, они должны были быть совместимы с существующими 32-битными технологиями. Поскольку 64-разрядная и 32-разрядная архитектуры сильно различаются, часто требуется уровень совместимости для запуска 32-разрядного программного обеспечения на 64-разрядных машинах. Для 64-разрядных выпусков Microsoft Windows Microsoft необходимо было написать уровень совместимости, чтобы 32-разрядные программы по-прежнему работали в новой 64-разрядной системе. Вот почему некоторые программы часто устанавливаются в папку Program Files (x86), где x86 означает «32-разрядная».

Уровни совместимости, как правило, более тесно связаны с исходной системой, чем эмуляторы. VirtualBoxэмулирует аппаратное обеспечение операционных систем*, а системы, которые он эмулирует, не имеют непосредственного взаимодействия с хост-системой. WoW64 — это уровень совместимости, который позволяет более интегрированно запускать 32-разрядные программы в 64-разрядной версии Windows. WoW64 помогает сделать программы совместимыми, а не эмулировать их в изолированной среде.

Библиотека перевода — это компонент уровней совместимости. Всякий раз, когда двоичный код выполняется не в собственном коде, библиотека перевода помогает перенаправлять внешние вызовы, не являющиеся родными, на собственные вызовы, понятные системе. Ассемблерные программы, написанные для оригинального TI-83, могут быть несовместимы с более новыми калькуляторами TI-83/84 Plus, потому что некоторые вызовы, которые имели смысл в архитектуре TI-83, могут больше не работать в TI-83/84+. Библиотека перевода (вероятно, включенная в такие оболочки, как MirageOS) гарантирует, что вызовы для TI-83 перейдут в новые, обновленные места в калькуляторах TI-83/84+.

Независимый от платформы код написан на язык, который интерпретируется чем-то, что обычно работает изначально. Например, PHP — это язык программирования, который интерпретируется и выполняется установленным двоичным файлом PHP, который уже был скомпилирован собственно для операционных систем Windows, Mac и Unix. Код PHP, который пишут веб-скрипторы, не зависит от платформы, что позволяет коду работать в нескольких операционных системах, если для этих операционных систем установлен PHP.

Есть что добавить к объяснению? Отключите звук в комментариях. Хотите узнать больше ответов от других технически подкованных пользователей Stack Exchange? Ознакомьтесь с полной веткой обсуждения здесь.

  • › Что означает собственная поддержка Apple Silicon?
  • › Как восстановить метки панели задач в Windows 11
  • › Худшее, что есть в телефонах Samsung, — это программное обеспечение Samsung.
  • ›5 шрифтов, которые следует прекратить использовать (и лучшие альтернативы)
  • › Как установить Google Play Маркет в Windows 11
  • › Почему прозрачные чехлы для телефонов желтеют?
  • › Что означает XD и как вы его используете?

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

Создать приложение WinUI 3

Если вы уже установили необходимые инструменты разработчика, вы готовы создать свой первый проект WinUI 3.

Другие типы приложений

Дополнительную информацию о типах приложений, которые вы можете выбрать, см. на следующих вкладках.

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

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

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

У вас также есть доступ к современным функциям платформы Windows и API-интерфейсам, предоставляемым Windows App SDK. Дополнительные сведения см. в разделе Модернизация настольных приложений.

У вас также есть доступ к современным функциям платформы Windows и API-интерфейсам, предоставляемым Windows App SDK. Дополнительные сведения см. в разделе Модернизация настольных приложений.

У вас также есть доступ к современным функциям платформы Windows и API-интерфейсам, предоставляемым Windows App SDK. Дополнительные сведения см. в разделе Модернизация настольных приложений.

Универсальная платформа Windows (UWP) предоставляет общую систему типов, API и модель приложений для всех устройств универсальной платформы Windows. UWP можно использовать не только для создания настольных приложений для ПК с Windows, но и является единственной поддерживаемой платформой для написания единого собственного универсального приложения, которое работает на Xbox, HoloLens и Surface Hub. Приложения UWP могут быть собственными или управляемыми.

UWP – это платформа с широкими возможностями настройки, которая использует разметку XAML для отделения пользовательского интерфейса (представления) от кода (бизнес-логики). UWP подходит для настольных приложений, которым требуется сложный пользовательский интерфейс, настройка стилей и сценарии с интенсивным использованием графики. UWP также имеет встроенную поддержку Fluent Design System для пользовательского интерфейса по умолчанию и предоставляет доступ к API среды выполнения Windows (WinRT).

У вас не будет доступа к API, предоставляемым Windows App SDK. Чтобы использовать Windows App SDK, вам потребуется перенести приложение UWP на WinUI 3. Дополнительные сведения см. в разделе Миграция в Windows App SDK.

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

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

Вот несколько причин выбрать React Native для Windows:

Дополнительную информацию о React Native для Windows см. по следующим ссылкам:

Следует ли Microsoft заменить остальные нативные приложения Windows современными приложениями?

Должна ли Microsoft заменить остальные нативные приложения Windows современными приложениями?

Грег Шульц спрашивает, не пора ли отказаться от Блокнота, WordPad, Paint и других нативных приложений. Что вы думаете?

Со временем Microsoft заменила большинство нативных приложений Windows. Самым последним из этих нативных приложений, которые ушли в прошлое, является Internet Explorer, который заменяется Microsoft Edge. Должна ли Microsoft закончить работу в Windows 10? Давайте посмотрим поближе.

Родное приложение, которое теперь является современным

Как я уже упоминал, Internet Explorer заменяется Microsoft Edge в Windows 10. Однако это не единственное родное приложение, заменяемое современным приложением в Windows 10. Старый добрый инструмент поиска заменяется Cortana и калькулятором. заменяется современным приложением с таким же названием (рис. A).

Рисунок А

Наконец-то старый Калькулятор был заменен современным одноименным приложением в Windows 10.

Вероятно, вы также слышали, что пасьянс возвращается в Windows 10. Что ж, это правда. В Windows 8 карточные игры, такие как Solitaire/FreeCell/Spider, были удалены из операционной системы и заменены современным приложением, которое можно было загрузить из Магазина Windows под названием Microsoft Solitaire Collection. В Windows 10 коллекция пасьянсов Microsoft поставляется вместе с операционной системой, что избавляет от необходимости загружать ее из Магазина Windows.

Если вы заглянете глубже в прошлое, то увидите, что в Windows 10 было множество современных приложений, которые заменили старые родные приложения. Например, Mail заменяет Outlook Express/Windows Mail, Photos заменяет Windows Photo Viewer/Windows Live Photo Gallery, Scan заменяет старый мастер сканера и камеры (хотя Windows Fax and Scan все еще существует), People заменяет адресную книгу, а Voice Recorder заменяет звук. Рекордер. Ах да, и последнее воплощение приложения Microsoft Skype заменяет Windows Messenger/MSN Messenger.

И, конечно же, Microsoft бессистемно переносит утилиты из Панели управления в Настройки, которые имеют современный интерфейс приложений. К сожалению, это превратилось в настоящий беспорядок, так как настройки есть в обоих местах, но, с другой стороны, вы уже знаете мою позицию в споре о панели управления и настройках.

Нативные приложения, которые могут быть современными

В Windows 10 по-прежнему есть несколько старых собственных приложений, которые можно заменить эквивалентными современными приложениями. Например, на изображении в начале этой статьи показаны мокапы, которые я создал для трех больших несогласных: «Блокнот», «WordPad» и «Paint». Есть и другие возражения.

Например, у нас все еще есть Sticky Notes, Snipping Tool, Chart Map и все административные инструменты. Многие из этих приложений можно легко заменить более эффективными и мощными современными приложениями. Кроме того, есть проигрыватель Windows Media, который по-прежнему входит в состав Windows 10, несмотря на то, что приложение «Музыка» (рис. B) делает все то же, что и проигрыватель Windows Media, и даже больше.

Рисунок Б

Проигрыватель Windows Media по-прежнему включен в предварительную версию Windows 10 Insider Preview, хотя приложение «Музыка» делает все, что может WMP, и даже больше.

Что вы думаете?

Хотели бы вы, чтобы некоторые или все старые родные приложения Windows были заменены новыми современными приложениями? Что бы вы подумали, если бы Блокнот, WordPad и Paint были заменены современными приложениями? Поделитесь своим мнением в обсуждении ниже.

Читайте также: