Надстройки SharePointSharePoint Add-ins

Существует два основных типа надстроек SharePoint: надстройки, размещаемые в SharePoint, и надстройки, размещаемые у поставщика.There are two basic kinds of SharePoint Add-ins: SharePoint-hosted and provider-hosted. Чтобы выбрать наиболее подходящий вариант для своего сценария, сначала узнайте, что общего у обоих типов надстроек SharePoint.To make the best decision about the right kind to develop for your scenario, start by learning what both types of SharePoint Add-ins have in common.

Примечание

Приложение для устройства, например мобильное приложение, — это не совсем надстройка SharePoint, даже если оно получает доступ к SharePoint.A device app, such as mobile app, isn't really a "SharePoint Add-in" even when it accesses SharePoint. Это касается и веб-приложений, запускаемых не из SharePoint.The same is true of a web application that is launched from outside of SharePoint. Сведения о том, как разрабатывать приложения любого из указанных ниже типов, см. в статье Доступ к SharePoint из мобильных и собственных приложений для устройств.If you want to develop any of these kinds of apps, see Access SharePoint from mobile and native device apps.

  • Надстройка SharePoint — это автономный функциональный модуль, расширяющий возможности веб-сайтов SharePoint для решения определенной бизнес-задачи.A SharePoint Add-in is a self-contained piece of functionality that extends the capabilities of SharePoint websites to solve a well-defined business problem.

  • Надстройки не содержат пользовательский код, выполняемый на серверах SharePoint.Add-ins don't have custom code that runs on SharePoint servers. Вместо этого всю пользовательскую логику перемещают в облако, на клиентские компьютеры или на локальный сервер, который не входит в ферму SharePoint или в подписку SharePoint Online.Instead, all custom logic moves "up" to the cloud, or "down" to client computers, or "over" to an on-premises server that is outside the SharePoint farm or SharePoint Online subscription. Если пользовательский код находится за пределами серверов SharePoint, администраторы SharePoint могут быть уверены, что надстройка не причинит вреда их серверам и не снизит производительность веб-сайтов SharePoint Online.Keeping custom code off SharePoint servers provides reassurance to SharePoint administrators that the add-in can't harm their servers or reduce the performance of their SharePoint Online websites.

  • Бизнес-логика надстройки SharePoint может получить доступ к данным SharePoint через один из клиентских API в составе SharePoint. Какой API нужно использовать для своей надстройки, зависит от того, каким вы разработаете это приложение.Business logic in a SharePoint Add-in can access SharePoint data through one of the several client APIs included in SharePoint. Which API you use for your add-in depends on certain other design decisions you make.

  • Практически все основные типы компонентов SharePoint могут быть частью надстройки, в том числе страницы, списки, рабочие процессы, настраиваемые типы контента, шаблоны списков и веб-части.Almost all major types of SharePoint components can be part of a SharePoint Add-in, including pages, lists, workflows, custom content types, list templates, web parts, and more.

  • Веб-сайты SharePoint, на которых установлены надстройки SharePoint и на которых пользователи запускают эти надстройки, называют хост-сайтами.The SharePoint websites where SharePoint Add-ins are installed, and from which users launch them, are called host webs. Компоненты SharePoint обычно находятся на отдельном дочернем сайте хост-сайта — сайте надстройки.The SharePoint components, however, are generally in a special child web of the host web called the add-in web.

  • Надстройки SharePoint можно разместить на веб-сайте SharePoint несколькими указанными ниже способами.SharePoint Add-ins can fit into a SharePoint website in several ways:

    Иммерсивный полностраничный интерфейс приложений SharePoint В виде иммерсивного полностраничного интерфейса, который может выглядеть, как страница SharePoint.As an immersive full-page experience that can have the look and feel of a SharePoint page.
    Интерфейс веб-части приложения SharePoint В виде части веб-страницы, то есть с использованием специального элемента управления (веб-части надстройки), для отображенияAs part of a webpage, using a special kind of control called an add-in part, to surface an
    элемента iframe, содержащего такую надстройку.iframe element that contains the add-in.
    Интерфейс дополнительного действия в приложении SharePoint В виде команд пользовательского интерфейса, расширяющих возможности лент и меню для списков, документов и многих других объектов.As UI commands that extend ribbons and menus for lists, documents, and more.
  • Для всех надстроек SharePoint, устанавливаемых пользователями, предусмотрена плитка на странице "Содержимое сайта" веб-сайта SharePoint.All SharePoint Add-ins that users install get a tile on the Site Contents page of the SharePoint website. Если щелкнуть плитку, запустится соответствующая надстройка.Clicking the tile runs the add-in.

  • Для настройки надстройки SharePoint используется манифест надстройки, который представляет собой XML-файл, в котором объявлены базовые свойства надстройки, указано, где можно запускать ее и что нужно делать SharePoint при ее запуске.A SharePoint Add-in is configured using an add-in manifest—an XML file that declares the add-in's basic properties, where it runs, and what SharePoint should do when the add-in starts. Кроме того, в манифесте можно указать языки, поддерживаемые надстройкой, службы и функции SharePoint, от которых она зависит, а также разрешения для хост-сайта, необходимые этой надстройке.Among other things, the manifest can specify what languages the add-in supports, what SharePoint services and functionality it depends on, and the permissions to the host web that the add-in needs. (Надстройки SharePoint имеют полный контроль над своими сайтами надстроек.)(SharePoint Add-ins have full control of their own add-in web.)

  • Распространять надстройки SharePoint следует в пакетах надстроек, которые всегда включают по крайней мере манифест надстройки.You distribute SharePoint Add-ins in add-in packages that always include at least the add-in manifest. (Если отсутствуют компоненты SharePoint, манифест надстройки может быть единственным элементом в пакете надстройки.) Если на сайте надстройки есть компоненты SharePoint, они включаются в пакет в виде набора XML-файлов.(If there are no SharePoint components, the add-in manifest may be the only thing in the add-in package.) If the add-in has SharePoint components in an add-in web, these are included in the package as a set of XML files. Удаленные компоненты, размещенные за пределами SharePoint (например, удаленные веб-приложения или базы данных), не входят в пакет и развертываются отдельно от пакета надстройки.Remote components that are hosted outside of SharePoint, such as a remote web application or database, are not included in the package and are deployed separately from the add-in package. (В этом случае необходимо указать URL-адреса удаленных компонентов в манифесте надстройки.)(However, the add-in manifest does specify the URLs of the remote components.)

  • Кроме того, пакеты надстроек могут включать надстройки Office. При установке надстройки SharePoint надстройка Office добавляется в каталог надстроек Office в SharePoint.Add-in packages can also include Office Add-ins. When the SharePoint Add-in is installed, the Office Add-in is added to an Office Add-ins catalog in SharePoint. Пользователи могут установить надстройку из каталога в приложениях Office, например в Word или Excel.Users can install it from the catalog into Office applications such as Word or Excel.

