Из Википедии, бесплатной энциклопедии
  (Перенаправлено из WinRT )
Перейти к навигации Перейти к поиску

Среда выполнения Windows ( WinRT ) - это платформенно-независимая архитектура приложений и компонентов, впервые представленная в Windows 8 и Windows Server 2012 в 2012 году. WinRT поддерживает разработку на C ++ / WinRT (стандартная библиотека на основе C ++), C ++ / CX (расширения компонентов, набор языковые расширения для компилятора Visual C ++, упрощающие доступ к среде выполнения Windows), Rust / WinRT , Python через пакет winrt , JavaScript - TypeScript и языки интерфейса командной строки, такие как C # и Visual Basic(VB.NET). Приложения WinRT изначально поддерживают как процессоры x86, так и процессоры ARM , однако собственные приложения необходимо отдельно компилировать для каждой архитектуры, и они могут работать в изолированной среде, чтобы обеспечить большую безопасность и стабильность. [1] [2] Компоненты WinRT разработаны с учетом возможности взаимодействия между несколькими языками и API, включая собственные, управляемые языки и языки сценариев.

Windows Phone 8.1 использовала версию среды выполнения Windows под названием Windows Phone Runtime . Он позволяет разрабатывать приложения на C # и VB.NET, а компоненты среды выполнения Windows - на C ++ / CX. [3]

Технология [ править ]

WinRT реализован на языке программирования C ++ [4] и является объектно-ориентированным по своей конструкции. [4] Его основной технологии, API для Windows (Win32 API), написана в основном на языке C . [5] Это интерфейс прикладного программирования (API) с неуправляемым кодом, основанный на модели компонентных объектов (COM), который, как и COM, позволяет взаимодействовать с несколькими языками. Однако определения API хранятся в файлах, которые закодированы в формате метаданных ECMA 335 , который .NET Framework также использует с некоторыми изменениями. [6] [7].winmd[ ненадежный источник? ] Этот общий формат метаданных позволяет значительно снизить накладные расходы при вызове WinRT из приложений .NET по сравнению с P / Invoke и значительно упростить синтаксис. [8] [ ненадежный источник? ]

Новые расширения языка C ++ / CX, также известные как расширения компонентов C ++, которые заимствуют некоторый синтаксис C ++ / CLI , были введены для написания и использования компонентов WinRT с меньшим количеством связующего кода, видимого программисту, по сравнению с классическим программированием COM на C ++, и налагают меньше ограничений относительно C ++ / CLI на смешивание типов. Расширения языка, предоставляемые C ++ / CX, рекомендуются для использования только на границе API, а не для других целей. [9] Regular C ++ (с COM-специфической дисциплины) также может быть использована для программы с компонентами WinRT, [10] с помощью среды выполнения Windows C ++ Template Library (WRL), который похож на цели , в какой шаблонных Библиотека предоставляет для COM.[11] В 2019 году Microsoft отказалась от C ++ / CX в пользубиблиотеки заголовков C ++ / WinRT . [12]

Приложения Windows, созданные с использованием среды выполнения Windows, обычно запускаются в изолированной программной среде [13] и требуют явного утверждения пользователя для доступа к критически важным функциям ОС и базовому оборудованию. По умолчанию доступ к файлам ограничен несколькими заранее определенными местоположениями, такими как каталоги «Документы» или «Изображения». [14] Эти приложения используют API-интерфейсы WinRT для входящих сообщений исключительно для этого, однако саму платформу компонентов среды выполнения Windows можно использовать из любого приложения Windows, а не только из приложений UWP.

Приложения на основе WinRT для Windows RT, Windows 8 и более поздних версий упакованы в .appx or .msixфайл формата; основанный на Open Packaging Conventions , он использует формат ZIP с добавленными файлами XML. [15] Эти приложения распространяются в основном через магазин приложений, известный как Microsoft Store , где пользователи могут загружать и приобретать программное обеспечение Windows (называемое приложениями Microsoft Store ). Пакетные приложения могут быть загружены извне Windows Store только в системы Windows 8 или RT, которые являются частью домена Windows или оснащены специальным ключом активации, полученным от Microsoft. [16] [17] [18][19] Это ограничение больше не существует в Windows 10 November Update или более поздних версиях, где пользователи могут свободно устанавливать любой пакет приложений вне Магазина напрямую от издателей. [20]

