Приложениями Microsoft Office 365 сегодня пользуются более миллиарда человек по всему миру. Это крупнейшая платформа, которая доступна на разнообразных устройствах от больших настольных ПК до миниатюрных смартфонов. С выходом новых версий Office 365 все эти пользователи становятся и вашими польователями, так как новые возможности платформы позволяют интегрировать решения разработчиков прямо в рабочий процесс всех офисных приложений! Благодаря кроссплатформнености офиса, и его API основанном на HTML5 ваши приложения смогут работать на всех платформах, включая планшеты iOS, Andoird и Windows. Я рад приветствовать первый пост от Александры Богдановой в специальной колонке разработки под Office 365. — Владимир Юнев, technical evangelist, Microsoft Russia

Ну что же, у нас уже есть замечательные колонки про веб и ASP.NET, я решила поддержать это движение и начать новый цикл статей про Office 365. Новые офисные API, создание приложений, различные альтернативные сценарии применения офиса — все это в колонке «Office как Платформа».



Помимо целого набора различных офисных приложений и сервисов, Office 365 предоставляет интересные возможности для разработчиков. Здесь кратко описаны основные нововведения и возможности Office 365. Сегодня мы подробнее познакомимся с инструментами разработки под Office 365 и рассмотрим несколько примеров приложений для Excel и Word.

Что же Office 365 может предложить для разработчиков?

Во-первых, у Office 365 есть API, позволяющее интегрировать офис в приложения и тем самым расширять их функционал работы с файлами. API Office 365 предоставляет большое число возможностей для работы с почтой, обменом файлами, календарями и контактами. Также приятно, что API доступно не только для Windows/Windows Phone, а также для Android и iOS.

Во-вторых, у вас есть возможность расширить стандартные возможности офисных программ путем написания различных «надстроек». Например, вы можете добавить возможность проигрывания видеофайлов непосредственно в Outlook, встроить карты Bing в свой отчет или каким-то образом обработать введенные файлы.

Ну что же, давайте начнем погружаться в мир офисных приложений именно со знакомства с «надстройками» для приложений.

Как работают офисные приложения?


Простейшее приложение для офиса состоит из статической веб-страницы и манифеста приложения в формате XML. HTML страница может быть размещена на любом веб-сервере или в службе, например, в Microsoft Azure. Файл манифеста должен указывать на расположение веб-страницы, его нужно опубликовать в общедоступном Магазин Office, внутреннем списке SharePoint или на общем сетевом ресурсе. Также манифест определяет параметры и возможности приложения, такие как URL-адрес веб-страницы, на которой реализованы пользовательский интерфейс и программная логика, имя, описание, идентификатор, версия и языковой стандарт приложения, уровень разрешений и требования к доступу к данным для этого приложения.



Какие возможности мы можем использовать при создании офисных приложений?

  • Предоставлять интерактивный пользовательский интерфейс и пользовательскую логику посредством JavaScript.
  • Использовать платформы JavaScript, такие как jQuery.
  • Подключаться к конечным точкам REST и веб-службам через HTTP и AJAX.
  • Запускать код или логику на стороне сервера, если страница создана с использованием языка сценариев на стороне сервера, такого как ASP или PHP.

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

Типы офисных приложений


Офисные приложения можно разделить на три типа:

Примечание. Все эти приложения могут быть запущены как на настольных версиях Office, так и на мобильных в планшетах Windows, iOS, Android! Кроме того, расширение для Outlook так же сможет работать в онлайн-версиях Oultook.com и Outlook из Office 365 в браузере пользователя!

Приложения области задач

Приложения области задач работают параллельно с документом Office и позволяют предоставлять контекстные сведения и функциональные возможности для повышения удобства просмотра и создания документов. Например, приложение области задач может искать и получать сведения о продукте из веб-службы на основе названия продукта или кода позиции, выбранного в документе.



Контентные приложения

Контентные приложения позволяют создавать привлекательные визуализации данных в Интернете, использовать встроенные возможности работы с мультимедиа (такие как видеопроигрыватель YouTube или галерея изображений), а также задействовать другой внешний контент.



Почтовые приложения

Почтовые приложения могут работать с сообщениями электронной почты (просмотр, создание, удаление писем), календарями (создавать и удалять события и встречи). Почтовые приложения могут анализировать данные из письма и работать с ними, например, «вычленять» адрес из письма и автоматически наносить его на карту Bing.



Что нужно для создания офисных приложений


Вы можете создавать приложения как при помощи Visual Studio, так и при помощи средства разработки приложений Napa. Средства разработки Napa для Office 365 — это веб-среда, позволяющая создавать проекты, писать код и запускать приложения в браузере. Дополнительно ничего устанавливать не нужно – вся работа над приложением выполняется в окне браузера.