Совет

Изучите несколько надстроек SharePoint в Магазине Office, чтобы получить представление о том, что вы можете разрабатывать.Take a look at a few SharePoint Add-ins in the Office Store to get a sense of what you can develop. Кроме того, вы можете открыть веб-сайт SharePoint и установить бесплатные надстройки SharePoint. Просто выберите "Содержимое сайта" > "Добавить надстройку" > "Магазин SharePoint".Or open a SharePoint website and install some of the free SharePoint Add-ins. Just navigate to Site Contents | add an add-in | SharePoint Store.

Несколько заметок для опытных разработчиков решений для SharePointA few points for veteran SharePoint developers

Мы объявили нерекомендуемыми изолированные решения, содержащие пользовательский серверный код. Мы по-прежнему поддерживаем изолированные решения "без кода" и изолированные решения, содержащие только код JavaScript.We've deprecated sandboxed solutions that contain custom server-side code. We still support "No code" sandboxed solutions and sandboxed solutions that contain only JavaScript.

В надстройках SharePoint не используется серверная объектная модель SharePoint.SharePoint Add-ins don't use the server-side SharePoint object model. В SharePoint значительно расширены клиентские объектные модели.The client-side object models are greatly expanded in SharePoint. Несмотря на то что некоторые API серверной объектной модели SharePoint недоступны в клиентских объектных моделях, они почти полностью принадлежат к административным или связанным с безопасностью классам.Although some APIs in the SharePoint server object model aren't available in the client object models, these are almost entirely administrative and security-related classes. Пользовательская логика SharePoint, которая обращается к этим областям, больше подходит для сценария Windows PowerShell или классического изолированного решения для фермы SharePoint.Custom SharePoint logic that addresses these areas is more appropriate for a Windows PowerShell script or classic SharePoint farm solution. Сведения о том, как сделать выбор между надстройками SharePoint, классическими решениями для ферм SharePoint и изолированными решениями, см. в статье Сравнение надстроек SharePoint с решениями SharePoint.To learn how to choose among SharePoint Add-ins, classic SharePoint farm solutions, and sandboxed solutions, see SharePoint Add-ins compared with SharePoint solutions.