В отличие от Win32 и аналогично .NET Framework 4.5 , большинство API-интерфейсов, выполнение которых, как ожидается, займет значительное время, реализованы как асинхронные, чтобы приложение реагировало на ввод данных пользователем, пока операция выполняется в фоновом потоке или процессе. Приложение отправляет вызов API, который немедленно возвращается, позволяя приложению выполнять другие задачи. После завершения задачи выдается обратный вызов, который приложение может использовать для получения результатов. [21]Асинхронная модель требует новых конструкций языка программирования. У каждого языка есть свой способ вызова таких API. Части встроенного API, требующие асинхронного доступа, включают экранные сообщения и диалоговые окна, доступ к файлам, подключение к Интернету, сокеты, потоки, устройства и службы, а также календарь, контакты и встречи.

Услуги [ править ]

Метаданные [ править ]

Метаданные описывают код, написанный с использованием компонентной архитектуры WinRT. Он определяет модель программирования, которая позволяет писать объектно-ориентированный код, который может использоваться всеми языками программирования и к которому можно получить доступ естественным, знакомым образом на любом языке.

Херб Саттер , эксперт по C ++ в Microsoft , объяснил во время своего сеанса по C ++ на конференции 2011 Build, что метаданные WinRT имеют тот же формат, что и метаданные CLI . [9] Для управляемых компонентов код генерируется в самих метаданных, как и любая другая сборка .NET, однако, поскольку машинный код (т.е. машинный код, зависящий от процессора) не может быть включен в сборку .NET, машинный код включен в отдельном файле DLL / EXE, а метаданные содержат только декларацию.

Благодаря тому, что это метаданные CLI, управляемые языки CLI могут просматривать и разрешать объявления напрямую, однако сам фактический вызов выполняется с использованием низкоуровневых COM API, если компонент не реализован в управляемом коде.

Система типов [ править ]

WinRT имеет богатую объектно-ориентированную систему типов на основе классов, основанную на метаданных. Он поддерживает конструкции с соответствующими конструкциями в платформе .NET: классы , методы , свойства , делегаты и события .