Если вам привычнее создавать приложения в Visual Studio, то для этого вы можете использовать специальный шаблон, содержащий все файлы, необходимые для создания и тестирования приложений.

Безусловно, есть еще один способ – создавать приложения в текстовом редакторе. В случае, если вы выбрали этот способ, то вам необходимо создать 4 файла:

  • HTML-файл, который реализует пользовательский интерфейс приложения.
  • XML-файл манифеста, который определяет метаданные, необходимые для отображения и запуска приложения в Word или Excel.
  • CSS-файл, определяющий таблицу стилей в приложении.
  • Файл project.js, содержащий логику программирования JavaScript, которая может использовать интерфейс JavaScript API для Office (Office.js).

Мы же не будем останавливаться на создании приложений в текстовом редакторе, а познакомимся со средством разработки Napa, а затем создадим приложение в Visual Studio.

Создаем офисное приложение в средстве разработки Napa


Для создания приложения в среде разработки Napa вам необходимо:

  • Учетная запись Office 365 (подписка для разработчиков);
  • Приложение Средства разработки Napa для Office 365.

Если вы раньше не сталкивались с Office 365 и с разработкой под него, то начните с создания сайта разработчика. О том, как это сделать вы можете прочитать в подробной инструкции здесь.

Первое, что вам необходимо сделать – зайти на сайт разработчика и нажать на иконку «создать приложение»



Выберите тип приложения, которое вы хотите создать – почтовое, контентное, приложение области задач или приложение для SharePoint. Для примера, создадим контентное приложение.



После создания приложения, откроется страница, на которой в левой части экрана будут отображаться файлы приложения, в центре – код приложения.



Здесь вы можете дописывать необходимый код, компилировать приложение, менять его свойства и загружать в магазин офисных приложений. По умолчанию, при запуске приложения (для запуска нажмите на кнопку «play» в левой части панели) откроется дополнительная вкладка с Excel Online, с возможностью протестировать созданное приложение. Поменять приложение, для которого вы пишете надстройку можно в Свойствах(Properties) -> Запуск(Run) на левой панели.

Начнем модифицировать стандартный пример. Будем создавать приложение, которое будет загружать картинки из сервиса Flickr. Добавим на Html-страницу раздел Images (под разделом Content) и изменим название кнопки get-data-from-selection на "Поиск по Flickr". Полный код тела Html страницы вы можете увидеть под спойлером.

Скрытый текст
<body>
    <!-- Page content -->
    <div id="content-header">
        <div class="padding">
            <h1> Welcome!</h1>
        </div>
    </div>
    <div id="content-main">
        <div class="padding">
            <p><strong> Add home screen content here.</strong></p>
            <p>For example :</p>
            <button id="get-data-from-selection">Search Flickr</button>
            
            <p style="margin-top: 50px;">
                <a target="_blank" href="http://go.microsoft.com/fwlink/?LinkId=276812">
                    Find more samples online...
                </a>
            </p>
        </div>
    <div>
        <div id="Images" style="height:800px; overflow:scroll">
    </div>
</body>

Добавьте в JS файл вашего проекта функцию, которая будет показывать изображения, связанные с выделенным текстом.

Скрытый текст
function showImages(selectedText) {    
    $('#Images').empty();
    var parameters = {
        tags: selectedText,
        tagsmode: "any",
        format: "json"
    };
    $.getJSON("https://secure.flickr.com/services/feeds/photos_public.gne?jsoncallback=?",
                    parameters,
                    function (results) {
                        $.each(results.items, function (index, item) {
                            $('#Images').append($("<img />").attr("src", item.media.m));
                        });
                    }
    );
}

Не забудьте инициализировать ее в функции getDataFromSelection()

Все, приложение готово. Запустите его в Microsoft Word и наслаждайтесь красивыми фотографиями. Я вот потренировалась на кошках)



Итак, я надеюсь, вы получили представление о том, что из себя представляет Napa и как использовать ее при создании офисных приложений. Мне же привычнее создавать код в Visual Studio, далее посмотрим создание приложений при помощи нее.

Создаем офисное приложение в Visual Studio


Что вам необходимо при создании офисных приложений в Visual Studio:

  • Visual Studio (начиная с 2012) версии
  • Офисные инструменты для Visual Studio (для 2013 версии можно скачать здесь)

Создайте новый проект. Из списка доступных проектов выберите Visual C# или Visual Basic, затем, Office/SharePoint -> Приложения -> Приложение для Office. Также, как и при создании приложений при помощи Napa, вам необходимо выбрать тот тип приложения, который вы будете создавать. Напомню, вы выбираете из почтового, контентного и приложения области задач. Затем, укажите в каких приложениях должно работать ваше: Word, Excel, Power Point.



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

Для начала, откроем файл Home.html, который располагается по пути App -> Home -> Home.html