Два способа распространения или продажи пакета надстройкиTwo ways to distribute or sell an add-in package

Вы можете распространять пакеты надстроек двумя указанными ниже способами.You can distribute an add-in package in two ways:

  • Через каталог надстроек организации, который представляет собой выделенное семейство веб-сайтов SharePoint в локальной ферме или в подписке на SharePoint Online.To an organization's add-in catalog, which is a dedicated SharePoint site collection in the SharePoint Online subscription or on-premises farm. Этот метод используется, если надстройка разработана для конкретной организации.This method is used when the add-in is custom-made for a particular organization.

  • Через Магазин Office.To the Office Store. В этом случае маркетинговые операции, связанные с обнаружением, покупкой и обновлениями, выполняет магазин, а не вы.The store handles the marketing process for you, from discovery to purchase to updates. Чтобы помочь вам продавать надстройки через Магазин Office, корпорация Майкрософт предоставляет Панель мониторинга продаж.Microsoft has a Seller Dashboard to help you sell add-ins through the Office Store.

После развертывания надстройки одним из указанных способов она станет доступной для установки на странице добавления надстроек веб-сайтов SharePoint. Если надстройке требуются разрешения для хост-сайта или его родительской подписки, при установке этой надстройки SharePoint запросит у пользователя эти разрешения.After you deploy the add-in in either way, it's available for installation on the add an add-in page of SharePoint websites. If the add-in needs permissions to the host web or its parent subscription, SharePoint prompts the user who installs the add-in to grant those permissions.

Если вам потребуется обновить надстройку, чтобы исправить ошибку или добавить функцию, внесите изменения и обновите версию надстройки в ее манифесте. Затем повторно разверните пакет надстройки в магазине или каталоге надстроек. Пользователи получат уведомление о доступности обновления через пользовательский интерфейс SharePoint в течение 24 часов. Обновление можно установить одним щелчком мыши.When you need to update an add-in to fix a bug or to add functionality, make the changes and raise the add-in's version number in the add-in manifest. Then redeploy the add-in package to the store or add-in catalog. Within 24 hours, users get a notice in the SharePoint UI that an update is available. They can install the update with a single click.

Два типа надстроек SharePoint (с размещением в SharePoint и у поставщика)Two types of SharePoint Add-ins: SharePoint-hosted and provider-hosted

Сравнение приложений с размещением в SharePoint и у поставщика

Надстройки SharePoint с размещением в SharePointSharePoint-hosted SharePoint Add-ins

Надстройки, размещаемые в SharePoint, почти целиком состоят из компонентов SharePoint на сайте надстройки. Иногда говорят, что их центр находится в SharePoint.SharePoint-hosted add-ins consist almost entirely of SharePoint components in an add-in web. They are sometimes said to have their center in SharePoint.

