Если в вашей компании ведутся дискуссии о необходимости мобильного приложения SharePoint для вашего сайта, то мне знакомы трудности, с которыми вы сталкиваетесь, пытаясь понять, зачем нужно проектировать мобильные приложения, обменивающиеся данными с SharePoint. Конечно, лучший подход — убедиться, что сайт построен с использованием оптимального дизайна и все в порядке. Однако по мере распространения мобильных приложений для всех мобильных платформ привлекательность приложений растет. Так как же мы строим мобильные приложения для SharePoint?

Прежде всего, необходимо понять, как выполнять подключения к SharePoint с помощью различных технологий. На практике в мобильных приложениях будут использоваться библиотеки на стороне клиента, чтобы можно было получить доступ к любым компонентам SharePoint. Поэтому нужно изучить вызовы REST API и компоненты CSOM. Дополнительно компания Microsoft выпустила вспомогательные компоненты. Однако дело не сводится к выбору библиотеки, которую нужно использовать; самая большая проблема — процесс подключения к системе. Помните, что мобильное устройство имеет соединение с Интернетом наряду с Azure AD и Office 365. Подключение к Office 365 осуществить несложно, но при наличии локально установленной системы SharePoint необходимо позаботиться о соединениях внутри компании (это не относится к теме данной статьи, но достаточно сказать, что предстоит использовать какой-нибудь тип соединения VPN или прямое подключение через брандмауэр).

