Пакет sdk для приложений windows
Содержание:
- Разбираемся
- License
- Так жив ли больной?
- Android SDK — что это такое
- Установка пакета SDK
- «А вы любите Lego?» — Модульность
- Пора определяться
- Установка Visual Studio
- Download and install the Windows 11 WDK
- «А что, так можно было?!» — Универсальность
- Get started with the Windows App SDK
- UI-фреймворки
- установите расширение пакета SDK для приложений Windows для Visual Studio
- «Alarm! Achtung! Attention!» — Ошибки
- поддержка Microsoft для пакета SDK для Windows приложений
- Можно ли удалить данную программу?
- Регистрация клиентского приложения в Azure Active Directory
- «— Чтобы чисто было! — Как я буду вилкой-то чистить?» — Тестирование
- Windows UI 3 Library
- Add Windows 10 experiences
Разбираемся
Windows SDK — пакет для создания приложений. В него входят новейшие заголовки, библиотеки, метаданные, и другие компоненты. Слово AddOn означает как дополнение, то есть дополнительный компонент.
Версия для Windows 10 позволяет создавать как классические, так и универсальные приложения.
Как пакет мог попасть на ПК:
- Был скачан с офф сайта Майкрософт и установлен.
- Был автоматически установлен как компонент Visual Studio (среда разработки для разработчиков).
- Третий вариант — мое мнение. Если он вдруг появился сам по себе, то мог установиться как обновление. Второй вариант — появился после установки некоторой крупной программы.
Что интересно — разработка приложений UWP для десятки версии LTSB не поддерживается:
Версия для десятки, а точнее для билда 1809, содержит новые API-интерфейсы и обновленные средства для разработки приложений.
Вот картинка, видим что прога установлена среди остальных, но что главное — размер ее небольшой, всего 152 КБ:
Тоже самое, но здесь прогу видим в списке окна Программы и компоненты:
Установочное окно, где видим, то данная прога существовала еще во времена Windows XP:
А вот и студия Visual Studio, где видим, что она при установке также может поставить Windows SDK:
License
The Adjust SDK is licensed under the MIT License.
Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
«Software»), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to
the following conditions:
The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED «AS IS», WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Так жив ли больной?
UWP, как подсистема винды, никуда не денется в ближайшее время. Это всё ещё основной вектор развития API системы. Для UWP-приложений, которые нацелены только на десктоп, уже настало время планировать портирование на Windows App SDK. Недавно выпущенная версия 0.8 уже допускается в Microsoft Store. Если же приложение должно работать и на других платформах (Xbox, Hololens и т. д.), то тут придется ждать следующего года. Но рано или поздно, таки придется переехать на Windows App SDK.
Касательно классических приложений, покуда вам не нужны новые фичи платформы (пуши, возможность поделиться в ваше приложение, новый богатый UI и т. п.), то делать в общем-то тоже ничего не надо.
Если писать новое приложение, то стоит оценить Windows App SDK в текущем его состоянии. И возможно писать на нём.
Android SDK — что это такое
Компонент Android SDK представляет собой среду разработки, отладки, тестирования и написания программного кода, чтобы создавать программное обеспечение для операционной системы. Данный пакет ориентирован для профессиональных разработчиков и любителей. Для простых пользователей Android инструмент поможет получить подробную информацию об операционной системе, ошибках и логах. Также с его помощью можно запустить средство восстановления программной оболочки телефона.
Android SDK
Требования к операционной системе
Чтобы запустить Android SDK, необходимо, чтобы персональный компьютер соответствовал минимальным требованиям:
Важно! Чтобы запустить пакет SDK на Linux и MacOS, потребуются аналогичные характеристики персонального компьютера
Установка пакета SDK
Существует два варианта установки Microsoft Store Services SDK на компьютер разработки.
- Установщик MSI Пакет SDK можно установить с помощью установщика MSI, доступного здесь.
- пакет NuGet пакет SDK можно установить как пакет NuGet.
Корпорация Майкрософт периодически выпускает новые версии пакета Microsoft Store Services SDK для повышения производительности и расширения возможностей. Если у вас уже есть проекты, в которых используется этот пакет SDK, и вы хотите использовать его последнюю версию, скачайте и установите последнюю версию SDK на свой компьютер разработки.
Установка с помощью MSI
Установка Microsoft Store Services SDK с помощью установщика MSI.
-
Закройте все экземпляры Visual Studio.
-
Если вы ранее устанавливали Microsoft Store Engagement and Monetization SDK, Universal Ad Client SDK или расширение Ad Mediator, теперь необходимо удалить эти версии пакетов SDK. Также можно открыть окно командной строки и выполнить эти команды для удаления всех более ранних версий пакетов рекламных SDK, которые могли быть установлены вместе с Visual Studio, но, возможно, не отображаются в списке установленных программ на компьютере:
-
Скачайте и установите пакет Microsoft Store Services SDK. Установка может занять несколько минут. Обязательно дождитесь завершения процесса.
-
Перезапустите Visual Studio.
-
Если у вас есть существующий проект, который ссылается на библиотеки из какой-либо более ранней версии пакетов Microsoft Store Services SDK, Microsoft Advertising SDK, Universal Ad Client SDK или Microsoft Store Engagement and Monetization SDK, рекомендуется открыть этот проект в Visual Studio, очистить и заново собрать проект (в Обозревателе решений щелкните правой кнопкой мыши по узлу проекта и выберите пункт Очистить, а затем снова щелкните правой кнопкой мыши по узлу проекта и выберите Пересобрать).
В противном случае, если вы используете пакет SDK в первый раз в своем проекте, теперь вы готовы .
Установка с помощью NuGet
Установка библиотек Microsoft Store Services SDK с помощью NuGet.
-
Закройте все экземпляры Visual Studio.
-
Если вы ранее устанавливали Microsoft Store Engagement and Monetization SDK, Universal Ad Client SDK или расширение Ad Mediator, теперь необходимо удалить эти версии пакетов SDK. Также можно открыть окно командной строки и выполнить эти команды для удаления всех более ранних версий пакетов рекламных SDK, которые могли быть установлены вместе с Visual Studio, но, возможно, не отображаются в списке установленных программ на компьютере:
-
Запустите Visual Studio и откройте проект, в котором вы хотите использовать Microsoft Store Services SDK.
Примечание
Если ваш проект уже содержит ссылки на библиотеки из предыдущей установки пакета SDK с помощью MSI, удалите эти ссылки из проекта. Рядом с этими ссылками будут расположены предупреждающие значки, поскольку библиотеки, на которые они ссылаются, были удалены ранее.
-
В Visual Studio щелкните Проект и выберите параметр Управление пакетами NuGet.
-
В поле поиска введите Microsoft.Services.Store.Engagement и установите пакет Microsoft.Services.Store.Engagement. Когда установка пакета завершится, сохраните решение.
Примечание
-
Закройте решение Visual Studio, содержащее проект, и снова откройте его.
-
Если проект уже содержит ссылки на библиотеки из более ранней версии Microsoft Store Services SDK, которая была установлена с помощью NuGet, и вы обновили свой проект до более нового выпуска SDK, рекомендуется очистить и пересобрать проект (в Обозревателе решений щелкните правой кнопкой мыши по узлу проекта и выберите пункт Очистить, затем снова щелкните правой кнопкой мыши по узлу проекта и выберите Пересобрать).
В противном случае, если вы используете пакет SDK в первый раз в своем проекте, теперь вы готовы .
«А вы любите Lego?» — Модульность
Представим все возможные сценарии использования SDK (вы же уже определились, зачем он вам нужен, правда?) и сделаем по библиотеке на сценарий. Чем не выход? Но это плохой подход, и так мы делать не будем. А будем так:
- разобьем все сценарии на шаги
- выявим общие шаги
- построим список модулей, реализующих все возможные шаги (один модуль отвечает за реализацию чего-то конкретного, например, работы с конфигурациями)
Например, с учетом специфики задачи, нам необходимо, чтобы вся логика задавалась из конфигов. Реализуем модуль работы с конфигами (чтения, записи, обновления, валидации и обработки конфигураций) и будем использовать его во всех остальных модулях.
А для реализации стандартных сценариев мы действительно сделаем модули — этакие «управляющие» модули, каждый из которых реализуют один конкретный сценарий, используя другие модули того же SDK. Таким образом для реализации стандартных сценариев клиент должен лишь подключить управляющий модуль сценария (а он сам подтянет все зависимости), а для реализации нестандартных — используем базовые модули, так же переиспользуя код.
Именно этим обусловлено то, что SDK не должен быть одной библиотекой (хотя очень хочется, понимаю. Ведь когда весь SDK в одной библиотеке, можно забыть о зависимостях и всем, что с ними связано), а быть комплектом библиотек. Дополнительным плюсом данного подхода будет уменьшение «веса» программы клиента — он будет тянуть тяжеловесный SDK, а подтянет только необходимые модули.
Но не стоить плодить модули как попало, ведь чем больше модулей, тем больше головной боли от их зависимостей! Т.е
важно правильно разбить логику на модули, соблюдая баланс между решением «все в одном» и «на каждую функцию свой модуль»
Пора определяться
Начнем с того, что определим, что такое SDK и зачем он может быть нужен.
Что ж, логично. Простыми словами, SDK — это пакет библиотек, для того, чтобы клиент мог легко и быстро начать работать с вашей системой (в данной статье речь пойдет про наш сервис, но всё изложенное в статье применимо и к другим видам SDK) или выполнять однотипные действия.
Но, как и у любого подхода, у «Пути SDK» есть как преимущества, так и недостатки.
Преимущества
Высокая скорость интеграции нового клиента — вашим клиентам нужно писать меньше кода.
Переиспользование кода — один и тот же код используется сразу в нескольких местах. Можно сказать, что это дублирование предыдущего пункта, но речь идет о том, что логика работы везде одинокава, из чего следует
Предсказуемость поведения — использование одних и тех же библиотек приводит поведение систем к определенному стандарту, что сильно облегчает поиск и устранение ошибок и уязвимостей.
Качество кода — много где любят экономить на тестировании (жалко бюджета, горят сроки и прочие причины). Понятно, что в реальном мире покрыть тестами все участки проекта это учень трудоемкая задача. Но качественно протестировать все модули SDK, а затем использовать их — это путь повышения процента покрытия тестами, что приведет вас к снижению количества ошибок.
Документация — тот же сценарий, что и с тестами. Покрыть документацией весь проект достаточно проблематично. Переиспользование модулей SDK повышает процент покрытия документацией, что снижает порог вхождения новых сотрудников в проект и вообще помогает по жизни.
Все преимущества, по сути, это следствия самого главного — мы очень качественно пишем код один раз, а затем его переиспользуем.
Недостатки
Высокие требования к качеству кода SDK — следствие главного преимущества. Ошибка в SDK породит ошибки во всех системах, его использующих.
Установка ограничений — SDK — это набор библиотек для реализации стандартных сценариев. Иногда разработчики SDK полагают, что кроме реализации одного из предусмотренных сценариев клиенту ничего не потребуется, что клиенту проще сделать все с нуля самостоятельно, чем строить пьедестал из костылей для SDK.
Dependency hell и обновления — при расширении функционала (например, кастомизации решения под конкретного клиента), вы выпустите новую версию библиотеки. Но существуют зависимости, различные наборы версий библиотек у разных клиентов, и нужно очень тщательно следить за обратной совместимостью или строгим версионированием.
Когда SDK действительно нужен
У вас есть несколько стандартных сценариев, которые реализуются заново из раза в раз — собственно, наш случай.
Внутренние разработки — в разных проектах вы используете системы логирования, конфигурирования систем, работу с HttpRequest, БД, файлами? Выработайте внутренний SDK — набор библиотек для внутреннего использования. Вы в любой момент можете расширить функционал SDK, но скорость разработки новых проектов, процент покрытия тестами и документацией вырастет, а порог вхождения новых разработчиков снизится.
Когда SDK скорее всего будет лишним
Сценарии использования не определены или постоянно меняются — оставьте реализацию кастомных решений клиентам и помогите им. Не надо городить вундервафлю, которая будет только мешать. Очень актуально для молодых компаний и стартапов.
Вы не умеете делать качественно — у меня для вас плохая новость: пора учиться. Но отдавать кривое решение клиенту это очень, очень неправильно. Клиентов надо уважать, в конце концов.
Итак, мы определились, что такое SDK, с его преимуществами и недостатками и когда он нам нужен. Если после этого вы поняли, что SDK действительно нужен — приглашаю вас встать на «путь SDK» и разобраться, а каким он должен быть и как его, черт подери, делать?
Установка Visual Studio
используйте следующие ссылки для установки Visual Studio 2019 или Visual Studio 2022 (предварительная версия). можно выбрать бесплатную Visual Studio Community выпуска, Visual Studio Professional или Visual Studio Enterprise. независимо от выбранной версии, по умолчанию также будет установлена последняя Windows SDK.
Требуемые рабочие нагрузки и компоненты
Убедитесь, что эти рабочие нагрузки и компоненты установлены с Visual Studio. Все они выбраны по умолчанию.
-
На вкладке рабочие нагрузки диалогового окна установки требуются следующие рабочие нагрузки.
- Разработка с помощью универсальной платформы Windows
- Разработка классических приложений на C++ .
- Разработка классических приложений .NET» ;
-
на вкладке отдельные компоненты диалогового окна установки Windows 10 пакет sdk (10.0.19041.0) требуется в разделе пакеты sdk, библиотеки и платформы .
-
в области сведения об установке диалогового окна установки универсальная платформа Windows средства C++ (v142) в разделе разработка универсальная платформа Windows .
Download and install the Windows 11 WDK
Step 1: Install Visual Studio 2019
The WDK requires Visual Studio. For more information about system requirements for Visual Studio, see Visual Studio 2019 System Requirements.
The following editions of Visual Studio 2019 support driver development for this release:
- Download Visual Studio Community 2019
- Download Visual Studio Professional 2019
- Download Visual Studio Enterprise 2019
When you install Visual Studio 2019, select the Desktop development with C++ workload. The Windows 10 Software Development Kit (SDK) is automatically included and is displayed in the right-hand Summary pane. Note that the version of the SDK that is compatible with the Windows 11 WDK may not be the default installed with Visual Studio. To get the compatible version of the SDK please use the link in step 2 below.
WDK has Spectre mitigation enabled by default but requires spectre mitigated libraries to be installed with Visual Studio for each architecture you are developing for. Additionally, developing drivers for ARM/ARM64/ARM64EC require the build tools for these architectures to also be installed with Visual Studio. To locate these items, you will need to know the latest version of MSVC installed on your system.
To find the latest version of MSVC installed on your system, in Visual Studio Installer go to workload page, on the right pane under installation details, expand Desktop development with C++ and locate the MSVC v142 — VS 2019 C++ x64/x86 build tools (V14.xx) — note where xx should be the highest version available.
With this information (v14.xx), go to Individual components and search for v14.xx. This will return the tool sets for all architectures, including Spectre mitigated libs. Select the driver architecture you are developing for. Alternatively you can search for ‘Latest’ and the most recent version of MSVC will be displayed to select.
For example, searching for Latest returns the following:
Download Windows 11 SDK (22000.1)
This SDK must be installed separately until available through Visual Studio
Step 3: Install Windows 11 WDK
Download WDK for Windows 11
The WDK Visual Studio extension is included in the default WDK installation.
Tip
If you can’t find driver project templates in Visual Studio, the WDK Visual Studio extension didn’t install properly. To resolve this, run the WDK.vsix file from this location: C:\Program Files (x86)\Windows Kits\10\Vsix\VS2019\WDK.vsix.
«А что, так можно было?!» — Универсальность
Предоставьте клиенту различные интерфейсы для работы с вашей библиотекой. Приведу пример:
Если предоставить только синхронную версию, то при реализации асинхронного приложения клиент вынужден будет делать асинхронные обертки вашего синхронного метода. Если предоставить только асинхронную версию — ситуация похожа. Дайте клиенту и то и другое и он скажет вам спасибо.
Приятным плюсом будут дженерики. Например, у нас есть класс для работы с конфигурациями, реализующий методы упаковки конфига в строку, загрузки конфига из файла и т.д. Конфигурация конкретного модуля будет наследоваться от нашего базового класса, но для работы с новым классом нам необходимо также предоставить методы распаковки.
Таким образом мы предоставили клиенту аж три реализации, которые он может использовать. Дженерики очень удобны, но при работе с динамическими типами их можно вызывать только через рефлексию, что накладно. Общий принцип универсальности, надеюсь, понятен.
Get started with the Windows App SDK
The Windows App SDK provides an extension for Visual Studio 2019 that includes project templates configured to use the Windows App SDK components in new projects. The Windows App SDK libraries are also available via a NuGet package that you can install in existing projects.
- Set up your development environment and install the latest Windows App SDK VSIX from Install developer tools.
- Follow the instructions on how to create a new project that uses the Windows App SDK or to use the Windows App SDK in an existing project.
For guidance on specific Windows App SDK versions, see Release channels and Downloads.
UI-фреймворки
Наконец можно поговорить про UI-фреймворки. С Windows Forms и WPF многие знакомы. UI, работающий поверх Win32 API. Отличаются способом верстки UI (дизайнер или XAML) и способом отрисовки (GDI или DirectX). С появлением WinRT, эти фреймворки особо не развиваются, но из-за огромного количества легаси приложений, Microsoft вынуждена поддерживать их. Например, в последних выпусках десятки значительно улучшена поддержка HDPI для WinForms.
Как такового маркетингового названия для UI-фреймворка в UWP нет. В зависимости от контекста используют понятия UWP-приложения и UWP XAML. Итак, UWP-приложения используют WinRT-модель приложений, XAML в качестве языка разметки и не требуют .NET. Фактически даже приложения, написанные на C#, собираются в нативный код, а не IL. XAML так же отличается от того, что используется в WPF, так как является развитием телефонного Silverlight (подмножества WPF). В итоге, с точки зрения верстки у XAML в UWP есть как отсутствующие фишки (например, multibindings), так и новые полезные фичи (например, компилируемые x:Bind), по сравнению с WPF. Кроме того, в UWP появился Composition API для визуально богатых, но экономичных с точки зрения ресурсов анимаций. И сделано много наработок для того, чтобы поддержать все богатство способов взаимодействия в современной Windows. Например, пункты контекстного меню становятся больше, если вызывать меню через тач.
WinUI
WinUI достоин отдельного упоминания, так как он един в двух лицах.
WinUI 2.x — UI-библиотека для UWP-приложений, содержащая в себе новые, в том числе экспериментальные, контролы. А также, обеспечивающая совместимость со старыми версиями Windows 10 (аналог AndroidX)
WinUI 3.x — часть Windows App SDK. Фактически это и есть UI-фреймворк для UWP, только оторванный от жизненного цикла UWP-приложений.
Обе версии сейчас развиваются параллельно.
установите расширение пакета SDK для приложений Windows для Visual Studio
пакет SDK для приложений Windows предоставляет унифицированный набор api-интерфейсов, шаблонов проектов и других средств для создания приложений Windows. этот пакет SDK доступен в виде расширения Visual Studio (VSIX). Можно выбрать одну из двух версий расширения: стабильный и экспериментальный.
Примечание
если вы ранее установили расширение винуи 3 Preview для Visual Studio, удалите расширение. Дополнительные сведения об удалении расширения см. в разделе Управление расширениями для Visual Studio.
Установка стабильного выпуска
Для разработки приложений для настольных систем (C#/.NET 5 или C++/WinRT), которые можно использовать в рабочих средах, установите Последнее стабильное расширение. Выберите один из следующих вариантов установки:
-
в Visual Studio щелкните расширения > управление расширениями, выполните поиск по запросу Project повторное объединение и установите последнее расширение.
Примечание
в последнем доступном стабильном выпуске (не ниже 0.8.2) расширение пакета SDK для приложений Windows для Visual Studio называется Projectным объединением. в более поздних выпусках он был переименован в пакет SDK для Windows приложений.
-
кроме того, вы можете скачать и установить расширение непосредственно из Visual Studio Marketplace.
Установка экспериментального выпуска
Для разработки приложений для настольных систем (C#/.NET 5 или C++/WinRT) или приложений UWP, использующих новейшие экспериментальные функции, установите Последнее экспериментальное расширение. эта версия пакета SDK для приложений Windows не может использоваться приложениями в рабочих средах. Выберите один из следующих вариантов установки:
-
в Visual Studio щелкните расширения > управление расширениями, найдите пакет SDK для Windows приложений (экспериментальный) и установите последнее расширение.
-
кроме того, вы можете скачать и установить расширение непосредственно из Visual Studio Marketplace.
«Alarm! Achtung! Attention!» — Ошибки
Долго размышляя на тему ошибок я пришел к интересному выводу — ни один метод в вашем SDK не должен отдавать ошибку, не описанную в документации. Согласитесь, очень неприятно, когда вы подключаете стороннюю библиотеку для работы с HttpRequest, а она вываливает на вас какой-нибудь NullPointerException и StackTrace, который уводит в недра библиотеки. И вам приходиться погружаться в эти самые «недра», пытаясь понять, насколько глубока кроличья нора, и в чем, собственно, проблема.
Поэтому я предлагаю следующее решение — декларируйте закрытый список возможных исключений и документируйте их. Но, т.к. нельзя быть увереннным, что вы предусмотрели все, оберните метод в try-catch, а пойманную ошибку — в задекларируему. Например, ConfigurationException, который будет содержать InnerException — пойманную ошибку. Это позволит стороннему разработчику поймать все возможные ошибки, но в случае чего быстро разобраться в чем дело.
поддержка Microsoft для пакета SDK для Windows приложений
пакет SDK для Windows приложений регулируется современным жизненным циклом корпорации майкрософт.
несмотря на то, что пакет sdk для Windows приложений в настоящее время обратно совместим с Windows 10 версии 1809, пакет sdk для приложений Windows поддерживается корпорацией майкрософт только в Windows выпусках, по-прежнемуподдерживаемых.
Поддержка имеет два основных преимущества:
поддержка зависит от применения последней версии обновления пакета SDK для приложений Windows и поддерживаемой операционной системы.
Дата окончания поддержки
Прекращение поддержки относится к дате, когда корпорация Майкрософт больше не предоставляет исправления, обновления или интерактивную техническую поддержку. Окончание поддержки также может называться «окончание срока жизни» или сокращенным «конца строки». Это время, на которое необходимо установить последнее доступное обновление.
Обновления являются накопительными, и каждое обновление основано на всех предшествующих обновлениях. Для поддержания поддержки на устройстве необходимо установить Последнее обновление. Обновления могут включать новые функции, исправления (безопасность и без безопасности), а также их сочетание. Не все компоненты обновления будут работать на всех устройствах. Доступность обновлений может отличаться, например страной, регионом, сетевым подключением или аппаратными возможностями (включая, например, свободное место на диске).
использование неподдерживаемых версий пакета SDK для приложений Windows может поставить под угрозу ваши приложения. Настоятельно рекомендуется не использовать неподдерживаемое программное обеспечение.
Можно ли удалить данную программу?
Места на диске она занимает оч мало, но при этом является прогой от Майкрософт (значит точно безопасна). В процессах не висит, в автозагрузке ее тоже не должно быть.
Тем не менее, если вы хотите удалить прогу — лучше сначала сделать точку восстановления:
- Зажимаете Win + R, пишите команду:
Нажимаете ОК. У вас откроется окно Свойства системы, здесь активируете вкладку Защита системы, где выбираете Системный диск и нажимаете Создать:
Точку советую называть на понятном языке, например до удаления Windows SDK AddOn.
Теперь можете смело удалять Windows SDK AddOn, и даже другие проги, в том числе и системные. А если будут проблемы — при помощи точки восстановитесь до прежнего состояния ПК.
Лично я советую удалять только при наличии точки восстановления! Это важно!
Регистрация клиентского приложения в Azure Active Directory
В рамках подготовки подписки Microsoft 365 создается соответствующий клиент Azure Active Directory (Azure AD). Клиент Azure AD обеспечивает управление удостоверениями и доступом для учетных записей пользователей и учетных записей приложений Microsoft 365. Приложения, которым необходим доступ к защищенным API (таким как API MIP), требуется учетная запись приложения.
Для проверки подлинности и авторизации во время выполнения учетные записи представляются в виде субъектов безопасности, которые являются производными от удостоверения учетных записей. Субъекты безопасности, представляющие учетные записи приложений, называются .
Чтобы зарегистрировать учетную запись приложения в Azure AD для использования с примерами и руководствами пакета SDK для MIP:
Важно!
Чтобы получить доступ к управлению клиентом Azure AD для создания учетной записи, потребуется выполнить вход на портал Azure с учетной записью пользователя, который является членом роли «Владелец» в подписке. В зависимости от конфигурации клиента для вы также должны быть членом роли каталога «Глобальный администратор».
Мы рекомендуем проводить тестирование с ограниченной учетной записью. Убедитесь, что у учетной записи есть только права на доступ к необходимым конечным точкам SCC. Пароли в виде открытого текста, указываемые в командной строке, могут быть собраны системами ведения журнала.
-
Следуйте инструкциям в разделе статьи «Регистрация приложения в Azure AD». Для тестирования используйте следующие значения для указанных свойств при выполнении инструкций руководства:
- Поддерживаемые типы учетных записей — выберите «Учетные записи в любом каталоге организации».
- URI перенаправления — выберите для типа URI перенаправления значение «Общедоступный клиент (мобильные и классические)». Если приложение использует библиотеку проверки подлинности Майкрософт (MSAL), используйте . В противном случае используйте что-либо в формате .
-
По завершении вы вернетесь на страницу Зарегистрированное приложение для нового приложения. Скопируйте и сохраните GUID, указанный в поле Идентификатор приложения (клиента) , так как он понадобится при работе с краткими руководствами.
-
Затем нажмите кнопку Разрешения API, чтобы добавить API и разрешения, к которым потребуется доступ клиенту. Щелкните Добавить разрешение, чтобы открыть колонку «Запрос разрешений API».
-
Теперь добавим API-интерфейсы и разрешения MIP, которые потребуются приложению во время выполнения:
- На странице Выбор API щелкните Служба Rights Management.
- На странице API Служба Rights Management Azure щелкните Делегированные разрешения.
- В разделе Выбор разрешений проверьте разрешение user_impersonation. Так приложение сможет создать защищенное содержимое и получить к нему доступ от имени пользователя.
- Щелкните Добавить разрешения, чтобы сохранить изменения.
-
Повторите шаг 4, но на этот раз, когда дойдете до страницы Выбор API, вам потребуется найти интерфейса API.
- На странице Выбор API щелкните Интерфейсы API, используемые моей организацией, введите в поле поиска Служба синхронизации Microsoft Information Protection и выберите этот API.
- На странице API Microsoft Azure Information Protection щелкните Делегированные разрешения.
- Разверните узел UnifiedPolicy и установите флажок UnifiedPolicy.User.Read.
- Щелкните Добавить разрешения, чтобы сохранить изменения.
-
Когда вы вернетесь на страницу Разрешения API, щелкните Предоставить согласие администратора для (имя клиента) , а затем щелкните Да. Этот шаг предоставляет предварительное разрешение на доступ к API с указанными разрешениями для приложения. Если вы вошли в систему как глобальный администратор, согласие записывается для всех пользователей в клиенте, которые запускают приложение, в противном случае он применяется только к вашей учетной записи.
По завершении регистрация приложения и разрешения API должны выглядеть так, как показано в этом примере:
Дополнительные сведения о добавлении интерфейсов API и разрешений в регистрацию см. в разделе . Здесь вы найдете сведения о добавлении интерфейсов API и разрешений, требуемых клиентскому приложению.
«— Чтобы чисто было! — Как я буду вилкой-то чистить?» — Тестирование
Что можно сказать про тестирование в рамках обсуждения SDK… Must have! Лучшим решением будет TDD (несмотря на то, что я негативно отношусь к данному подходу, в данном случае я решил использовать именно его). Да, долго. Да, нудно. Но зато в будущем вы не повеситесь от постоянных падений SDK на стороне и следствий этого падения.
Основной сок ситуации заключается в том, что отдавая SDK клиенту вы теряете контроль: вы не можете быстро пофиксить ошибку, сложно эту самую ошибку найти, да и выглядеть в такой ситуации вы будете достаточно глупо. Поэтому — тестируйте. Тестируйте лучше. И еще раз. И, на всякий случай, протестируйте ваши тесты. И тесты тестов
Так, что-то я увлекся, но важность тестирования SDK, надеюсь, понятна
Windows UI 3 Library
WinUI 3 is the native UI platform component that ships with the Windows App SDK (completely decoupled from Windows 10 and later SDKs). The Windows App SDK provides a unified set of APIs and tools that can be used to create production desktop apps that target Windows 10 and later, and can be published to the Microsoft Store.
For more details, see the Windows App SDK .
To provide feedback and log suggestions and issues, please use the WinUI GitHub repo.
Note
The Windows App SDK was previously known as Project Reunion. Some assets, such as the VSIX extension and NuGet packages, still use this code name (these will be renamed in a future release).
Windows App SDK is used in all documentation except where a specific release or asset still refers to Project Reunion.
Add Windows 10 experiences
Now you’re ready to add modern experiences that light up when users run your application on Windows 10. Use this design flow.
First, decide what experiences you want to add
There’s lots to choose from. For example, you can simplify your purchase order flow by using monetization APIs, or direct attention to your application when you have something interesting to share, such as a new picture that another user has posted.
Even if users ignore or dismiss your message, they can see it again in the action center, and then click on the message to open your app. This increases engagement with your application and has the added bonus of making your application appear deeply integrated with the operating system. We’ll show you the code for that experience a bit later in this article.
Visit the UWP documentation for more ideas.
Decide whether to enhance or extend
You’ll often hear us use the terms enhance and extend, so we’ll take a moment to explain exactly what each of these terms mean.
We use the term enhance to describe WinRT APIs that you can call directly from your desktop app (whether or not you have chosen to package your application in an MSIX package). When you’ve chosen a Windows 10 experience, identify the APIs that you need to create it, and then see if that API appears in this list. This is a list of APIs that you can call directly from your desktop app. If your API does not appear in this list, that’s because the functionality associated with that API can run only within a UWP process. Often times, these include APIs that render UWP XAML such as a UWP map control or a Windows Hello security prompt.
Note
Although APIs that render UWP XAML typically cannot be called directly from your desktop, you might be able to use alternative approaches. If you want to host UWP XAML controls or other custom visual experiences, you can use XAML Islands (starting in Windows 10, version 1903) and the Visual layer (starting in Windows 10, version 1803). These features can be used in packaged or unpackaged desktop apps.
If you have chosen to package your desktop app in an MSIX package, another option is to extend the application by adding a UWP project to your solution. The desktop project is still the entry point of your application, but the UWP project gives you access to all of the APIs that do not appear in this list. The desktop app can communicate with the UWP process by using a an app service and we have lots of guidance on how to set that up. If you want to add an experience that requires a UWP project, see Extend with UWP components.
Reference API contracts
If you can call the API directly from your desktop app, open a browser and search for the reference topic for that API.
Beneath the summary of the API, you’ll find a table that describes the API contract for that API. Here’s an example of that table:
If you have a .NET-based desktop app, add a reference to that API contract, and then set the Copy Local property of that file to False. If you have a C++-based project, add to your Additional Include Directories, a path to the folder that contains this contract.
Call the APIs to add your experience
Here’s the code that you’d use to show the notification window that we looked at earlier. These APIs appear in this list so you can add this code to your desktop app and run it right now.
To learn more about notifications, see Adaptive and Interactive toast notifications.