Одним из основных дополнений к WinRT по сравнению с COM является межпрограммный двоичный интерфейс (ABI), обобщенные шаблоны в стиле .NET . В C ++ / CX они объявляются с использованием ключевого слова genericс синтаксисом, очень похожим на синтаксис ключевого слова template. Классы WinRT (ссылочные классы) также могут быть обобщены с использованием шаблонов C ++, но только экземпляры шаблонов могут быть экспортированы в метаданные .winmd (с некоторым изменением имени ), в отличие от универсальных шаблонов WinRT, которые сохраняют свою универсальность в метаданных. WinRT также предоставляет библиотеку универсальных контейнеров, которые параллельны контейнерам в стандартной библиотеке C ++., а также некоторые функции обратного преобразования. Использование коллекций WinRT в языках .NET (например, C # и VB) и в JavaScript более прозрачно, чем в C ++, с автоматическим отображением в их естественные эквиваленты, происходящим за кулисами. При создании компонента WinRT на управляемом языке необходимо соблюдать некоторые дополнительные правила в стиле COM, например, типы коллекций .NET Framework не могут быть объявлены как возвращаемые типы, но на границе компонента можно использовать только интерфейсы WinRT, которые они реализуют.

Компоненты среды выполнения Windows [ править ]

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

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

Интерфейсы программирования [ править ]

Программы и библиотеки, предназначенные для среды выполнения WinRT, можно создавать и использовать на нескольких платформах и языках программирования. В частности, C / C ++ (либо с языковыми расширениями, предлагающими первоклассную поддержку концепций WinRT, либо с библиотекой шаблонов нижнего уровня, позволяющей писать код на стандартном C ++), .NET ( C # и Visual Basic .NET (VB.NET)) и JavaScript . Это стало возможным благодаря метаданным.

В терминологии WinRT языковая привязка называется языковой проекцией .

C ++ [ править ]

Стандартный C ++ - первоклассный гражданин платформы WinRT. Начиная с версии 10.0.17134.0 (Windows 10, версия 1803), Windows SDK содержит файлы заголовков C ++ / WinRT для API-интерфейсов среды выполнения Windows для входящих сообщений. C ++ / WinRT - это полностью стандартная современная языковая проекция C ++ 17 для API среды выполнения Windows (WinRT), реализованная в виде библиотеки на основе файла заголовка и предназначенная для обеспечения первоклассного доступа к современному API Windows. С помощью C ++ / WinRT API среды выполнения Windows можно создавать и использовать с помощью любого совместимого со стандартами компилятора C ++ 17 ( были протестированы только Clang и Visual C ++ , но другие должны работать нормально по большей части). WinRT является собственной платформой и поддерживает стандартный код C ++, поэтому разработчик C ++ может повторно использовать существующие библиотеки C / C ++.

До того, как C ++ / WinRT был официально выпущен в Windows SDK с октября 2016 года [22], Microsoft предлагала на GitHub C ++ / WinRT. [23] Он не полагается на код C ++ / CX, в результате чего создаются двоичные файлы меньшего размера и более быстрый код. [24] Хотя C ++ / WinRT основан на заголовках, он не полагается на заголовки SDK (например, Windows.h), вместо этого настраивает свои собственные файлы заголовков с типами, которые имеют идентичное двоичное представление под капотом. [25]

Есть два других устаревших варианта использования WinRT из C ++: WRL, библиотека шаблонов в стиле ATL и языковые расширения C ++ / CX, похожие на C ++ / CLI. [26] Из-за требований к внутреннему потреблению в Microsoft WRL не содержит исключений, что означает, что его дисциплина возврата значения основана на HRESULT, как и в COM. [27] C ++ / CX, с другой стороны, завершает вызовы WinRT кодом, который выполняет проверку ошибок и при необходимости выдает исключения, и наоборот. [28]

C ++ / CX имеет несколько расширений, которые обеспечивают интеграцию с платформой и ее системой типов. Синтаксис похож на синтаксис C ++ / CLI, хотя он создает машинный код (хотя исходный код не является стандартным), код и метаданные, которые интегрируются, чтобы другие могли получить доступ к типам, предоставляемым конкретным компонентом. Например, объекты WinRT могут выделяться с помощью ref new, что аналогично gcnewключевому слову C ++ / CLI, однако выделяется с использованием кучи Windows вместо кучи CLR, поскольку при использовании C ++ / CX среда CLR отсутствует. Оператор шляпы ^в C ++ / CX - это просто умный указатель с подсчетом ссылок на COM-интерфейс (например, ComPtr <T>), но встроенный в язык. В случае, когда и вызывающий, и вызываемый написаны на C ++ и живут в одном процессе, указатель шляпы указывает на vptrтаблица виртуальных методов (vtable). [28]

Наряду с C ++ / CX, по сравнению с традиционным программированием COM на C ++, есть частичные классы , снова вдохновленные .NET. Частичные классы помогают инструментам, таким как компилятор XAML, сгенерировать соответствующий код привязки, а затем он объединяется с написанным вручную кодом для создания полного класса, позволяя при этом четко разделить сгенерированные машиной и редактируемые человеком части реализации класса в разные файлы.

.NET [ править ]

Первоначально .NET Framework и Common Language Runtime (CLR) были интегрированы в WinRT в качестве подплатформы. Он повлиял и установил стандарты для экосистемы через формат метаданных и библиотеки. Приложения WinRT, использующие языки .NET, могут использовать новую среду выполнения Windows XAML Framework и в основном написаны на C #, VB.NET. Хотя это еще не официально поддерживается, программы также могут быть написаны на других языках .NET. В .NET 5 Microsoft решила удалить встроенную поддержку использования API среды выполнения Windows и вместо этого предлагает инструмент под названием CsWinRT в качестве альтернативы, который генерирует код взаимодействия для доступа WinRT, аналогичный тому, что делает C ++ / WinRT. [29]

Ограничения [ править ]

Классы, определенные в компонентах WinRT, которые построены на управляемых языках .NET, должны быть объявлены как классы sealed, поэтому они не могут быть производными. Однако незапечатанные классы WinRT, определенные где-то еще, могут быть унаследованы от .NET, их виртуальные методы переопределены и т. Д .; но унаследованный управляемый класс по-прежнему должен быть запечатан.

Члены, которые взаимодействуют с другим языком, должны иметь подпись с типами WinRT или управляемым типом, который может быть преобразован в них. [30]

JavaScript [ править ]

Можно разрабатывать собственные приложения для Windows с использованием WinRT через HTML с JavaScript в коде программной части . Первоначальный подход заключался в использовании движка рендеринга Trident и движка Chakra JavaScript, оба из которых также используются Internet Explorer и используют библиотеку WinJS для создания внешнего вида Windows. Однако этот подход больше не поддерживается Microsoft. В наши дни веб-приложения для Windows обычно пишутся с использованием Electron или React Native.и чаще всего размещая веб-страницу с помощью элемента управления WebView. При кодировании приложения WinRT на JavaScript его функции адаптированы в соответствии с соглашениями об именах JavaScript, а пространства имен также сопоставляются с объектами JavaScript.

Другие языки [ править ]

Microsoft находится в процессе проектирования API среды выполнения Windows на языки, отличные от C ++. Одним из примеров является Rust / WinRT, интерфейс для программ, написанных на Rust, для использования API WinRT. [31] Rust / WinRT является частью Project Reunion, попытки Microsoft согласовать рабочий стол Windows (Win32) и модель приложения UWP с низким IL. [32]

API [ править ]

Windows предоставляет интерфейс прикладного программирования (API), построенный на инфраструктуре среды выполнения Windows, и предоставляет возможности Windows 8 и более поздних версий всем разработчикам языков в естественной и знакомой форме. Эти API доступны не только в пространстве имен Windows, но и на любом поддерживаемом языке. Windows SDK предоставляет метаданные для статических компиляторов, однако динамические языки загружают их во время выполнения из папки% windir% \ System32 \ WinMetadata, которая существует на каждом устройстве с Windows 8 или Windows 10.

Классы времени выполнения [ править ]

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

Набор API для входящих сообщений содержит классы времени выполнения, которые обеспечивают доступ ко всем функциям Windows 8 и выше, от анализатора XAML до функции камеры. Все встроенные функции реализованы в библиотеках DLL, расположенных в System32 или SysWow64.

Соглашения об именах [ править ]

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

Эти соглашения проецируются по-разному в некоторых языках, например в JavaScript, который преобразует их в свои соглашения и наоборот, для нативной и согласованной работы независимо от языка программирования.

Ограничения и правила [ править ]

Поскольку среда выполнения Windows проецируется на различные языки, существуют некоторые ограничения на основные типы данных, позволяющие размещать все такие языки. Программисты должны быть осторожны с поведением этих типов при использовании с открытым доступом (для параметров метода, возвращаемых значений метода, свойств и т. Д.). [33]

Основные типы [ править ]
  • В языках .NET и C ++ существует богатый набор типов данных, представляющих различные числа, в то время как
  • В JavaScript a Numberможет представлять не более 53 бит точности, что означает, что разработчики JavaScript должны быть осторожны при работе с большими числами при получении данных и отправке данных от и к другим компонентам.
  • В среде выполнения Windows отсутствует единственный числовой тип данных - это 8-разрядное целое число со знаком относительно .NET и C ++.
Строки [ править ]
  • Строки неизменны в .NET и JavaScript, но изменчивы в C ++.
  • Нулевой указатель, переданный C ++ в WinRT в виде строки, преобразуется в пустую строку.
  • В .NET значение null, передаваемое в WinRT в виде строки, преобразуется в пустую строку.
  • В JavaScript значение null, передаваемое в WinRT в виде строки, преобразуется в строку со словом null. Это связано с тем, что ключевое слово JavaScript nullпредставлено как нулевой объект. Аналогичные результаты возникают при переходе undefinedк WinRT из JavaScript.
Структуры [ править ]
  • В .NET и C ++ структуры являются типами значений, и такая структура может содержать любой тип, в то время как JavaScript не поддерживает структуры напрямую.
  • В WinRT использование структур разрешено только для типов, которые имеют семантику значений, включая числа, строки и другие. Ссылки на объекты запрещены, поскольку разные языки по-разному управляют памятью.
Ссылки [ править ]
  • .NET имеет концепцию ссылочных типов и типов значений, где ссылочные типы передаются по ссылке, а типы значений передаются по значению, однако это поведение может быть изменено явно в некоторых языках .NET.
  • C ++ по умолчанию обрабатывает все типы как типы значений, однако все они могут передаваться по ссылке или по значению.
  • В WinRT интерфейсы передаются по ссылке; все остальные типы передаются по значению.
Массивы [ править ]
  • В .NET, C ++ и JavaScript массивы являются ссылочными типами.
  • В WinRT массивы являются типами значений. Это означает, что при возврате или передаче массива будет создана его копия.
События [ править ]
  • Под капотом подписка и отмена подписки на событие требует вызова методов добавления и удаления события соответственно. Когда пользователь подписывается на событие, генерируется токен, который следует использовать при отказе от подписки на это событие.
  • В C ++ и JavaScript слабая ссылка сохраняется, когда клиент подписывается по умолчанию. Это означает, что клиенту не обязательно отказываться от подписки на событие с подпиской, чтобы предотвратить утечку памяти.
  • .NET всегда сохраняет надежную ссылку, когда клиент подписывается, поэтому клиент должен быть осторожен при отмене подписки на события, отличные от XAML, чтобы исключить утечки памяти.
  • В .NET и C ++ / CX клиенты подписываются на события с помощью +=оператора и отписываются с помощью -=оператора.
  • C ++ / WinRT использует синтаксис вызова функции для подписки и отказа от подписки.
  • В JavaScript свойство addEventListenerфункции или настройки on<EventName>используется для подписки на события.
  • В WinRT все языки могут использовать собственный способ подписки на события.
Коллекции [ править ]
  • Сама среда выполнения Windows не предоставляет никаких классов коллекций, а предоставляет только параметризованные интерфейсы, которые представляют структуру данных коллекции.
  • Классы, реализующие эти интерфейсы, в основном предоставляются каждым языком, а некоторые предоставляются самой Windows.
  • .NET Runtime сопоставляет несколько интерфейсов коллекции .NET с аналогичным интерфейсом коллекции WinRT (например: IVector <T> проецируется как IList <T>).
Перегрузка метода [ править ]
  • .NET и C ++ также поддерживают перегрузку на основе типа типа.
  • Для параметров JavaScript не указан тип, поэтому перегрузка может быть выполнена только с использованием количества параметров.
  • В WinRT для перегрузки используется только номер параметра.
Асинхронность [ править ]
  • Все методы WinRT для входящих сообщений разработаны таким образом, что любой метод, занимающий более 50 миллисекунд, является асинхронным. Microsoft рекомендует другим разработчикам делать это при создании собственных библиотек и API. Т
  • Установленный шаблон именования для различения асинхронных методов - <Verb>[<Noun>]Async. Для полной библиотеки времени выполнения все методы, которые могут длиться более 50 мс, реализованы только как асинхронные методы.
  • Приложения пользовательского интерфейса не могут вызывать их синхронно, так как блокировка потока вызовет исключение. Приложения без пользовательского интерфейса не имеют этого ограничения.

Среда выполнения Windows Phone [ править ]

Начиная с Windows Phone 8, можно разрабатывать приложения, используя версию среды выполнения Windows, называемую Windows Phone Runtime (WPRT). Хотя WP8 обеспечивал ограниченную поддержку, платформа в конечном итоге сошлась с Windows 8.1 в Windows Phone 8.1 .

Windows Phone 8 [ править ]

Windows Phone 8 имеет ограниченную поддержку разработки и использования компонентов среды выполнения Windows через среду выполнения Windows Phone . Многие из API среды выполнения Windows в Windows 8, которые обрабатывают основные функции операционной системы, были перенесены на Windows Phone 8. [34] По запросу разработчиков игр добавлена ​​поддержка разработки собственных игр с использованием C ++ / CX и DirectX.

Однако платформа XAML для Windows Phone по-прежнему основана на той же платформе Microsoft Silverlight , что и в Windows Phone 7, для обеспечения обратной совместимости. Таким образом, с 2016 года разработка XAML на C ++ / CX невозможна. Разработка с использованием HTML5 или WinJS не поддерживается в Windows Phone 8.

Windows Phone 8.1 [ править ]

Поддержка среды выполнения Windows на Windows Phone 8.1 совпадает с Windows 8.1. Этот выпуск предоставляет платформу полный API среды выполнения Windows, включая поддержку XAML Framework среды выполнения Windows и языковые привязки для C ++ / CX и HTML5 - JavaScript . Существует также тип проекта под названием Универсальные приложения, позволяющий приложениям совместно использовать код в версиях 8.1 Windows Phone и Windows.

Обновлена ​​платформа Windows Phone 8 Silverlight Framework. [ когда? ] Он может использовать некоторые новые функции среды выполнения Windows.

Среда выполнения Windows Phone использует формат пакета AppX из Windows 8 после ранее использовавшегося Silverlight XAP .

Windows 10 Mobile [ править ]

Windows 10 Mobile теперь поддерживает API-интерфейсы UWP, и приложения можно писать один раз для всех устройств Windows без каких-либо изменений. Windows 10 Mobile поддерживает XAML Framework среды выполнения Windows, как и на настольных компьютерах, в дополнение к платформе Silverlight. Некоторые старые API-интерфейсы требуют проверки во время выполнения на основе семейства устройств, поскольку они не присутствуют на всех устройствах, но новые API-интерфейсы, представленные в Windows 10, работают на всех устройствах, даже если сама функция не поддерживается на устройстве (например: вы, вероятно, никогда не иметь сканер, подключенный к Xbox, но API-интерфейсы вернут, что нет сканеров, как на ПК без подключенного сканера, вместо того, чтобы генерировать исключение).

См. Также [ править ]

  • Платформа XAML среды выполнения Windows

Ссылки [ править ]

  1. Аврам, Авель (21 сентября 2011 г.). «Детали разработки среды выполнения Windows» . InfoQ .
  2. ^ Клуг, Брайан; Смит, Райан (13 сентября 2011 г.). «Сборка Microsoft: Windows 8, предварительная бета-версия» . AnandTech .
  3. ^ "Справочник по Windows Phone API" . Справочник по Windows Phone API . Microsoft . 21 июля 2014 г.
  4. ^ а б Майкл, Мэйберри (2012). Обнаружен WinRT . Нью-Йорк: Апресс . п. 3. ISBN 978-1-4302-4585-8.
  5. ^ «Создание приложений Win32 (C ++)» . MSDN . Microsoft . Проверено 12 января 2014 .
  6. ^ "Файлы метаданных Windows (WinMD)" . Справочник по API для приложений UWP. Документы Microsoft . Проверено 20 июля 2019 .
  7. Де Икаса, Мигель (15 сентября 2011 г.). «Демистификация WinRT» . Личный блог Мигеля де Икасы . Самостоятельно опубликовано . Проверено 15 января 2014 года .
  8. ^ "Каковы накладные расходы на маршалинг COM при вызове WinRT API из C #?" . Форум MSDN . Самостоятельно опубликовано . 20 сентября 2011 . Проверено 15 января 2014 года .
  9. ^ a b «Использование среды выполнения Windows из C ++ | Build2011 | Channel 9» . Channel9.msdn.com. 2011-09-14 . Проверено 24 апреля 2012 .
  10. ^ Sivakumar, Ниши (2011-09-29). «Visual C ++ и WinRT / Metro - Некоторые основы - CodeProject®» . Codeproject.com . Проверено 24 апреля 2012 .
  11. ^ «Использование среды выполнения Windows из C ++ | Build2011 | Channel 9» . Channel9.msdn.com. 2011-09-14 . Проверено 24 апреля 2012 .
  12. ^ «Введение в C ++ / WinRT - приложения Windows UWP» . docs.microsoft.com . Microsoft.
  13. ^ «Приложения Windows, работающие в песочнице» .
  14. ^ lastnameholiu. «Права доступа к файлам - приложения UWP» . docs.microsoft.com . Проверено 8 августа 2020 .
  15. ^ «Разработка простого и безопасного пакета приложений - APPX» . Блог разработчика приложений для Windows 8 . Проверено 30 декабря 2013 года .
  16. ^ «Как добавлять и удалять приложения» . TechNet . Microsoft. 31 мая 2012 . Проверено 4 октября 2012 года . Чтобы разрешить загрузку неопубликованных приложений на компьютере с Windows 8 Enterprise, который не присоединен к домену, или на любом компьютере с Windows® 8 Pro, необходимо использовать ключ активации продукта для загрузки неопубликованных приложений. Чтобы разрешить загрузку неопубликованных приложений на устройстве Windows® RT, необходимо использовать ключ активации продукта для загрузки неопубликованных приложений. Дополнительные сведения о загрузке неопубликованных ключей активации продукта см. В разделе Корпоративное лицензирование Microsoft.
  17. ^ «Windows 8: Метро Беспорядок» . Журнал ПК . Проверено 8 сентября 2012 года .
  18. ^ «Microsoft теперь использует 'Modern UI Style' для обозначения приложений Windows 8 'Metro Style'» . Проверено 10 августа 2012 года .
  19. ^ "Что такое приложение Microsoft Store?" . Центр разработки для Windows . Проверено 1 октября 2012 года .
  20. ^ MSFTTracyP. «Загрузка неопубликованных бизнес-приложений в Windows 10 (Windows 10) - Управление приложениями Windows» . docs.microsoft.com . Проверено 1 февраля 2021 .
  21. ^ «Асинхронное программирование (приложения Магазина Windows)» . MSDN . Microsoft . Проверено 12 января 2014 .
  22. ^ «Первоначальный предварительный выпуск C ++ / WinRT» . github.com. 2016-10-05 . Проверено 5 октября 2016 .
  23. ^ «C ++ / WinRT - это стандартная проекция языка C ++ для среды выполнения Windows» . github.com. 2016-09-14 . Проверено 14 сентября 2016 .
  24. ^ «Стандартный C ++ и среда выполнения Windows (C ++ / WinRT)» . blogs.windows.com. 2016-11-28 . Проверено 28 ноября 2016 .
  25. ^ Раймонд, Чен. «Внутри C ++ / WinRT: как C ++ / WinRT представляет типы ABI?» .
  26. ^ «Внутри C ++ / CX Design - Блог группы разработчиков Visual C ++ - Домашняя страница сайта - Блоги MSDN» . Blogs.msdn.com. 2011-10-20 . Проверено 24 апреля 2012 .
  27. ^ Чарльз (2011-10-26). "GoingNative 3: Эпизод C ++ / CX с Марианом Лупару | C9 :: GoingNative | Channel 9" . Channel9.msdn.com . Проверено 24 апреля 2012 .
  28. ^ a b Под крышкой с C ++ для приложений в стиле Metro с Деоном Брюисом в // Build
  29. ^ «CSWinRT: Как вызвать Windows WinRT API из приложений .NET5» . TECHCOMMUNITY.MICROSOFT.COM . 2020-09-22 . Источник 2021-04-03 .
  30. ^ «Использование среды выполнения Windows из C # и Visual Basic | Build2011 | Channel 9» . Channel9.msdn.com. 2011-09-14 . Проверено 24 апреля 2012 .
  31. ^ "microsoft / winrt-rs" . GitHub .
  32. ^ «microsoft / ProjectReunion: эволюция платформы для разработчиков Windows, которая сделает ее более совместимой, гибкой, современной и открытой» . GitHub .
  33. ^ «Десять советов при написании приложения в стиле Metro на гибридном языке - Build2011 - Channel 9» . Канал 9 . Microsoft.
  34. ^ "Windows Phone Runtime API" . microsoft.com . Microsoft.

Внешние ссылки [ править ]

  • Официальный веб-сайт