После того как проблема подключения будет решена, можно определить базовую архитектуру, необходимую для вашего нового приложения. Компания Microsoft подготовила пакеты для разработки SDK Android, iOS и собственного клиента. NET для Azure AD. Кроме того, создана инфраструктура Common Consent Framework и инструменты разработки Office 365 для Visual Studio. Эти решения Microsoft требуют соединения с Azure AD и Office 365 для связи и проверки подлинности. Но после того как мы определили структуру кода, нужно выяснить, каковы предложения Microsoft для мобильной разработки. Возможно, вы знаете, что комплект Xamarin (https://www.xamarin.com/) представляет собой набор инструментов для мобильных приложений этих типов. Напомню, что он стал частью Visual Studio и доступен для всех желающих.

Для использования Xamarin нужно просто установить эти компоненты наряду с Visual Studio, однако в данной статье эта тема не рассматривается. После установки можно просто открыть Visual Studio и убедиться, что компоненты Office 365 API установлены (см. экран 1). Для этого щелкните пункты меню Tools («Инструменты»), Extensions and Updates («Расширения и обновления»), Updates («Обнов­ления»), а затем выберите Office 365 API Tools («Средства API Office 365»), если они необходимы.

 

Средства API Office 365
Экран 1. Средства API Office 365

Теперь требуется создать проект в Visual Studio. Откройте Visual Studio и выберите File («Файл»), New («Создать»), Project («Проект»), укажите шаблон проекта C#, Android and Blank App («Android и пустое приложение») и нажмите ОК (см. экран 2).

 

Создание проекта
Экран 2. Создание проекта

После того как проект загружен, необходимо добавить нашу подключенную службу Office 365 (см. экран 3). Для этого следует обратиться к меню Project («Проект») в Visual Studio и выбрать Add («Добавить»), Add Connected Service («Добавить подключенную службу»).

 

Добавление службы Office 365
Экран 3. Добавление службы Office 365

В результате будет запущен процесс для подключения к клиенту Office 365. Прежде всего, необходимо выбрать вариант Office 365 API (см. экран 4).

 

Выбор варианта Office 365 API
Экран 4. Выбор варианта Office 365 API

Затем следует указать домен Office 365 Developer Domain (часто заполняется на основе имени регистрации для Visual Studio или предыдущих подключений), как показано на экране 5.

 

Указание домена Office 365 Developer Domain
Экран 5. Указание домена Office 365 Developer Domain

После этого может быть выдан запрос для проверки подлинности с целью авторизации доступа к API-интерфейсам (см. экран 6).

 

Запрос проверки подлинности
Экран 6. Запрос проверки подлинности

После проверки подлинности, получив право доступа к клиенту, необходимо создать компонент Azure AD для проверки подлинности. Если вы уже создали его в Azure, можно повторно использовать идентификатор. Для данного примера будет создан новый компонент (см. экран 7).

 

Создание компонента Azure AD для проверки подлинности
Экран 7. Создание компонента Azure AD для проверки подлинности

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

 

Разрешения для приложения
Экран 8. Разрешения для приложения

Как показано на экране 8, существует целый ряд доступных для выбора разрешений. На самом деле для подключения к SharePoint все они не нужны, достаточно разрешений SharePoint Online. Прежде чем внести какие-либо изменения, можно просто нажать клавишу F5. В результате будет запущен отладчик, и мы увидим, как будет работать приложение. Для этого примера оно должно быть загружено в один из выбранных эмуляторов Android (см. экран 9).

 

Выбор эмулятора Android
Экран 9. Выбор эмулятора Android

Запуск с настройками по умолчанию выдает результаты, показанные на экране 10. Имейте в виду, что ваше пользовательское приложение должно присутствовать в списке программ. Запустить его можно двойным щелчком мыши. Конечно, пока оно не выполняет никаких действий, но по крайней мере загружается (см. экран 11).

 

Запуск приложения в эмуляторе с настройками по умолчанию
Экран 10. Запуск приложения в эмуляторе с настройками по умолчанию

 

Первый запуск приложения
Экран 11. Первый запуск приложения

Теперь требуется закрыть программу и внести изменения в код, чтобы построить мобильное приложение, которое обращается к содержимому Office 365. В первую очередь следует добавить вспомогательную папку и класс, упрощающий процесс проверки подлинности Office 365. Сначала введем несколько внутренних переменных, задающих URL-адреса и прочие данные для Office 365.

internal string ClientId = "{Your Client ID}";
internal string RedirectUri =
   "{Your Redirect Url}";
internal string Authority =
   "https://login.windows.net/Common";
internal readonly
Uri discoveryServiceEndpointUri =
   new Uri ("https://api.office.
   com/discovery/v1.0/me/");
internal readonly string
   discoveryServiceResourceId =
   "https://api.office.com/discovery/";

Они будут повторно использоваться в программном коде для точки входа при доступе к Office 365. Теперь нужно задействовать привязки Adal Bindings для Android, которые не рассматриваются в данной статье. Впрочем, вы можете познакомиться с проектом, где они используются, по адресу: https://github.com/OfficeDev/XamarinAndroidO365/tree/master/XamarinOffice365.AdalBindings.

После организации привязок в проекте можно использовать AuthenticationContext для связи с Office 365. Фрагмент простого программного кода на экране 12 применяется в стандартных проектах, сохраненных в репозиториях GitHub для Android и Xamarin, чтобы подключиться к Office 365 и возвратить сообщение.

 

Фрагмент кода для связи с Office 365
Экран 12. Фрагмент кода для связи с Office 365

Далее мы заполняем методы для OnActivityResult, а затем добавляем конкретику Android для Callback (см. экран 13).

 

Заполнение методов для OnActivityResult
Экран 13. Заполнение методов для OnActivityResult

Теперь мы располагаем большей частью базового кода. Настраиваем отображение с использованием стандартного построителя, предусмотренного в Xamarin, добавляя кнопку для регистрации в Office 365, а затем подготовленный ранее базовый код присоединит событие для щелчков и возвратит окно сообщения. После запуска эмулятора должна отображаться кнопка, как определено на холсте разработки (см. экран 14).

 

Кнопка для регистрации в Office 365
Экран 14. Кнопка для регистрации в Office 365

После нажатия кнопки применяется проверка подлинности непосредственно в Office 365, где после проверки учетных данных потребуется принять разрешения, установленные нами для приложения (см. экран 15).

 

Проверка подлинности и принятие разрешений
Экран 15. Проверка подлинности и принятие разрешений

После того как будет принят набор разрешений, возвращается окно сообщения с маркером проверки подлинности (см. экран 16). Теперь можно использовать другой программный код, чтобы получить электронную почту, контакты или даже доступ к нашему сайту SharePoint в Интернете.

 

Окно сообщения с маркером проверки подлинности
Экран 16. Окно сообщения с маркером проверки подлинности

Добавление другого программного кода, такого как показан на экране 17, позволит повторно использовать маркер проверки подлинности, чтобы получить элементы списков SharePoint с применением объектной модели на стороне клиента и конечных точек REST API в SharePoint.

 

Код для повторного использования маркера проверки подлинности
Экран 17. Код для повторного использования маркера проверки подлинности

В целом Xamarin в среде Visual Studio и средства API Office 365 обеспечивают оптимальный подход к построению мобильных приложений для Office 365.

Приведенный выше и дополнительный программный код можно найти через учетную запись Microsoft Office DEV GitHub: https://github.com/OfficeDev/XamarinAndroidO365.