Как и любые другие надстройки SharePoint, надстройку, размещаемую в SharePoint, можно запустить с помощью плитки на странице Содержимое сайта веб-сайта SharePoint, на котором установлена надстройка.Like all SharePoint Add-ins, a user can run a SharePoint-hosted add-in from a tile on the Site Contents page of the SharePoint website to which it's installed. При необходимости у надстройки могут быть компоненты пользовательского интерфейса двух других типов на хост-сайте: веб-части надстройки и дополнительные действия (пользовательские кнопки ленты или элементы меню).Optionally, it can also have two other kinds of UI components in the host web: add-in parts and custom actions (that is, custom ribbon buttons or menu items). Остальные компоненты надстройки, размещаемой в SharePoint, развертываются на сайте надстройки.Everything else in a SharePoint-hosted add-in is deployed to the add-in web. Эти компоненты определяются в декларативном порядке с помощью XML-файлов и могут содержать указанные ниже элементы.These components are defined declaratively using XML files, and they can include, among others:

Пользовательские страницыCustom pages Рабочие процессыWorkflows Модули (наборы файлов)Modules (sets of files)
Шаблоны спискаList templates Экземпляры списков и библиотекList and library instances Настраиваемые формы и представления списковCustom list forms and views
Настраиваемые типы контентаCustom content types Веб-шаблоныWeb templates Встроенные столбцы (не настраиваемые столбцы)Built-in columns (not custom columns)
Встроенные веб-части (не настраиваемые веб-части)Built-in web parts (not custom web parts) Файлы JavaScriptJavaScript files Настраиваемые кнопки и элементы меню для сайта надстройкиCustom buttons and menu items for the add-in web

Для всей бизнес-логики в надстройке, размещаемой в SharePoint, используется JavaScript: либо непосредственно на пользовательской странице, либо в файле JavaScript, на который указывает ссылка на пользовательской странице.All business logic in a SharePoint-hosted add-in uses JavaScript, either directly on a custom page or in a JavaScript file that is referenced from a custom page. Версия JavaScript объектной модели SharePoint (JSOM) создана, чтобы упростить выполнение операций создания, чтения, обновления и удаления (CRUD) данных SharePoint для надстройки.A JavaScript version of the SharePoint object model (JSOM) is available to make it simple for the add-in to perform CRUD (create, read, update, and delete) operations on SharePoint data.

Пользовательские страницы в надстройке, размещаемой в SharePoint, — это в основном страницы ASP.NET (ASPX-страницы), которые могут в декларативном порядке ссылаться на ASP.NET и встроенные элементы управления SharePoint, но не могут содержать код.Custom pages in a SharePoint-hosted add-in are generally ASP.NET pages (ASPX), and they can declaratively reference ASP.NET and in-the-box SharePoint controls, but there can be no code behind. Вы можете настроить элементы управления SharePoint, используя клиентскую обработку и настраиваемый JavaScript.However, you can customize the SharePoint controls by using a client-side rendering option and custom JavaScript.

Код JavaScript в надстройках, размещаемых в SharePoint, может получать доступ к данным и ресурсам, находящимся за пределами сайта надстройки, с помощью любого из двух методов безопасного обхода политики одинаковых источников браузера: с использованием специальной междоменной библиотеки JavaScript или определенного класса WebProxy JavaScript.The JavaScript in SharePoint-hosted add-ins can access data and resources that are outside of the add-in web by using either of two techniques for safely working around the browser's same origin policy: a special JavaScript cross-domain library or a specific JavaScript WebProxy class. Эти методы позволяют надстройке, размещаемой в SharePoint, работать с данными на хост-сайте, в ее родительской подписке или в Интернете.Using these techniques, a SharePoint-hosted add-in can work with data on the host web, its parent subscription, or anywhere on the Internet.

Надстройки SharePoint, размещаемые у поставщикаProvider-hosted SharePoint Add-ins