Добавьте в начало файла ссылку на библиотеку jQuery:

<script src="//code.jquery.com/jquery-1.11.2.min.js"></script>

Внутри тега <body> добавляем <div> элемент, пишем надпись: «Наше первое офисное приложение». Также не забываем добавлять кнопку, по нажатию на которую, надпись будет добавляться в ячейку.

<div> Наше первое офисное приложение</div>
<button id="writeDataBtn"> Записать данные в ячейку </button><br />

В файл Home.js добавьте функцию, отвечающую за добавление надписи в ячейку, а также обработчик вызова этой функции.

Функция добавления надписи в ячейку будет выглядеть так:

function writeData() {
        Office.context.document.setSelectedDataAsync("Учимся создавать офисные приложения", function (asyncResult) {
            if (asyncResult.status === "failed") {
                writeToPage('Error: ' + asyncResult.error.message);
            }
        });
}

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



Простейшее приложение готово. Перейдем к вопросу распространения созданных офисных приложений.

Публикация приложений


Когда мы создаем мобильное приложение, то вопрос, как его распространять, обычно не возникает, т.к., как правило, мы выбираем надежный и проверенный путь распространения приложений — через соответствующие магазины приложений. Для офисных приложений все не так очевидно. В общем случае существует 4 способа, как можно распространить офисное приложение:

Магазин Office. Он представляет собой удобное место для загрузки разработчиками новых решений приложений, предназначенных как для потребителей, так и для компаний. По сути, он является аналогом привычного для нас магазина приложений.

Каталог приложений для Office в SharePoint. Вы можете настроить каталоги приложений непосредственно для своей компании, настроив свой мини магазин офисных приложений.

Каталог Exchange. Является частным каталогом для почтовых приложений, доступных пользователям сервера Exchange, на котором они и хранятся. С его помощью можно публиковать и управлять корпоративными почтовыми приложениями, включая собственные приложения и приложения в Магазин Office, лицензированными для корпоративного использования.

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

Вы можете опубликовать любым способом как приложение, созданное в Napa, так и приложение, созданное в Visual Studio.

Процесс публикации приложения состоит из трех шагов, которые немного различаются в зависимости от того, каким образом вы создаете приложение. Для приложений, созданных при помощи Napa, вам необходимо сначала упаковать приложение, затем разместить его файлы на веб-сервер, а, затем, загрузить XML-файл манифеста приложения в Магазин Office.

Для приложений из Visual Studio, порядок следующий: настроить страницу публикации приложения, затем, упаковать и опубликовать приложение (загрузить XML-файл манифеста приложения в Магазин Office). Подробнее о процедурах публикации вы можете прочитать здесь.

Заключение


Мы познакомились с основами создания офисных приложений и рассмотрели простейшие примеры – создали приложение для Word в специальной среде Napa и поработали с ячейками книги Excel на основе шаблона для создания офисных приложений в Visual Studio. Создавайте различные «надстройки», упрощайте работу с данными, интегрируйте поисковые системы – подстраивайте Office 365 под потребности вас и вашей компании. Используйте платформу Office 365 для доступа к миллиарду новых пользователей для вашего решения!

Дополнительные ссылки для тех, кто заинтересовался


Посмотреть основную документацию по созданию офисных приложений вы можете на портале Центра Разработки Office, также вы можете скачать примеры готовых приложений.

Кроме того вам могут быть полезны следующие материалы: расширение Office 365 руководство для архитекторов, новые материалы Office 365 Patterns & Practices, разработка нативных приложений iOS с Office 365 SDK и работа с Office 365 API для разработки приложений.

Об авторе




Александра Богданова, project manager отдела Customer and Partner Experience, Microsoft Russia. Участник различных конференций, митапов, хакатонов, в том числе Microsoft Developer Tour и Microsoft Developer Conference.
О чем бы вам хотелось бы узнать в следующих выпусках колонки?

Проголосовало 46 человек. Воздержалось 26 человек.

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

