- Developing foreground applications (Разработка приложений переднего плана) Developing foreground applications
- Типы приложений Application Types
- Приложения универсальной платформы Windows (UWP) Universal Windows Platform (UWP) Apps
- Традиционные приложения UWP Traditional UWP Apps
- Фоновые приложения Background Apps
- Приложения, не относящиеся к UWP Non-UWP Apps
- Языки программирования Programming Languages
- Встроенные языки In-Box languages
- Arduino провода Arduino Wiring
- C# и Visual Basic (VB) C# and Visual Basic (VB)
- JavaScript JavaScript
- Arduino провода Arduino Wiring
- uap3: расширение (Windows 10) uap3:Extension (Windows 10)
- Иерархия элементов Element hierarchy
- Синтаксис Syntax
- Атрибуты и элементы Attributes and Elements
Developing foreground applications (Разработка приложений переднего плана) Developing foreground applications
Узнайте о языках, поддерживаемых в Windows 10 IoT базовая, а также типах приложений UWP и не-UWP, поддерживаемых в IoT Core. Learn about the languages that are supported on Windows 10 IoT Core as well as the UWP and non-UWP app types that are supported on IoT Core.
При развертывании в ОС образа RS5 (или RS4 с запущенными средствами OpenSSH) в Visual Studio возникает непонятная ошибка, если не установлен пакет SDK для RS4 или более поздней версии, который доступен для Visual Studio. Visual Studio will generate a cryptic error when deploying to a RS5 (or RS4 with OpenSSH enabled) IoT image unless a SDK from RS4 or greater is installed that Visual Studio can access.
Типы приложений Application Types
Приложения универсальной платформы Windows (UWP) Universal Windows Platform (UWP) Apps
Центр Интернета вещей — это приложение операционной системы, основанное на UWP, а приложения UWP — основной тип приложения. IoT Core is a UWP-centric OS and UWP apps are its primary app type.
Универсальная платформа Windows (UWP) — это общая платформа приложений для всех версий Windows 10, включая Windows 10 IoT базовая. Universal Windows Platform (UWP) is a common app platform across all version of Windows 10, including Windows 10 IoT Core. UWP — это эволюция среда выполнения Windows (WinRT). UWP is an evolution of Windows Runtime (WinRT). Дополнительные сведения и обзор для UWP можно найти здесь. You can find more information and an overview to UWP here.
Visual Studio — это основное средство для написания приложений UWP для Интернета вещей Core и в целом. Visual Studio is the primary tool for writing UWP apps for IoT Core and in general. Подробный список требований к совместимости для Visual Studio можно найти здесь. You can find a detailed listing of the compatibility requirements for Visual Studio here.
Традиционные приложения UWP Traditional UWP Apps
Приложения универсальной платформы Windows работают только на основе Интернета вещей Core, как и в других выпусках, истечениех 10. UWP apps just work on IoT Core, just as they do on other Windows 10 editions. Простое, пустое приложение XAML в Visual Studio будет правильно развернуто на устройстве IoT Core точно так же, как на телефоне или компьютере с Windows 10. A simple, blank Xaml app in Visual Studio will properly deploy to your IoT Core device just as it would on a phone or Windows 10 PC. Все стандартные языки UWP и шаблоны проектов полностью поддерживаются в IoT Core. All of the standard UWP languages and project templates are fully supported on IoT Core.
Существует несколько дополнений к традиционной модели приложений UWP для поддержки сценариев IoT, а любое приложение UWP, которое использует их преимущества, потребует соответствующей информации, добавленной в манифест. There are a few additions to the traditional UWP app-model to support IoT scenarios and any UWP app that takes advantage of them will need the corresponding information added to their manifest. В частности, пространство имен «IOT» необходимо добавить в манифест этих стандартных приложений UWP. In particular, the «iot» namespace needs to be added to the manifest of these standard UWP apps.
атрибута манифеста необходимо определить IOT xmlns и добавить его в список игнорабленамеспацес. Inside the
attribute of the manifest, you need to define the iot xmlns and add it to the IgnorableNamespaces list. Окончательный формат XML должен выглядеть следующим образом: The final xml should look like this:
Фоновые приложения Background Apps
Помимо традиционных приложений пользовательского интерфейса, центр Интернета вещей добавил новый тип приложения UWP под названием «фоновые приложения». In addition to the traditional UI apps, IoT Core has added a new UWP app type called «Background Applications». Эти приложения не имеют компонента пользовательского интерфейса, а имеют класс, реализующий интерфейс «IBackgroundTask». These applications do not have a UI component, but instead have a class that implements the «IBackgroundTask» interface. Затем он регистрирует этот класс как «Стартуптаск» для запуска при загрузке системы. They then register that class as a «StartupTask» to run at system boot. Поскольку они все еще являются приложениями UWP, они имеют доступ к одному и тому же набору интерфейсов API и поддерживаются на одном языке. Since they are still UWP apps, they have access to the same set of APIs and are supported from the same language. Единственное отличие заключается в отсутствии точки входа пользовательского интерфейса. The only difference is that there is no UI entry point.
Каждый тип IBackgroundTask получает собственную политику ресурсов. Each type of IBackgroundTask gets its own resource policy. Обычно это ограничено для повышения времени работы аккумулятора и машинных ресурсов на устройствах, где эти фоновые приложения являются вторичными компонентами переднего плана приложений. This is usually restrictive to improve battery life and machine resources on devices where these background apps are secondary components of foreground UI apps. На устройствах IoT фоновые приложения часто являются основной функцией устройства, поэтому эти Стартуптаскс получают политику ресурсов, которая отражает базовые приложения пользовательского интерфейса на других устройствах. On IoT devices, Background Apps are often the primary function of the device and so these StartupTasks get a resource policy that mirrors foreground UI apps on other devices.
В следующем примере показан код, необходимый для создания фонового приложения C#, которое мигает индикатор: The following sample shows the code necessary to build a C# Background App that blinks an LED:
Подробные сведения о фоновых приложениях можно найти здесь. You can find in-depth information on Background apps here.
Приложения, не относящиеся к UWP Non-UWP Apps
IoT Core поддерживает некоторые традиционные типы приложений Win32, такие как консольные приложения Win32 и службы NT. IoT Core supports certain traditional Win32 app types such as Win32 Console Apps and NT Services. Эти приложения создаются и выполняются так же, как и в Windows 10 Desktop. These apps are built and run the same way as on Windows 10 Desktop. Кроме того, существует шаблон консольного проекта для центра Интернета вещей на C++, который упрощает создание таких приложений с помощью Visual Studio. Additionally, there is an IoT Core C++ Console project template to make it easy to build such apps using Visual Studio.
Существуют два основных ограничения для этих приложений, не связанных с UWP. There are two main limitations on these non-UWP applications:
- Нет устаревшей поддержки пользовательского интерфейса Win32: IoT базовая не содержит API-интерфейсы для создания классических окон (HWND). No legacy Win32 UI support: IoT Core does not contain APIs to create classic (HWND) Windows. Устаревшие методы, такие как CreateWindow () и CreateWindowEx () или другие методы, которые работают с дескрипторами Windows (HWND), недоступны. Legacy methods such as CreateWindow() and CreateWindowEx() or any other methods that deal with Windows handles (HWNDs) are not available. В дальнейшем платформы, которые зависят от таких API-интерфейсов, как MFC, Windows Forms и WPF, не поддерживаются в IoT Core. Subsequently, frameworks that depend on such APIs including MFC, Windows Forms and WPF, are not supported on IoT Core
- Только приложения C++: В настоящее время для разработки приложений Win32 в IoT Core поддерживается только C++. C++ Apps Only: Currently, only C++ is supported for developing Win32 apps on IoT Core.
Языки программирования Programming Languages
IoT Core поддерживает широкий спектр языков программирования. IoT Core supports a wide range of programming languages.
Встроенные языки In-Box languages
Традиционные языки UWP поставляются с поддержкой в Visual Studio по умолчанию. Traditional UWP languages ship with support in Visual Studio by default. Все встроенные языки поддерживают приложения пользовательского интерфейса и фоновых приложений. All of the In-Box languages support both UI and Background Applications
- Языки Languages
- C# C#
- C++ C++
- JavaScript JavaScript
- Visual Basic Visual Basic
Arduino провода Arduino Wiring
Для Arduino провода требуется загрузить «шаблоны проектов Windows IoT базовая» из Visual Studio Tools->Extensions and Updates Manager. Arduino Wiring requires the download of the «Windows IoT Core Project Templates» from the Visual Studio Tools->Extensions and Updates manager. Arduinoная коммутационная поддержка поддерживает только фоновые приложения. Arduino Wiring supports only Background Applications. Можно также создавать Среда выполнения Windows компоненты с помощью C#, C++ или Visual Basic, а затем ссылаться на эти библиотеки с любого другого языка. You can also build Windows Runtime Components using C#, C++, or Visual Basic and then reference those libraries from any other language.
C# и Visual Basic (VB) C# and Visual Basic (VB)
C# и VB поддерживаются как приложения UWP и имеют доступ к части .NET Framework, доступной приложениям UWP. C# and VB are both supported as UWP apps and have access to the portion of the .NET Framework available to UWP applications. Они поддерживают приложения пользовательского интерфейса, созданные с помощью XAML и фоновых приложений. They support UI apps built with Xaml as well as Background Apps. Также можно создавать Среда выполнения Windows компоненты , которые можно использовать на других поддерживаемых языках. You can also build Windows Runtime Components that can be used from other supported languages.
JavaScript JavaScript
JavaScript можно использовать для создания приложений пользовательского интерфейса и фонового приложения. You can use JavaScript to build both UI and Background Apps. Приложения пользовательского интерфейса работают так же, как и во всех выпусках UWP. The UI apps work the same way they do on all UWP editions. Фоновые приложения — это новые компоненты для центра Интернета вещей, но они просты. The Background Apps are new for IoT Core but are simple. В следующем образце кода показаны выходные данные шаблона нового проекта JS: The following sample code shows the output of the JS New Project Template:
С помощью C++ можно создавать приложения пользовательского интерфейса XAML или DirectX, а также фоновые проекты UWP и приложения Win32 без пользовательского интерфейса . With C++ you can build Xaml or DirectX UI apps, as well as UWP Background projects and non-UI Win32 apps.
Для тех, кто планирует писать приложение на C++, необходимо установить флажок UWP C++ при скачивании. For those who are planning to write their app in C++, you’ll need to check the UWP C++ checkbox upon downloading.
Arduino провода Arduino Wiring
Благодаря поддержке Arduinoных проводок вы можете создавать приложения в Arduinoных подключениях для многих популярных компонентов и периферийных устройств в экосистеме IoT. With Arduino Wiring support you can build apps in Arduino Wiring for many popular components and peripherals in the IoT ecosystem.
В этом руководство по проекту Arduinoной проводки содержатся полные инструкции по настройке для сборки этих приложений. Our Arduino Wiring Project Guide provides full instructions on how to get set up to build these apps. Образцы, скопированные и связанные ниже, помогут вам приступить к созданию собственных. The samples copied and linked below will help you get started building your own. Можно даже создавать компоненты WinRT в Arduino , которые затем можно использовать на других языках. You can even build WinRT components in Arduino that can then be used from other languages.
Мигающий пример кода Полный пример кода и документы можно найти на странице примеров. полный код приведен ниже: Blinky Sample Code The full sample code and docs are available on our samples page and you can find the full code below:
uap3: расширение (Windows 10) uap3:Extension (Windows 10)
Объявляет точку расширения для приложения. Declares an extensibility point for the app.
Иерархия элементов Element hierarchy
Синтаксис Syntax
Key Key
Атрибуты и элементы Attributes and Elements
Атрибуты Attributes
attribute Attribute | Описание Description | Тип данных Data type | Обязательно Required | Значение по умолчанию Default value |
---|---|---|---|---|
Категория Category | Тип точки расширяемости приложения. The type of app extensibility point. | Да Yes | ||
EntryPointEntryPoint | Идентификатор класса активируемого. The activatable class ID. | Строка длиной от 1 до 256 символов, представляющая задачу обработки расширения. A string between 1 and 256 characters in length, representing the task handling the extension. Как правило, соответствует полному имени пространства имен типа среды выполнения Windows. This is normally the fully namespace-qualified name of a Windows Runtime type. Если точка входа не указана, вместо нее используется точка входа, определенная для приложения. If EntryPoint is not specified, the EntryPoint defined for the app is used instead. | Нет No | |
Исполняемый объектExecutable | Исполняемый файл запуска по умолчанию. The default launch executable. | Строка длиной от 1 до 256 символов, которая должна заканчиваться на » . exe » и не может содержать следующие символы: . » , |,? или \*. A string between 1 and 256 characters in length that must end with «.exe» and cannot contain these characters: , :, «, |, ?, or \*. Он задает исполняемый файл по умолчанию для расширения. It specifies the default executable for the extension. Если не указано, используется исполняемый файл, определенный для приложения. If not specified, the executable defined for the app is used. Если указано, также используется свойство EntryPoint. If specified, the EntryPoint property is also used. Если свойство EntryPoint не указано, используется точка входа, определенная для приложения. If that EntryPoint property isn’t specified, the EntryPoint defined for the app is used. | Нет No | |
ResourceGroupResourceGroup | Тег, который можно использовать для группирования активаций расширений для целей управления ресурсами (например, ЦП и памяти). A tag that you can use to group extension activations together for resource management purposes (for example, CPU and memory). Значение свойства ResourceGroup можно задать в свободной форме и гибком. The value you can set ResourceGroup is free-form and flexible. См Application@ResourceGroup . раздел. See Application@ResourceGroup . | Буквенно-цифровая строка длиной от 1 до 255 символов. An alphanumeric string between 1 and 255 characters in length. Должен начинаться с буквы. Must begin with an alphabetic character. | Нет No | |
RuntimeTypeRuntimeType | Поставщик среды выполнения. The runtime provider. Этот атрибут обычно используется при наличии смешанных платформ в приложении. This attribute is used typically when there are mixed frameworks in an app. | Строка длиной от 1 до 255 символов, которая не может начинаться или заканчиваться точкой или содержать следующие символы: . » ,/, \, |,? или \*. A string between 1 and 255 characters in length that cannot start or end with a period or contain these characters: , :, «, /, \, |, ?, or \*. | Нет No | |
StartPageStartPage | Веб-страница, обрабатывающая точку расширения. The web page that handles the extensibility point. | Строка длиной от 1 до 256 символов, которая не может содержать следующие символы: . » , |,? или \*. A string between 1 and 256 characters in length that cannot contain these characters: , :, «, |, ?, or \*. | Нет No | |
uap10: TrustLeveluap10:TrustLevel | Строковое значение. String value. Может быть одним из следующих: «appContainer», «Медиумил». Can be one of the following: «appContainer», «mediumIL». | Нет No | ||
uap10: Рунтимебехавиор uap10:RuntimeBehavior | Строковое значение. String value. Может быть одним из следующих: «Виндовсапп», «Паккажедклассикапп», «win32App». Can be one of the following: «windowsApp», «packagedClassicApp», «win32App». | Нет No | ||
uap10: HostId uap10:HostId | Буквенно-цифровая строка длиной от 1 до 255 символов. An alphanumeric string between 1 and 255 characters in length. Должен начинаться с буквы. Must begin with an alphabetic character. | Нет No | ||
uap10: параметры uap10:Parameters | Строка длиной от 1 до 32767 символов с символом, отличным от пробела, в начале и в конце. A string between 1 and 32767 characters in length with a non-whitespace character at its beginning and end. | Нет No |
Дочерние элементы Child Elements
Дочерний элемент Child Element | Описание Description |
---|---|
uap3:AppointmentDataProvider uap3:AppointmentDataProvider | Объявляет точку расширения приложения типа Windows. аппоинтментдатапровидер. Declares an app extensibility point of type windows.appointmentDataProvider. |
uap3:EmailDataProvider uap3:EmailDataProvider | Объявляет точку расширения приложения типа Windows. емаилдатапровидер. Declares an app extensibility point of type windows.emailDataProvider. |
uap3:ContactDataProvider uap3:ContactDataProvider | Объявляет точку расширения приложения типа Windows. контактдатапровидер. Declares an app extensibility point of type windows.contactDataProvider. |
uap3:AppUriHandler uap3:AppUriHandler | Объявляет точку расширения приложения типа Windows. аппурихандлер. Declares an app extensibility point of type windows.appUriHandler. |
uap3:AppExtensionHost uap3:AppExtensionHost | Объявляет точку расширения приложения типа Windows. аппекстенсионхост. Declares an app extensibility point of type windows.appExtensionHost. |
uap3:AppExtension uap3:AppExtension | Объявляет точку расширения приложения типа Windows. аппекстенсион. Declares an app extensibility point of type windows.appExtension. |
uap3: Аппексеуктионалиас uap3:AppExeuctionAlias | Объявляет точку расширения приложения типа Windows. аппексекутионалиас. Declares an app extensibility point of type windows.appExecutionAlias. |
Родительские элементы Parent Elements