Любой компонент SharePoint, который можно использовать в надстройке, размещаемой в SharePoint, можно применять и в составе надстройки, размещаемой у поставщика.Any SharePoint component that can be in a SharePoint-hosted add-in can also be in a provider-hosted add-in. Эти два типа надстроек отличаются тем, что надстройки, размещаемые у поставщика, содержат по крайней мере один удаленный компонент (например, веб-приложение, службу или базу данных), размещенный за пределами фермы SharePoint или не входящий в подписку SharePoint Online.But provider-hosted add-ins are distinguished from SharePoint-hosted add-ins because they include at least one remote component, such as a web application, service, or database, that is hosted externally from the SharePoint farm or SharePoint Online subscription. Это может быть сервер, находящийся в той же корпоративной сети, что и ферма SharePoint или облачная служба.This could be a server in the same corporate network as a SharePoint farm or a cloud service. Внешние компоненты могут размещаться в любом стеке веб-хостинга, включая стеки Linux, Apache, MySQL и PHP (LAMP).The external components can be hosted on any web hosting stack, including the Linux, Apache, MySQL, and PHP (LAMP) stack.

Примечание

Поставщиком считается любой владелец сервера или облачной учетной записи.The "provider" is whoever owns the server or cloud account. Это может быть та же компания или организация, которая владеет фермой SharePoint или областью клиентов SharePoint Online, в которой необходимо установить надстройку.It can be the same company or organization that owns the SharePoint farm or SharePoint Online tenancy where the add-in is to be installed. Кроме того, поставщиком может быть и разработчик надстройки.But the developer of the add-in can also be the provider. Если надстройка создается для организации, обычно она размещает надстройку на своих серверах.Typically, when an add-in is created for an organization, the organization provides the hosting. Если надстройка создается для нескольких организаций, скорее всего, удаленные компоненты будут размещены на сервере разработчика.However, when an add-in is created for multiple organizations, it's more likely that the developer hosts the remote components. Если надстройка SharePoint распространяется через Магазин Office, то необходимо размещать надстройку у разработчика, так как у него нет контактных данных покупателей надстроек.Developer-hosting is mandatory if the SharePoint Add-in is being marketed through the Office Store, because the developer doesn't have any contact information for the add-in purchasers. В этом случае разным экземплярам надстройки будет известен универсальный код ресурса (URI) удаленного компонента, потому что он указан в манифесте надстройки.In this scenario, the various instances of the add-in know the URI of the remote component because it is specified in the add-in manifest.

Вы можете выбрать любую платформу для размещения удаленных компонентов.You have complete flexibility for the hosting framework that you use for the remote components. Необязательно использовать стек Майкрософт.You don't have to use a Microsoft stack. Вы можете использовать любую платформу для веб-хостинга, в том числе LAMP (Linux, сервер Apache, MySQL, PHP), MEAN (MongoDB, ExpressJS, AngularJS, Nodejs), Java, Python и другие, а также сторонние средства разработки.Any web hosting framework can be used, including LAMP (Linux, Apache server, MySQL, PHP), MEAN (MongoDB, ExpressJS, AngularJS, Nodejs), Java, Python, and others, and you are welcome to use non-Microsoft development tools. Кроме того, удаленные компоненты можно разместить в сторонних облачных службах.In addition, the remote components can be hosted in non-Microsoft cloud services.

Вы можете сделать так, чтобы удаленные страницы в надстройке выглядели как страницы SharePoint, использовав особый элемент управления хрома.You can give remote pages in the add-in the look and feel of SharePoint pages by using a special chrome control.

К удаленным данным могут, среди прочих, относиться большие двоичные объекты, кэш, очереди сообщений, сети доставки содержимого (CDN) и базы данных. Базы данных могут быть любых типов, в том числе релятивными и объектно-ориентированными. К удаленным данным можно получать доступ несколькими способами. Например, используя Службы Business Connectivity Services (BCS) для их включения в список SharePoint или представляя данные в сетке на странице удаленного веб-приложения.Remote data can be blobs, caches, message queues, content delivery networks (CDN), and databases, among others. And databases can be any type including relational and object-oriented. The remote data can be accessed in a variety of ways. For example, you can use Business Connectivity Services (BCS) to surface the data in a SharePoint list. Another option is to expose data in a grid on a page of a remote web application.