Комментарии (21)


  1. Sergey-S-Kovalev
    17.07.2015 10:50
    +1

    Дня нового! Есть информация, когда Office станет доступен под Android на Atom-платформах?

    Аккаунт Microsoft Office в Facebook сначала утверждал что все хорошо и я ошибаюсь, потом для него встало внезапностью существование андройда на атомах, а потом он вовсе замолчал безответно.

    Скрин c play.google.com


    1. Sergey-S-Kovalev
      21.07.2015 07:44

      Ну собственно и в этот раз, как я погляжу — безответно.


  1. beduin01
    17.07.2015 11:20

    Для меня прогресс в Офисе остановился на 2007. Я просто не понимаю необходимость во всем этом. Сейчас для наборов текстов вообще Office 97 portable на флешке таскаю 90% потребностей закрывает на раз.


    1. Sergey-S-Kovalev
      17.07.2015 11:55
      +2

      Пуск -> Выполнить -> wordpad
      Есть почти в каждом первом Windows, если мне память не изменяет. Вот в Win10 он тоже никуда не делся.
      Функционален, бесплатен, есть везде, сохраняет в rtf / docx / odf, интернетов не требует.


      1. ad1Dima
        17.07.2015 13:30
        +2

        Не понимаю, как можно редактировать более-менее серьёзные документы редактором, в котором даже стилей нет.


        1. Sergey-S-Kovalev
          17.07.2015 13:35

          Иногда, они просто не нужны %)


          1. ad1Dima
            17.07.2015 13:46

            Видел я это «иногда»: пытаешься добавить предложение в документ, а вся вёрстка плывёт, ибо на табах, пробелах, и разных размерах шрифта.


            1. Sergey-S-Kovalev
              20.07.2015 07:49

              Вставляйте как plain text, а потом форматируйте как душе угодно.

              Wordpad вполне справляется с тем, что делает 90% офисных сотрудников в Microsoft Word. Набирают текст, выделяют заголовки разделов жирным, делают отступы и задают размер и шрифт тексту, а затем отправляют на печать.

              Какие стили, формулы и рецензирование, о чем вы? :) Нужен обычный и банальный WYSWYG редактор.

              Бесплатно, из коробки.


              1. ad1Dima
                22.07.2015 12:07

                В том и дело, что

                делают отступы и задают размер и шрифт тексту, а затем отправляют на печать.

                А потом нужно добавить пункт в список, либо просто предложение в текст, где вместо разрыва страницы используются переносы строк и размер шрифта. Ага.


                1. Zenitchik
                  22.07.2015 15:23

                  Это, согласитесь, сменой редактора не исправить. 90% офисных сотрудников умеют работать в приложениях MSO так, что лучше бы не умели.
                  Порой увидишь документ, прошедший через три-четыре пары ламерских рук…


                  1. ad1Dima
                    22.07.2015 15:34

                    Не понимаю, как можно редактировать более-менее серьёзные документы редактором, в котором даже стилей нет.


                    Ламеркие руки никак не означают, что WordPad подходит для редактирования более-менее нормальных документов.


                    1. Zenitchik
                      22.07.2015 17:52
                      +1

                      В принципе, я с Вами согласен. Но пресловутым ламерским рукам нет никакой разницы, в чём редактировать — они всё равно нормальными возможностями не пользуются.


  1. dude_sam
    17.07.2015 11:55

    Мне непонятно, как можно выпустить новый Office 365 2016 версии и не добавить в Outlook поддержки контактов и календаря Google!
    Да, скорость установки на osX порадовала — пара минут и всё.


    1. Helek
      17.07.2015 14:59

      Вот это верно!!!


  1. MetaDone
    17.07.2015 12:24

    Это крупнейшая платформа, которая доступна на разнообразных устройствах от больших настольных ПК до миниатюрыных смартфонов

    Поправьте пожалуйста


  1. uthark
    18.07.2015 02:06
    +1

    Интересно, откуда взялся миллиард пользователей офиса 365?

    Или вы инсталляции посчитали? Или вы еще посчитали всех пользователей Exchange?


  1. optimizer
    20.07.2015 17:25

    >Office как Платформа, №1: введение в
    какой смысл несет запятая?


  1. valeriyvan
    21.07.2015 12:03

    Можно вопрос?

    Приходится пользоваться почтой outlook.office365.com. У меня нет выбора. Должен и все. Мне удобно пользоваться почтовым клиентом. Настроил, все работает, и почта и календарь оттуда же в календарь на Маке импортируется нормально. Раз в месяц почта перестает забираться. Только через три месяца я допер, что outlook.office365.com регулярно заставляет меня сменить пароль. Я замечаю, что несколько дней от боса нет писем и понимаю, что сообщения почтового клиент что он не может забрать почту с outlook.office365.com были не случайностью и надо зайти на сайт, сменить пароль, потом прописать новые пароль в почтовом клиенте и календаре. Почему так по-дебильному все сделано???

    Второй вопрос. Я генерирую пароли длиной 20 символов. На автомате. outlook.office365.com — единственный сайт из тех что я встречал, не разрешает пароли длиннее 16 символов. Вы считаете, что это нормально?

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


    1. valeriyvan
      21.07.2015 12:07

      *из-за


    1. ad1Dima
      22.07.2015 12:11

      У меня есть подозрение, что политики по смене паролей и его длине выставлены вашей организацией. Хотя честно говоря, не настолько плотно общался с o365.

      А насчёт поведения клиента — вероятно протокол не поддерживает смену пароля через клиент. Кажется Exchange так умеет.


  1. pashazz
    23.07.2015 18:28

    Office 365 под Linux, я так понимаю, можно не ждать?