Надстройки SharePoint используют API SharePoint для подключения и интеграции функций SharePoint поиска, рабочих процессов, социальных сетей, таксономии, профилей пользователей, BCS и не только. Это позволяет им считывать документы, выполнять поиск и операции CRUD, а также обеспечивать общение пользователей. Существует несколько наборов API:SharePoint Add-ins use SharePoint APIs to connect and integrate with SharePoint features—search, workflow, social networking, taxonomy, user profiles, BCS, and more. This lets them read documents, do searches, connect people, and perform CRUD operations. There is more than one set of the APIs:

  • Если удаленные компоненты реализованы с помощью .NET, будет доступна библиотека клиентской объектной модели (CSOM) SharePoint для управляемого кода.When the remote components are implemented with .NET, the managed code SharePoint Client-Side Object Model (CSOM) library is available.

  • Если удаленные компоненты созданы не на основе .NET, для них можно использовать набор REST API и API OData, который можно применять для доступа к данным SharePoint.For remote components that are not based on .NET, a set of REST/OData APIs can be used to access SharePoint data. Его также можно использовать в клиенте .NET, если вы предпочитаете работать с интерфейсом OData.These can also be used from a .NET client if you prefer working with an OData interface.

  • Вам не удастся использовать упомянутую выше библиотеку JSOM на удаленной странице. Тем не менее надстройки, размещаемые у поставщика, могут содержать пользовательские страницы SharePoint на сайте надстройки, и в коде JavaScript этих страниц можно использовать библиотеку JSOM.The JSOM library, mentioned earlier, cannot be used on a remote page, but provider-hosted add-ins can have custom SharePoint pages in an add-in web, and JavaScript on these pages can use the JSOM library.

Надстройки с размещением у поставщика, у которых есть доступ к SharePoint, такие же субъекты безопасности, как пользователи и группы. Субъект надстройки, как и пользователь, должен пройти проверку подлинности и авторизацию. Для выполнения операций с данными SharePoint на хост-сайте надстройке требуются разрешения. В большинстве случаев эффективная реализация разрешений для пользователя, работающего с SharePoint при помощи надстройки, предусматривает применение сразу двух типов разрешений для пользователя и для надстройки. Хотя иногда при работе с надстройкой пользователь может выполнять такие действия, на которые у него нет разрешений.Provider-hosted add-ins that access SharePoint are security principals just as users and groups are. The add-in principal has to be authenticated and authorized, just as the user does. The add-in needs permissions to perform operations on SharePoint data in the host web. In most scenarios, the effective permissions of a user working with SharePoint through a SharePoint Add-in are the intersection of the user's and the add-in's permissions, although there are some scenarios in which a user can do things with an add-in that she wouldn't otherwise have permission to do.

Надстройки, размещаемые у поставщика, могут подключаться к любой внутренней или общедоступной веб-службе и, в отличие от надстроек, размещаемых в SharePoint, обрабатывать список SharePoint и события элементов списка, например событие добавления элемента в библиотеку документов.Provider-hosted add-ins can connect to any internal or public web service and, unlike SharePoint-hosted add-ins, they can handle SharePoint list and list item events, such as adding an item to a document library.

Выбор пути разработки решений для SharePointChoose your SharePoint development path

Готовы приступить к работе?Ready to get started?

Примечание

Начинающим разработчикам надстроек SharePoint и веб-сайтов рекомендуем начать с бесплатного курса в Microsoft Virtual Academy или изучить книгу о разработке решений для SharePoint.If you're a beginner at both SharePoint and web development, you'd benefit most by starting with the free course at Microsoft's Virtual Academy, or working through a book about SharePoint development.

См. такжеSee also