Sharepoint server руководство

Установка, настройка и использование Microsoft SharePoint

Обновлено и опубликовано Опубликовано: 12.07.2018

Тематические термины: SharePoint

Инструкция написана на примере Sharepoint 2010. Описан процесс пошаговой установки, настройки и развертывания сайта для совместной работы с документами. Руководство будет полезно как начинающим, так и профессионалам в качестве шпаргалки.

Подготовительный этап
MS SQL Server
    Установка
    Обновление Service Pack
Установка SharePoint
Базовая настройка
Создание веб-приложения
Настройка хранения документов
    Настройка
    Массовая загрузка
Изменить порт веб-приложения

Подготовка к установке

Перед началом установки, необходимо ознакомиться с программными и аппаратными требованиями к SharePoint и MS SQL Server. Необходимо присоединить сервер к домену.

Также желательно:

  1. Установить обновления Windows.
  2. Отключить контроль учетных записей.
  3. Отключить брандмауэр.
  4. Отключить расширенную безопасность Internet Explorer.

Установка MS SQL Server

SharePoint можно установить с использованием бесплатного MS SQL Express. В качестве его изучения или проведения тестов, это подойдет. Однако, для продуктивного использования СУБД от Microsoft версии Express имеет большое количество ограничений, что вызовет различного рода проблемы. Если нам не нужен полноценный SQL Server, пропускаем этот раздел и переходим к установки SharePoint.

Установка сервера СУБД

В данной инструкции рассмотрим использование MS SQL Server 2008. Запускаем установщик. В окне Центр установки SQL Server кликаем по Установка и в правой — по Новая установка изолированного SQL Server или добавление компонентов к существующему экземпляру:

Запуск мастера установки MS SQL Server

Будет проведена проверка системы на соответствие требованиям. Если ошибок не будет найдено, нажимаем OK. В противном случае, устраняем проблемы, на которые укажет мастер.

Перед запуском проверки, установщик может выкинуть предупреждение, что стоит обновить SQL Server до определенной версии Service Pack. Это стоит учесть и после установки серверной части установить SP.

В окне «Ключ продукта» вводим лицензионный ключ и нажимаем Далее.

Принимаем лицензионное соглашение — Далее.

В окне «Файлы поддержки программы установки» нажимаем Установить. Ждем окончания сбора данных о системе, после нажимаем Далее.

В окне выбора компонентов отмечаем галочками, как минимум, следующие:

  • Службы компонента Database Engine;
  • Службы Analysis Services;
  • Службы Reporting Services;
  • Средства связи клиентских средств / Connectivity components;
  • Средства управления / Management tools.

Выбор компонентов установки MS SQL Server

* справедливо говоря, средства управления можно не ставить, если в сети есть уже компьютер с установленным Management Studio.

В окне «Настройка экземпляра» задаем имя экземпляру или оставляем переключатель в положении Экземпляр по умолчанию — нажимаем Далее.

Выбор экземпляра по умолчанию при установке MS SQL Server

В окне проверки свободного дискового пространства просто нажимаем Далее (при наличие свободного места).

В следующем окне выставляем автоматический запуск службы «Агент SQL Server». Также задаем Имя учетной записи для каждого из компонентов:

Задаем имя учетной записи для каждого из компонентов MS SQL Server

Далее.

Затем на вкладке Подготовка учетных записей выбираем Смешанный режим (проверка подлинности SQL Server и Windows) и вводим пароль дважды. Также выбираем учетные записи и группы Windows для получения административного доступа к СУБД. Для этого пошагово нажимаем Добавить — Дополнительно — Поиск и выбираем из списка нужные записи или группы, например Администраторы:

Установка смешанного режима проверки подлинности и выбор учетных записей для администрирования СУБД

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

Выбор каталогов по умолчанию для хранения данных

В окне «Настройка служб Analysis Services» также выбираем учетные записи администраторов:

Выбираем учетные записи администраторов Analysis Services

и каталоги:

Задаем каталоги для хранения данных Analysis Services

В окне «Настройка служб Reporting Services» выбираем Установить конфигурацию по умолчанию для работы в режиме интеграции с SharePoint:

Выбираем Установить конфигурацию по умолчанию для работы в режиме интеграции с SharePoint

При желании, устанавливаем галочки для отправки отчетов в Microsoft и нажимаем Далее. После несколько раз Далее и Установить.

После завершения установки нажимаем Далее и Завершить.

Установка обновлений Service Pack

Установка обновлений SP для SQL Server является важной процедурой, если мы хотим получить стабильную работу сервера. Данные пакеты обновлений можно бесплатно скачать с сайта Microsoft.

Запускаем скачанный файл с обновлением и дожидаемся окончания процедуры проверки системы — нажимаем Далее — принимаем условия лицензионного соглашения.

В окне «Выбор компонентов» оставляем галочку на нашем экземпляре (если ставили по умолчанию, MSSQLSERVER) и нажимаем Далее:

Выбор компонентов при установке Service Pack для SQL Server

Ждем проверки файлов — затем нажимаем Далее и Обновить.

По аналогии, ставим другие пакеты обновлений SP.

Запускаем мастер установки и кликаем по Установить необходимое ПО:

Запуск установки компонентов, необходимых для SharePoint

Откроется установщик дополнительных компонентов, необходимых для работы SharePoint — кликаем Далее.

Принимаем лицензионное соглашение — снова Далее. Дожидаемся окончания процедуры и нажимаем Готово.

Кликаем по Установить SharePoint Server:

Запускаем установку SharePoint

В следующем окне вводим лицензионный ключ — Продолжить.

Принимаем лицензионное соглашение и кликаем по Продолжить.

В окне «Выберите нужный тип установки» кликаем по Ферма серверов:

Выбираем тип установки SharePoint

* если мы не устанавливали MS SQL Server и хотим использовать бесплатный MS SQL Express, кликаем Автономно.

В открывшемся окне выбираем Полный тип установки:

Выбираем полный тип установки SharePoint

Ждем окончания установки SharePoint.

Оставляем галочку Запустить мастер настройки продуктов SharePoint и нажимаем Закрыть:

Выбираем полный тип установки SharePoint

Откроется «Мастер настройки продуктов SharePoint» — кликаем Далее. В окне с предупреждением о возможном перезапуске служб отвечаем Да.

Создаем новую ферму серверов:

Создание новой фермы SharePoint

В следующем окне вводим имя сервера баз данных и данные для подключения:

Параметры подключения к базе данных

* в данном примере, СУБД находится на том же сервере, что и Sharepoint (localhost); подключаемся под учетной записью dmoskadmin (портал работает в доменной среде и требует подключение к SQL под доменной учетной записью).

В следующем окне вводим дважды парольную фразу и кликаем по Далее.

В окне «Настроить веб-приложение центра администрирования SharePoint» оставляем все по умолчанию:

Настроить веб-приложение центра администрирования SharePoint

В окне со сводными данными о настройках кликаем Далее. Ждем окончание настройки портала.

В окне «Настройка успешно завершена» нажимаем Готово.

Откроется центр администрирования порталом. Отказываемся от помощи мастера настройки, чтобы выполнить конфигурацию вручную:

Отказ от мастера настройки портала SharePoint

* данный мастер можно в любой момент запустить в центре администрирования.

Создание веб-приложения

Первое, что стоит сделать после установки SharePoint.

В «Центре администрирования» в разделе «Управление приложениями» кликаем по Управление веб-приложениями:

Управление веб-приложениями в SharePoint

Создаем новое веб-приложение:

Создаем новое веб-приложение в SharePoint

Ничего не меняя нажимаем OK и дожидаемся завершение создания приложения. В IIS будет создано новое приложение.

* при желании, можно указать название приложения и сетевой порт, к которому оно будет привязано.

Хранение документов

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

Настройка

В «Центре администрирования» в разделе «Управление приложениями» кликаем по Создание семейств веб-сайтов:

Создание семейств веб-сайтов в SharePoint

В открывшемся окне вводим название для семейства сайтов, например, «Рабочая область для документов». URL-адрес можно оставить по умолчанию или выбрать /sites/. В разделе «Выберите шаблон» выбираем Рабочая область для документов. В разделе «Имя пользователя» вводим имя учетной записи, которой предоставим права администратора:

Вводим данные для создания семейств веб-сайтов

Переходим на URL приложения (в нашем случае, http://test-sharepoint/). Кликаем Действия сайтаРазрешения сайта:

Действия сайта - Разрешения сайта

Нажимаем по Предоставить разрешения:

Предоставить разрешения для сайта Sharepoint

Добавляем пользователей, которым хотим предоставить доступ для работы с документами, оставляем переключатель в положении Рабочая область документов — участники:

Добавление пользователей к сайту Sharepoint

Кликаем по Действия сайтаПросмотреть весь контент сайта:

Действия сайта - Просмотреть весь контент сайта

Кликаем по Создать:

Создание элемента в контенте сайта SharePoint

В открывшемся окне выбираем Библиотека документов:

Создаем библиотеку документов

Задаем имя библиотеки и нажимаем Создать.

Массовая загрузка файлов

При попытке загрузить много файлов на портал с помощью функции Отправить несколько документов, мы столкнемся с проблемой лимита загрузки в 100 файлов.

Чтобы загрузить больше данных, добавляем портал в список надежных узлов в браузере Internet Explorer. После открываем библиотеку данных и кликаем по Библиотека:

Открываем библиотеку в ленте SharePoint

и Открыть в проводнике:

Открываем общие документы в проводнике Windows

Откроется проводник Windows, с помощью которого можно перенести документы стандартным методом.

Изменить порт

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

Если мы захотим изменить порт одного из веб-приложений, в Windows открываем Диспетчер служб IIS:

Запускаем диспетчер служб IIS

В левой части переходим в раздел сайты — в правой кликаем правой кнопкой мыши по нужному приложению, например, SharePoint Central Administration — Привязки:

Открываем привязки для SharePoint Central Administration

Кликаем по нашей привязке и нажимаем Изменить — в открывшемся окне меняем порт на новый:

Меняем порт в привязках

* мы задали 80 порт, что не является удачным решением для центра администрирования SharePoint — указано только для примера.

Если мы попробуем установить порт, уже используемый IIS, система выдаст предупреждение. В этом случае, необходимо либо назначить другой порт нашему SharePoint, либо изменить порт у другого портала (убедившись, что это не навредит работе сервера).

После внесения изменений, перезапускаем IIS из командной строки:

iisreset

SharePoint – Обзор

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

Что такое SharePoint

SharePoint – это платформа для поддержки совместной работы и системы управления контентом. Это центральный веб-портал. Используя SharePoint, вы можете управлять своими коллегами и собственными документами, социальными действиями, данными и информацией.

  • Это позволяет группам настроить централизованное, защищенное паролем пространство для обмена документами.

  • Документы могут храниться, загружаться и редактироваться, а затем загружаться для дальнейшего обмена.

  • SharePoint предлагает такой широкий набор функций, что любому человеку очень сложно быть экспертом во всех рабочих нагрузках.

Это позволяет группам настроить централизованное, защищенное паролем пространство для обмена документами.

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

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

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

Области SharePoint

сотрудничество

Термин сотрудничество содержит очень сильную тему для SharePoint. Это означает объединение людей с помощью различных типов совместной работы, таких как управление корпоративным контентом, управление веб-контентом, социальные сети, обнаружение людей и их навыки.

  • В SharePoint 2013 совместная работа управляется через приложения.

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

В SharePoint 2013 совместная работа управляется через приложения.

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

Interoperability

SharePoint также собирается объединить это сотрудничество посредством взаимодействия, такого как –

  • Интеграция офисных и веб-документов.

  • Возможность создания и развертывания безопасных и настраиваемых решений, которые интегрируют бизнес-данные с SharePoint и Office.

  • Интеграция с более широкими веб-технологиями или развертывание приложений в облаке.

Интеграция офисных и веб-документов.

Возможность создания и развертывания безопасных и настраиваемых решений, которые интегрируют бизнес-данные с SharePoint и Office.

Интеграция с более широкими веб-технологиями или развертывание приложений в облаке.

Платформа

SharePoint также является платформой, которая поддерживает не только совместимость и совместную работу, но и расширяемость благодаря богатой объектной модели, солидному набору инструментов для разработчиков и растущему сообществу разработчиков.

  • Одним из ключевых сдвигов парадигмы является понятие облака в SharePoint.

  • Облако представляет новые модели приложений, такие как –

    • Новые способы разработки, развертывания и размещения приложений SharePoint.

    • Новые формы аутентификации через OAuth.

    • Новые способы взаимодействия данных с использованием OData и REST.

Одним из ключевых сдвигов парадигмы является понятие облака в SharePoint.

Облако представляет новые модели приложений, такие как –

Новые способы разработки, развертывания и размещения приложений SharePoint.

Новые формы аутентификации через OAuth.

Новые способы взаимодействия данных с использованием OData и REST.

SharePoint – Типы

В этой главе мы рассмотрим различные типы и версии, чтобы начать работу в SharePoint.

Существует три основных способа установки и использования SharePoint:

  • SharePoint Foundation
  • SharePoint Server
  • Офис 365

Первые два варианта – локальная версия SharePoint, а Office 365 – третья полностью облачная модель для SharePoint.

SharePoint Foundation

SharePoint Foundation – это важное решение для организаций, которым требуется безопасная, управляемая веб-платформа для совместной работы. SharePoint Foundation предоставляет вам основные функции совместной работы, которые включены в SharePoint.

  • SharePoint Foundation поставляется в виде бесплатной загружаемой установки и представляет собой основополагающие части SharePoint.

  • Он включает ряд функций, таких как безопасность и администрирование, совместная работа пользователей и групповых сайтов, а также ряд приложений (таких как библиотеки документов и списки).

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

SharePoint Foundation поставляется в виде бесплатной загружаемой установки и представляет собой основополагающие части SharePoint.

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

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

SharePoint Foundation требует некоторых функций для создания стандартных решений для совместной работы и коммуникации в вашей организации. Основные функции SharePoint Foundation вращаются вокруг управления документами и совместной работы.

Ключевые особенности SharePoint Foundation

Ниже приведены некоторые из основных функций, которые отвечают за его широкое внедрение в бизнесе.

  • Эффективное взаимодействие между документами и задачами. Веб-сайты команд предоставляют доступ к информации в центральном месте.

  • Сокращение ресурсов на внедрение и развертывание – SharePoint Foundation доступен клиентам Windows Server в виде бесплатной загрузки, благодаря которой время и стоимость внедрения значительно сокращаются.

  • Лучший контроль над важными бизнес-данными вашей организации – SharePoint Foundation также предлагает функции для управления данными и информацией, а также для обеспечения безопасности.

  • Использование Интернета для совместной работы – расширяя и настраивая SharePoint Foundation

Эффективное взаимодействие между документами и задачами. Веб-сайты команд предоставляют доступ к информации в центральном месте.

Сокращение ресурсов на внедрение и развертывание – SharePoint Foundation доступен клиентам Windows Server в виде бесплатной загрузки, благодаря которой время и стоимость внедрения значительно сокращаются.

Лучший контроль над важными бизнес-данными вашей организации – SharePoint Foundation также предлагает функции для управления данными и информацией, а также для обеспечения безопасности.

Использование Интернета для совместной работы – расширяя и настраивая SharePoint Foundation

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

SharePoint Server

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

Ключевые особенности SharePoint Server

Некоторые из этих дополнительных функций описаны в следующем списке –

  • Расширенный поиск – функции поиска и функциональные возможности, доступные в версиях сервера, обеспечивают большую гибкость. Они позволяют настраивать страницы результатов поиска, которые можно настроить с помощью настраиваемых веб-частей поиска.

  • Управление веб-контентом – SharePoint Server поддерживает создание и публикацию веб-контента в Интернете.

  • Корпоративные сервисы. Эти сервисы позволяют быстро и легко создавать собственные решения с помощью инструментов, доступных вам в семействе продуктов Office.

  • Business Connectivity Services – Business Connectivity Services (BCS) позволяет подключаться к этим внешним источникам данных и отображать бизнес-данные через веб-части, профили пользователей или списки SharePoint.

  • Социальные сети и вычисления – Социальные сети повсюду и стали ожидаемым набором функций многих решений.

  • Управление записями – SharePoint Server обеспечивает отличную поддержку управления контентом на протяжении всего его жизненного цикла.

Расширенный поиск – функции поиска и функциональные возможности, доступные в версиях сервера, обеспечивают большую гибкость. Они позволяют настраивать страницы результатов поиска, которые можно настроить с помощью настраиваемых веб-частей поиска.

Управление веб-контентом – SharePoint Server поддерживает создание и публикацию веб-контента в Интернете.

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

Business Connectivity Services – Business Connectivity Services (BCS) позволяет подключаться к этим внешним источникам данных и отображать бизнес-данные через веб-части, профили пользователей или списки SharePoint.

Социальные сети и вычисления – Социальные сети повсюду и стали ожидаемым набором функций многих решений.

Управление записями – SharePoint Server обеспечивает отличную поддержку управления контентом на протяжении всего его жизненного цикла.

Офис 365

Office 365 превратился в третью полностью облачную модель для SharePoint. Это альтернативный вариант размещения собственной фермы в собственном локальном центре обработки данных.

Ключевые особенности Office 365

  • Варианты лицензирования SharePoint Online через Office 365 основаны на таких факторах, как количество пользователей, которых вы хотите добавить, объем данных, которые необходимо сохранить, и функции, которые должны быть доступны.

  • Это также стало отличным местом, где вы можете разрабатывать многофункциональные приложения (как приложения на базе SharePoint, так и приложения на базе облака) и масштабировать их без затрат на управление локальной инфраструктурой.

  • Он не обладает всеми теми же службами и функциями, что и SharePoint Server, но обладает рядом замечательных возможностей для разработки.

  • Существуют приложения .NET, которые вы создаете с помощью C # или Visual Basic, а затем внедряете в SharePoint как .WSP или .APP. Существуют более легкие приложения, такие как приложения HTML5 и JavaScript, которые вы также можете развернуть.

  • Как разработчик, вы можете настроить любой выпуск SharePoint, будь то SharePoint Foundation, Server или Office 365.

Варианты лицензирования SharePoint Online через Office 365 основаны на таких факторах, как количество пользователей, которых вы хотите добавить, объем данных, которые необходимо сохранить, и функции, которые должны быть доступны.

Это также стало отличным местом, где вы можете разрабатывать многофункциональные приложения (как приложения на базе SharePoint, так и приложения на базе облака) и масштабировать их без затрат на управление локальной инфраструктурой.

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

Существуют приложения .NET, которые вы создаете с помощью C # или Visual Basic, а затем внедряете в SharePoint как .WSP или .APP. Существуют более легкие приложения, такие как приложения HTML5 и JavaScript, которые вы также можете развернуть.

Как разработчик, вы можете настроить любой выпуск SharePoint, будь то SharePoint Foundation, Server или Office 365.

SharePoint – Возможности

В этой главе мы рассмотрим набор функций (или функций) по умолчанию, встроенных в SharePoint, который позволяет вам использовать преимущества платформы без какой-либо разработки.

  • Вы можете использовать или расширять эти основные возможности при создании приложений. Microsoft исторически назвала эти возможности рабочими нагрузками.

  • Эти рабочие нагрузки позволяют рассказать о различных возможностях SharePoint, объединенных вместе. Вы должны видеть, что эти рабочие нагрузки представляют не только основной набор связанных приложений, но и возможности для разработки ваших приложений.

Вы можете использовать или расширять эти основные возможности при создании приложений. Microsoft исторически назвала эти возможности рабочими нагрузками.

Эти рабочие нагрузки позволяют рассказать о различных возможностях SharePoint, объединенных вместе. Вы должны видеть, что эти рабочие нагрузки представляют не только основной набор связанных приложений, но и возможности для разработки ваших приложений.

Ниже приведены рабочие нагрузки, которые были добавлены в SharePoint 2010.

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

  • Сообщества – Представление сообщества и социальных функций, таких как блоги и вики.

  • Контент – представляет основные функции управления контентом предприятия.

  • Поиск – Представление управляемых поиском функций.

  • Insights – представление функций бизнес-аналитики, таких как KPI.

  • Композиты – представление возможности интеграции внешних приложений с использованием, например, Business Connectivity Services.

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

Сообщества – Представление сообщества и социальных функций, таких как блоги и вики.

Контент – представляет основные функции управления контентом предприятия.

Поиск – Представление управляемых поиском функций.

Insights – представление функций бизнес-аналитики, таких как KPI.

Композиты – представление возможности интеграции внешних приложений с использованием, например, Business Connectivity Services.

SharePoint 2013 – возможности

В SharePoint 2013 Microsoft расширила возможности для добавления дополнительных функций и обеспечения более тесной интеграции.

Ниже приведены основные возможности для SharePoint 2013 –

возможность Родные Особенности Пример расширяемости
Места Сайты, где вы найдете совместные аспекты SharePoint. Сайты содержат множество функций, в том числе возможность создавать, хранить и извлекать данные, а также управлять, маркировать и искать контент, документы и информацию. У вас также есть подключение к клиентским приложениям Microsoft Office 2013 через список и библиотеку документов. Сайты, шаблоны сайтов, приложения для SharePoint, рабочий процесс, главные страницы, страницы сайта
Социальное Предоставляет возможности социальных и социальных сетей, новостные ленты, а также поиск и тегирование профилей, а также возможность поиска, поиска и взаимодействия с людьми с помощью их навыков, организационного положения, отношений и рейтинга контента. Настройки поиска, рейтинги и возможности тегов, блоги, вики, метаданные
содержание Содержит возможность исследовать, искать и управлять контентом, используя веб-страницы, приложения, рабочий процесс или типы контента. Приложения для SharePoint, рабочие процессы, Word или Excel Services
Поиск Возможность поиска содержимого внутри и за пределами SharePoint богатым и динамичным способом с помощью представлений документов в режиме реального времени через Office Web Apps. Кроме того, интеграция информации в структурированных системах баз данных и локальных или облачных LOB-системах, таких как SAP, Siebel и Microsoft Dynamics. Поиск в SharePoint, настройка поиска, подключение к бизнес-данным (BDC)
Insights Преимущественно о BI и поддержке, например, возможности интеграции Microsoft Access в SharePoint; использовать Excel и SQL Server для доступа и отображения данных на веб-странице; включить использование инструментальных панелей и ключевых показателей эффективности (KPI) для преобразования необработанных данных в полезную информацию. Службы Excel, Службы доступа, информационные панели, BDC, PerformancePoint Services
Interoperability Диапазон от интеграции LOB до интеграции Office через новую модель приложений Apps for Office; (подумайте, что настраиваемые панели задач на основе HTML и JavaScript, которые ссылаются на облачные сервисы вместо надстроек управляемого кода VSTO) к разработке пользовательских решений. BDC, приложения для офиса, индивидуальная разработка
Брендинг Изменение внешнего вида вашего сайта с помощью встроенных шаблонов или более детального и организационного брендинга. Стандартная конфигурация, главные страницы и настраиваемые приложения для SharePoint

SharePoint – среда настройки

В этой главе мы настроим среду разработки для SharePoint. Как вы уже знаете, есть три разных варианта SharePoint. Они –

  • SharePoint Foundation
  • SharePoint Server
  • Офис 365

В этой главе мы будем использовать Office 365, облачную версию.

Шаг 1 – Вы можете легко создать бесплатную пробную учетную запись здесь https://products.office.com/en/business/office-365-enterprise-e3-business-software .

Офис 365

Шаг 2 – Выберите опцию Бесплатная пробная версия. Откроется новая страница.

Бесплатная пробная версия

Шаг 3 – Введите необходимую информацию и нажмите Далее, и вы увидите следующую страницу.

Введите информацию

Шаг 4 – Введите имя пользователя, название компании и пароль и нажмите Далее. Он отправит вам проверочный код. Как только проверка будет завершена, она начнет создавать учетную запись.

Сохранить информацию

Шаг 5 – Как только ваша учетная запись будет создана, вы увидите следующую страницу.

Аккаунт создан

Шаг 6 – Нажмите Готово к работе, и вы увидите следующую страницу –

Проверить страницу

Теперь ваша среда готова, и вы можете приступить к разработке общей точки, но вам также нужно будет установить Visual Studio.

Microsoft предоставляет бесплатную версию Visual Studio, которая также содержит SQL Server, и ее можно скачать с https://www.visualstudio.com/en-us/downloads/download-visual-studio-vs.aspx .

Монтаж

Следующие шаги помогут вам установить SharePoint.

Шаг 1 – После завершения загрузки запустите установщик. Следующий диалог будет отображен.

Visual Studio

Шаг 2 – Нажмите Установить, и он начнет процесс установки.

Установите Visual Studio

Шаг 3 – После успешного завершения процесса установки вы увидите следующее сообщение:

Настройка завершена

Шаг 4 – Перезагрузите компьютер, если требуется. Теперь откройте Visual Studio из меню «Пуск». Откроется следующее диалоговое окно, и для его подготовки потребуется некоторое время.

Подготовка Visual Studio

Шаг 5 – Как только все будет сделано, вы увидите главное окно Visual studio.

Главное окно

Теперь вы готовы запустить приложение.

Шаг 6 – Выберите Файл → Создать → Пункт меню Проект .

Новый проект

Шаг 7 – Выберите Office / SharePoint на левой панели в разделе Шаблоны → Visual C # . Дважды нажмите Установить инструменты разработчика Office .

Установите инструменты разработчика Office

Шаг 8 – Нажмите « Установить» и закройте все экземпляры Visual Studio. Откроется новая страница. Нажмите Далее .

Нажмите Установить

Шаг 9 – Появится окно сообщения. Нажмите Обновить .

Обновить

Шаг 10 – Как только он будет обновлен, вы увидите следующее сообщение:

Обновление завершено

SharePoint – создание семейства сайтов

Сайт является ключевым элементом SharePoint и представляет собой отправную точку для разработчиков, и без семейства сайтов вы не сможете начать разработку SharePoint. Семейство веб-сайтов Microsoft SharePoint – это сайт верхнего уровня, который содержит дочерние сайты.

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

Создать коллекцию сайтов

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

Шаг 1 – Для создания нового семейства сайтов перейдите на сайт https://portal.office.com/

Создать коллекцию сайтов

Шаг 2 – Выберите значок администратора, и вы увидите следующую страницу –

Выберите значок администратора

Шаг 3 – Выберите Ресурсы → Сайты в левой панели. На правой панели нажмите Добавить сайт .

Добавить сайт

Шаг 4 – Откроется следующая страница. Введите необходимую информацию и нажмите ОК.

Вкладка сайта

Вы можете видеть, что семейство сайтов добавлено в список URL вашего центра администрирования. URL-адрес – это местоположение семейства сайтов, с которого администратор может начать создавать сайты и управлять ими.

Коллекция сайтов

Шаг 5 – Нажмите на ссылку, и вы увидите подробную информацию об этом семействе сайтов.

Нажмите на ссылку

SharePoint – API

В этой главе мы рассмотрим несколько наборов API для доступа к платформе SharePoint.

Выбор API зависит от следующих факторов:

  • Тип приложения
  • Разработчик существующих навыков
  • Устройство, на котором работает код

Тип приложения

Существуют различные типы приложений, такие как –

  • Надстройка SharePoint
  • Веб-часть на странице SharePoint
  • Приложение Silverlight, работающее на клиентском компьютере или мобильном устройстве клиента
  • Приложение ASP.NET, представленное в SharePoint
  • JavaScript работает на странице сайта SharePoint
  • Страница приложения SharePoint
  • Приложение Microsoft .NET Framework, работающее на клиентском компьютере
  • Скрипт Windows PowerShell
  • Работа таймера на сервере SharePoint

Существующие навыки разработчика

Вы можете легко создавать приложения в SharePoint, если у вас уже есть опыт работы с любой из следующих моделей программирования, при этом вам не нужно много изучать программирование SharePoint –

  • JavaScript
  • ASP.NET
  • ОТДЫХ / OData
  • .NET Framework
  • телефон с операционной системой Виндоус
  • Silverlight
  • Windows PowerShell

Устройство, на котором работает код

Устройство, на котором выполняется код, может быть любым из следующих:

  • Сервер в ферме SharePoint.
  • Внешний сервер, такой как сервер в облаке.
  • Клиентский компьютер и мобильное устройство.

В следующей таблице приведены рекомендации для различных наборов API-интерфейсов, которые можно использовать для выбранного списка распространенных проектов расширения SharePoint.

S.No. API и использование
1

Объектная модель клиента .NET Framework, объектная модель клиента Silverlight, конечные точки REST / OData

Создайте веб-приложение ASP.NET, которое выполняет операции CRUD с данными SharePoint или внешними данными, которые представлены в SharePoint внешним типом контента BCS, но не требуют вызова SharePoint через брандмауэр.

2

Конечные точки REST / OData

Создайте веб-приложение LAMP, которое выполняет операции CRUD с данными SharePoint или внешними данными, отображаемыми в SharePoint с помощью внешнего типа контента BCS.

Создайте приложение для iOS или Android, которое выполняет операции CRUD с данными SharePoint.

3

Объектная модель мобильного клиента

Создайте приложение для Windows Phone, которое выполняет операции CRUD с данными SharePoint.

4

Объектная модель мобильного клиента и объектная модель сервера

Создайте приложение для Windows Phone, которое использует службу push-уведомлений Microsoft для оповещения мобильного устройства о событиях в SharePoint.

5

Клиентская объектная модель .NET Framework

Создайте приложение .NET Framework, которое выполняет операции CRUD с данными SharePoint.

6

Клиентская объектная модель Silverlight

Создайте приложение Silverlight, которое выполняет операции CRUD с данными SharePoint.

7

Клиентская объектная модель JavaScript

Создайте приложение HTML / JavaScript, которое выполняет операции CRUD с данными SharePoint.

Создайте надстройку Office, которая работает с SharePoint

8

Объектная модель сервера

Создайте собственную команду Windows PowerShell.

Создать работу по таймеру.

Создайте расширение центра администрирования.

Создайте согласованный брендинг для всей фермы SharePoint.

Создайте пользовательскую веб-часть, страницу приложения или пользовательский элемент управления ASP.NET.

Объектная модель клиента .NET Framework, объектная модель клиента Silverlight, конечные точки REST / OData

Создайте веб-приложение ASP.NET, которое выполняет операции CRUD с данными SharePoint или внешними данными, которые представлены в SharePoint внешним типом контента BCS, но не требуют вызова SharePoint через брандмауэр.

Конечные точки REST / OData

Создайте веб-приложение LAMP, которое выполняет операции CRUD с данными SharePoint или внешними данными, отображаемыми в SharePoint с помощью внешнего типа контента BCS.

Создайте приложение для iOS или Android, которое выполняет операции CRUD с данными SharePoint.

Объектная модель мобильного клиента

Создайте приложение для Windows Phone, которое выполняет операции CRUD с данными SharePoint.

Объектная модель мобильного клиента и объектная модель сервера

Создайте приложение для Windows Phone, которое использует службу push-уведомлений Microsoft для оповещения мобильного устройства о событиях в SharePoint.

Клиентская объектная модель .NET Framework

Создайте приложение .NET Framework, которое выполняет операции CRUD с данными SharePoint.

Клиентская объектная модель Silverlight

Создайте приложение Silverlight, которое выполняет операции CRUD с данными SharePoint.

Клиентская объектная модель JavaScript

Создайте приложение HTML / JavaScript, которое выполняет операции CRUD с данными SharePoint.

Создайте надстройку Office, которая работает с SharePoint

Объектная модель сервера

Создайте собственную команду Windows PowerShell.

Создать работу по таймеру.

Создайте расширение центра администрирования.

Создайте согласованный брендинг для всей фермы SharePoint.

Создайте пользовательскую веб-часть, страницу приложения или пользовательский элемент управления ASP.NET.

SharePoint – центральное администрирование

В этой главе мы расскажем о высокоуровневом внедрении центра администрирования SharePoint. Центр администрирования – это место, где вы можете выполнять задачи администрирования из центрального расположения. Как мы уже подписались на Office 365, у нас также есть сайт администрирования.

Откройте URL-адрес https://portal.office.com/ в браузере.

Шаг 1 – Выберите значок администратора.

Значок администратора

Шаг 2 – Теперь выберите Админцентры → SharePoint на левой панели.

Административные центры

Следующая страница откроется.

Вкладка администратора

Вы можете просматривать различные функции администрирования семейства сайтов и управлять следующими действиями:

  • Управление приложением
  • мониторинг
  • Безопасность
  • Общие настройки приложения
  • Настройки системы
  • Резервное копирование и восстановление
  • Обновление и миграция
  • Мастер настройки
  • Программы

Управление приложением

В Application Management вы можете выполнять такие задачи, как создание новых веб-приложений и семейств сайтов. Вы можете управлять службами, установленными на вашем сайте SharePoint, такими как Word, Excel или BCS, и управлять базой данных контента.

Вы также можете выполнять такие задачи, как изменение свойств базы данных контента, активация функций, создание новых семейств сайтов и т. Д.

мониторинг

Мониторинг – это центральное место, где вы можете управлять отчетами, мониторингом и состоянием вашего сайта SharePoint. Мониторинговый сайт разделен на три области:

  • Состояние работоспособности. Вы можете видеть состояние различных служб на сервере SharePoint.

  • Задания таймера – вы можете определить конкретные задания и решить, когда их запускать.

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

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

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

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

Безопасность

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

  • Управление учетными записями администратора
  • Настройка и управление учетными записями служб.
  • Управление настройками и политиками смены пароля.
  • Спецификации провайдеров аутентификации, доверенных провайдеров идентификации.
  • Настройки антивируса.
  • Заблокированные типы файлов.
  • Безопасность самообслуживания.
  • Безопасные токены.

Общие настройки приложения

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

Вы также можете управлять рядом параметров развертывания и утверждения, таких как местоположение развертывания контента и утверждающие этого контента. В общем, рассматривайте этот сайт как общие параметры для сайтов SharePoint.

Настройки системы

Вы можете настроить серверные параметры, такие как уровень фермы или функции доступа, или даже управлять такими службами, как Excel и Word Services, которые доступны пользователям семейства сайтов. Управление этими типами настроек осуществляется с сайта «Настройки системы».

Резервное копирование и восстановление

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

Обновление и миграция

Иногда вам может потребоваться перейти с одной версии SharePoint на другую, например перейти с SharePoint Standard на SharePoint Enterprise. Для этого требуется лицензия и некоторые средства для обновления сервера.

Этот вид деятельности можно выполнить в разделе «Обновление и миграция» на сайте центра администрирования. Вы также можете установить исправления службы, проверить установку и выполнить обновление из этой части набора инструментов администрирования.

Мастер настройки

Это просто пошаговый мастер, который настраивает SharePoint Server для вас.

Вы должны были увидеть этот мастер при первой установке SharePoint. Однако вы можете запустить его снова после установки, чтобы изменить некоторые конфигурации на своем сервере SharePoint.

Программы

Приложения – это новая категория на сайте центра администрирования, которая позволяет управлять различными аспектами приложений, установленных на вашем экземпляре SharePoint.

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

SharePoint – модель приложения

В этой главе мы рассмотрим модели приложений для развертывания SharePoint. Поскольку SharePoint движется в направлении облака, для использования Apps for SharePoint доступны следующие модели развертывания:

  • SharePoint организовали
  • Autohosted

Приложение на базе SharePoint

Тип развертывания, размещенный на SharePoint, представляет собой способ развертывания облегченных приложений на стороне клиента в SharePoint. Самый простой способ представить приложение, размещенное на SharePoint, как приложение, не имеющее серверного кода.

Ключевые функции приложения, размещенного на SharePoint, –

  • Это приложение, состоящее из статических файлов или страниц приложения, которые находятся в вашем SharePoint, таких как файлы HTML и JavaScript, которые обеспечивают кодирование на стороне клиента.

  • Когда пользователи получают доступ к приложению, размещенному в SharePoint, они перенаправляются на страницу, содержащую ваше приложение.

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

  • Если вы решите использовать модель развертывания, размещенную на SharePoint, то вы ограничены кодом, который не запускается на сервере.

  • Вы можете использовать Silverlight с SharePoint и использовать преимущества HTML вместе с JavaScript.

Это приложение, состоящее из статических файлов или страниц приложения, которые находятся в вашем SharePoint, таких как файлы HTML и JavaScript, которые обеспечивают кодирование на стороне клиента.

Когда пользователи получают доступ к приложению, размещенному в SharePoint, они перенаправляются на страницу, содержащую ваше приложение.

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

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

Вы можете использовать Silverlight с SharePoint и использовать преимущества HTML вместе с JavaScript.

Давайте посмотрим на простой пример приложения, размещенного на SharePoint.

Шаг 1 – Откройте Visual Studio и выберите меню « Файл» → «Создать» → «Проект» .

Меню проекта

Шаг 2. На левой панели выберите « Шаблоны» → Visual C # → Office / SharePoint, а затем на средней панели выберите « Приложение для SharePoint» .

Введите Имя в поле Имя, нажмите OK, и вы увидите следующее диалоговое окно.

Приложение для SharePoint

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

Шаг 3. Перейдите в центр администрирования SharePoint и скопируйте URL-адрес SharePoint.

URL-адрес SharePoint

Шаг 4. Вставьте URL-адрес в диалоговое окно « Новое приложение для SharePoint », как показано ниже.

Новое приложение для SharePoint

Шаг 5 – Нажмите « Далее», и откроется диалоговое окно « Подключиться к SharePoint », где нам необходимо войти в систему.

Подключиться к SharePoint

Шаг 6 – Введите свои учетные данные и нажмите кнопку « Войти» . После успешного входа на сайт SharePoint вы увидите следующее диалоговое окно:

войти в систему

Шаг 7 – Нажмите Готово . После создания проекта щелкните файл AppMenifest.xml в обозревателе решений.

AppMenifest.xml

Шаг 8 – Перейдите на вкладку « Разрешения ». Откроется выпадающий список Scope.

Вкладка «Разрешения»

Шаг 9 – В раскрывающемся списке Область действия выберите Веб , который является областью полномочий, которые вы настраиваете. В раскрывающемся списке «Разрешение» выберите «Чтение». Это тип настраиваемого разрешения.

Выберите Веб

Шаг 10 – Откройте файл Default.aspx и замените его следующим кодом.

<%-- The following 4 lines are ASP.NET directives needed when 
   using SharePoint components --%>

<%@ Page Inherits = "Microsoft.SharePoint.WebPartPages.WebPartPage,
   Microsoft.SharePoint, Version = 15.0.0.0, Culture = neutral,
   PublicKeyToken = 71e9bce111e9429c" MasterPageFile = "~masterurl/default.master"
   Language = "C#" %>

<%@ Register TagPrefix = "Utilities" Namespace = "Microsoft.SharePoint.Utilities"
   Assembly = "Microsoft.SharePoint, Version = 15.0.0.0, Culture = neutral,
   PublicKeyToken = 71e9bce111e9429c" %>

<%@ Register TagPrefix = "WebPartPages"
   Namespace = "Microsoft.SharePoint.WebPartPages" Assembly = "Microsoft.SharePoint,
   Version = 15.0.0.0, Culture = neutral, PublicKeyToken = 71e9bce111e9429c" %>

<%@ Register TagPrefix = "SharePoint"
   Namespace = "Microsoft.SharePoint.WebControls" Assembly = "Microsoft.SharePoint,
   Version = 15.0.0.0, Culture = neutral, PublicKeyToken = 71e9bce111e9429c" %>

<%-- The markup and script in the following Content element 
   will be placed in the <head> of the page --%>

<asp:Content ID = "Content1" ContentPlaceHolderID = "PlaceHolderAdditionalPageHead" 
   runat = "server">
   <script type = "text/javascript" src = "../Scripts/jquery- 1.6.2.min.js"></script>
   <link rel = "Stylesheet" type = "text/css" href = "../Content/App.css" />
   <script type = "text/javascript" src = "../Scripts/App.js"></script>
</asp:Content>

<asp:Content ID = "Content2" ContentPlaceHolderID = "PlaceHolderMain"
   runat = "server">
   <script type = "text/javascript"> 
      function hello() {
         var currentTime = new Date();
         $get("timeDiv").innerHTML = currentTime.toDateString();
      }
   </script>
   <div id = "timeDiv"></div>
   <input type = "button" value = "Push me!" onclick = "hello();" />
</asp:Content>

Шаг 11 – Перейдите в обозреватель решений, щелкните правой кнопкой мыши проект и выберите «Опубликовать». Нажмите кнопку « Упаковать приложение» . Это создает приложение, размещенное на SharePoint, и подготавливает его для развертывания на вашем сайте SharePoint.

Упакуйте приложение

Вы увидите следующую папку, которая содержит файл * .app.

Файл приложения

Шаг 12. Перейдите на свой веб-сайт SharePoint.

Перейдите к SharePoint

Шаг 13 – Нажмите Приложения для SharePoint на левой панели. Откроется новая страница.

Приложения для SharePoint

Шаг 14 – Перетащите свои файлы сюда, чтобы загрузить.

Загрузка файлов

Как только файл будет загружен, вы увидите следующую страницу –

Вкладка загруженного файла

Шаг 15 – Выберите опцию – Содержание сайта в левой панели. Нажмите значок добавления приложения, как показано на следующем снимке экрана –

Содержание сайта

Откроется новая страница.

Шаг 16. Выберите « Приложения» → «Из вашей организации» на левой панели, и вы увидите, что приложение доступно для установки. Нажмите на приложение.

Выберите приложение из организации

Шаг 17 – При нажатии на приложение открывается диалоговое окно, как показано на следующем снимке экрана. Нажмите Доверяй .

Диалоговое окно

Шаг 18 – Вы увидите, что приложение установлено. После завершения установки вы можете нажать на приложение.

Приложение установлено

Вы увидите следующую страницу, которая содержит одну кнопку –

страница

Когда вы нажмете кнопку Push me , отобразится текущая дата.

Нажми на меня

Autohosted

Модель автоматического развертывания значительно отличается от предыдущих приложений SharePoint. В этой модели вы создаете приложения для SharePoint, но код плавно разворачивается в Windows Azure в фоновом режиме, поэтому SharePoint автоматически создает облачное приложение для вас.

Важные особенности –

  • Похоже, что он работает в SharePoint, но в фоновом режиме он фактически развернут в специальном экземпляре Office 365 Windows Azure и зарегистрирован как аутентифицированное и авторизованное приложение с SharePoint.

  • У вас нет полного доступа ко всем возможностям платформы Windows Azure с моделью развертывания Autohosted, но у вас достаточно платформы для создания некоторых интересных приложений.

Похоже, что он работает в SharePoint, но в фоновом режиме он фактически развернут в специальном экземпляре Office 365 Windows Azure и зарегистрирован как аутентифицированное и авторизованное приложение с SharePoint.

У вас нет полного доступа ко всем возможностям платформы Windows Azure с моделью развертывания Autohosted, но у вас достаточно платформы для создания некоторых интересных приложений.

Давайте посмотрим на простой пример Autohosted, создав новый проект.

Шаг 1. Выберите приложение для SharePoint 2013 и нажмите кнопку « ОК» .

Приложение для SharePoint 2013

Откроется новое диалоговое окно.

Шаг 2 – Выберите Autohosted и нажмите Next .

Выберите Autohosted

Шаг 3 – Откроется новое диалоговое окно. Выберите веб-приложение ASP.NET MVC и нажмите « Готово» .

ASP.NET MVC Веб-приложение

Как только проект создан, опубликуйте свое приложение. Остальные шаги такие же, как и для опции, размещенной на SharePoint.

SharePoint – параметры интеграции

В этой главе мы рассмотрим варианты интеграции. Новая модель приложения в SharePoint 2013 предлагает вашему вниманию ряд вариантов глубокой интеграции с SharePoint, другими системами и данными. Эти варианты следующие:

  • Интеграция пользовательского интерфейса
  • Интеграция событий и логики
  • Интеграция данных

Интеграция пользовательского интерфейса

При интеграции с пользовательским интерфейсом вам доступны три основные точки интеграции как часть модели приложения SharePoint, а именно:

  • Части приложения и страницы
  • Лента и Экшн меню
  • навигация

Части приложения и страницы

Части и страницы приложения предоставляют вам возможность представить пользовательский интерфейс ваших приложений вашим пользователям. Для людей, знакомых с SharePoint 2010, части приложения похожи на веб-части.

  • Части приложения – это многоразовые и настраиваемые окна в вашем приложении.

  • Страницы очень похожи на часть приложения, за исключением того, что они просматриваются в более широком и полном стиле окна.

Части приложения – это многоразовые и настраиваемые окна в вашем приложении.

Страницы очень похожи на часть приложения, за исключением того, что они просматриваются в более широком и полном стиле окна.

Лента и меню действий

Лента была впервые представлена ​​в SharePoint 2010. Она обеспечивает центральное расположение для всех действий, которые пользователь может выполнять над документами и другими данными.

В SharePoint 2010 разработчики могут включать настраиваемые действия для своих приложений на ленте; Приложения SharePoint также позволяют эту настройку. Это позволяет включать действия там, где их ожидают пользователи, наряду со всеми другими стандартными действиями, которые предоставляет SharePoint.

Меню «Действие» – это контекстно-зависимое меню для элементов в списке или библиотеке SharePoint. Например, в библиотеке документов SharePoint меню «Действие» предоставляет общие функции, такие как «Регистрация» и «Проверка».

Другой термин, обычно используемый для этого меню, – Редактировать блок управления.

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

навигация

Навигация позволяет пользователям находить ваше приложение, а интеграция с меню «Лента» и «Действия» позволяет пользователям выполнять действия в том же привычном месте, что и в других местах в SharePoint.

Использование одного или нескольких из этих строительных блоков позволяет интегрировать пользовательский интерфейс вашего приложения с интерфейсом SharePoint и предоставлять ваше приложение его пользователям.

Интеграция событий и логики

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

Ключевые особенности –

  • Приложения SharePoint предоставляют возможность как реагировать на действия в вашем приложении, такие как нажатие кнопки, так и реагировать на действия в SharePoint, такие как извлечение документа и т. Д.

  • Реагировать на действия в вашем приложении очень просто. Пользовательский интерфейс и код вашего приложения запускаются удаленно из SharePoint и просто отображаются через Части приложения и Страницы. По этой причине реагирование на событие, такое как нажатие кнопки в вашем приложении, полностью связано с программной средой вашего приложения. Например, если ваше приложение построено с использованием ASP.NET, вы просто перехватываете событие OnClick для кнопки ASP.NET.

  • SharePoint не мешает этим типам событий. Для реагирования на события, происходящие внутри SharePoint, такие как сохраняемый или обновляемый документ, SharePoint предоставляет приемники событий.

  • SharePoint 2013 также предоставляет приемники событий, которые позволяют приложениям реагировать на события, происходящие на сайте SharePoint.

Приложения SharePoint предоставляют возможность как реагировать на действия в вашем приложении, такие как нажатие кнопки, так и реагировать на действия в SharePoint, такие как извлечение документа и т. Д.

Реагировать на действия в вашем приложении очень просто. Пользовательский интерфейс и код вашего приложения запускаются удаленно из SharePoint и просто отображаются через Части приложения и Страницы. По этой причине реагирование на событие, такое как нажатие кнопки в вашем приложении, полностью связано с программной средой вашего приложения. Например, если ваше приложение построено с использованием ASP.NET, вы просто перехватываете событие OnClick для кнопки ASP.NET.

SharePoint не мешает этим типам событий. Для реагирования на события, происходящие внутри SharePoint, такие как сохраняемый или обновляемый документ, SharePoint предоставляет приемники событий.

SharePoint 2013 также предоставляет приемники событий, которые позволяют приложениям реагировать на события, происходящие на сайте SharePoint.

Интеграция данных

Данные – это сердце каждого приложения, которое обычно является тем, с чем пользователи хотят работать в вашем приложении. SharePoint предоставляет ряд готовых опций для хранения и работы с данными. Эти варианты следующие:

  • Хранение и управление данными в SharePoint.

  • Работа с данными, которые живут вне SharePoint.

Хранение и управление данными в SharePoint.

Работа с данными, которые живут вне SharePoint.

С самой первой версии SharePoint целью было сделать работу с данными простой и понятной для пользователей.

Простейшим примером этого является концепция списка данных. Пользователи могут хранить данные в табличном стиле и работать с ними через общий веб-интерфейс.

Многие видят использование списков, аналогичных использованию таблицы данных в базе данных. Приложения SharePoint также могут использовать те же возможности хранения данных, используя списки. SharePoint предлагает разработчикам возможность воспользоваться многими возможностями хранения данных, предоставляемыми SharePoint, без необходимости заново изобретать колесо.

При правильном использовании SharePoint может сэкономить время и усилия и потенциально снизить затраты на управление и поддержку вашей работы.

Ниже перечислены основные возможности хранения данных.

  • Списки – для хранения структурированных данных, как в таблице.

  • Библиотеки – для хранения неструктурированных данных, таких как документ или файл.

Списки – для хранения структурированных данных, как в таблице.

Библиотеки – для хранения неструктурированных данных, таких как документ или файл.

SharePoint предоставляет разработчикам полный набор API-интерфейсов, которые можно использовать в приложениях для взаимодействия с данными, которые находятся в SharePoint, и манипулирования ими. Для приложений SharePoint эти API представлены в объектной модели на стороне клиента (CSOM).

Многие из этих вариантов вы увидите в следующих главах.

SharePoint – Инструменты разработки

В этой главе мы рассмотрим различные уровни «разработки», касающиеся SharePoint. Каждый уровень каким-то образом служит конечному пользователю сайта SharePoint. Вы можете разделить этот спектр на следующее –

  • Конечные пользователи – которые используют платформу в качестве прикладной платформы.

  • Опытные пользователи – которые создают и администрируют (и, возможно, брендируют) сайты.

  • Дизайнеры – которые брендируют сайт и создают пользовательский опыт.

  • Разработчики – которые создают и внедряют приложения.

Конечные пользователи – которые используют платформу в качестве прикладной платформы.

Опытные пользователи – которые создают и администрируют (и, возможно, брендируют) сайты.

Дизайнеры – которые брендируют сайт и создают пользовательский опыт.

Разработчики – которые создают и внедряют приложения.

Ряд людей взаимодействует с SharePoint от разработчиков до конечных пользователей. Это представлено на следующем рисунке

развитие

Настройки сайта

Настройки сайта – это одна из основных частей SharePoint. Это очень важно, что мы должны быть знакомы с этим.

Шаг 1. Чтобы открыть страницу «Параметры сайта», щелкните « Профиль пользователя» в Центре администрирования SharePoint . Выберите параметр « Настройка моего сайта» в разделе «Настройки моего сайта»

Страница настроек сайта

Следующая страница откроется.

Страница настройки

На этой странице вы найдете большинство настроек для вашего сайта, таких как –

  • Измените тему вашего сайта.
  • Активировать функции.
  • Управлять разрешениями.

Шаг 2 – Некоторые параметры настройки также доступны в настройках. Итак, нажмите Настройки в левой панели.

настройки

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

Добавить страницу HTML

Опыт редактирования варьируется от форматирования текста до добавления изображений или мультимедиа. Вы можете получить немного больше в коде, встраивая HTML-код прямо на свой сайт SharePoint.

Эта задача немного больше напоминает разработку, поэтому давайте рассмотрим простой пример, добавив HTML-страницу.

Шаг 1 – Откройте свой сайт SharePoint и перейдите на домашнюю страницу сайта. На вкладке Страница выберите пункт меню «Редактировать».

Сайт SharePoint

Шаг 2 – На вкладке «ВСТАВКА» выберите параметр «Вставить код».

Вставить вкладку

Откроется следующее диалоговое окно –

Диалоговое окно

Шаг 3. Добавьте HTML-код в поле кода, как показано ниже.

HTML-код

Шаг 4 – Нажмите « Вставить», и вы увидите, что HTML-фрагмент вставлен.

Вставить

Шаг 5 – Нажмите Сохранить .

Нажмите Сохранить

Вы можете видеть, что HTML-код вставлен в ваш сайт SharePoint.

Добавить медиа файл

Чтобы добавить приложение Media Player на свой сайт SharePoint, откройте свой сайт SharePoint и перейдите на домашнюю страницу сайта.

Шаг 1 – На вкладке Страница выберите пункт меню «Редактировать».

Редактировать меню

Шаг 2. Выберите параметр веб-части.

Опция веб-части

Шаг 3 – Выберите Мультимедиа и Контент из Категории и выберите Мультимедиа с Частями в разделе Частей. Нажмите Добавить .

СМИ с частями

Шаг 4 – Сохраните страницу, и вы увидите следующую страницу, которая содержит файл мультимедиа.

Медиафайл

SharePoint Designer

Многие разработчики предпочитают не использовать SharePoint Designer в качестве инструмента для разработки сайта SharePoint. Однако дело в том, что инструмент SharePoint Designer может упростить некоторые задачи разработки.

Важные особенности –

  • SharePoint Designer можно использовать для различных функций конструктора для SharePoint, включая создание и редактирование сайтов, страниц, списков и типов контента.

  • SharePoint Designer также полезен для создания декларативного рабочего процесса на основе правил, который затем можно импортировать в Visual Studio для более глубокой настройки.

  • Его можно загрузить и установить по адресу https://www.microsoft.com/en-pk/download/details.aspx?id=35491.

  • Когда вы впервые открываете SharePoint Designer, вам необходимо предоставить ему URL-адрес для вашего сайта SharePoint и пройти аутентификацию как пользователь с повышенными правами.

  • SharePoint Designer наследует стандартные разрешения SharePoint.

  • После того, как вы откроете свой сайт в SharePoint Designer, появится ряд доступных для навигации параметров и некоторая информация о вашем сайте, такая как метаданные сайта, разрешения, дочерние сайты и т. Д.

SharePoint Designer можно использовать для различных функций конструктора для SharePoint, включая создание и редактирование сайтов, страниц, списков и типов контента.

SharePoint Designer также полезен для создания декларативного рабочего процесса на основе правил, который затем можно импортировать в Visual Studio для более глубокой настройки.

Его можно загрузить и установить по адресу https://www.microsoft.com/en-pk/download/details.aspx?id=35491.

Когда вы впервые открываете SharePoint Designer, вам необходимо предоставить ему URL-адрес для вашего сайта SharePoint и пройти аутентификацию как пользователь с повышенными правами.

SharePoint Designer наследует стандартные разрешения SharePoint.

После того, как вы откроете свой сайт в SharePoint Designer, появится ряд доступных для навигации параметров и некоторая информация о вашем сайте, такая как метаданные сайта, разрешения, дочерние сайты и т. Д.

Итак, давайте использовать SharePoint Designer, но сначала нам нужно настроить SharePoint Designer с помощью Office 365, открыв свой сайт SharePoint.

Шаг 1 – Откройте сайт SharePoint.

Открыть сайт SharePoint

Шаг 2 – Выберите пункт меню «Настройки Office 365». Выберите Настройки на левой панели, а затем выберите программное обеспечение на средней панели.

Настройки Office 365

Шаг 3 – Выберите Инструменты и надстройки на левой панели, и вы увидите различные варианты. В конце вы увидите SharePoint Designer Option, нажмите на ссылку.

Инструмент и надстройки

Шаг 4. Откройте конструктор SharePoint после установки. Нажмите « Открыть сайт» .

Открытый сайт

Шаг 5. Укажите URL-адрес вашего сайта SharePoint и нажмите «Открыть».

Укажите URL

Шаг 6. После открытия сайта SharePoint Designer вы увидите, что доступны различные варианты.

Сайт SharePoint Designer

Шаг 7 – Нажмите Списки SharePoint на ленте и выберите Задачи в меню.

Списки SharePoint

Шаг 8 – Откроется новое диалоговое окно. Укажите имя и описание и нажмите «ОК».

Новое диалоговое окно

Шаг 9 – Давайте пойдем на тот же сайт, используя портал, и вы увидите список дел на вашем сайте.

Список дел

Visual Studio и Expression Blend

Вы также можете использовать Visual Studio и Blend, чтобы добавить контент на свой сайт SharePoint. Visual Studio предлагает множество функций, помогающих разрабатывать приложения в SharePoint; полезно ознакомиться с ними в деталях.

Давайте посмотрим на простой пример приложения, размещенного на SharePoint, открыв Visual Studio. Выберите Файл → Создать → Проект .

Шаг 1 – Откройте Visual Studio и выберите меню « Файл» → «Создать» → «Проект» .

Меню проекта

Шаг 2. На левой панели выберите « Шаблоны» → Visual C # → Office / SharePoint, а затем на средней панели выберите « Приложение для SharePoint» .

Введите Имя в поле Имя, нажмите OK, и вы увидите следующее диалоговое окно.

Приложение для SharePoint

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

Шаг 3. Перейдите в центр администрирования SharePoint и скопируйте URL-адрес SharePoint.

URL-адрес SharePoint

Шаг 4. Вставьте URL-адрес в диалоговое окно « Новое приложение для SharePoint », как показано ниже.

Новое приложение для SharePoint

Шаг 5 – Нажмите « Далее», и откроется диалоговое окно « Подключиться к SharePoint », где нам необходимо войти в систему.

Подключиться к SharePoint

Шаг 6 – Введите свои учетные данные и нажмите кнопку « Войти» . После успешного входа на сайт SharePoint вы увидите следующее диалоговое окно:

войти в систему

Шаг 7 – Нажмите Готово . После создания проекта щелкните файл AppMenifest.xml в обозревателе решений.

AppMenifest.xml

Шаг 8 – Перейдите на вкладку « Разрешения ». Откроется выпадающий список Scope.

Вкладка «Разрешения»

Шаг 9 – В раскрывающемся списке Область действия выберите Веб , который является областью полномочий, которые вы настраиваете. В раскрывающемся списке «Разрешение» выберите « Чтение». Это тип настраиваемого разрешения.

Выберите Веб

Шаг 10 – Откройте файл Default.aspx и замените его следующим кодом.

<%-- The following 4 lines are ASP.NET directives needed when 
   using SharePoint components --%>

<%@ Page Inherits = "Microsoft.SharePoint.WebPartPages.WebPartPage,
   Microsoft.SharePoint, Version = 15.0.0.0, Culture = neutral,
   PublicKeyToken = 71e9bce111e9429c" MasterPageFile = "~masterurl/default.master"
   Language = "C#" %>

<%@ Register TagPrefix = "Utilities" Namespace = "Microsoft.SharePoint.Utilities"
   Assembly = "Microsoft.SharePoint, Version = 15.0.0.0, Culture = neutral,
   PublicKeyToken = 71e9bce111e9429c" %>

<%@ Register TagPrefix = "WebPartPages"
   Namespace = "Microsoft.SharePoint.WebPartPages" Assembly = "Microsoft.SharePoint,
   Version = 15.0.0.0, Culture = neutral, PublicKeyToken = 71e9bce111e9429c" %>

<%@ Register TagPrefix = "SharePoint"
   Namespace = "Microsoft.SharePoint.WebControls" Assembly = "Microsoft.SharePoint,
   Version = 15.0.0.0, Culture = neutral, PublicKeyToken = 71e9bce111e9429c" %>

<%-- The markup and script in the following Content element 
   will be placed in the <head> of the page --%>

<asp:Content ID = "Content1" ContentPlaceHolderID = "PlaceHolderAdditionalPageHead" 
   runat = "server">
   <script type = "text/javascript" src = "../Scripts/jquery- 1.6.2.min.js"></script>
   <link rel = "Stylesheet" type = "text/css" href = "../Content/App.css" />
   <script type = "text/javascript" src = "../Scripts/App.js"></script>
</asp:Content>

<asp:Content ID = "Content2" ContentPlaceHolderID = "PlaceHolderMain" runat = "server">
   
   <script type = "text/javascript"> 
      function hello() {
         var currentTime = new Date();
         $get("timeDiv").innerHTML = currentTime.toDateString();
      }
   </script>
   
   <div id = "timeDiv"></div>
   <input type = "button" value = "Push me!" onclick = "hello();" />
</asp:Content>

Шаг 11 – Перейдите в обозреватель решений, щелкните правой кнопкой мыши проект и выберите «Опубликовать». Нажмите кнопку « Упаковать приложение» . Это создает приложение, размещенное на SharePoint, и подготавливает его для развертывания на вашем сайте SharePoint.

Упакуйте приложение

Вы увидите следующую папку, которая содержит файл * .app.

Файл приложения

Шаг 12. Перейдите на свой веб-сайт SharePoint.

Перейдите к SharePoint

Шаг 13 – Нажмите Приложения для SharePoint на левой панели. Откроется новая страница.

Приложения для SharePoint

Шаг 14 – Перетащите свои файлы сюда, чтобы загрузить.

Загрузка файлов

Как только файл будет загружен, вы увидите следующую страницу –

Вкладка загруженного файла

Шаг 15 – Выберите опцию – Содержание сайта в левой панели. Нажмите значок добавления приложения, как показано на следующем снимке экрана –

Содержание сайта

Откроется новая страница.

Шаг 16. Выберите « Приложения» → «Из вашей организации» на левой панели, и вы увидите, что приложение доступно для установки. Нажмите на приложение.

Выберите приложение из организации

Шаг 17 – При нажатии на приложение открывается диалоговое окно, как показано на следующем снимке экрана. Нажмите Доверяй .

Диалоговое окно

Шаг 18 – Вы увидите, что приложение установлено. После завершения установки вы можете нажать на приложение.

Приложение установлено

Вы увидите следующую страницу, которая содержит одну кнопку –

страница

Когда вы нажмете кнопку Push me , отобразится текущая дата.

Нажми на меня

SharePoint – функциональность списка

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

  • Списки – это действительно механизм хранения данных в SharePoint.

  • Он предоставляет пользовательский интерфейс, позволяющий просматривать элементы в списке, добавлять, редактировать и удалять элементы или просматривать отдельные элементы.

Списки – это действительно механизм хранения данных в SharePoint.

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

Давайте посмотрим на простой пример, в котором мы добавим список контактов.

Шаг 1. Откройте свой сайт SharePoint и перейдите на страницу содержимого сайта. Вы можете видеть текущее содержимое, списки и библиотеки, и у нас есть возможность добавить новый контент, нажав добавить приложение .

Добавить приложение

Шаг 2 – Итак, давайте посмотрим на некоторые вещи, которые мы можем добавить на наш сайт –

  • Мы можем создать новую библиотеку документов.

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

  • Здесь также есть несколько списков с предопределенными схемами, например список задач.

  • Мы можем добавлять изображения, некоторые вики-страницы, формы, список ссылок, список объявлений, список контактов, календарь и т. Д.

Мы можем создать новую библиотеку документов.

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

Здесь также есть несколько списков с предопределенными схемами, например список задач.

Мы можем добавлять изображения, некоторые вики-страницы, формы, список ссылок, список объявлений, список контактов, календарь и т. Д.

Добавить на наш сайт

Шаг 3 – Давайте выберем список контактов.

Список контактов

Шаг 4 – Мы назовем этот список « Контакты» и затем нажмите кнопку « Создать» .

контакты

Шаг 5 – Теперь вы можете видеть здесь контакты на вашем сайте, у вас есть список контактов, и вы можете нажать на него, чтобы работать с элементами в списке.

Контакты сайта

Шаг 6. Один из способов добавить новый элемент в этот список – щелкнуть ссылку «Новый элемент», а затем добавить его в мой контент.

Редактировать список

Шаг 7 – Введите Фамилию и Имя, затем подойдите к панели инструментов или Ленте и нажмите Сохранить .

Вкладка Сайты

Шаг 8 – Мы также можем перевести список в режим редактирования, нажав на ссылку редактирования .

Изменить ссылку

Шаг 9 – Далее мы можем добавить несколько других контактов. После завершения редактирования нажмите « Остановить редактирование», чтобы выйти из режима редактирования значка.

Прекратить редактирование

На странице будут показаны все контакты.

Вкладка «Контакты»

Несколько других вещей, когда мы работаем со списком здесь.

Шаг 10 – Нажмите ПУНКТЫ, чтобы получить доступ к элементам на ленте .

Предметы на ленте

Шаг 11 – Нажмите LIST здесь, чтобы получить доступ к элементам ленты , связанным со всем списком.

Ленты

SharePoint – дополнительная функциональность списка

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

Просмотры

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

По мере того, как количество предметов увеличивается, скажем, с 4 до 50 до 100, а может быть и до 500, становится все сложнее просто взглянуть на список и быстро получить необходимую нам информацию. Чтобы решить эту проблему, SharePoint позволяет создавать несколько списков в списках, чтобы мы могли отфильтровывать ненужную нам информацию, например:

  • Мы можем отсортировать значения полей.
  • Мы можем группировать информацию.
  • Мы можем получить итоги.
  • У нас также могут быть разные способы представления информации.

Для большинства списков при их создании вы получаете один вид по умолчанию. Он называется представлением « Все элементы», и это представление мы видели в приведенном выше примере.

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

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

Пользовательские виды

Перейти к заголовку другой колонки – Био. У него нет выпадающего списка, так как он содержит несколько строк текста. Другие столбцы имеют эту опцию. Это дает нам возможность сортировать информацию или фильтровать ее.

Давайте создадим фильтр, который показывает только сотрудников.

Создать фильтр

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

Добавить фильтр

Так что теперь у нас есть новое представление данных, то есть представление в порядке убывания.

Новый взгляд на данные

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

Если мы просто вернемся к списку авторов, то увидим все элементы . Если мы хотим, чтобы в представлении были только сотрудники , отсортированные по убыванию зарплаты / ставки, выберите параметр СОХРАНИТЬ ЭТОТ ВИД .

Мы будем называть это представление представлением сотрудников. Выберите из предложенных вариантов, должен ли этот вид быть доступным для всех пользователей или только для меня. Нажмите Сохранить.

Сохранить вариант просмотра

Итак, теперь у нас есть два разных представления: представление «Все элементы» и представление «Сотрудники». Мы можем переключаться между этими представлениями, используя ссылки в верхней части представления «Список», как показано на приведенном ниже снимке экрана.

Вкладка «Авторы»

Проверка

Мы будем добавлять простые правила проверки для полей и элементов в списке SharePoint. Теперь, когда мы создали список авторов, мы добавили некоторые правила проверки, используя свойства различных типов полей.

Нажмите Новый элемент в списке авторов. Теперь нажмите Сохранить .

Когда вы нажмете Сохранить, вы получите две ошибки. Это потому, что мы указали, что поля «Имя» и «Зарплата / ставка» являются обязательными.

Обязательные поля

Введите имя и Зарплата / Оценить как Аамир Джамиль и 1500 соответственно. Нажмите Сохранить .

Редактировать поле

Как вы можете видеть, у нас все еще есть проблема с Зарплатой / Ставкой, потому что, когда мы создали поле, мы указали, что его значение должно быть между 0 и 1000, и 1500 не удовлетворяет этому требованию. Нажмите Отмена.

Перейдите на вкладку «Список» на ленте и нажмите « Параметры списка» . Нажмите Имя . Как вы можете видеть на скриншоте ниже, это обязательное поле,

Настройки списка

Теперь вернитесь, нажмите Зарплата / Оценить и прокрутите вниз. Вы увидите, что это также обязательное поле.

Вернуться к ставке зарплаты

Здесь мы также установили допустимый диапазон значений. Итак, все хорошо, если тип поля имеет эти свойства, но что вы будете делать, если его нет? Ну, мы можем добавить несколько простых пользовательских проверок. Поэтому, если прокрутить вниз, вы увидите, что есть область для проверки столбцов. Давайте расширим это. Здесь мы можем указать формулу, а затем выдать сообщение, если введенное пользователем значение не удовлетворяет этой формуле.

Поля сайта

Если вы не знакомы с построением формул в SharePoint, есть ссылка, которая поможет вам сделать это.

Тип поля

Теперь мы хотим добавить подтверждение того, что если вы не являетесь сотрудником, то ваша зарплата / ставка указывает на вашу почасовую ставку, и мы хотим сказать, что максимальное значение для ставки составляет $ 50,00. Таким образом, здесь проверка зависит как от значения поля «Сотрудник», так и поля «Зарплата / ставка». Поэтому вместо добавления проверки к одному из этих полей мы собираемся добавить его к элементу, а затем указать способ проверки элемента путем перехода к настройкам списка.

Проверка

Нажмите Настройки проверки и установите формулу, как показано ниже.

Настройки проверки

Итак, условие будет довольно простым, во-первых, вы сотрудник? Поэтому, если вы являетесь сотрудником, мы уже установили допустимый диапазон значений зарплаты от 0 до 1000. Следовательно, возвращается только значение True. Если вы не являетесь сотрудником, мы проверим, равна ли зарплата / ставка 50 или меньше.

Если эта формула возвращает True, то элемент считается действительным. Если он возвращает false, он недействителен. Наконец, мы добавляем сообщение об ошибке «Максимальная ставка для участника составляет $ 50».

Это завершает настройки проверки. Нажмите Сохранить.

Теперь вернитесь к списку авторов и добавьте новый элемент. Мы назовем его «Тест», установите флажок «Сотрудник» (так как мы тестируем сотрудника), введите «Зарплата / ставка» как 800, а затем нажмите «Сохранить».

Список авторов

Данные были сохранены. Там не было ошибки. Теперь давайте введем другие условия. Перейти к списку авторов. Мы назовем это как Тест 2.

Условия в списке авторов

Теперь не устанавливайте флажок Сотрудник, так как теперь мы предполагаем, что этот человек является участником. Введите Зарплата / Ставка 800, а затем нажмите Сохранить.

Вы увидите сообщение об ошибке. Поэтому давайте изменим Зарплату / Ставку на действительное значение.

Введите 40 в поле Зарплата / Ставка.

Поле ставки зарплаты

Нажмите Сохранить.

Вы увидите, что данные сохранены правильно и обновлены в списке, как показано на следующем снимке экрана.

Данные сохранены

Поля поиска

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

Шаг 1 – Перейдите на страницу «Содержание» → «Добавить приложение» → Пользовательский список .

Добавление пользовательского списка

Шаг 2 – Укажите список курсов и нажмите кнопку «Создать». Откройте список курсов. Существует только один столбец с названием Заголовок, который будет представлять заголовок курса.

Список курсов

Шаг 3 – Создайте второй столбец, который будет содержать имя автора. Перейти к списку на ленте. Нажмите Создать столбец.

Список на ленте

Шаг 4 – Назовите этот столбец как Автор . У нас может быть только одна строка текста, где пользователь вводит имя автора. Тем не менее, у нас уже есть имена авторов в списке авторов, поэтому вместо этого мы представим пользователям выпадающий список, в котором они могут выбрать автора. Следовательно, вместо создания поля «Одна строка текста», мы создадим поле «Уточняющий запрос».

Колонка как Автор

Шаг 5 – Далее нам нужно указать, какое поле из какого списка мы будем показывать пользователю. SharePoint установил соответствующие значения по умолчанию, но если мы хотим изменить список, мы можем выбрать if из выпадающего списка. Когда это будет сделано, нажмите ОК.

Создать столбец

Шаг 6 – Этот курс является учебным пособием по SharePoint, и вы можете видеть, что у нас есть раскрывающийся список для автора.

Выпадающий список для автора

Хранение данных списка

Данные для списков хранятся в строках и столбцах. Для каждой базы данных контента существует одна таблица, в которой хранятся данные для списков. Вы можете связать списки вместе, обеспечить целостность отношений и подтвердить.

Люди часто предполагают, что многие возможности реляционной базы данных существуют со списками, и набор списков становится почти как реляционная база данных, но это не так.

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

SharePoint – настраиваемый список

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

Шаг 1. Чтобы создать собственный список, перейдите на страницу «Содержание», а затем добавьте приложение. Нажмите Пользовательский список.

Нажмите Пользовательский список

Шаг 2. Введите авторов в поле «Имя» и нажмите «Создать».

Добавление пользовательского списка

Шаг 3 – Теперь вы можете видеть, что авторы добавлены. Давайте нажмем на приложение «Авторы».

Приложения для авторов

Шаг 4 – Нажмите новый элемент.

Нажмите Новый пункт

Шаг 5 – Как видите, в нашем списке только один столбец. Имя поля – «Название», и это обязательное поле, поэтому здесь мы установим значение поля «Тест» и затем нажмите «Сохранить».

Установить значение поля

Примечание. В SharePoint столбцы также называются полями, поэтому эти термины являются синонимами.

Шаг 6 – Давайте добавим еще один элемент, нажав на ссылку «Новый элемент».

Ссылка на новый предмет

Шаг 7 – Установите для поля «Заголовок» значение «Демо» и нажмите «Сохранить».

Поле заголовка для демонстрации

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

Маленькая Элипс

Примечание. Это меню традиционно называлось меню « Редактировать блок управления» или « ECB» , но вы также услышите, что оно называется меню « Список элементов списка контактов» .

Мы создали пользовательский список, потому что мы хотели определить схему. Есть несколько способов сделать это.

Шаг 8 – Один из способов – перевести список в режим редактирования. Обратите внимание, что в конце есть дополнительный столбец со знаком + над ним, и здесь мы можем добавить столбцы в список.

Добавить столбцы в список

Шаг 9 – Нажмите знак +, и мы сможем создать текстовый столбец.

Текстовая колонка

Шаг 10 – Вы увидите следующую страницу. Назовите это поле – Имя .

Имя поля

Шаг 11 – Введите имена. Это будет текст.

Введите имя

Шаг 12 – Теперь добавьте еще один столбец и сделаем его числовым столбцом, чтобы в качестве данных можно было вводить только цифры. Установите это в Оценить и добавьте некоторые значения.

Добавить другой столбец

Теперь эта техника полезна, когда вы создаете прототип списка, но у вас нет большого контроля.

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

Шаг 13 – Нажмите ссылку Остановить редактирование, чтобы выйти из режима редактирования . Выберите «Список» на ленте, а затем перейдите к «Параметры списка».

Нажмите Остановить редактирование

Здесь мы можем определить схему для списка. Когда мы создали столбец, у нас уже был столбец Заголовок. Вы можете увидеть два других столбца, которые мы создали, и несколько других столбцов, которые скрыты и используются SharePoint для внутреннего использования.

Заголовок столбца

Шаг 14 – Чтобы определить схему списка авторов, щелкните столбец Имя и нажмите Удалить. Затем удалите столбец Оценить.

Схема списка авторов

Шаг 15. Теперь, если мы вернемся к списку авторов, мы увидим, что эти столбцы ушли вместе со значениями, которые мы для них установили. Вернитесь в настройки списка и установите нужную схему.

Актуальная схема

Шаг 16 – На странице отображается столбец с заголовком. Однако нам нужен не этот столбец, а столбец, представляющий имя автора. Следовательно, нажмите Название.

Колонка с заголовком

Шаг 17 – Когда вы нажмете « Заголовок» , откроется новая страница. Прокрутите вниз до нижней части страницы. Нет возможности удалить страницу.

Нажмите Название

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

Шаг 18 – Переименуйте столбец. Мы будем использовать этот столбец для представления имени автора и нажмите ОК.

Переименовать колонку

Шаг 19. Затем добавьте еще один столбец, чтобы указать, является ли автор сотрудником или сотрудником. Нажмите Создать столбец.

Нажмите Создать столбец

Шаг 20 – Задайте имя столбца «Сотрудник» и выберите типы полей «Да / Нет». После того, как мы выбрали нужный тип поля, прокрутите вниз до нижней части страницы, и вы увидите дополнительные настройки столбца.

Примечание. Доступно несколько типов полей. Доступные типы полей различаются в SharePoint Foundation, SharePoint Server SharePoint Online.

Кроме того, тип создаваемого вами сайта, т. Е. Сайт совместной работы или сайт публикации, также влияет на доступные типы полей.

Издательский сайт

Шаг 21. Установите значение по умолчанию « Нет» вместо «Да» и нажмите «ОК».

Значение по умолчанию

Шаг 22 – Теперь давайте создадим еще один столбец, нажав кнопку «Создать столбец». В этом столбце будет указана либо зарплата наших сотрудников, либо ставка для участников.

Создание другого столбца

Шаг 23 – Мы назовем его Зарплата / Курс и установим это в поле Валюта.

Поле валюты

Шаг 24 – Прокрутите вниз и сделайте это обязательное поле и установите Минимальное значение 0 и Максимальное значение 1000. Введите 2 для отображения валюты с точностью до двух десятичных знаков.

Редактировать поле валюты

Шаг 25 – Давайте добавим еще один столбец, который будет биография. Мы просто назовем его « Био» и установим тип в несколько строк текста.

биография

Шаг 26 – Введите 6, так как шесть строк для редактирования в порядке. Мы просто хотим простой текст в этом случае и нажмите ОК.

Редактировать сайт

Шаг 27 – У нас есть схема для нашего списка авторов. Теперь, когда наша схема завершена, давайте добавим некоторые данные. Нажмите « Авторы» в разделе «Последние».

Давайте удалим две строки, которые мы ранее создали, нажав на маленькую галочку рядом с каждой из них. Затем перейдите к пунктам «Элементы» на ленте и нажмите « Удалить элемент» .

Удалить пункт

Шаг 28 – Добавьте первый элемент, нажав New Item.

Добавить первый элемент

Шаг 29 – Введите еще несколько данных, как показано на скриншоте ниже.

Введите данные

Вы увидите все данные в списке.

Перечисленные данные

SharePoint – библиотеки

В этой главе будут рассмотрены библиотеки. Библиотеки – это особый случай списка. Они наследуют все характеристики списка. Поэтому все характеристики, которые мы видели до сих пор, относятся к библиотекам так же, как к спискам.

Разница между списком и библиотекой

Хотя списки и библиотеки имеют сходные характеристики, ниже приведены различия –

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

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

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

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

Создание библиотеки документов

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

Шаг 1. Перейдите на страницу «Содержание» и нажмите «Добавить приложение».

Библиотека документов

Шаг 2 – Нажмите Библиотека документов . Дайте библиотеке имя и нажмите «Создать».

Нажмите Библиотека документов

Примечание. Здесь мы узнаем о дополнительных параметрах.

Шаг 3 – Нажмите «Дополнительные параметры» и назовите библиотеку документов « Курсовые документы» .

У нас также есть возможность установить версию здесь, но я предлагаю не устанавливать версию, потому что те же параметры недоступны в настройках библиотеки. Однако, если вы хотите включить контроль версий, сделайте это в настройках библиотеки, а не здесь. Наконец, у нас есть возможность сказать, какой тип документа мы хотим использовать по умолчанию. Мы выберем Word и нажмем Create.

Документы курса

Шаг 4 – Теперь, прежде чем мы добавим документы, нам нужно добавить пару столбцов или полей. Перейдите к опции «Библиотека» на ленте и нажмите «Настройки библиотеки».

Настройки библиотеки

Шаг 5 – Добавьте новый столбец, и этот столбец будет курсом, который появится в поле поиска в списке курсов. Нажмите ОК.

Список курсов

Шаг 6 – Давайте добавим еще один столбец. Мы назовем этот столбец как Number и установим тип на number. Установите минимальное и максимальное значения, то есть 0 и 100 соответственно, и нажмите OK.

Столбец как число

Вы можете видеть, что схема готова.

схема

Добавить документ в библиотеку

Теперь, когда у нас есть готовая схема, мы можем добавить несколько документов. Один из способов добавить документ – создать его прямо здесь, в SharePoint.

Шаг 1 – Теперь давайте перейдем на вкладку Файлы на ленте. Нажмите Новый документ.

Нажмите Новый документ

Шаг 2 – Вы увидите, что Word открыт, и здесь мы можем редактировать содержимое документа.

Изменить содержание документа

Шаг 3 – Напишите немного текста на странице открытого слова.

Открыть страницу Word

Документ сохраняется автоматически, теперь давайте вернемся на сайт, и вы увидите, что слово document создано.

Шаг 4 – Чтобы редактировать значения полей метаданных, щелкните по маленьким эллипсам. Снова выберите эллипсы в диалоговом окне Document.docx и выберите « Переименовать» в параметрах.

Поля метаданных

Шаг 5 – Введите необходимую информацию и нажмите Сохранить.

Редактировать поля метаданных

Еще один способ добавить документ в библиотеку документов – это загрузить его.

Шаг 6 – Вы можете загрузить его, используя Новый документ здесь.

Новый документ

Шаг 7. Вы также можете перейти на вкладку «Файлы» на ленте и нажать «Загрузить документ».

Загрузить документ

Шаг 8 – Вы увидите следующее диалоговое окно. Нажмите Выбрать файлы.

Нажмите Выбрать файлы

Шаг 9 – Выберите образец файла. Нажмите Открыть.

Образец файла

Вы увидите, что образец документа добавлен в список библиотек.

Образец документа

Шаг 10 – Если вы хотите загрузить несколько документов, вы можете перетащить их. Несколько документов будут загружены.

Несколько документов

Как только загрузка будет завершена, вы увидите эти документы в списке.

Документы в списке

Шаг 11. Другой способ установить метаданные – на вкладке « Библиотека » выбрать параметр « Быстрое редактирование» на ленте.

Быстрое редактирование

Шаг 12 – метаданные установлены, нажмите «Вид» на ленте, чтобы вернуться к стандартному представлению списка.

Стандартный список

Вы увидите файлы документов в списке, как показано на следующем скриншоте.

Файлы документов

SharePoint – веб-часть

В этой главе мы рассмотрим веб-части. Мы собираемся ограничить наше представление веб-частями представления списка, потому что это та часть, которая наиболее тесно связана с информационным взаимодействием.

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

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

В этой главе мы сосредоточимся на веб-частях представления списка . Это веб-части, которые позволяют нам взаимодействовать со списком или данными библиотеки, но по пути вы получите общее представление о том, как веб-части работают в SharePoint.

Давайте рассмотрим простой пример, создав страницу веб-части, то есть страницу, которая поддерживает использование веб-частей.

Шаг 1 – Добрался до содержимого сайта. Прокрутите вниз и щелкните значок « Страницы сайта» .

Страницы сайта

Шаг 2 – Перейдите на вкладку ФАЙЛЫ. На ленте нажмите стрелку раскрывающегося списка на кнопке « Новый документ» . Выберите страницу веб-частей из вариантов.

Вкладка ФАЙЛЫ

Шаг 3 – Назовите эту страницу « Курсы», а затем нам нужно определиться с макетом страницы. Таким образом, веб-части добавляются в зоны веб-частей.

  • Расположение здесь определяет количество и расположение этих зон. Мы также получаем представление о том, как выглядят зоны.

  • У нас может быть только одна зона веб-части, которая занимает всю страницу, верхний колонтитул и столбец и тело, или верхний колонтитул, нижний колонтитул и столбцы и т. Д.

Расположение здесь определяет количество и расположение этих зон. Мы также получаем представление о том, как выглядят зоны.

У нас может быть только одна зона веб-части, которая занимает всю страницу, верхний колонтитул и столбец и тело, или верхний колонтитул, нижний колонтитул и столбцы и т. Д.

В этом случае нам просто нужна одна зона веб-частей. Следовательно, мы выберем полную страницу по вертикали и нажмем «Создать».

Зона веб-частей

Шаг 4 – чтобы вы могли видеть зону веб-частей и ее внутреннюю часть. Вы можете увидеть ссылку, которая позволяет нам добавить веб-часть. Нажмите на ссылку.

Добавить веб-часть

Шаг 5 – Откроется Галерея веб-частей.

  • На этой странице показаны веб-части, которые можно добавить на страницу, и разбиты на категории.

  • Веб-части, которые нас интересуют, для этого примера находятся в категории приложений.

На этой странице показаны веб-части, которые можно добавить на страницу, и разбиты на категории.

Веб-части, которые нас интересуют, для этого примера находятся в категории приложений.

Вы заметите, что есть веб-часть для каждого из списков и библиотек на нашем сайте.

Галерея веб-частей

Шаг 6 – Вы можете увидеть документы курса в веб-части. Теперь давайте добавим веб-часть еще раз, затем щелкните Список курсов и нажмите Добавить .

Список курсов

Шаг 7. После завершения добавления веб-частей нажмите « Остановить редактирование» на ленте.

Добавление веб-частей

Шаг 8 – У вас есть одна страница, на которой вы можете взаимодействовать как со списком курсов, так и с библиотекой документов курса.

Библиотека документов курса

Шаг 9 – Если вы хотите добавить новый документ, вы можете загрузить его или перетащить сюда, у вас есть доступ к меню «Редактировать блок управления» как для библиотеки, так и для списка.

Вы можете выполнить все основные задачи, перейдя к списку или самой библиотеке. Чтобы сохранить веб-части, как только они появятся на странице, мы можем перевести страницу в режим редактирования с ленты, нажав кнопку «Изменить страницу».

Режим редактирования

Шаг 10. Вы можете видеть, что для каждой из веб-частей есть небольшое выпадающее меню, которое мы можем использовать для удаления веб-части. Если вы хотите удалить веб-часть, всегда нажимайте Удалить , а не Закрыть . Закрыть просто скрывает веб-часть, но все равно остается на странице. Удалить удаляет веб-часть со страницы.

Удалить веб-часть

Шаг 11 – Мы можем редактировать свойства веб-части, щелкнув Изменить веб-часть в меню. В свойствах вы можете видеть, что есть разные опции, вы можете сказать, какой вид вы хотите показать в веб-части, какую панель инструментов вы хотите иметь. Вы также можете изменить внешний вид, макет и т. Д.

Изменить веб-часть

SharePoint – Колонка сайта и типы контента

В этой главе мы рассмотрим колонки сайта. До сих пор мы определяли схемы списков и библиотек в самих списках и библиотеках, но их нельзя использовать повторно. Поэтому, если вы хотите иметь два списка с одной и той же схемой, нам придется определять одну и ту же схему дважды. У SharePoint есть решение для этого, а именно: столбцы сайта и типы контента.

  • Столбцы сайта определяют определения повторно используемых столбцов, а типы контента, которые состоят из столбцов сайта, определяют схемы многократного использования как для списков, так и для библиотек.

  • В дополнение к определению схемы вы также можете прикрепить рабочие процессы и обработчики событий к типу контента. Столбцы сайта и типы контента хранятся в галереях на уровне сайта, и они доступны для использования на этом сайте и любом из его дочерних элементов.

  • Если вы объявите столбец сайта или тип контента на дочернем сайте, он будет доступен только в ветке под этим.

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

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

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

Если вы объявите столбец сайта или тип контента на дочернем сайте, он будет доступен только в ветке под этим.

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

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

Шаг 1 – Перейдите в наш список контактов через содержание сайта.

Столбцы сайта

Шаг 2 – Если вы прокрутите вниз, вы увидите раздел под названием «Столбцы».

Колонны

Шаг 3 – Зайдите в Дополнительные настройки . Выберите «Да» для « Разрешить управление типами содержимого» и нажмите «ОК».

Расширенные настройки

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

Тип содержимого контакта

Шаг 4 – Зайдите в настройки сайта.

Настройки сайта

Шаг 5 – В разделе Галереи веб-дизайнеров выберите Типы содержимого сайта .

Типы содержимого сайта

Шаг 6 – Прокрутите страницу вниз, и вы найдете тип содержимого контакта, который находится прямо под списком типов содержимого, а затем нажмите ссылку «Контакт».

Типы содержимого контактов

Шаг 7 – Если вы посмотрите на столбцы, то увидите, что они соответствуют столбцам в нашем списке. По сути, когда вы создаете список из шаблона списка контактов, он связывает этот тип контента со списком, и поэтому вы получаете все эти поля.

Теперь поля, которые составляют определение типа контента, называются столбцами сайта.

Чтобы увидеть столбцы сайта, перейдем в «Настройки сайта» и выберите «Столбцы сайта» в разделе «Галереи веб-дизайнеров».

Веб-дизайнер Галереи

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

Собственные пользовательские колонки сайта

Шаг 9 – Возможно, создавая свой сайт, вы понимаете, что хотите иметь столбец курса в нескольких списках и библиотеках и хотите повторно использовать это определение. Следовательно, мы можем создать столбец курса как столбец сайта, а затем использовать его в разных списках и библиотеках.

Давайте перейдем к колонке сайта из настроек сайта.

Разные списки

Шаг 10 – Нажмите ссылку Создать.

Создать ссылку

Шаг 11 – Назовите это как столбец курса, и это будет поле поиска.

Колонка курса

Шаг 12. Поместите это в группу под названием « Основы SharePoint », чтобы мы могли легко найти ее позже. Он будет искать в списке курсов, и поле, которое мы хотим найти, это название. Нажмите ОК.

Основы SharePoint

Шаг 13 – Вы увидите, что создана новая группа Основы SharePoint .

Новые основы SharePoint для групп

Шаг 14 – Наш новый столбец сайта создается в группе «Основы SharePoint».

Группа по основам SharePoint

Шаг 15 – Вернемся к документам курса и перейдем к настройкам библиотеки. Перейти к столбцам.

Столбцы настроек библиотеки

Удалите столбец курса, который мы создали в самой библиотеке.

Шаг 16 – Давайте добавим новый столбец курса из столбцов сайта. Поэтому вместо того, чтобы нажимать «Создать столбец», нажмите « Добавить из существующих столбцов сайта» .

Добавить из существующих столбцов сайта

Шаг 17 – Измените группу на «Основы SharePoint» и выберите «Курс» слева. Нажмите кнопку Добавить, чтобы добавить этот столбец в список, а затем нажмите кнопку ОК.

Добавить столбцы из столбцов сайта

Шаг 18 – Вернемся к документам курса.

Вернуться к документу курса

Шаг 19. Вы можете увидеть наш новый столбец курса, но он пуст, потому что ранее удаленная информация была удалена, когда мы удалили исходный столбец курса. Следовательно, давайте добавим это обратно, как показано ниже.

Исходная колонка курса

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

Типы контента

В этом разделе мы рассмотрим создание пользовательского типа контента.

Шаг 1. Перейдите в настройки сайта, а затем перейдите к типам содержимого сайта. Нажмите на ссылку Создать.

Тип контента сайта

Здесь мы должны учитывать две ключевые вещи при создании типа контента.

  • Во-первых, все типы контента основаны на другом типе контента, или вы можете подумать, что все типы контента наследуются от другого типа контента.

  • Во-вторых, тип контента будет работать со списками или с библиотеками. Работает ли он со списками или библиотеками, зависит от типа, который вы наследуете.

Во-первых, все типы контента основаны на другом типе контента, или вы можете подумать, что все типы контента наследуются от другого типа контента.

Во-вторых, тип контента будет работать со списками или с библиотеками. Работает ли он со списками или библиотеками, зависит от типа, который вы наследуете.

Например, если мы хотим создать собственный список контактов, мы перейдем к списку типов контента и затем найдем контакт. Мы создадим тип контента, добавим вещи, которые нам нужны, которые еще не были частью Контакта, или удалим вещи, которые были частью Контакта, которые нам не нужны.

  • Одна из стратегий, которую вы можете использовать при создании типов контента, состоит в том, чтобы найти тип контента, который уже содержит большинство необходимых вам вещей, унаследовать его, а затем настроить его.

  • Другая стратегия состоит в том, чтобы начать с базового типа контента, и вы просто строите его поверх него.

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

Другая стратегия состоит в том, чтобы начать с базового типа контента, и вы просто строите его поверх него.

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

Шаг 2 – Наш тип контента предназначен для библиотек документов, связанных с курсами. Это то, что мы хотим здесь с точки зрения наследования.

Библиотеки документов, связанные с курсами

Шаг 3 – Давайте назовем этот тип документов курса . Как и в случае с колонками сайта, мы поместим это в группу, чтобы мы могли легко идентифицировать ее, и это имя группы будет «Основы SharePoint». Нажмите ОК.

Тип документов курса

Шаг 4. На следующем снимке экрана видно, что пара полей уже существует из Типа содержимого документа, Имени файла и Заголовка . Мы добавим поле курса. Теперь мы не можем просто добавить столбец к типу контента, столбец должен быть столбцом сайта. Следовательно, мы собираемся выбрать « Добавить» из существующих столбцов сайта, а затем применить фильтр к группе «Основы SharePoint».

Имя файла и заголовок

Шаг 5 – Выберите столбец «Курс», нажмите «Добавить» и нажмите «ОК».

Выберите столбец курса

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

Шаг 6 – Давайте создадим новую библиотеку документов, нажав « Содержимое сайта» → добавьте приложение и создайте библиотеку документов.

Создать библиотеку документов

Шаг 7 – Мы назовем этот тест библиотеки и нажмите кнопку «Создать». Откройте библиотеку тестов и установите тип документа курса в тип контента для этой библиотеки. Перейдите в библиотеку на ленте, а затем перейдите в настройки библиотеки.

Библиотека Тест

Шаг 8 – Чтобы управлять типами контента, перейдите в Дополнительные настройки.

Предварительные настройки

Шаг 9. Установите для параметра « Разрешить управление типами содержимого» значение « Да», а затем нажмите кнопку «ОК».

Управление типами контента

Шаг 10 – Вы можете видеть, что эта библиотека в настоящее время связана с типом содержимого документа. Нам нужно добавить тип контента нашего курса, нажав кнопку Добавить из существующих типов контента сайта .

Добавьте наш тип содержимого курса

Шаг 11 – Снова отфильтруйте его в «Основах SharePoint». Выберите «Тип документов курса», нажмите «Добавить» и нажмите «ОК».

Выберите тип документа курса

Итак, теперь наша библиотека связана с двумя типами контента, типом документа и типом документов курса.

Наша библиотека

Шаг 12 – Далее, перейдите в тестовую библиотеку и затем нажмите « Новый документ» .

Когда вы нажимаете Новый документ или стрелку раскрывающегося списка, вы видите, что мы можем создать документ любого типа. Теперь, если вы хотите, чтобы люди могли создавать документы курса, просто вернитесь в настройки библиотеки. Удалите связь типов содержимого документа, щелкнув раздел «Документ в типах содержимого».

Тестовая библиотека

Шаг 13 – Нажмите Удалить этот тип контента . Вернитесь в библиотеку и нажмите «Файлы», а затем нажмите «Новый документ».

Нажмите Файлы

Теперь вы можете видеть, что доступна только опция «Тип документа курса». Это основы работы с типами контента в SharePoint.

Вариант типа документа курса

SharePoint – данные

В этой главе мы рассмотрим одну из наиболее распространенных задач SharePoint, а именно взаимодействие с различными источниками данных, такими как списки или библиотеки документов. Отличительной особенностью SharePoint является то, что у вас есть несколько вариантов взаимодействия с данными. Некоторые примеры: объектная модель сервера, объектная модель на стороне клиента, службы REST и т. Д.

Прежде чем вы сможете что-то сделать с SharePoint программным способом, вам нужно установить соединение и контекст с вашим сайтом SharePoint. Однако для этого нам нужен SharePoint on Premises, который можно установить на Windows Server.

Вам необходимо добавить ссылку в вашем проекте в Microsoft.SharePoint.dll или Microsoft.SharePoint.Client.dll . С соответствующими ссылками, добавленными в ваш проект, вы можете начать устанавливать контекст и код в этом контексте.

Давайте посмотрим на простой пример.

Шаг 1 – Откройте Visual Studio и создайте новый проект из меню Файл → Создать → Проект .

Шаг 2 – Выберите Windows из Шаблонов → Visual C # на левой панели и выберите Консольное приложение на средней панели. Введите название вашего проекта и нажмите ОК.

Шаг 3. После создания проекта щелкните правой кнопкой мыши проект в обозревателе решений и выберите « Добавить» → «Ссылки» .

Консольное приложение

Шаг 4 – Выберите Сборки → Расширения на левой панели, проверьте Microsoft.SharePoint на средней панели и нажмите OK.

Теперь снова щелкните правой кнопкой мыши проект в обозревателе решений и выберите «Свойства».

сборки

Шаг 5 – Щелкните вкладку Build на левой панели и снимите флажок Prefer 32-bit .

Закладка

Шаг 6 – Теперь вернитесь к файлу Program.cs и замените его следующим кодом.

using Microsoft.SharePoint;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace SharePointData {
   class Program {
      static void Main(string[] args) {
         using (var site = new SPSite("http://waqasserver/sites/demo")) {
            var web = site.RootWeb;
            Console.WriteLine(web.Title);
            var lists = web.Lists;
            
            foreach (SPList list in lists) {
               Console.WriteLine("t" + list.Title);
            }
            Console.ReadLine();
         }
      }
   }
}

Примечание. В приведенном выше коде сначала создается новый объект SPSite. Это одноразовый объект, поэтому он создается в операторе using. Конструктор SPSite принимает URL-адрес семейства сайтов, который в вашем случае будет другим.

Var web = site.RootWeb получит корень семейства сайтов.

Мы можем получить списки, используя web.Lists и напечатать заголовок пунктов списка.

Когда приведенный выше код скомпилирован и выполнен, вы увидите следующий вывод:

SharePoint Tutorials
   appdata
   Composed Looks
   Documents
   List Template Gallery
   Master Page Gallery
   Site Assets
   Site Pages
   Solution Gallery
   Style Library
   Theme Gallery
   User Information List
   Web Part Gallery

SharePoint – серверная объектная модель

В этой главе мы рассмотрим объектную модель SharePoint Server. Вы используете объектную модель SharePoint Server, когда пишете код, который будет выполняться в контексте SharePoint. Некоторыми распространенными примерами могут быть выделение кода на странице или в веб-части, обработчики событий для функции или списка, задания таймера и т. Д.

Особенности серверной объектной модели

Ниже приведены ключевые особенности серверной объектной модели.

  • Вы можете использовать объектную модель сервера, если вы программируете приложение ASP.NET в том же пуле приложений, который используется SharePoint.

  • Объектная модель сервера может использоваться, если вы разрабатываете клиентское приложение, такое как формы консоли или Windows, или приложение WPF, которое будет работать на сервере SharePoint.

  • Вы не можете использовать объектную модель сервера для удаленного подключения к серверу SharePoint.

  • Если вы хотите использовать объектную модель сервера, вы обращаетесь к сборке Microsoft.SharePoint . Существуют и другие сборки, которые составляют объектную модель сервера, но основной является Microsoft.SharePoint.

  • Основные типы, которые вы будете использовать чаще всего, отображаются на компоненты, которые вы используете в качестве конечного пользователя, поэтому такие вещи, как семейства сайтов, сайты, список, библиотеки и элементы списка, представлены типами SPSite, SPWeb, SPList, SPDocumentLibrary и SPListItem.

  • Типом и объектной моделью сервера, представляющей семейство сайтов, является SPSite, а типом, представляющим сайт SharePoint в объектной модели сервера, является SPWeb. Поэтому, когда вы переходите от условий конечного пользователя к условиям разработчика, вам просто нужно сделать это мысленное отображение.

Вы можете использовать объектную модель сервера, если вы программируете приложение ASP.NET в том же пуле приложений, который используется SharePoint.

Объектная модель сервера может использоваться, если вы разрабатываете клиентское приложение, такое как формы консоли или Windows, или приложение WPF, которое будет работать на сервере SharePoint.

Вы не можете использовать объектную модель сервера для удаленного подключения к серверу SharePoint.

Если вы хотите использовать объектную модель сервера, вы обращаетесь к сборке Microsoft.SharePoint . Существуют и другие сборки, которые составляют объектную модель сервера, но основной является Microsoft.SharePoint.

Основные типы, которые вы будете использовать чаще всего, отображаются на компоненты, которые вы используете в качестве конечного пользователя, поэтому такие вещи, как семейства сайтов, сайты, список, библиотеки и элементы списка, представлены типами SPSite, SPWeb, SPList, SPDocumentLibrary и SPListItem.

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

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

Давайте посмотрим на простой пример серверной объектной модели.

Шаг 1 – Откройте Visual Studio и создайте новый проект из меню Файл → Создать → Проект .

Шаг 2 – Выберите Windows из Шаблонов → Visual C # на левой панели и выберите Консольное приложение на средней панели. Введите название вашего проекта и нажмите ОК.

Шаг 3. После создания проекта щелкните правой кнопкой мыши проект в обозревателе решений и выберите « Добавить» → «Ссылки» .

Консольное приложение

Шаг 4 – Выберите Сборки → Расширения на левой панели, проверьте Microsoft.SharePoint на средней панели и нажмите кнопку ОК.

Теперь снова щелкните правой кнопкой мыши проект в обозревателе решений и выберите «Свойства».

сборки

Шаг 5 – Щелкните вкладку Build на левой панели и снимите флажок Prefer 32-bit .

Закладка

Шаг 6 – Теперь вернитесь к файлу Program.cs и замените его следующим кодом.

using Microsoft.SharePoint;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace SharePointData {
   class Program {
      static void Main(string[] args) {
         using (var site = new SPSite("http://waqasserver/sites/demo")) {
            var web = site.RootWeb;
            Console.WriteLine(web.Title);
            var lists = web.Lists;
            
            foreach (SPList list in lists) {
               Console.WriteLine("t" + list.Title);
            }
            Console.ReadLine();
         }
      }
   }
}

Примечание. В приведенном выше коде сначала создается новый объект SPSite. Это одноразовый объект, поэтому он создается в операторе using. Конструктор SPSite принимает URL-адрес семейства сайтов, который в вашем случае будет другим.

Var web = site.RootWeb получит корень семейства сайтов.

Мы можем получить списки, используя web.Lists и напечатать заголовок пунктов списка.

Когда приведенный выше код скомпилирован и выполнен, вы увидите следующий вывод:

SharePoint Tutorials
   appdata
   Authors
   Composed Looks
   Contacts
   Course Documents
   Courses
   Documents
   List Template Gallery
   Master Page Gallery
   Site Assets
   Site Pages
   Solution Gallery
   Style Library
   Theme Gallery
   User Information List
   Web Part Gallery

Вы можете видеть, что этими заголовками являются Галерея решений, Библиотека стилей, Шаблоны форм. Это списки, которые используются внутри SharePoint. Следовательно, вместо отображения всех списков, возможно, вы захотите показывать только те списки, которые пользователи обычно видят.

Следовательно, вместо получения всей коллекции списков, мы хотим получить все списки, которые не скрыты. Мы можем сделать это, используя запрос ссылки, как указано ниже.

using Microsoft.SharePoint;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ServerObjectModel {
   class Program {
      static void Main(string[] args) {
         using (var site = new SPSite("http://waqasserver/sites/demo")) {
            var web = site.RootWeb;
            Console.WriteLine(web.Title);
            var lists = from SPList list in web.Lists
            where list.Hidden == false
            select list;
            
            foreach (SPList list in lists) {
               Console.WriteLine("t" + list.Title);
            }
            Console.ReadLine();
         }
      }
   }
}

Когда приведенный выше код скомпилирован и выполнен, вы увидите следующий вывод:

SharePoint Tutorials
   Authors
   Contacts
   Course Documents
   Courses
   Documents
   Site Assets
   Site Pages
   Style Library

Вы можете видеть, что это вернет нам все списки, которые не скрыты.

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

using Microsoft.SharePoint;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ServerObjectModel {
   class Program {
      static void Main(string[] args) {
         using (var site = new SPSite("http://waqasserver/sites/demo")) {
            var web = site.RootWeb;
            Console.WriteLine(web.Title);
            var lists = from SPList list in web.Lists
            where list.Hidden == false
            select list;
            
            foreach (SPList list in lists) {
               Console.WriteLine("t" + list.Title);
               var items = list.Items.OfType<SPListItem>().Take(5);
               var isDocLib = list is SPDocumentLibrary;
               
               foreach (SPListItem item in items) {
                  var value = isDocLib ? item.Name : item.Title;
                  Console.WriteLine("tt" + value);
               }
            }
            Console.ReadLine();
         }
      }
   }
}

Когда приведенный выше код скомпилирован и выполнен, вы увидите следующий вывод:

SharePoint Tutorials
   Authors
      Muhammad Waqas
      Mark Upston
      Allan Bommer
      Andy Onian
   Contacts
      Waqas
      Upston
      Bommer
   Course Documents
      Sample1.docx
      Sample2.docx
      Sample3.docx
   Courses
      SharePoint Tutorials
      C# Tutorials
      ASP.Net Tutorials
      NHibernate Tutorials
   Documents
   Site Assets
   Site Pages
      Home.aspx
      How To Use This Library.aspx
   Style Library

Список данных

Когда вы впервые создаете список, у него всегда есть заголовок столбца. Этот столбец Заголовок по умолчанию предоставляет доступ к контексту элемента списка или меню блока управления редактированием.

Поскольку каждый список начинается с заголовка столбца, тип SPListItem представляет его как свойство. Для столбцов, которые не являются общими для каждого отдельного списка, вы можете получить к ним доступ через индексатор типа SpListItem .

Вы можете передать пару частей информации в индексатор, но наиболее распространенным является столбец . Конечные пользователи в настройках списка могут изменить это имя. Вы не хотите использовать это имя, потому что оно может измениться.

Второе – InternalName , которое задается в момент создания этого списка и никогда не изменяется. Это имя, которое вы хотите использовать при доступе к значению столбца.

Давайте посмотрим на простой пример, в котором мы получим список авторов, как показано ниже –

Простой пример

В этом примере мы получим список авторов, а затем увеличим зарплату / ставку на некоторое значение. Поэтому для столбца Заработная плата / ставка мы будем использовать InternalName .

Шаг 1 – Зайдите в Обозреватель серверов; щелкните правой кнопкой мыши Подключения SharePoint и выберите Добавить подключение … Укажите URL-адрес и нажмите кнопку ОК.

SharePoint Connections

Шаг 2 – Разверните Учебники по SharePoint → Библиотеки списков → Списки → Авторы → Поля → Зарплата / Поле ставки . Щелкните правой кнопкой мыши Salary / Rate и выберите Properties. Вы увидите InternalName в окне свойств.

Учебные пособия по SharePoint

Шаг 3 – Ниже приведен простой пример получения авторов на основе зарплаты / ставки и повышения их зарплаты / ставки.

using Microsoft.SharePoint;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ServerObjectModel {
   class Program {
      static void Main(string[] args) {
         using (var site = new SPSite("http://waqasserver/sites/demo")) {
            var web = site.RootWeb;
            var list = web.Lists.TryGetList("Authors");
            if (list == null)
            return;
            var items = list.Items;
            ShowItems(items);
            RaiseRates(items);
            Console.WriteLine("nAfter Raisen");
            ShowItems(items);
            Console.ReadKey();
         }
      }
      static void RaiseRates(SPListItemCollection items) {
         foreach (SPListItem item in items) {
            var employee = Convert.ToBoolean(item["Employee"]);
            var rate = Convert.ToDouble(item["Salary_x002f_Rate"]);
            var newRate = employee ? rate + 1 : rate + 0.1;
            item["Salary_x002f_Rate"] = newRate;
            item.Update();
         }
      }
      static void ShowItems(SPListItemCollection items) {
         foreach (SPListItem item in items) {
            Console.WriteLine("Salary or rate for {0} is {1:c}", item.Title,
            item["Salary_x002f_Rate"]);
         }
      }
   }
}

В приведенном выше коде вы можете видеть, что у нас есть два метода –

  • Одним из них является получение списка, который называется ShowItems и

  • Другой метод – повышение Rates, которое называется RaiseRates () .

Одним из них является получение списка, который называется ShowItems и

Другой метод – повышение Rates, которое называется RaiseRates () .

Когда приведенный выше код скомпилирован и выполнен, вы увидите следующий вывод:

Salary or rate for Muhammad Waqas is $950.00
Salary or rate for Mark Upston is $15.00
Salary or rate for Allan Bommer is $20.00
Salary or rate for Andy Onian is $870.00

After Raise

Salary or rate for Muhammad Waqas is $951.00
Salary or rate for Mark Upston is $15.10
Salary or rate for Allan Bommer is $20.10
Salary or rate for Andy Onian is $871.00

CAML Queries

В приведенных выше примерах мы всегда перебирали элементы, используя цикл foreach, много раз перебирая все элементы, и мы всегда возвращали все столбцы или, по крайней мере, все столбцы были доступны.

Это действительно аналог выполнения выбора * из имени таблицы в запросе SQL.

Мы можем решить эту проблему, используя так называемые запросы CAML . При выполнении запроса CAML у вас есть два варианта:

  • Если вы хотите запросить только один список, вы можете использовать объект SPQuery.

  • Если вы хотите запросить несколько списков в семействе сайтов, вы можете использовать SPSiteDataQuery.

Если вы хотите запросить только один список, вы можете использовать объект SPQuery.

Если вы хотите запросить несколько списков в семействе сайтов, вы можете использовать SPSiteDataQuery.

Обычно, когда вы выполняете SPSiteDataQuery , вы запрашиваете все списки определенного типа.

Например, я хочу запросить все списки контактов и т. Д. SPSiteDataQuery позволяет вам определить область действия, чтобы вы могли указать, что вы хотите запросить все семейство сайтов, отдельный сайт или сайт и все его дочерние элементы.

Синтаксис CAML-запросов в основном описан в формате XML, и для построения таких запросов требуется немного времени.

Давайте посмотрим на простой пример CAML Queries. Здесь мы создадим CAML-запрос для запроса данных в нашем списке авторов.

using Microsoft.SharePoint;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ServerObjectModel {
   class Program {
      static void Main(string[] args) {
         using (var site = new SPSite("http://waqasserver/sites/demo")) {
            var web = site.RootWeb;
            var list = web.Lists.TryGetList("Authors");
            if (list == null)
            return;
            var items = QueryItems(list);
            ShowItems(items);
            
            //RaiseRates(items);
            //Console.WriteLine("nAfter Raisen");
            //ShowItems(items);
            Console.ReadKey();
         }
      }
      static SPListItemCollection QueryItems(SPList list) {
         var query = new SPQuery();
         
         query.ViewFields =
            "<FieldRef Name='Title' />" +
            "<FieldRef Name='Employee' />" +
            "<FieldRef Name='Salary_x002f_Rate' />";
         
         query.Query =
            "<OrderBy>" +
            " <FieldRef Name='Salary_x002f_Rate' />" +
            "</OrderBy>" +
            "<Where>" +
            " <Eq>" +
            " <FieldRef Name='Employee' />" +
            " <Value Type='Boolean'>False</Value>" +
            " </Eq>" +
            "</Where>";
         return list.GetItems(query);
      }
      static void RaiseRates(SPListItemCollection items) {
         foreach (SPListItem item in items) {
            var employee = Convert.ToBoolean(item["Employee"]);
            var rate = Convert.ToDouble(item["Salary_x002f_Rate"]);
            var newRate = employee ? rate + 1 : rate + 0.1;
            item["Salary_x002f_Rate"] = newRate;
            item.Update();
         }
      }
      static void ShowItems(SPListItemCollection items) {
         foreach (SPListItem item in items) {
            Console.WriteLine("Salary or rate for {0} is {1:c}",
            item.Title,
            item["Salary_x002f_Rate"]);
         }
      }
   }
}

Мы использовали запрос CAML, чтобы получить некоторые элементы. В методе QueryItems вы можете видеть, что мы получили только те элементы, которые не являются Employee.

Salary or rate for Mark Upston is $15.10
Salary or rate for Allan Bommer is $20.10

SharePoint – клиентская объектная модель

В этой главе мы рассмотрим клиентскую объектную модель или CSOM. Это был один из двух API для создания удаленных приложений, которые были добавлены в SharePoint 2010.

Одна из целей разработки клиентской объектной модели состояла в том, чтобы максимально имитировать объектную модель сервера, поэтому для разработчиков, уже знакомых с разработкой на стороне сервера, будет более короткий цикл обучения.

Сердцем клиентской объектной модели является веб-служба Client.svc, которая находится в виртуальном каталоге _vti_bin . Мы не должны общаться напрямую с Client.svc, но нам предоставляются три прокси или точки входа, которые мы можем использовать. Они –

  • .NET Управляемый код.
  • JavaScript.
  • JavaScript.

Код связывается с этими прокси, а затем эти прокси в конечном итоге связываются с веб-сервисом.

Поскольку это удаленный API, а связь осуществляется с SharePoint через вызовы веб-службы, клиентская объектная модель предназначена для того, чтобы мы могли объединять команды и запросы информации.

.NET Управляемый код

Две основные сборки для реализации .NET Manage:

Microsoft.SharePoint.Client.dll и Microsoft.SharePoint.Client.Runtime.dll.

Код Silverlight

Сборки для реализации Silverlight находятся в папке TEMPLATE LAYOUTS ClientBin . Имена сборок также начинаются с Microsoft.SharePoint.Client . Для всех сборок, кроме одной, имя сборки заканчивается на Silverlight.

Две основные сборки для реализации Silverlight:

  • Microsoft.SharePoint.Client.Silverlight.dll
  • Microsoft.SharePoint.Client.Silverlight.Runtime.dll

JavaScript

Реализация JavaScript в клиентской объектной модели находится в папке TEMPLATE LAYOUTS под корневым каталогом системы SharePoint. Все имена библиотек JavaScript начинаются с SP. Три основных библиотеки – это SP.js, Sp.Runtime.js и SP.Core.js.

Клиентская объектная модель расширена в SharePoint 2013.

Получить ресурсы с помощью Load с помощью .NET

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

Шаг 1 – Выберите приложение Windows Forms в средней панели и введите имя в поле Имя. Нажмите ОК.

Приложение Windows Forms

Шаг 2 – После того, как проект создан, давайте добавим один список и одну кнопку, как показано ниже. Чтобы использовать клиентскую объектную модель, нам нужно добавить пару ссылок на сборки. Щелкните правой кнопкой мыши на References и выберите Add Reference.

Список

Шаг 3 – Выберите Расширения на левой панели в разделе Сборки .

Двумя основными сборками для управляемой реализации клиентской объектной модели являются Microsoft.SharePoint.Client и Microsoft.SharePoint.Client.Runtime . Проверьте эти два параметра и нажмите ОК.

Microsoft SharePoint Client Runtime

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

using Microsoft.SharePoint.Client;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace ClientObjectModel {
   public partial class Form1 : Microsoft.SharePoint.Client.Form {
      public Form1() {
         InitializeComponent();
      }
      private void loadBtn_Click(object sender, EventArgs e) {
         using (var context = new ClientContext("http://waqasserver/sites/demo")) {
            var web = context.Web;
            context.Load(web);
            context.Load(web.Lists);
            context.ExecuteQuery();
            ResultListBox.Items.Add(web.Title);
            ResultListBox.Items.Add(web.Lists.Count);
         }
      }
   }
}

Точкой входа в объектную модель клиента является клиентский контекст. Это удаленная версия клиента объекта SPContext . Это одноразовый тип, поэтому он заключен в оператор использования . Передаем URL сайта SharePoint в ClientContext .

Итак, теперь у нас есть наш контекст. Нам нужен объект для представления текущего сайта, то есть var web = context.web .

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

Далее нам нужно вызвать context.ExecuteQuery, и это фактически запускает пакетное извлечение. Мы получаем значения свойств с сервера и добавляем в список.

Когда приведенный выше код скомпилирован и выполнен, вы увидите следующий вывод:

Запрос на выполнение контента

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

Это позволяет нашему проекту настроить использование клиентской объектной модели для проверки ресурсов загрузки с использованием метода load.

SharePoint – API REST

В этой главе мы рассмотрим API REST. Это не традиционный API, где у нас есть набор библиотек, которые содержат типы, а эти типы содержат свойства и методы.

API REST реализован в виде веб-службы, ориентированной на данные, на основе протокола открытых данных или OData. То, как работают эти веб-службы, использует каждый ресурс в системе по адресу, указанному вами на сервере.

Давайте посмотрим на это в Internet Explorer, в котором открыт сайт SharePoint.

Шаг 1. Если вы используете Internet Explorer, перейдите в настройки Internet Explorer и на вкладке «Содержимое» выберите настройки для каналов и веб-фрагментов, как показано на снимке экрана ниже.

настройки интернета

Вы увидите следующее диалоговое окно. Убедитесь, что режим чтения каналов отключен, и нажмите кнопку «ОК».

Шаг 2. Теперь давайте изменим URL-адрес на URL-адрес сайта + / _ api / web и нажмите Enter.

Настройки фида и веб-фрагментов

Теперь вы должны получить вид, похожий на следующий скриншот.

Нам нужна информация о текущем веб-сайте или текущем сайте. Поэтому URL-адрес сайта + / _ api является базовым URL-адресом для API REST SharePoint 2013, а наш веб-сайт – это наш запрос. Мы хотим получить информацию о текущей сети.

Мы вернем XML-документ и, если прокрутить вниз, мы получим информацию о нашей текущей сети.

XML-документ

Далее, если вы хотите узнать о списках в Интернете, вы можете добавить списки к своему URL. Вместо информации об отдельном объекте мы получим набор информации обо всех списках на текущем сайте.

Списки в Сети

Когда мы использовали браузер, мы отправляли запросы на получение на сервер, что означает, что мы хотим получить информацию. Тем не менее, мы также можем выполнить остальные стандартные операции CRUD.

CRUD Операции

Получить ресурсы с помощью REST API

API REST SharePoint 2013 не предоставляет метаданных. Поэтому, когда мы работаем с ним в управляемом коде, мы не можем использовать Visual Studio для генерации прокси службы с помощью диалогового окна ссылки на службу. Вместо этого мы можем использовать такой тип, как веб-клиент объекта веб-запроса http, чтобы отправить запрос на сервер и просто получить необработанные результаты обратно.

Возвращаются ли эти результаты в виде XML или JSON, определяется заголовком accept, который мы отправляем вместе с запросом.

  • Если мы вернем XML, то мы можем использовать LINQ to XML для извлечения информации из ответа, который нам нужен для нашего приложения.

  • Если мы вернем JSON, то мы можем использовать один из различных JSON-сериализаций для анализа JSON в .NET-объектах, а затем использовать его для получения необходимой нам информации.

Если мы вернем XML, то мы можем использовать LINQ to XML для извлечения информации из ответа, который нам нужен для нашего приложения.

Если мы вернем JSON, то мы можем использовать один из различных JSON-сериализаций для анализа JSON в .NET-объектах, а затем использовать его для получения необходимой нам информации.

При работе с REST API в JavaScript мы можем использовать объект jQuery или SP.RequestExecutor для вызова службы. Как и в примере с управляемым кодом, мы можем контролировать, вернем ли мы XML или JSON, используя заголовок accept. Поскольку мы работаем в JavaScript большую часть времени, мы хотим вернуть JSON.

Еще одна вещь, на которую следует обратить внимание: когда вы создаете URL-адрес службы, мы можем использовать объект _spPageContextInfo, чтобы получить абсолютный URL-адрес сайта, а затем просто добавить URL-адрес службы и запрос к нему. Это связано с тем, что служба API REST не предоставляет метаданные, и вы не можете создать ссылку на службу в Visual Studio, поэтому использование API REST в управляемом коде не является началом.

Давайте посмотрим на вызов REST API из JavaScript, создав новый проект.

Шаг 1 – Выберите App for SharePoint в средней панели и введите имя для вашего проекта. Нажмите ОК .

App SharePoint

Шаг 2. Введите URL-адрес своего сайта, выберите вариант размещения в SharePoint и нажмите «Далее». Нажмите Готово.

SharePoint Hosted

Шаг 3 – После того, как проект создан, давайте откроем страницу Default.aspx, которая находится в разделе «Страницы» в Обозревателе решений, и добавим одну кнопку.


Вот полная реализация файла Default.aspx.

<%-- The following 4 lines are ASP.NET directives needed when using SharePoint
   components --%>

<%@ Page Inherits = ”Microsoft.SharePoint.WebPartPages.WebPartPage,
   Microsoft.SharePoint, Version = 15.0.0.0, Culture = neutral,
   PublicKeyToken = 71e9bce111e9429c” MasterPageFile = ”~masterurl/default.master”
   Language = ”C#” %>

<%@ Register TagPrefix = ”Utilities” Namespace = ”Microsoft.SharePoint.Utilities”
   Assembly = ”Microsoft.SharePoint, Version = 15.0.0.0, Culture = neutral,
   PublicKeyToken = 71e9bce111e9429c” %>

<%@ Register TagPrefix = ”WebPartPages”
   Namespace = ”Microsoft.SharePoint.WebPartPages” Assembly = ”Microsoft.SharePoint,
   Version = 15.0.0.0, Culture = neutral, PublicKeyToken = 71e9bce111e9429c” %>

<%@ Register TagPrefix = ”SharePoint” Namespace = ”Microsoft.SharePoint.WebControls”
   Assembly = ”Microsoft.SharePoint, Version = 15.0.0.0, Culture = neutral,
   PublicKeyToken = 71e9bce111e9429c” %>

<%-- The markup and script in the following Content element will be placed in
   the <head> of the page --%>

<asp:Content ContentPlaceHolderID = ”PlaceHolderAdditionalPageHead”
   runat = ”server”>
   <script type = ”text/javascript” src = ”../Scripts/jquery-1.9.1.min.js”></script>
   <SharePoint:ScriptLink name = ”sp.js” runat = ”server” OnDemand = ”true”
      LoadAfterUI = ”true” Localizable = ”false” />
   <meta name = ”WebPartPageExpansion” content = ”full” />
   <!–Add your CSS styles to the following file ->
   <link rel = ”Stylesheet” type = ”text/css” href = ”../Content/App.css” />
   <!–Add your JavaScript to the following file ->
   <script type = ”text/javascript” src = ”../Scripts/App.js”></script>
</asp:Content>

<%-- The markup in the following Content element will be placed in the TitleArea
   of the page --%>

<asp:Content ContentPlaceHolderID = ”PlaceHolderPageTitleInTitleArea”
   runat = ”server”>
   Page Title
</asp:Content>

<%-- The markup and script in the following Content element will be placed in
   the <body> of the page --%>

<asp:Content ContentPlaceHolderID = ”PlaceHolderMain” runat = ”server”>
   <div>
      <p id = ”message”>
         <!–The following content will be replaced with the user name when
            you run the app – see App.js -> initializing…
      </p>
      <input id = ”loadButton” type  = ”button” value = ”Load” />
   </div>
</asp:Content>

Шаг 4. Откройте файл App.js, который находится в разделе «Сценарий» в обозревателе решений, и замените его следующим кодом.

JQuery(document).ready(function () {
   JQuery("#loadButton").click(usingLoad)
});

function usingLoad() {
   var context = SP.ClientContext.get_current();
   var web = context.get_web();
   context.load(web);
   context.executeQueryAsync(success, fail);
   
   function success() {
      var message = jQuery("#message");
      message.text(web.get_title());
      message.append("<br/>");
      message.append(lists.get_count());
   }
   function fail(sender, args) {
      alert("Call failed. Error: " + args.get_message());
   }
}

Мы используем jQuery для создания функции document.ready . Здесь мы просто хотим прикрепить обработчик события click к кнопке. Следовательно, мы использовали селектор, чтобы получить loadButton, а затем добавили обработчик события click, используя Load .

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

Шаг 5 – Опубликуйте свою заявку, и вы увидите следующий файл –

Опубликовать приложение

Шаг 6. Перетащите этот файл на страницу приложений сайта SharePoint.

Страница приложений сайта

Вы увидите файл JavaScriptDemo в списке.

JavaScriptDemo

Шаг 7. Нажмите «Содержимое сайта» на левой панели и выберите «Добавить приложение». Нажмите значок JavaScriptDemo .

JavaScriptDemo Icon

Шаг 8 – Нажмите Доверяй .

Доверяй этому

Шаг 9 – Теперь вы увидите свое приложение. Нажмите значок приложения.

Нажмите значок приложения

Шаг 10 – Когда вы нажмете кнопку «Загрузить», он обновит текст.

Нажмите кнопку загрузки

Вы можете увидеть обновленный текст.

Обновленный текст

SharePoint – Возможности и элементы

В этой главе мы рассмотрим особенности и элементы. Функции в некотором роде являются компонентной моделью в SharePoint. Они позволяют вам определять логические единицы функциональности.

Например, вы можете захотеть иметь возможность на сайте –

  • Чтобы создать список с определенной схемой,

  • Есть страница, которая будет отображать данные из этого списка, а затем

  • У вас есть ссылка или пункт меню где-то на сайте, чтобы перейти на эту страницу.

Чтобы создать список с определенной схемой,

Есть страница, которая будет отображать данные из этого списка, а затем

У вас есть ссылка или пункт меню где-то на сайте, чтобы перейти на эту страницу.

Вы можете создать функцию, которая определяет эту логическую группу функций. Отдельные части функциональности определяются элементами.

Так что будет элемент, который –

  • Создает список и устанавливает схему.

  • Предоставляет страницу на ваш сайт SharePoint, и

  • Создает пункт меню или ссылку.

Создает список и устанавливает схему.

Предоставляет страницу на ваш сайт SharePoint, и

Создает пункт меню или ссылку.

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

  • Экземпляр списка для создания списка.

  • Модуль для предоставления страницы.

  • Пользовательское действие для создания опции меню или ссылки.

Экземпляр списка для создания списка.

Модуль для предоставления страницы.

Пользовательское действие для создания опции меню или ссылки.

Однако в SharePoint можно создавать множество других элементов. Другая важная концепция для понимания функций – это активация и деактивация.

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

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

Другие не удаляются автоматически. Поэтому в нашем случае экземпляр списка и страница не будут удалены автоматически.

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

Давайте посмотрим на работу с функциями и элементами. Мы начнем с обзора возможностей конечных пользователей.

Шаг 1 – Откройте свой сайт SharePoint.

Сайты SharePoint

Шаг 2 – Чтобы перейти к настройкам сайта, у вас есть две ссылки, которые позволяют вам управлять функциями.

  • Первая ссылка Управление функциями сайта находится в разделе Действия сайта, что позволяет вам управлять функциями области сайта.

  • Другая ссылка Функции семейства сайтов в разделе «Администрирование семейства сайтов», позволяющая управлять функциями области семейства сайтов.

Первая ссылка Управление функциями сайта находится в разделе Действия сайта, что позволяет вам управлять функциями области сайта.

Другая ссылка Функции семейства сайтов в разделе «Администрирование семейства сайтов», позволяющая управлять функциями области семейства сайтов.

Управление функциями сайта

Шаг 3 – Если вы нажмете одну из этих ссылок, вы попадете на страницу, на которой показаны активные и неактивные в данный момент функции. Для каждой функции у вас есть возможность активировать или деактивировать функцию.

Особенности сайта

Давайте рассмотрим простой пример, создав новый пустой проект SharePoint Solutions.

Шаг 1 – Давайте назовем это FeaturesAndElements и нажмите ОК.

Особенности и элементы

Шаг 2. Укажите сайт, который вы хотите использовать, выберите вариант « Развернуть как ферму» и нажмите «Готово».

Развертывание как решение для фермы

Первое, что мы хотим создать – это функция. В обозревателе решений вы можете увидеть папку «Функции», которая в настоящее время пуста.

Папка Особенности

Шаг 3 – Щелкните правой кнопкой мыши папку « Функции » и выберите « Добавить функцию» . Он создает компонент с именем Feature1 и открывает конструктор компонентов . Заголовок по умолчанию – это заголовок проекта и заголовок объекта.

Добавить функцию

Шаг 4 – Переименуйте функцию из Feature1 в Sample.

Название и описание – это то, что пользователь видит на странице, где он активирует и деактивирует функции.

Установите заголовок « Образец», а «Описание» – « Добавить список контактов», и страница будет использоваться для просмотра списка . Еще одна вещь, которую нам нужно установить, это Область действия функции, которая является областью активации.

Это может быть ферма, веб-приложение, семейство сайтов или сайт. В этом случае мы собираемся предоставить список и страницу. Так как оба живут на сайте SharePoint, поэтому мы выберем веб здесь.

Образец

Шаг 5 – Давайте начнем добавлять функции в наши элементы. Первым элементом будет список, и мы создадим список контактов. Щелкните правой кнопкой мыши по вашему проекту и выберите « Добавить» → «Новый элемент»

Шаг 6 – Выберите Список в средней панели и введите Контакты в поле имени. Нажмите Добавить.

Выберите список

Шаг 7 – Вы увидите Мастер создания списка. Создайте список с названием «Контакты» на основе списка контактов. Нажмите Готово, чтобы создать список или, по крайней мере, создать элемент, который в конечном итоге создаст список.

Мастер настройки SharePoint

Ниже приведен скриншот дизайнера списка.

Дизайнер списков

Шаг 8 – Этот дизайнер просто редактор XML. Откройте файл Elements.xml в разделе «Контакты» и добавьте следующие данные.

<?xml version = "1.0" encoding = "utf-8"?>

<Elements xmlns = "http://schemas.microsoft.com/sharepoint/">
   <ListInstance Title = "Contacts" OnQuickLaunch = "TRUE" TemplateType = "105" 
      FeatureId = "00bfea71-7e6d-4186-9ba8-c047ac750105"
      Url = "Lists/Contacts" Description = "">
      <Data>
         <Rows>

            <Row>
               <Field Name = "ID">1</Field>
               <Field Name = "Last Name">Anders</Field>
               <Field Name = "First Name">Maria</Field>
               <Field Name = "Company">Alfreds Futerkiste</Field>
               <Field Name = "Business Phone">030-0074321</Field>
            </Row>

            <Row>
               <Field Name = "ID">2</Field>
               <Field Name = "Last Name">Hardy</Field>
               <Field Name = "First Name">Thomas</Field>
               <Field Name = "Company">Around the Horn</Field>
               <Field Name = "Business Phone">(171) 555-7788</Field>
            </Row>

            <Row>
               <Field Name = "ID">3</Field>
               <Field Name = "Last Name">Lebihan</Field>
               <Field Name = "First Name">Laurence</Field>
               <Field Name = "Company">Bon app'</Field>
               <Field Name = "Business Phone">91.24.45.40</Field>
            </Row>

            <Row>
               <Field Name = "ID">4</Field>
               <Field Name = "Last Name">Ashworth</Field>
               <Field Name = "First Name">Victoria</Field>
               <Field Name = "Company">B's Beverages</Field>
               <Field Name = "Business Phone">(171) 555-1212</Field>
            </Row>

            <Row>
               <Field Name = "ID">5</Field>
               <Field Name = "Last Name">Mendel</Field>
               <Field Name = "First Name">Roland</Field>
               <Field Name = "Company">Ernst Handel</Field>
               <Field Name = "Business Phone">7675-3425</Field>
            </Row>

         </Rows>
      </Data>
   </ListInstance>
</Elements>

Обратите внимание на следующее –

  • Внутри элемента ListInstance у нас есть элемент с именем Data, и внутри него есть несколько строк.

  • ListInstance будет иметь атрибуты Contacts , независимо от того, будут ли мы отображаться в быстром запуске.

  • Мы хотим список на основе шаблона контакта. Здесь TemplateType установлен на 105 . Это не случайное число, а число со значением.

  • Каждый из типов списков по умолчанию, которые вы можете иметь в SharePoint, например, список объявлений, список задач, список контактов и т. Д., Имеет связанный с ним номер. Поэтому, если вы измените 105 на 107, вы получите другой вид списка.

  • FeatureId – это руководство, связанное с определением списка контактов.

Внутри элемента ListInstance у нас есть элемент с именем Data, и внутри него есть несколько строк.

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

Мы хотим список на основе шаблона контакта. Здесь TemplateType установлен на 105 . Это не случайное число, а число со значением.

Каждый из типов списков по умолчанию, которые вы можете иметь в SharePoint, например, список объявлений, список задач, список контактов и т. Д., Имеет связанный с ним номер. Поэтому, если вы измените 105 на 107, вы получите другой вид списка.

FeatureId – это руководство, связанное с определением списка контактов.

Шаг 9 – Теперь мы хотим иметь страницу, которая показывает данные из этого списка. Щелкните правой кнопкой мыши свой проект и выберите « Добавить» → «Новый элемент». Выберите «Модуль» в средней панели, введите «SitePage» в поле имени и нажмите « Добавить» .

модуль

Вы увидите узел с именем SitePage , который имеет два файла, Elements.xml и файл Sample.txt . Мы не хотим предоставлять этот файл sample.txt, но мы хотим предоставить SitePage.

Шаг 10 – Переименуйте текстовый файл в Contacts.aspx и замените следующий код –

<%@ Assembly Name = "Microsoft.SharePoint, Version = 14.0.0.0, Culture = neutral,
   PublicKeyToken = 71e9bce111e9429c" %>

<%@ Page MasterPageFile = "~masterurl/default.master"
   meta:progid = "SharePoint.WebPartPage.Document" %>

<%@ Register TagPrefix = "SharePoint"
   Namespace = "Microsoft.SharePoint.WebControls"
   Assembly = "Microsoft.SharePoint, Version = 14.0.0.0, Culture = neutral,
   PublicKeyToken = 71e9bce111e9429c" %>

<asp:Content ID = "Content2" runat = "server" ContentPlaceHolderID = "PlaceHolderMain">
   <SharePoint:SPDataSource runat = "server"
      ID = "ContactsDataSource" DataSourceMode = "List"
      UseInternalName = "false">
      <SelectParameters>
         <asp:Parameter Name = "ListName" DefaultValue = "Contacts" />
      </SelectParameters>
   </SharePoint:SPDataSource>
   
   <SharePoint:SPGridView runat = "server"
      ID = "ContactsGridView" DataSourceID = "ContactsDataSource"
      AutoGenerateColumns = "false" RowStyle-BackColor = "#DDDDDD"
      AlternatingRowStyle-BackColor = "#EEEEEE">
      <Columns>
         <asp:BoundField HeaderText = "Company"
            HeaderStyle-HorizontalAlign = "Left" DataField = "Company" />
         <asp:BoundField HeaderText = "First Name"
            HeaderStyle-HorizontalAlign = "Left" DataField = "First Name" />
         <asp:BoundField HeaderText = "Last Name"
            HeaderStyle-HorizontalAlign = "Left" DataField = "Last Name" />
         <asp:BoundField HeaderText = "Phone"
            HeaderStyle-HorizontalAlign = "Left" DataField = "Business Phone" />
      </Columns>
   </SharePoint:SPGridView>
</asp:Content>

<asp:Content ID = "PageTitle" ContentPlaceHolderID = "PlaceHolderPageTitle"
   runat = "server">
   Contacts
</asp:Content>

<asp:Content ID = "PageTitleInTitleArea"
   ContentPlaceHolderID = "PlaceHolderPageTitleInTitleArea" runat = "server" >
   Contacts
</asp:Content>

На SitePage есть файл SP.DataSource , который мы будем использовать для создания данных списка контактов, что мы можем связать на нашей странице. SP.GridView покажет информацию о контактах.

Это наша страница сайта, и теперь давайте посмотрим на функцию.

Страница сайта

Обратите внимание, что в пунктах Элементы , Экземпляр списка контактов и Предоставление модуля на нашей странице SitePage были добавлены в качестве элементов.

Visual Studio понимает, что элементы сами по себе ничего не могут сделать. Элементы должны быть частью функции. Следовательно, когда вы добавляете элемент, вам нужно добавить его в функцию.

Шаг 11 – Перейдите в свой проект и щелкните правой кнопкой мыши и выберите Добавить → Новый элемент

Здесь мы хотим добавить CustomAction, поэтому выберите «Пустой элемент» в средней панели, вызовите это действие и нажмите «Добавить».

CustomAction

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

Добавленные функции

Шаг 12 – Вернитесь в Elements.xml под действием и замените следующий код –

<?xml version = "1.0" encoding = "utf-8"?>

<Elements xmlns = "http://schemas.microsoft.com/sharepoint/">
   <CustomAction
      Id = "SiteActionsToolbar"
      GroupId = "SiteActions"
      Location = "Microsoft.SharePoint.StandardMenu"
      Sequence = "100"
      Title = "Contacts"
      Description = "A page showing some sample data">
      <UrlAction Url = "~site/SitePages/Contacts.aspx"/>
   </CustomAction>
</Elements>

Теперь, если вы хотите добавить ссылку или пункт меню, вам нужно определить, куда вы собираетесь добавить его, и это комбинация Location и GroupId, которые определяют их. Эта комбинация значений указывает, что пункт меню должен быть добавлен в меню SiteActions.

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

Шаг 13 – Дважды щелкните по функции , вы увидите конструктор функций. Дизайнер функций – это модный редактор Feature Manifest, который представляет собой документ XML.

Особенность

Важные моменты –

  • Функция определяет логическую группировку элементов. Здесь наша особенность относится к нашим манифестам трех Элементов, которые мы только что создали.

  • Когда вы активируете Компонент, SharePoint просматривает отдельный манифест элемента и добавляет список, страницу и ссылку на наш сайт SharePoint.

  • При развертывании с использованием Visual Studio он автоматически активирует любые функции в вашем проекте. Поскольку мы хотим пройти через процесс активации функции, мы скажем Visual Studio не делать этого.

Функция определяет логическую группировку элементов. Здесь наша особенность относится к нашим манифестам трех Элементов, которые мы только что создали.

Когда вы активируете Компонент, SharePoint просматривает отдельный манифест элемента и добавляет список, страницу и ссылку на наш сайт SharePoint.

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

Шаг 14 – Перейдите в Свойства проекта, перейдя на вкладку SharePoint. Измените конфигурацию развертывания на Нет активации .

Нет активации

Давайте проверим это.

Шаг 15 – Щелкните правой кнопкой мыши свой проект в обозревателе решений и выберите « Развернуть» . Он соберет все содержимое вашего проекта и развернет его на ферме разработки SharePoint.

развертывание

После успешного развертывания вы увидите его в окне «Вывод».

Шаг 16. Перейдите на сайт SharePoint и обновите его. Перейдите в Настройки сайта → Действия сайта .

Действия сайта

Шаг 17 – Выберите Управление функциями сайта, потому что ваша Пользовательская функция была в веб-области, и вы увидите свою Примерную функцию . Вы можете видеть, что эта функция не была активирована, поэтому давайте продолжим и активируем ее.

Web Scoped

Вы увидите список контактов в левой панели.

Список контактов в левой панели

Шаг 18 – Нажмите «Контакт», и данные, которые у нас были в списке, будут отображены.

Вкладка контактов

Шаг 19 – Перейти в меню действий сайта. Существует возможность перейти на страницу контактов. Это наш CustomAction.

Меню действий сайта

Шаг 20 – Если вы нажмете кнопку «Контакты», то вы увидите свой SitePage, показывающий данные из списка контактов.

Данные из списка контактов

SharePoint – Функция Приемник событий

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

Проект Visual Studio, который мы создали в последней главе, имел одну функцию, и когда он был активирован, он предоставил наш список контактов, нашу страницу SitePage и ссылку на страницу SitePage.

Однако, когда компонент отключен, SharePoint удаляет только ссылку, а SitePage и список контактов остаются.

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

Для обработки событий для функции нам нужен приемник функций .

Шаг 1. Чтобы получить получатель компонента, щелкните правой кнопкой мыши элемент в обозревателе решений и выберите « Добавить приемник событий» .

using System;
using System.Runtime.InteropServices;
using System.Security.Permissions;
using Microsoft.SharePoint;

namespace FeaturesAndElements.Features.Sample {
   /// <summary>
      /// This class handles events raised during feature activation, deactivation,
         installation, uninstallation, and upgrade.
   /// </summary>
   /// <remarks>
      /// The GUID attached to this class may be used during packaging and should not be modified.
   /// </remarks>
   [Guid("e873932c-d514-46f9-9d17-320bd3fbcb86")]
  
   public class SampleEventReceiver : SPFeatureReceiver {
      // Uncomment the method below to handle the event raised after a feature has been activated.
      //public override void FeatureActivated(SPFeatureReceiverProperties properties)//{
         //
      }
      // Uncomment the method below to handle the event raised before a feature is deactivated.
      //public override void FeatureDeactivating(SPFeatureReceiverProperties properties)// {
         //
      }
      // Uncomment the method below to handle the event raised after a feature has been installed.
      //public override void FeatureInstalled(SPFeatureReceiverProperties properties)// {
         //
      }
      // Uncomment the method below to handle the event raised before a feature is uninstalled.
      //public override void FeatureUninstalling(SPFeatureReceiverProperties properties)// {
         //
      }
      // Uncomment the method below to handle the event raised when a feature is upgrading.
      //public override void FeatureUpgrading(SPFeatureReceiverProperties
         properties, string upgradeActionName,
         System.Collections.Generic.IDictionary<string, string> parameters) // {
         //
      }
   }
}

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

В SharePoint существуют разные классы для разных видов событий, которые вы можете обрабатывать. Например, события в списках, события в элементах списка, события на сайтах. Вы можете создать класс, производный от конкретного получателя событий, а затем переопределить методы внутри этого класса для обработки событий.

События функции используются, когда она используется:

  • активированная
  • дезактивированный
  • Установлены
  • Ый
  • модернизация

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

Поэтому мы будем обрабатывать две особенности –

  • Когда функция активирована и

  • Когда это деактивируется.

Когда функция активирована и

Когда это деактивируется.

Шаг 2. Мы реализуем методы FeatureActivation и FeatureDeactivation, как показано ниже.

using System;
using System.Runtime.InteropServices;
using System.Security.Permissions;
using Microsoft.SharePoint;

namespace FeaturesAndElements.Features.Sample {
   /// <summary>
      /// This class handles events raised during feature activation, deactivation,
         installation, uninstallation, and upgrade.
   /// </summary>
   /// <remarks>
      /// The GUID attached to this class may be used during packaging and should
         not be modified.
   /// </remarks>

   [Guid("e873932c-d514-46f9-9d17-320bd3fbcb86")]
   public class SampleEventReceiver : SPFeatureReceiver {
      private const string listName = "Announcements";
      
      public override void FeatureActivated(SPFeatureReceiverProperties properties) {
         var web = properties.Feature.Parent as SPWeb;
         
         if (web == null) return;
         var list = web.Lists.TryGetList(listName);
         
         if (list != null) return;
         var listId = web.Lists.Add(listName, string.Empty,
         SPListTemplateType.Announcements);
         list = web.Lists[listId];
         list.OnQuickLaunch = true;
         list.Update();
      }
      public override void FeatureDeactivating(SPFeatureReceiverProperties properties) {
         var web = properties.Feature.Parent as SPWeb;
         
         if (web == null) return;
         var list = web.Lists.TryGetList(listName);
         
         if (list == null) return;
         if (list.ItemCount == 0) {
            list.Delete();
         }
      }
   }
}

Примечание

  • Когда функция будет активирована, мы создадим список объявлений.

  • Когда функция отключена, мы проверим, пуст ли список объявлений и, если он есть, мы удалим его.

Когда функция будет активирована, мы создадим список объявлений.

Когда функция отключена, мы проверим, пуст ли список объявлений и, если он есть, мы удалим его.

Шаг 3 – Теперь щелкните правой кнопкой мыши на Project и выберите deploy. Вы увидите следующее предупреждение о конфликте развертывания.

Конфликты развертывания

Visual Studio сообщает нам, что мы пытаемся создать список под названием «Контакты», но на сайте уже есть список «Контакты». Он спрашивает нас, хотим ли мы перезаписать существующий список, и в этом случае нажмите « Разрешить» .

Шаг 4. Вернитесь в SharePoint, а затем обновите свой сайт и выберите Действия сайта → Настройки сайта → Управление функциями сайта → Пример функции .

Пример Особенности

Вы можете видеть, что на левой панели нет списка объявлений.

Шаг 5. Позвольте нам активировать функцию Sample, и вы увидите список объявлений, но сейчас он пуст.

Список объявлений

Примечание. Если вы отключите функцию Sample Feature, то заметите, что список объявлений исчез.

Шаг 6 – Давайте активировать функцию. Перейдите в Объявления, а затем Добавить новое объявление. Мы назовем этот тест и затем нажмите Сохранить.

Новое объявление

Вы увидите тестовый файл в разделе «Объявления».

Тестовый файл под объявлениями

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

Деактивировать объявления

SharePoint – платформа Azure

В этой главе мы расскажем о платформе Microsoft Azure. Microsoft Azure – это технология облачной платформы Microsoft, которая сама по себе является очень мощной технологией. Это не просто место для развертывания вашего кода, это целый набор сервисов, которые вы, как разработчик, можете использовать при разработке своего решения SharePoint.

Облачные вычисления

Чтобы понять Microsoft Azure, сначала нужно немного узнать об облаке. Облачные вычисления – это использование Интернета как набора ресурсов для разработки и развертывания ваших решений. Традиционно облачные вычисления были определены как категории услуг. Они –

  • Инфраструктура как услуга (IAAS)
  • Платформа как услуга (PAAS)
  • Программное обеспечение как услуга (SAAS)

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

  • IAAS в качестве размещенных виртуальных машин (ВМ) вы управляете удаленно.

  • PAAS – это место, где вы развертываете код, данные, большие двоичные объекты (BLOB), веб-приложения и другие артефакты приложений в облачной среде (такой как Windows Server 2012 R2 и IIS).

  • SAAS как сервисы на основе подписки, которые вы можете зарегистрировать для использования, например, Office 365.

IAAS в качестве размещенных виртуальных машин (ВМ) вы управляете удаленно.

PAAS – это место, где вы развертываете код, данные, большие двоичные объекты (BLOB), веб-приложения и другие артефакты приложений в облачной среде (такой как Windows Server 2012 R2 и IIS).

SAAS как сервисы на основе подписки, которые вы можете зарегистрировать для использования, например, Office 365.

Хотя эти три категории услуг доминируют в способе, которым облачность характеризуется, у облака есть четыре общепринятых столпа –

  • Объединяйте ресурсы с другими пользователями облака.

  • Управляйте своими собственными службами и приложениями через портал управления.

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

  • Платите только за то, что вы используете в отношении облака.

Объединяйте ресурсы с другими пользователями облака.

Управляйте своими собственными службами и приложениями через портал управления.

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

Платите только за то, что вы используете в отношении облака.

Обзор платформы Azure

Платформа Microsoft Azure состоит из множества различных сервисов. Вы можете использовать их в разработке, развертывании и управлении приложениями, такими как Data, Service и Integration, которые являются клиентским уровнем в любом приложении, которое использует службы в Microsoft Azure.

Уровень данных

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

Нереляционная особенность

Нереляционные функции хранения позволяют вам –

  • Для хранения ресурсов, таких как образы виртуальных машин, изображения или видео, в BLOB-объектах

  • Создать нереляционные таблицы

  • Управление очередями сообщений по служебной шине и управление кэшированием данных в ваших распределенных приложениях

Для хранения ресурсов, таких как образы виртуальных машин, изображения или видео, в BLOB-объектах

Создать нереляционные таблицы

Управление очередями сообщений по служебной шине и управление кэшированием данных в ваших распределенных приложениях

Реляционная особенность

Особенности реляционных данных следующие:

  • Базовая база данных SQL Azure, которая является облачной версией для локального SQL Server.

  • Службы отчетности (SQL Reporting)

  • Возможность потоковой передачи потоков данных в режиме реального времени из транзакций данных (Stream Insight)

Базовая база данных SQL Azure, которая является облачной версией для локального SQL Server.

Службы отчетности (SQL Reporting)

Возможность потоковой передачи потоков данных в режиме реального времени из транзакций данных (Stream Insight)

Уровень услуг

Уровень «Службы» содержит ряд служб по умолчанию, которые вы можете использовать при создании своих решений, начиная от служб мультимедиа и заканчивая основными облачными службами, такими как –

  • Создание сайтов

  • Классы рабочих ролей

  • Использование Hadoop в Microsoft Azure для обработки запросов больших данных

Создание сайтов

Классы рабочих ролей

Использование Hadoop в Microsoft Azure для обработки запросов больших данных

Для многих из этих сервисов вы можете использовать встроенную функциональность и набор API в своем приложении. Например, если вы хотите создать мультимедийное учебное решение, вы можете использовать Media Services –

  • Чтобы загрузить WMV

  • Перекодировать их в MP4

  • Сохраните их в хранилище BLOB

  • Создайте общедоступный URL-адрес для доступа и затем транслируйте их из Microsoft Azure.

Чтобы загрузить WMV

Перекодировать их в MP4

Сохраните их в хранилище BLOB

Создайте общедоступный URL-адрес для доступа и затем транслируйте их из Microsoft Azure.

Интеграционный слой

Интеграционный слой содержит несколько основных сервисов, таких как:

  • Гео-реплицированная сеть доставки контента (CDN)

  • Диспетчер трафика

  • Виртуальная частная сеть, которая позволяет подключить виртуальную машину к локальной системе

  • Рабочий процесс и бизнес-процесс и услуги по интеграции

Гео-реплицированная сеть доставки контента (CDN)

Диспетчер трафика

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

Рабочий процесс и бизнес-процесс и услуги по интеграции

Все эти возможности позволяют вам интегрировать системы или защищать их.

Azure Apps

Microsoft Azure – это не только сервисы. Azure – это постоянно развивающаяся облачная платформа, которая имеет набор инструментов и SDK, которые позволяют быстро приступить к разработке облачных приложений.

Для начала работы с Microsoft Azure вам необходимо следующее:

  • Visual Studio последняя
  • Microsoft Azure подписка
  • Microsoft Azure подписка

Шаг 1. Давайте рассмотрим простой пример, в котором мы развернем наше веб-приложение в Microsoft Azure, создав новое приложение ASP.NET MVC.

ASP.NET MVC приложение

Шаг 2 – Нажмите Ok, и вы увидите следующее диалоговое окно. Выберите шаблон MVC, установите флажок « Хост» в облаке и нажмите «ОК».

Хост в облаке

Шаг 3. Когда появится диалоговое окно «Настройка параметров веб-приложения Microsoft Azure», убедитесь, что вы вошли в Azure. Если вы не вошли, то сначала войдите.

Вы можете увидеть имя по умолчанию, но вы можете изменить имя веб-приложения .

Название веб-приложения

Шаг 4 – Введите необходимую информацию, как показано ниже. Выберите Создать новый сервер в раскрывающемся списке Сервер базы данных.

Создать новый сервер

Шаг 5 – Вы увидите дополнительное поле. Введите сервер базы данных, имя пользователя и пароль и нажмите Ok.

Сервер базы данных

Как только проект будет создан, запустите ваше приложение, и вы увидите, что оно работает на localhost.

Работает на Localhost

Шаг 6. Чтобы развернуть эти приложения в Azure, щелкните правой кнопкой мыши проект в обозревателе решений и выберите «Опубликовать».

Выберите Опубликовать

Шаг 7 – Вы увидите следующее диалоговое окно. Нажмите Веб-приложения Microsoft Azure.

Веб-приложения Microsoft Azure

Шаг 8. Выберите имя приложения в существующих веб-приложениях и нажмите «ОК».

Существующие веб-приложения

Шаг 9. Нажмите кнопку «Проверить подключение» , чтобы проверить подключение в Azure.

Проверить соединение

Шаг 10 – Нажмите Далее, чтобы продолжить.

Нажмите кнопку "Далее

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

Строка подключения

Шаг 11 – Нажмите Далее, чтобы продолжить.

Публиковать веб

Шаг 12. Чтобы проверить все файлы и библиотеки, которые мы будем публиковать в Azure, нажмите Начать предварительный просмотр .

Начать предварительный просмотр

Шаг 13 – Нажмите Опубликовать, чтобы опубликовать свое приложение.

Публиковать

После успешной публикации приложения в Azure вы увидите сообщение в окне вывода.

Сообщение

Вы также увидите, что ваше приложение теперь запущено из облака.

Приложение работает из облака

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

Лазурный портал

Приложения SharePoint и Microsoft Azure

SharePoint и Microsoft Azure представляют собой две большие платформы. SharePoint является одной из ведущих платформ Microsoft для повышения производительности серверов или совместной платформой для предприятия и Интернета.

Microsoft Azure – это операционная система Microsoft в облаке. Отдельно у них есть свои сильные стороны, жизнеспособность рынка и следование разработчикам.

Вместе они обеспечивают много мощных преимуществ. Они –

  • Они помогают расширить, как и где вы размещаете свой код и данные.

  • Они расширяют возможности использования Microsoft Azure, одновременно снижая затраты на хранение и отработку отказа локальных приложений.

  • Они предоставляют вам новые бизнес-модели и предложения, которые вы можете предложить своим клиентам, чтобы расширить свои собственные решения.

Они помогают расширить, как и где вы размещаете свой код и данные.

Они расширяют возможности использования Microsoft Azure, одновременно снижая затраты на хранение и отработку отказа локальных приложений.

Они предоставляют вам новые бизнес-модели и предложения, которые вы можете предложить своим клиентам, чтобы расширить свои собственные решения.

В SharePoint 2010 Azure и SharePoint были двумя разными платформами и технологиями, которые можно было легко интегрировать, но они не были частью одной системы. Однако в SharePoint 2013 это изменилось.

В SharePoint 2013 представлены различные типы облачных приложений. Фактически вы можете создавать два типа интегрированных приложений Azure.

Первый тип приложений – это Autohosted, а второй – хостинг-провайдер (иногда его называют самодостаточным).

Основное различие между ними –

  • Приложения с автоматическим размещением изначально поддерживают набор функций Azure, таких как веб-сайты и база данных SQL, с опытом разработки и развертывания SharePoint.

  • Приложения, размещенные на провайдере, предназначены для интеграции с более широким набором веб-технологий и стандартов, чем приложения с автоматическим размещением, одним из которых является Microsoft Azure.

Приложения с автоматическим размещением изначально поддерживают набор функций Azure, таких как веб-сайты и база данных SQL, с опытом разработки и развертывания SharePoint.

Приложения, размещенные на провайдере, предназначены для интеграции с более широким набором веб-технологий и стандартов, чем приложения с автоматическим размещением, одним из которых является Microsoft Azure.

Таким образом, вы можете использовать весь стек Microsoft Azure при создании приложений, размещенных на Providerhos, которые используют Azure.

SharePoint – упаковка и развертывание

В этой главе мы рассмотрим упаковку и развертывание решения SharePoint. Первым шагом в развертывании решения SharePoint является создание пакета решений.

Пакет решений – это CAB- файл с расширением WSP, который содержит все файлы, необходимые для реализации компонентов в проекте Visual Studio.

Файлы, необходимые для реализации Функций, включают:

  • Характеристика манифеста.

  • Любой элемент проявляется.

  • DLL, которая содержит скомпилированный управляемый код.

  • Связанные файлы, такие как веб-страницы, пользовательские элементы управления и веб-парные файлы.

  • Другой файл, содержащийся в пакете решения, – это манифест решения. Манифест решения – это каталог файлов, содержащихся в пакете. Для фермерских решений он также содержит инструкции по развертыванию.

  • Как и в случае с манифестом компонента, Visual Studio автоматически создает и поддерживает манифест решения при изменении проекта. Вы можете увидеть манифест решения с помощью дизайнера решений.

  • Помимо создания и обслуживания манифеста решения, Visual Studio также автоматически создает пакет решения для нашего проекта. Это происходит за кулисами каждый раз, когда вы развертываете свою работу для отладки.

  • Сгенерированный пакет решений находится в той же папке, что и dll, так что это будет отладочная папка или папка выпуска бина. Чтобы просмотреть содержимое этого файла в проводнике Windows, просто измените расширение с WSP на CAB, а затем дважды щелкните файл.

Характеристика манифеста.

Любой элемент проявляется.

DLL, которая содержит скомпилированный управляемый код.

Связанные файлы, такие как веб-страницы, пользовательские элементы управления и веб-парные файлы.

Другой файл, содержащийся в пакете решения, – это манифест решения. Манифест решения – это каталог файлов, содержащихся в пакете. Для фермерских решений он также содержит инструкции по развертыванию.

Как и в случае с манифестом компонента, Visual Studio автоматически создает и поддерживает манифест решения при изменении проекта. Вы можете увидеть манифест решения с помощью дизайнера решений.

Помимо создания и обслуживания манифеста решения, Visual Studio также автоматически создает пакет решения для нашего проекта. Это происходит за кулисами каждый раз, когда вы развертываете свою работу для отладки.

Сгенерированный пакет решений находится в той же папке, что и dll, так что это будет отладочная папка или папка выпуска бина. Чтобы просмотреть содержимое этого файла в проводнике Windows, просто измените расширение с WSP на CAB, а затем дважды щелкните файл.

Давайте рассмотрим простой пример, в котором мы рассмотрим пакеты решений, связанные с проектами решений SharePoint, которые мы создали в предыдущей главе. Давайте начнем с проекта функций и элементов, который мы создали ранее.

Особенности и элемент

Как вы знаете, в проекте у нас есть одна особенность, которая называется Sample. Эта функция ссылается на три элемента: « Контакты», «SitePage» и «Действие» .

Вы также можете видеть, что у Action есть манифест Element, у Contacts есть манифест Element, у SitePage есть манифест Element и веб-страница, которая предоставляет эту веб-страницу сайту. Следовательно, мы должны ожидать, что пакет решения будет содержать манифест компонента, три манифеста элемента, веб-страницу, а также сборку, которая создается при создании проекта.

Шаг 1 – Щелкните правой кнопкой мыши свой проект в обозревателе решений и выберите «Открыть папку» в проводнике.

Папка в проводнике

Шаг 2 – Перейдите в bin и откройте папку Debug. Вы увидите пакет решений.

Папка отладки

Шаг 3 – Сделайте копию этого и затем измените расширение файла Копии от wsp до cab.

WSP в кабину

Шаг 4 – Теперь дважды щелкните файл cab, чтобы открыть его, и вы увидите файлы. Вы увидите манифест Feature, три манифеста Element, страницу aspx, dll и один дополнительный файл, который является манифестом Solution.

кабина файл

Шаг 5 – В обозревателе решений вы увидите папку с именем Package и, если вы развернете ее, вы увидите файл с именем Package.package . Дважды щелкните этот файл, и вы увидите конструктор решения.

Package.package

Этот конструктор показывает, что в настоящее время в решении имеется только одна функция, и эта функция ссылается на три элемента Element: контакты, SitePage и действие.

Этот конструктор является редактором XML-документа, так же как и конструктор функций.

Ссылки на функции

Манифест решения для этого прокси прост. Это просто указывает на то, что здесь есть сборка, которую нужно развернуть, с именем FeaturesandElemenest.dll, и мы будем развертывать ее в GlobalAssemblyCache .

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

GlobalAssemblyCache

Развертывание решения фермы

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

Чтобы развернуть решение Farm, вы передаете пакет решения, созданный Visual Studio, своему администратору SharePoint. Они будут использовать PowerShell или центр администрирования или комбинацию обоих инструментов для развертывания пакета.

Давайте посмотрим на развертывание решения Farm.

Шаг 1 – Перейти к элементам и элементам в проекте Visual Studio.

Развитие фермы

Этот проект имеет одну особенность с тремя элементами. При развертывании решения фермы его содержимое копируется в системные папки SharePoint, как показано ниже:

Системные папки SharePoint

Шаг 2 – Теперь давайте перейдем в конструктор списков, затем изменим заголовок на «Контакты-изменение 1» и затем нажмите кнопку «Сохранить».

Контакты для изменения1

Шаг 3 – Теперь перейдите к свойствам проекта и затем выберите SharePoint на левой панели. В параметре Active Deployment Configuration выберите вариант по умолчанию из раскрывающегося списка.

Конфигурация активного развертывания

Шаг 4 – В Solution Explorer щелкните правой кнопкой мыши проект и выберите Deploy. После завершения развертывания обновите свой сайт, и вы увидите изменения.

Выберите Deploy

SharePoint – решения для песочницы

В этой главе мы расскажем о развертывании решений Sandbox. Развертывание Sandbox Solution намного проще, чем развертывание решения Farm.

Это похоже на загрузку документа в библиотеку документов. Когда вы закончите разработку, вы возьмете пакет решения и вместо того, чтобы отдать его своему администратору SharePoint, вы передадите его конечному пользователю, человеку с привилегией владельца семейства сайтов. Затем они возьмут пакет и загрузят его в галерею решений семейства сайтов.

Инструменты Visual Studio, как и в решениях Farm, автоматизируют этот процесс развертывания во время разработки.

Давайте рассмотрим простой пример развертывания Sandbox Solution. Это намного проще, чем развертывание решения Farm.

Шаг 1 – Здесь нам нужно создать новое семейство сайтов и назвать его Demo 1.

Demo1

Шаг 2 – Измените имя списка контактов на «Контакты» в проекте FeaturesAndElements.

Контакты в разделе Особенности и элементы

Шаг 3 – Уберите решение, щелкнув правой кнопкой мыши по проекту и выбрав Retract. Если мы вернемся к системным папкам SharePoint, вы заметите, что наша папка Feature отсутствует.

втягиваться

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

Перейти к управлению функциями сайта

Шаг 4. Вернитесь в проект Visual Studio, щелкните проект в обозревателе решений и перейдите в окно свойств. Измените решение для песочницы с False на True.

Sandbox Solution

Отображается диалоговое окно с предупреждением.

Изменение собственности

Это дает нам представление о том, что некоторые элементы, добавленные вами в проект Visual Studio, не будут работать с решениями Sandbox и некоторыми API-интерфейсами SharePoint. Некоторые типы в объектной модели SharePoint Server не совместимы с решениями для песочницы.

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

С помощью песочницы вместо развертывания файлов в системных папках SharePoint, мы внедряем в базу данных контента SharePoint.

Шаг 5 – Зайдите в настройки сайта. Под галереями веб-дизайнеров есть галерея решений.

Галерея решений

Шаг 6 – Нажмите на ссылку Решения, и вы увидите следующую страницу, где мы внедряем наши решения для песочницы.

Разверните наши решения для песочницы

Вы закончили с развитием. Вместо того, чтобы передавать пакет решения администратору SharePoint и затем использовать PowerShell или Central Admin для развертывания решения фермы, вы можете передать свой пакет конечному пользователю, кому-то с правами владельца семейства сайтов, и затем они могут загрузить решение в Галерея решений.

Шаг 7 – Вернитесь в Visual Studio, щелкните правой кнопкой мыши и выберите «Опубликовать в файловую систему».

Опубликовать в файловую систему

Нажмите кнопку « Опубликовать» , чтобы опубликовать новый пакет решений в папке пакета.

Вы увидите пакет в папке Package.

Папка пакета

Шаг 8 – Теперь перейдите на сайт SharePoint. Нажмите кнопку «Загрузить решение» на ленте.

Кнопка «Загрузить решение»

Шаг 9 – Найдите свое решение FeaturesAndElements. Нажмите ОК.

ОсобенностиAndElements Решение

Вы увидите следующий диалог.

Шаг 10 – Вам просто нужно нажать кнопку «Активировать», чтобы активировать решение «песочницы»

Активное решение для песочницы

Шаг 11 – Зайдите в Управление функциями сайта.

Управление сайтом

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

активировать

SharePoint – приложения

В этой главе мы рассмотрим приложения SharePoint. Модель приложения – это новая модель развертывания и размещения разработки для расширений SharePoint. Как разработчик в SharePoint 2013, у нас есть возможность использовать модель решений, решения для ферм или «песочниц», или модель приложения.

Документация и рекомендации Microsoft предполагают, что вы предпочитаете модель приложения, а не модель решений, и это может быть очень верным руководством. Однако вы должны учитывать, что модель приложения, которая является значительным дополнением к SharePoint 2013, в то время как модель решений существует с SharePoint 2007.

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

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

Характеристики приложения

Характеристики приложения приведены ниже –

  • Первое и, вероятно, самое важное, с точки зрения разработчика, заключается в том, что все коды в приложении выполняются вне сервера SharePoint. Это означает, что код является либо JavaScript-кодом, запущенным в браузере пользователя, либо кодом, выполняемым на каком-либо внешнем сервере.

  • Поскольку весь код выполняется за пределами SharePoint, связь с SharePoint осуществляется через веб-службы, что означает, что вы используете клиентскую объектную модель или REST API.

  • Ни при каких обстоятельствах вы не можете использовать объектную модель сервера в приложении SharePoint.

  • Как только вы закончите сборку приложения, вы можете разместить его в общедоступном магазине приложений или в локальном каталоге приложений. Для этого требуется процесс проверки, и есть несколько правил, которым вы должны следовать, чтобы ваше приложение могло попасть в общедоступный магазин приложений.

  • Другой вариант – поместить ваше приложение в локальный каталог приложений, который представляет собой просто семейство сайтов, в вашем веб-приложении, которое было настроено центральным администратором как каталог приложений.

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

Первое и, вероятно, самое важное, с точки зрения разработчика, заключается в том, что все коды в приложении выполняются вне сервера SharePoint. Это означает, что код является либо JavaScript-кодом, запущенным в браузере пользователя, либо кодом, выполняемым на каком-либо внешнем сервере.

Поскольку весь код выполняется за пределами SharePoint, связь с SharePoint осуществляется через веб-службы, что означает, что вы используете клиентскую объектную модель или REST API.

Ни при каких обстоятельствах вы не можете использовать объектную модель сервера в приложении SharePoint.

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

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

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

Типы приложений

Существуют различные типы приложений, которые вы можете создавать, а именно:

SharePoint-Hosted App

Первое – это приложение, размещенное на SharePoint. Как следует из названия, такого рода приложение размещается в вашей ферме SharePoint.

Важные особенности –

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

  • Он может содержать списки, библиотеки, страницы, типы контента и т. Д.

  • Основы создания приложения, размещенного на SharePoint, аналогичны основам построения решения SharePoint.

    • У нас есть особенность.

    • Мы можем добавить элементы к этой функции, и эти элементы определяются с использованием CAML.

    • Для многих элементов у нас есть дизайнеры в Visual Studio.

    • Мы можем добавить страницы сайта.

    • Мы можем добавить серверные элементы управления на эти страницы сайта.

    • Мы не можем добавить код на эти страницы сайта, но мы можем добавить код JavaScript.

    • Теперь, когда вы выходите за рамки основ, вещи начинают становиться все менее и менее похожими.

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

Он может содержать списки, библиотеки, страницы, типы контента и т. Д.

Основы создания приложения, размещенного на SharePoint, аналогичны основам построения решения SharePoint.

У нас есть особенность.

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

Для многих элементов у нас есть дизайнеры в Visual Studio.

Мы можем добавить страницы сайта.

Мы можем добавить серверные элементы управления на эти страницы сайта.

Мы не можем добавить код на эти страницы сайта, но мы можем добавить код JavaScript.

Теперь, когда вы выходите за рамки основ, вещи начинают становиться все менее и менее похожими.

Облачные приложения

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

  • Эти приложения живут на сайте, внешнем по отношению к SharePoint.

  • Большая разница между Provider-Hosted и Auto-Hosted заключается в том, кто собирается создавать и управлять этим внешним сайтом –

    • В размещенном провайдером приложении это вы или ваша организация.

    • В приложении с автоматическим размещением это Microsoft.

  • Создание облачного приложения такое же, как создание любого другого веб-сайта.

  • Если вы являетесь разработчиком .NET, вы, вероятно, используете MVC или веб-формы. Однако вы не ограничены этими технологиями. Вы можете создать облачное приложение с любой веб-технологией. Когда вы закончите сборку приложения, в сценарии с размещением провайдера вы развернете приложение на своем сайте так же, как на любом другом сайте.

  • В сценарии автоматического размещения вы используете Visual Studio для создания пакета приложения. Это приложение, эквивалентное пакету решений, и вы можете загрузить его в SharePoint Online и на сайт. При необходимости вам будет предоставлена ​​база данных для размещения вашего приложения.

  • Автоматически размещенные приложения могут использоваться только с SharePoint Online, они не поддерживаются локальной фермой.

Эти приложения живут на сайте, внешнем по отношению к SharePoint.

Большая разница между Provider-Hosted и Auto-Hosted заключается в том, кто собирается создавать и управлять этим внешним сайтом –

В размещенном провайдером приложении это вы или ваша организация.

В приложении с автоматическим размещением это Microsoft.

Создание облачного приложения такое же, как создание любого другого веб-сайта.

Если вы являетесь разработчиком .NET, вы, вероятно, используете MVC или веб-формы. Однако вы не ограничены этими технологиями. Вы можете создать облачное приложение с любой веб-технологией. Когда вы закончите сборку приложения, в сценарии с размещением провайдера вы развернете приложение на своем сайте так же, как на любом другом сайте.

В сценарии автоматического размещения вы используете Visual Studio для создания пакета приложения. Это приложение, эквивалентное пакету решений, и вы можете загрузить его в SharePoint Online и на сайт. При необходимости вам будет предоставлена ​​база данных для размещения вашего приложения.

Автоматически размещенные приложения могут использоваться только с SharePoint Online, они не поддерживаются локальной фермой.

Вот тот же пример, который мы уже рассмотрели в главе «Модель приложения».

Давайте рассмотрим простой пример приложения, размещенного на сервере SharePoint, открыв Visual Studio и выбрав Файл → Создать → Пункт меню Проект.

Шаг 1 – Откройте Visual Studio и выберите меню « Файл» → «Создать» → «Проект» .

Меню проекта

Шаг 2. На левой панели выберите « Шаблоны» → Visual C # → Office / SharePoint, а затем на средней панели выберите « Приложение для SharePoint» .

Введите Имя в поле Имя, нажмите OK, и вы увидите следующее диалоговое окно.

Приложение для SharePoint

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

Шаг 3. Перейдите в центр администрирования SharePoint и скопируйте URL-адрес SharePoint.

URL-адрес SharePoint

Шаг 4. Вставьте URL-адрес в диалоговое окно « Новое приложение для SharePoint », как показано ниже.

Новое приложение для SharePoint

Шаг 5 – Нажмите « Далее», и откроется диалоговое окно « Подключиться к SharePoint », где нам необходимо войти в систему.

Подключиться к SharePoint

Шаг 6 – Введите свои учетные данные и нажмите кнопку « Войти» . После успешного входа на сайт SharePoint вы увидите следующее диалоговое окно:

войти в систему

Шаг 7 – Нажмите Готово . После создания проекта щелкните файл AppMenifest.xml в обозревателе решений.

AppMenifest.xml

Шаг 8 – Перейдите на вкладку « Разрешения ». Откроется выпадающий список Scope.

Вкладка «Разрешения»

Шаг 9 – В раскрывающемся списке Область действия выберите Веб , который является областью полномочий, которые вы настраиваете. В раскрывающемся списке «Разрешение» выберите «Чтение». Это тип настраиваемого разрешения.

Выберите Веб

Шаг 10 – Откройте файл Default.aspx и замените его следующим кодом.

<%-- The following 4 lines are ASP.NET directives needed when 
   using SharePoint components --%>

<%@ Page Inherits = "Microsoft.SharePoint.WebPartPages.WebPartPage,
   Microsoft.SharePoint, Version = 15.0.0.0, Culture = neutral,
   PublicKeyToken = 71e9bce111e9429c" MasterPageFile = "~masterurl/default.master"
   Language = "C#" %>

<%@ Register TagPrefix = "Utilities" Namespace = "Microsoft.SharePoint.Utilities"
   Assembly = "Microsoft.SharePoint, Version = 15.0.0.0, Culture = neutral,
   PublicKeyToken = 71e9bce111e9429c" %>

<%@ Register TagPrefix = "WebPartPages"
   Namespace = "Microsoft.SharePoint.WebPartPages" Assembly = "Microsoft.SharePoint,
   Version = 15.0.0.0, Culture = neutral, PublicKeyToken = 71e9bce111e9429c" %>

<%@ Register TagPrefix = "SharePoint"
   Namespace = "Microsoft.SharePoint.WebControls" Assembly = "Microsoft.SharePoint,
   Version = 15.0.0.0, Culture = neutral, PublicKeyToken = 71e9bce111e9429c" %>

<%-- The markup and script in the following Content element 
   will be placed in the <head> of the page --%>

<asp:Content ID = "Content1" ContentPlaceHolderID = "PlaceHolderAdditionalPageHead" 
   runat = "server">
   <script type = "text/javascript" src = "../Scripts/jquery- 1.6.2.min.js"></script>
   <link rel = "Stylesheet" type = "text/css" href = "../Content/App.css" />
   <script type = "text/javascript" src = "../Scripts/App.js"></script>
</asp:Content>

<asp:Content ID = "Content2" ContentPlaceHolderID = "PlaceHolderMain"
   runat = "server">
   <script type = "text/javascript"> 
      function hello() {
         var currentTime = new Date();
         $get("timeDiv").innerHTML = currentTime.toDateString();
      }
   </script>
   <div id = "timeDiv"></div>
   <input type = "button" value = "Push me!" onclick = "hello();" />
</asp:Content>

Шаг 11 – Перейдите в обозреватель решений, щелкните правой кнопкой мыши проект и выберите «Опубликовать». Нажмите кнопку « Упаковать приложение» . Это создает приложение, размещенное на SharePoint, и подготавливает его для развертывания на вашем сайте SharePoint.

Упакуйте приложение

Вы увидите следующую папку, которая содержит файл * .app.

Файл приложения

Шаг 12. Перейдите на свой веб-сайт SharePoint.

Перейдите к SharePoint

Шаг 13 – Нажмите Приложения для SharePoint на левой панели. Откроется новая страница.

Приложения для SharePoint

Шаг 14 – Перетащите свои файлы сюда, чтобы загрузить.

Загрузка файлов

Как только файл будет загружен, вы увидите следующую страницу –

Вкладка загруженного файла

Шаг 15 – Выберите опцию – Содержание сайта в левой панели. Нажмите значок добавления приложения, как показано на следующем снимке экрана –

Содержание сайта

Откроется новая страница.

Шаг 16. Выберите « Приложения» → «Из вашей организации» на левой панели, и вы увидите, что приложение доступно для установки. Нажмите на приложение.

Выберите приложение из организации

Шаг 17 – При нажатии на приложение открывается диалоговое окно, как показано на следующем снимке экрана. Нажмите Доверяй .

Диалоговое окно

Шаг 18 – Вы увидите, что приложение установлено. После завершения установки вы можете нажать на приложение.

Приложение установлено

Вы увидите следующую страницу, которая содержит одну кнопку –

страница

Когда вы нажмете кнопку Push me , отобразится текущая дата.

Нажми на меня

Autohosted

Давайте посмотрим на простой пример Autohosted , создав новый проект.

Шаг 1. Выберите приложение для SharePoint 2013 и нажмите кнопку « ОК» .

Приложение для SharePoint 2013

Шаг 2 – Выберите Autohosted.

Выберите Autohosted

Шаг 3. Выберите веб-приложение ASP.NET MVC и нажмите «Готово».

ASP.NET MVC Веб-приложение

Как только проект создан, опубликуйте свое приложение. Остальные шаги такие же, как и для опции, размещенной на SharePoint.

image

Предисловие

Важно! Если Вам хочется побыстрее приступить к технической стороне дела – просто пропустите эту главу.

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

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

Просьба к читателю согласиться с рядом приведенных ниже допущений. В повествовании речь пойдет о SharePoint Server 2013, но иногда будут упомянуты и другие, более старые версии. Новая 2016-я платформа на момент написания статьи была в статусе Preview, ее официальный релиз ожидается уже совсем скоро, этой весной. Однако, судя по всему, 2016-я версия является довольно минорным релизом, ее основные «фишки» — более тесная интеграция с облаком Azure и «облагороженный» процесс развертывания и обновления, что не уж так сильно изменит сам процесс внедрения, а потому данный опус не должен потерять актуальности.

Автор постарался обобщить в статье свой опыт внедрения платформы SharePoint в разных отраслях бизнеса начиная со старого доброго WSS 3.0. Несмотря на опыт – автор живой человек, всем априори свойственно ошибаться.

Для любителей «ну вот, еще одно, не читал, но осуждаю»: статья содержит реальный опыт и описание действительно узких и неочевидных мест с граблями и писалась не как очередной реферат на тему «ребята, я наконец это поставил, спешу поделиться, смотрите как я крут», а с целью действительно донести знание, как все те грабли аккуратно обойти.

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

Технический уровень читающих данный труд должен прощать автору опускание описания некоторых тривиальных вещей, вроде «запустите setup.exe» или скриншоты с кнопками NEXT и OK.

Статья ориентирована на истинных самураев, решившихся внедрять сей сложный продукт своими силами — обычные отделы ИТ компаний-пользователей конечного продукта и НЕ предназначена для профессиональных интеграторов, а потому в ней не будут освещаться заумные методики группового развертывания и приемы unattended-установки.

Настоятельно рекомендуется использовать английские (не локализованные) версии всех необходимых для развертывания продуктов вне зависимости от политической ситуации. Основание: они обновляются в первую очередь, самая актуальная документация – на английском, нет ошибок в переводе терминов, дольше поддержка. На качество внедрения абсолютно не влияет, все языковые пакеты в наличии.

В последней части повествования будет предоставлен сводный список всех необходимых ссылок.

Любителям сухого технического текста – для Вашего удобства вся лирика убрана под спойлеры и выделена курсивом. Для тех же, кто осмелится прочесть все, от начала и до конца – отключитесь от всего, наденьте наушники, поставьте на повтор что-то вроде «Clubbed To Death» Rob Dougan-а и запаситесь терпением. Мы начинаем…

Глава 1. О SharePoint – как он есть. Ответ на вопрос «Зачем?».

Коммерческие компании – это живые организмы. У них есть молодость, юность, период интенсивного роста, взросление, старость (упадок) и гибель.

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

Средний (по отечественным меркам) бизнес – это уже несколько сотен пользователей, десятки отделов, юридических лиц, серверные, юниты в дата-центрах и многое другое. Сонмы сетевых дисков, для которых уже не хватает букв латинского алфавита, гигабайты почты у каждого пользователя, которые он не дает архивировать, опасаясь не найти письмо от шефа пятилетней давности, большое количество информационных систем и баз.

Рано или поздно сотрудники таких компаний сталкиваются с проблемами обмена информацией между подразделениями, начинают страдать от количества данных и задач, сваливающихся на них ежедневно по старым каналам связи (в устном режиме или по электронной почте), перестают воспринимать родную компанию как нечто небольшое и семейное, где ты всех знаешь уже много лет.

Решить проблемы обмена информацией, вовлеченности в общие процессы, упорядочивания и уменьшения документооборота как раз и призваны системы, обобщенно называемые системами построения интранет (от слова intro – внутренний) порталов и документооборота. Это то, что наши западные коллеги называют терминами Collaboration и Workflow. Эти системы позволяют упорядочить потоки информации на предприятии, облегчить общий доступ к важным данным, обеспечить простой поиск в различных форматах документов и предоставить наиболее востребованные разделяемые ресурсы типа актуальных справочников контактов сотрудников и их должностей, т.е. прозрачной структуры организации. Эти же системы реализуют возможность построения довольно гибких центров внутренней документации и хранения отчетности во всевозможных форматах от любых подразделений предприятия, что очень ценится собственниками бизнеса и топ-менеджментом, которые в этом случае навсегда избавляются от необходимости просмотра всей своей объемной почты либо персональных ПК и мобильных устройств в случае, когда необходимо поднять отчет по прибыли за какой-то квартал пятилетней давности.

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

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

Если на этапе роста компании руководителю достаточно было самому глянуть в какую-то 1С-ку, запустить там отчет об остатках или реализации и получить ответ на свой вопрос, то позже, по мере роста компании этих 1С-ок может стать банально несколько, либо добавиться и вовсе не 1С-ка. Поэтому он вынужден полагаться на своих подчиненных сотрудников, которые будут подготавливать ему всю отчетную базу и учитывая вкусы шефа, бережно и оперативно предоставлять ему всю актуальную информацию и ключевые параметры бизнеса (KPI). Человеческие возможности не безграничны и технический прогресс не стоит на месте. Тот же Гай Юлий Цезарь, помести мы его в наше время – навряд-ли смог бы напрямую руководить современным предприятием в своей легендарной манере, делая несколько дел одновременно.

Функционал SharePoint-а предоставляет все необходимые возможности для решения этих задач и является лидирующим решением в мире. Мы не говорим, что он идеален – вовсе нет, в нем, даже в последней версии хватает своих костылей, непонятных и, часто вынужденных технических решений и недоразумений, но в то же время есть ряд фактов:

  • по итогам мирового конкурса 2013 интранет-систем более 70% победителей используют платформу SharePoint [источник];
  • Стив Балмер (бывший CEO Microsoft) назвал в свое время SharePoint краеугольным камнем в бизнес-стратегии Microsoft [источник];
  • практически все компании из Fortune 500, выбравшие платформу Microsoft для построения своих систем, используют SharePoint [источник].

Емко и кратко, цель, зачем внедряют SharePoint, заключена в следующих двух предложениях (взято со стартовой страницы продукта в TechNet Library):

SharePoint 2013 is a collaboration environment that organizations of all sizes can use to increase the efficiency of business processes. SharePoint 2013 sites provide secure environments that administrators can configure to provide personalized access to documents and other information. Search features enable users to find content efficiently regardless of the physical location of data.

Вольный литературный перевод:

SharePoint 2013 — это среда для совместного сотрудничества, которую организации любого размера могут использовать для повышения эффективности бизнес-процессов. Сайты SharePoint 2013 предоставляют собой безопасные среды, настраиваемые администраторами для обеспечения персонифицированного доступа к документам и иной информации. Поисковые функции позволяют пользователям эффективный поиск контента независимо от физического местоположения данных.

Что же мы получим по факту, если решимся внедрить данный продукт?

  1. Внутренний интранет-сайт или даже интранет-портал организации, который можно будет изменять по вкусу, наполнять любым офисным контентом и сделать доступным из любой точки земного шара.
  2. Формировать в рамках данного портала функционал автоматизированной обработки документов, например, подписывать документы либо автоматически делать рассылку новых приказов по предприятию.
  3. Обеспечить поиск по строке внутри любого документа на портале, причем с учетом прав пользователя.
  4. Получить многоуровневую сетевую корзину для удаляемых документов.
  5. Обеспечить возможность формализации задач (Tasking) для сотрудников и контроля степени их выполнения, а в перспективе – органично перейти на продукты семейства MS Project Server.
  6. Реализовать полноценный электронный документооборот, управлять цепочками жизни документов, обеспечить совместное их редактирование.
  7. Разнообразить жизнь офисов компании, решить проблему разделяемых ресурсов (переговорных комнат, курьерских служб, автопарка).
  8. Облегчить адаптацию новых сотрудников за счет автоматизации контактной информации и отображения структуры подразделений.
  9. Обеспечить безопасность всех хранящихся на портале документов и данных, строить отчеты об доступе к ним и получать всевозможные статистические данные об их использовании.
  10. Устраивать опросы и анкетирование сотрудников по каким-либо важным вопросам.
  11. Обеспечить интеграцию портала с другими системами на предприятии: CRM, ERP, пропускная система, кадровые БД и т.п.
  12. Возможность просмотра документов наиболее популярных офисных форматов прямо в окне браузера, что особенно удобно в нашу эпоху массового использования всевозможных относительно маломощных электронных «гаджетов»: смартфонов, планшетов, портативных нетбуков и т.п.
  13. Построения персонального «облака» данных и функционала интранет-портала.

Многие из функций Вы конечно же не получите прямо из коробки. Однако в последней (на момент написания данной статьи) версии SharePoint 2013 средства интеграции с другими продуктами и системами значительно улучшились и расширились. Продукт наконец-то получил огромный дополнительный функционал в виде командлетов powershell, в его серверной и Enterprise-редакции значительно улучшились средства подключения к внешним информационным базам аналитики и визуализации таблиц данных. Появление отдельной роли сервера рабочих процессов с реализацией практически полноценных алгоритмов обработки элементов списков и реакции на внешние события с циклами и ветвителями дало возможность описывать и автоматизировать довольно сложные бизнес-процессы. Наконец появилась долгожданная возможность не традиционного развертывания в виде набора серверов на своей тех-площадке, а использования как сервиса по подписке либо в облачной среде Microsoft Azure, что значительно сокращает затраты на развертывание, упрощает администрирование и повышает надежность внедряемого решения.

В то же время платформа SharePoint представляет собой по сути конструктор с большим количеством generic-объектов, которые можно взять за основу и «доточить» под нужды конкретного предприятия. Довольно большое количество компаний-интеграторов по всему миру пользуются этим и создают отраслевые решения под конкретные виды бизнеса.

Редакции.

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

Всего существуют три редакции:

  • SharePoint 2013 Foundation – базовая версия, предназначена для малого бизнеса, бесплатна (при наличии лицензии на Windows Server);
  • SharePoint 2013 Server Standard – стандартная версия, расширена коллекция шаблонов сайтов, добавлены коннекторы к внешним системам и БД для визуализации бизнес-логики и отображения всевозможных отчетов, добавлена новая серверная роль фермы рабочих процессов (Workflow 2013), синхронизация внутренних профилей SharePoint с Active Directory, и другой функционал, востребованный в среднем и большом бизнесе.
  • SharePoint 2013 Server Enterprise – максимальная версия, рассчитана на крупные компании, обладает еще большей интеграцией с внешними источниками данных, расширенными возможностями поиска (например умеет искать внутри видеофайлов), еще более расширена коллекция шаблонов для сайтов, доступных из коробки, функционал для создания целых порталов отчетов (Business Intelligence Center) и т.д.

Подробнее о возможностях каждой редакции: статья на MS TechNet

Помимо редакций, разворачиваемых In-Site (локально) конечно же существует редакция использования продукта по подписке как SaaS сервиса. Microsoft активно продвигает в последнее время это направление. У этого подхода есть ряд несомненных плюсов, особенно для малого и среднего бизнеса: экономия на железе и ЗП сотрудников поддержки, значительно снижены возможные проблемы с безопасностью, минимальные риски касательно надежности и возможного простоя. Нет нужды заморачиваться обновлением или апгрейдом аппаратных мощностей. Затраты на внедрение также будут минимизированы. Из минусов — Ваша организация будет подсажена на иглу постоянной абонплаты, Вы будете целиком зависеть от вендора в любом случае, скорость работы с портальным решением будет всецело зависеть от пропускной способности Ваших линков на CDN сеть Microsoft-а.

Насчет рекомендуемых курсов и литературы по сабжу.

Из последних, доступных на момент написания статьи:

Для администрирования: курсы № 331 и 332, соответственно базовый (core) и продвинутый (advanced). Для сертификации MCSE потребуются оба.

Для полного понимания задач архитектуры, администрирования и развертывания, пожалуй, стоит еще прослушать № 488, его должно быть достаточно, чтобы при надобности влезть в мозги к продукту и быть подготовленным в случае крупного внедрения, когда нужно общаться с командой разработчиков под SharePoint «на своем» языке и формировать соответствующие ТЗ на доработки и расширение функционала под конкретные бизнес-задачи.

Кстати, обратите внимание, Microsoft считает курсы по SharePoint-у сложнее, чем какой-то «MCSA: Windows Server 2012», что лишний раз подтверждает тезис о сложности продукта.

Из старых, но не сильно потерявших в актуальности курсов:

M10174 – администрирование и M10175 – разработка приложений.

Оба по SharePoint 2010, но повторюсь, различий с редакцией 2013 именно в администрировании будет не много.

По литературе – тут к сожалению все довольно грустно. Англоязычной литературы довольно много и она хорошего качества, например, «Inside Microsoft SharePoint 2013» и «Microsoft SharePoint 2013 Administration Inside Out», но для ее полноценного чтения нужен хорошо поставленный технический английский. С нормальными переводными изданиями, честно, пока не сталкивался, на моей полке мирно пылится старый добрый «Microsoft Office SharePoint Server 2007. Справочник администратора».

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

БОНУСНАЯ ЛИРИКА

Офисы представительств западных компаний почему-то похожи друг на друга. Много света, стекла, белого металло-пластика, на полу дорогой ковролин, скрывающий стук каблуков. Кстати о ковролине. Всегда было интересно, для чего стараются использовать именно его, а не тот же ламинат. Может быть, отдают дань женской половине офисного планктона, из кожи вон старающегося соблюдать корпоративный дресс-код, а на самом деле изо всех сил старающегося подчеркнуть свой статус сотрудниц западных компаний и не гнушающихся отдавать значительные части своих зарплат и бонусных премий на приобретение модных «тряпок»? Почему именно ковролин? Скрывает стук женских «лубутенов», особенно в обеденное время, когда стайки «успешных и сложившихся деловых женщин» стремятся на нижние этажи респектабельного офиса, чтобы успеть занять место в кафе?

Ход мыслей прервала вышколенная холеная секретарша, пришедшая с «ресепшна». Уведомила о том, что ее величество «эйч-аррр менеджер» изволили задерживаться – «вы же понимаете, утренние пробки…». Предложила чай/кофе. И на том спасибо.

За стеклом «переговорки» по коридору важно, не спеша, проследовали два молодых человека явно IT-шной наружности: достаточно дорогие, модные, но свободные рубашки и джинсы с слегка вытянутыми коленками. В разговоре характерный сленг, видимо, местные системные администраторы. Занять свои рабочие места явно не спешат. Ничего серьезного за ночь не случилось, иначе бы пришли уведомления на смартфоны. А большую часть саппорта все равно делают из забугорно-европейского хед-офиса, потому зачем спешить. Достаточно отметиться внизу на турникетной пропускной офисного здания или при входе в сам офис, смотря как у них построена СКД. На работе все равно скучно – чинный утренний просмотр «дашбоардов», да и то для успокоения DLP системы, типа «айтишники» пришли, согласно СРП в даш посмотрели, все формальности соблюдены. Потом — чтение почты, на предмет «тасков» от начальства. Потом до конца дня – хождение по кабинетам, легкий флирт с женским коллективом, решение с умным видом искусственно созданных проблем низшего исполнительного женского звена в духе «ой, чтобы мальчики зашли».

Внешний вид и возраст указывали на то, что оба парня лет пять «в деле», не более. Технический столичный вуз, подработка на старших курсах в ранге «тыжпрограммист» в отечественных конторах, затем, по окончанию – работа в каком-то интеграторе, скорее всего крупном, обслуживающим зарубежные компании. Там и заметили, пригласили – и вот они здесь. Возможно, этими оболтусами и придется руководить…

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

Если компания решила пригласить IT-менеджера со стороны, то на самом деле это должно вызывать вполне обоснованные подозрения. Не смогли поднять до руководителя из своей среды? Кто-то из старых сотрудников хотел, но в силу каких-то причин ему этого не доверили? Решили полностью обновить руками нового «айтиманагера» проблемное подразделение, в надежде, что он придет со своей командой? Причин может быть много…

В «переговорку» наконец входит HR. Невысокая девушка, молодая, на вид не более 30-ти. Естественно, хорошо одета, но внешность выдает принцип «меня сюда взяли, потому что я умная». В руках – пачка распечаток. Резюме. Явно спешила и не успела взять только те, что нужно, взяла сразу всю пачку. Значит еще есть претенденты и не мало. Ну, оно и понятно. Зарплата в западных компаниях намного больше, балуют соцпакетом, совсем другой круг общения и прочее, прочее, прочее.

Девушка представляется, по-западному здоровается за руку. Корпоративный этикет, едрить-модрить, мы же еуропа… Раскладывает пачку резюме на столе, торопливо ищет нужное. Промахивается мимо моего, значит на самом деле не помнит, кого вызвала так рано на собеседование. Нужно тактично помочь – ложу перед ее глазами свою визитку. Секундное замешательство, глаза пробежали по фамилии, мозг подсказал что резюме с ней уже было пролистано. Нужный листок наконец-то найден, взят в ухоженные руки с хорошим строгим маникюром. Девушка вздыхает, откидывается на спинку стула, принимает деловой вид:

— Ну… Расскажите пожалуйста о себе.

Стандартный вопрос. Значит, в этот раз все будет «по науке». Так, как их, «хер-манагеров» учат на всевозможных курсах и штампуют пачками. Одинаковых. Задающих одни и те же вопросы, в одном и том же порядке.

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

Каким именно способом, формально по какой-то заумной психологической инструкции или же природным способом, интуитивно – это уже детали. Задача грамотного HR-а конечно же не влезть прямо в мозг, но хотя-бы попытаться понять характер и возможности человека, претендующего на достаточно важный пост. Потому, что чисто профессиональные качества оценить она самостоятельно конечно же не сможет, это удел второго и последующих этапов собеседования, когда придет свой профильный специалист. Но вот подстраховать коллектив от появления инородного тела, которое не впишется в сложившиеся правила, характеры взаимоотношений и обычаи конкретной группы людей она обязана. Да и подстраховаться самой – в случае неудачи с новичком, даже если он не справится с самой работой, основные претензии будут к ней.

«Типовой» HR привык, что новички, вступающие в вверенную им психологическую территорию, как правило чувствуют себя неуютно, растерянно, настороженно, собранно, серьезно. Короче как угодно, но не так, как они будут выглядеть, скажем всего через год работы в этой же компании. Если им посчастливится и их возьмут на работу. Чего они совсем практически не ожидают, так это того, что пришедшее «тело» само пойдет в наступление и попытается снять первоначальную напряженность.

Я тоже глубокомысленно вздыхаю, разваливаюсь в кресле, долгий, чуть дольше чем положено, взгляд прямо в глаза рекрутеру. Тут очень важно не «передержать», не позволить себе излишеств. Просто нужно показать, что Вы не боитесь ни ее, ни ее вопросов, ни незнакомого Вам места. Все должно быть максимально учтиво и по-деловому. Ваша цель – сломать ее программу поведения, перевести разговор в нужное Вам русло, не настолько формальное и протокольное. Расположить к себе. Ведь именно она ведет первичный отбор.

— Для начала… Вы хорошо выглядите. Спасибо что пригласили на собеседование. Что Вас конкретно интересует? Личное? Профессиональное?

От ответа она заметно вздрагивает, в ее взгляде пропадает утренние следы сна. Она снова, но в этот раз едва заметно вздыхает. Программа успешно сбита…

— Ну… давайте для начала профессиональное. По какой причине Вы приняли решение сменить работу?

Опять стандартный вопрос… Ну вот разве так много причин, почему люди меняют работу? Их, пожалуй, меньше чем пальцев на руке. Следующий вопрос наверняка будет в духе «кем вы видите себя через год работы в нашей компании».

Объясняю банальные вещи. Стало скучно. Нет интересных проектов. Всего достиг. Зарплата. Ньюансы отечественного бизнеса…

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

— Расскажите о наиболее интересных с вашей точки зрения проектах, которые вам довелось реализовать на ваших прошлых местах трудоустройства.

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

— Вам с техническими подробностями или без?

HR-ы в FMCG компаниях, пусть даже и в западных – это не ровня их коллегам из IT сектора. Для них максимум знаний в IT технологиях – это умение нарисовать диаграмму в MS Excel. Обладательница этого тайного знания обычно одна на отдел и всегда в почете у подруг, уровень ее знаний в области «Пэ-Ка» оценивается ими едва ниже, чем у «ребят-айтишников».

— Давайте попробуем с подробностями. Я кое-что понимаю в ваших терминах…

Хех, кокетство пошло. Да-да, понимаешь ты. Ну хорошо, дорогая, ты сама напросилась.

Проходит примерно минут пятнадцать. Вы увлеченно рассказываете об MPLS/VPN Site-To-Site подключениях между офисами, о решении задачи распределения нагрузки на распределенную о тридцати серверах СУБД, об развертывании единого информационного пространства для всех предприятий холдинга на базе платформы MS SharePoint, о внедрении ERP/MES системы на довольно крупном производственном предприятии. Ваша собеседница уже давно потеряла суть темы, ее ясный взор затуманен, она смотрит на вашу фотографию в резюме, только потому, что смотреть на что-то другое она уже не может – кабинет она и так знает до последней пылинки, а в ваше лицо она и так уже изрядно насмотрелась согласно протоколу.

Вы делаете дипломатическую паузу, всем своим видом показывая готовность продолжать, но не видя в этом смысла. В конце концов, это все просто игра и еще одна проверка вашей вменяемости. Ваша задача закидать ее знаниями, показать, как вы любите свою работу горите ей, потому, что это нормально для нас, IT-шников и приличные «эйч-ары» прекрасно об этом знают. Ну и в конце-концов, показать свое умение элементарно связно говорить. У многих из ай-ти, глубоко ушедших в матрицу, с этим есть на самом деле определенные проблемы.

Она с благодарностью перехватывает эстафету и задает очередной стандартный вопрос:

— Что бы вы хотели получить на новой работе?

Ну ё-мое… ну что-ж ты скучная такая.

— Новый опыт, разумеется. Знакомство с новыми людьми. Новые, интересные задачи. Люблю «ветер в лицо»…

— Ладно. Я вас поняла. Как у вас с английском?

Она заметно оживилась. Понятно. Стандартная карьера для HR-а в западной компании. Филологический вуз либо факультет. Какие-нибудь HR-ные курсы, в лучшем случае двухнедельные, для корочки. Попала в первую западную компанию наверняка по протекции либо рекомендации какой-нибудь подружки-сокурсницы. Судя по немного отрешенному виду, уверенности и возрасту это наверняка максимум вторая ее работа.

— If you want, we continue our speaking in English. What you want to know about me?

Я намеренно произношу эту фразу неправильно. Ох уж эти времена-глаголы. Западники и экспаты так не говорят. Нельзя вот так, в открытую пытаться играть на поле, где она явно сильнее, все-таки филолог. Да и по правде, мой разговорный деловой английский конечно же не так хорош. Хотя при желании можно и ей преподнести несколько сюрпризов. Например, попросить адекватно перевести вполне безобидную фразу «Not another room to copy this file». Англичане, люди, если бы вы знали, как тяжело техническим сухарям с сугубо математическо-логическим мышлением вроде нас учить ваш совсем нелогичный язык.

Она начинает задавать свои вопросы на английском. Язык у нее поставлен хорошо, говорит на нем свободно. Ну что-же, кто на что учился…

Отвечаю ей, при случае стараясь ввернуть какие-то IT-шные термины. Судя по всему, результат беседы на профильном «ленгвиче» ее вполне устраивает.

Далее следует официальная часть – рассказы о компании, о ее высоком, несгибаемом корпоративном духе и возвышенных ценностях, о великой миссии компании и так далее. Выдранный из контекста стандартный NLP бред. Миссия у любой компании, хоть западной, хоть нашей, может быть только одна – нарубить как больше «бабла». И так, чтобы потом поменьше его отдать государству. И быть готовой нарубить минимум столько же в следующем финансовом году.

Собеседование заканчивается. Она подводит итоги, произносит стандартную фразу в духе «мы вам перезвоним». Все становится ясно. Какое-то рекрутинговое агентство уже обо всем с ней договорилось и гонорар за услугу поиска настоящего специалиста будет счастливо распилен между агентством и HR-ом вместе с ответственностью. А где-то уже ждет формализации своего трудоустройства какой-то счастливчик. И все эти собеседования – это просто формальность, призванная сымитировать видимость работы и оправдать присутствие позиции HR-рекрутера в штате представительства. Все всем довольны, всё всех устраивает, возможные риски – минимизированы. Господи, и здесь коррупция…

Я еще раз благодарю за встречу и выхожу из кабинета на «ресепшн». Там уже ждет другой соискатель неизвестности – уставший, немного зачуханный парень, тоже явно из отечественного бизнеса. Ошалевший от крутизны офиса, в который он попал и от внеземной красоты надменных «багинь», чинно идущих мимо него в дорогих туфлях на высокой шпильке по дорогому ковролиновому полу коридора.
Удачи тебе, брат. Правда она тебе все равно не понадобится. И за тебя, и за меня здесь уже давно все решено…

Глава 2. Планирование и подготовительная работа. То, что у нас никогда не делают.

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

SharePoint – сложный продукт, я еще не раз в статье буду повторять эту фразу. Его внедрение – очень комплексное мероприятие, которое потребует достаточно серьезной подготовки и предварительного аудита. Устойчиво ли работают каналы связи между офисами, достаточна ли их пропускная способность? Какие поколения операционных систем Windows используются на Вашем предприятии? В каких браузерах работают пользователи, обновляются ли они? Что с мобильными клиентами, какие гаджеты они пользуют и с каких из них они надеются просматривать документы на портале? Много ли из пользователей работают «в поле»? Есть ли в штате подразделения ИТ сотрудники, которые оказывают им поддержку? Как планируется проводить обучающие мероприятия? Есть также вопросы чисто организационного характера: в каком порядке внедрять продукт по подразделениям? Какие из них больше нуждаются во внутреннем портале, а каким он наоборот, осложнит жизнь? На эти и многие другие вопросы необходимо найти ответы ДО внедрения и развертывания.

Мы будем рассматривать следующий сценарий развертывания.

  1. Нам необходимо развернуть именно редакцию SharePoint Server 2013. Редакция Foundation является по сути подмножеством серверной и если вы освоите серверную, то развернуть более простое решение не составит для вас труда. Альтернативно можно развернуть Foundation и затем расширить редакцию.
  2. У нас есть бюджет на отдельный физический сервер, который мы сделаем фермой виртуальных машин (гипервизором) и на котором мы развернем три виртуальных сервера: роли Web-Frontend и WebApplication, MS SQL Database и MS Office WebApps. В перспективе там же можно будет поднять отдельный сервер рабочих процессов, если бизнес их осилит и ощутит реальную потребность.
  3. Структура нашей организации представляет собой главный офис и один либо более филиальных офисов. Ферма интранет-портала будет физически располагаться в главном офисе.
  4. На предприятии используется сеть с доменами MS Windows, между офисами реализована связь в виде VPN тунелирования, физическое, либо MPLS соединение, между доменами настроены трасты либо домены являются частью одного AD леса.

Каковы же лучшие практики, как подготовить свое предприятие к началу внедрения? На самом деле многое достаточно очевидно и давно присутствует в том же ITIL, написанном «потом и кровью» системных администраторов и IT-менеджеров.

Стандартизация клиентского ПО.

В идеале – одна-две версии Windows (причем намного лучше, если это будет Windows 7 или выше), не более двух браузеров (один из которых – IE), в качестве офисного ПО – MS Office 2007 (а лучше Office 2010 или выше), умеренное количество мобильных платформ и особенно диагоналей экрана.

Почему это все так важно? По поводу версий Windows – в давние времена внедрение старого SharePoint 2007 на одной только Windows XP был поистине испытанием, кто хоть раз сталкивался с этим, не забудет до сих пор: системную службу веб-клиента, WebDav, жалобы на представление проводника и табличное представление списка, магически ломающееся после очередного обновления MS Office и почему-то зависящее от компонента MS Access… С SharePoint 2013 все уже намного лучше, но подводных камней все равно хватает. Например, достаточно вкусная его фишка загрузки документов в библиотеку простым перетаскиванием оных с рабочего стола в окно браузера в Windows XP в IE вы не заставите работать. Все просто – максимальная версия IE для XP – 8-я, в нем не работает соответствующий javascript-код, поэтому под этот User-Agent SharePoint рендерит страницу без него. Способ конечно есть, но он не совсем лицензионно чист…

Бороться с глюками отображения какого-то контента, например, воспроизведения видеоролика с портала SharePoint – лучше в паре браузеров, например, в IE и Google Chrome. А не дополнительно в Mozilla FireFox, Opera, Vivaldi, Amigo, Yandex Browser, Edge и черте-в чем еще… Если на предприятии есть убежденные свидетели секты «яблочников» – оказываем им должное внимание и почтение, называем их исключительными, видящими истинный путь… но ставим им Google Chrome и убеждаем пользоваться порталом через него. Пусть на все остальное они по-прежнему смотрят через свой Safari, но не на наш портал.

Тема использования браузеров – вообще, довольно больной вопрос для всего семейства SharePoint, поэтому мы поговорим о ней дополнительно в специальной главе.

Хорошие каналы связи и подключения к сети Интернет.

Это — само собой. Если Вы разместите ферму SharePoint на своей офисной площадке и не озаботитесь нормальной, качественной связью с филиалами – готовьтесь к худшему. Не взлетит. Вам будет сложно объяснить директору удаленного филиала, почему у него долго открывается архиважный отчет в PDF с красивыми картинками, порожденный совместным сумрачным гением финотдела и маркетологов, весящий несколько десятков мегабайт. Он (директор) промучается один раз, потом второй, а на третий накапает на ваш портал Вашему высокому руководству и… все. Ой, все.

По этой же причине крайне желательно также иметь резервирование и балансировку каналов связи.

Порядок в AD.

Типичные системные администраторы довольно ленивы. Типичные отечественные офисы – рассадники полного пофигизма пользователей. Что, секретарша Маша вышла (в очередной раз) замуж и поменяла фамилию? Никому об этом не сказала, думала сами догадаетесь? А теперь гневно звонит к Вам в отдел и требует, чтобы на портале ее фамилия была срочно исправлена? Уже исправили? А, уже не надо, надо вернуть все взад, она уже развелась. И еще — ее повысили, перевели в другой отдел и ей не хватает прав и она по старой традиции, вложила все свое недовольство в уши шефу? Ну-ну…

Гигиена Active Directory – залог здоровья и безопасности организации. Пользователь уволился, принес обходной лист? Сразу заблокировать. НЕ УДАЛЯТЬ! Есть такие адепты секты параноиков от ИБ. Удаляют пользователей из AD… Дескать, только так пользователь полностью теряет свои полномочия в системе. А потом — сидят и гадают, чей это UID висит в свойствах безопасности какой-то сетевой папки, кто имел к ней доступ пять лет назад? Есть паранойя еще круче – был свидетелем, как в одной, весьма формализованной конторе (где все по СРП да по СРМ) были разработаны штатные, довольно объемные процедуры по вытиранию ушедших сотрудников из всего, где только можно и по вписыванию персонально туда же новых…

Вместо кучи непонятной технической работы и бюрократизма заведите себе очень простое и хорошее правило. Для каждой штатной должности на предприятии – создавать отдельную группу. Это будет олицетворением его роли, его полномочий в электронном океане предприятия. И везде, где требуется указать пользовательские разрешения – используйте ТОЛЬКО эти группы. И пусть для большинства групп внутри них будет всего по одному пользователю – магия всего нескольких кликов, которые Вам понадобятся, чтобы снять все полномочия с ушедшего в мир иной, тьфу, с Вашего предприятия, пользователя на новичка путем простого редактирования группы его должности, покорит Вас один раз и навсегда. Нужно дать перекрестные полномочия между двумя и более подразделений для одного сотрудника? Добавьте группу в группу. И тогда в любой момент можно будет устроить автоматизированный аудит, который соберет для Вас информацию по группам и предоставит наименования должностей, а не ФИО всех тех сотен и тысяч несчастных, которые работали у Вас последние десять лет. Нагрузка на AD будет небольшая, не лопнет, не бойтесь.

Правильное именование доменных имен для ресурсов организации в Интернете и локальные имена доменов Active Directory.

Ооо, это на самом деле сложный и очень ответственный момент.
Возможны целых два варианта.

Вариант первый.
Для начала наглядная иллюстрация этого варианта:

image

Active Directory стоит уже давно. Лет десять, а то и больше, с родословной постепенных повышений уровня леса аж от дедушки Windows 2000. С огромной долей вероятности именование доменов AD в этом случае представляет собой <что-то-там>.local.

Последние несколько лет Microsoft всячески ругает в документации и обучающих курсах данное наименование, призывая делать так, как описано во втором варианте. Однако в данном случае лукавству «мелкомягких» нет предела, ситуация очень похожа на бородатый анекдот о фразах Била Гейтса касательно размера памяти в персональных ПК и протоколов стека TCP/IP. Дело в том, что во времена вывода на рынок Windows 2000 Server, презентации Active Directory и шумихи вокруг всего этого Microsoft не успела или не посчитала нужным объяснить системным администраторам как им правильно именовать свои AD домены. В результате произошел интересный казус с фактически распределенной DOS-атакой на корневые DNS сервера всей сети Интернет из-за того, что администраторы Windows-серверов массово стали использовать так называемые single-label наименования своих доменов – названия доменов состояли всего из одного слова. Бородатые и в шерстяных свитерах, истинные UNIX-администраторы «корневиков» в свою очередь недвусмысленно покрутили в ответ пальцем у виска. В спешном порядке «мелкомягкие» родили рекомендацию переименовать такие имена локальных доменов, например, просто добавив после имени точку с неким словом «local». Windows-администраторы восприняли инструкцию буквально, с тех пор мы имеем огромное поголовье локальных сетевых доменов в виде «company.local».

Чем это нам грозит при внедрении? SharePoint – это по сути сайт. Сайт имеет имя. Сайтом предполагается пользоваться как изнутри локальных сетей предприятия и филиалов, так и снаружи, с мобильных клиентов либо ноутбуков. Причем скорее всего без использования корпоративного VPN-а.

Если пользователь, который находится со своим ноутбуком вне офиса но имеет линк на Интернет, например в гостинице, кафе или посредством мобильной связи, введет в своем браузере адрес, то ему ответит DNS сервер провайдера, которому в конечном случае в итоге ответит уже ns-сервер, обслуживающий конкретный домен. Если этот же пользователь будет находиться в офисе компании в зоне действия офисного WiFi либо подключаясь в розетку – ему ответит уже DNS сервер контроллера домена либо другой внутренний DNS сервер.

Можно дать два имени интранет-порталу. Скажем изнутри он будет доступен как intranet.company.local, а снаружи – уже как intranet.company.com. И прописать эти два разных имени на разных DNS серверах – внутри офиса и снаружи на NS. Вроде и здорово, проблема решена, но… некрасиво. Да и пользователям неудобно, особенно тем, кто с ноутом то в офисе, то в поле. Это ж две ссылки делать надо, да и стартовой страницей два сайта не сделать. В случае корпоративного VPN-а, либо использования всякого разного корпоративно-энтерпрайзового софта либо клиентов Sophos-вских, Cisco-вских, да Fortinet-овских это конечно обойти можно, обслуживать пользователя внутри и вне офиса будет в таком случае один набор доменных DNS серверов на контроллерах домена. Да вот только не всегда подобные плюшки доступны по бюджету либо какой иной причине. Например, яблочные девайсы очень любят при очередном обновлении своей iOS-и сносить настройки мобильной связи и заодно VPN-подключений, прописанных в системе. А в Android-е только в последних версиях появился вменяемый контроль устройства и «мультиюзерность», что позволяет бить пользователю по рукам, правда не в случае с BYOD…

В общем, было бы здорово иметь одну-единственную ссылку на интранет-портал, которые и пользователи в состоянии запомнить, и прописать можно везде и от корпоративных VPN-ов никак не зависеть.

Как же этого добиться в случае, если имеем «.local» домены, переименовывать которые не сильно хочется?
Придется пойти на хитрость. Нужно каким-то способом заставить либо браузер пользователя направлять сразу на нужный IP адрес сервера WFE роли SharePoint, либо объяснить офисному доменному DNS серверу что он тоже полномочен обслуживать зону «intranet.company.com». Первый способ – совершенно «топорный», править на ПК пользователя (или что уж мелочиться, сразу доменного DNS сервера) файл %SYSTEMROOT%system32driversetchosts – и это в наше-то время? Второй – более элегантный, заключается он в том, чтобы добавить зону «intranet.company.com» в перечень зон доменного DNS сервера и прописать там как @ зоны нужный IP адрес сервера WFE.

Аналогичную операцию будет необходимо проделать на всех доменных DNS серверах во всех филиалах.

Теперь все здорово: у нас одна ссылка на корпоративный интранет-портал и домены переименовывать не нужно.

Кстати SharePoint 2013, как и многие другие продукты, тесно интегрируемые с Active Directory, официально не поддерживает single-label домены.

Вариант второй.

Иллюстрация:

image

Мы имеем «новомодный» лес, в котором есть отдельный сервер, обслуживающий корневой домен леса и некоторое количество доменов офисов. DNS сервер леса прекрасно осведомлен о том, где находится ферма SharePoint, а внешний NS сервер продолжает отсылать пользователей на Real IP адреса публикации фермы на периметре главной офисной площадки.

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

Наличие SSL сертификатов.

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

Сделать это можно разными способами, например, используя классический VPN, либо технологию MS DirectAccess, либо стандартный SSL. Последний способ наиболее универсален и легок в развертывании и поддержке, хотя и не идеален.

Для того, чтобы использовать SSL, нам потребуется соответствующий сертификат. Он может быть куплен в одном из сервисов-центров сертификации (CA) типа Thawte, Verisign, RapidSSL и прочих, либо сгенерирован самостоятельно. В последнем случае такой сертификат называется самоподписным и с ним связан ряд потенциальных проблем. Дело в том, что браузер, чтобы доверять какому-либо сайту, защищенному с помощью сертификата, должен в первую очередь доверять центру сертификации, выдавшему этот сертификат. Доверять он может только в случае, когда этот центр явно прописан как доверенный в настройках самого браузера (особенно справедливо для Mozilla Firefox), либо браузер обращается к системному хранилищу сертификатов и получает из него подтверждение, что этому CA доверяет сама операционная система, а значит может доверять и он. По такой схеме работает IE в Windows и некоторые другие браузеры, например, Google Chrome.

Получить информацию о сертификате, какому сайту (для какого доменного имени) он выдан и какой CA его выдал можно прямо из любого браузера. Например, ниже показан сертификат, выданный сайту Google центром сертификатов GeoTrust Global [24-25]:

imageimage

Большие, известные центры сертификатов помещаются в хранилище Windows самой Microsoft, их обновление (а центры сертификатов представлены также сертификатами, а значит имеют срок годности) происходит вместе с обновлениями самой операционной системы.

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

Сами сертификаты различаются также по типу: выданные на один домен (одинарные, single-domain) либо т.наз. wild-овые, выданные на субдомены. Т.е. сертификат, выданный на домен company.com будет одинарным, а вот выданный на *.company.com – уже «вайлдовым», мультидоменным. Разницам между ними конечно же в цене.

Возвращаясь к самоподписным сертификатам – с ними напрямую связана проблема их происхождения. Если мы сгенерируем их самостоятельно вручную, например, с помощью пакета утилит OpenSSL либо средствами сервера IIS, то доверять им никто не будет, т.к. в первом же браузере, в котором мы откроем сайт, защищенный с помощью этого сертификата, будет выдана ошибка доверия сертификату, который был выдан неизвестным CA. Есть правда исключение из этого правила в случае, если Вы развернете локальный доменный центр сертификатов – тогда доверие к сертификату в Windows будет настроено автоматически, на основании того, что в каждой рабочей станции, введенной в домен групповой политикой будет прописан доменный CA в качестве доверительного.

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

Конечно можно руками прописать сертификат в качестве доверительного на каждом устройстве и этот вариант вполне жизнеспособен в случае, когда у Вас десятки пользователей, но абсолютно бесполезен, когда у Вас их сотни, либо Вам нужно обеспечить доступ к порталу, скажем, для Ваших партнеров.

Интерес в интранет-портале как таковом со стороны бизнеса.

Бизнесу должен быть действительно НУЖЕН портал. И не только топам и собственникам, которые жаждут получить дополнительное средство контроля и collaborate-шна своих сотрудников.

Чем больше сотрудников и руководителей Вы заинтересуете его возможностями – тем успешнее и проще будет внедрение. Человеческая натура так устроена, что попытка навязать что-то новое без объяснения причины как это новое может облегчить ему повседневную жизнь – скорее всего наткнется на открытую антипатию или, чего хуже, на скрытый саботаж. Также ошибкой будет навязывание пользователям пользования портала со вздохом, будто оно надо только высокому руководству, а вы совсем не при делах, вы просто исполнитель их воли. Пользователи Вас конечно пожалеют, но саботировать станут с удвоенной энергией, в них проснется Стокгольмский синдром.

Заинтересуйте HR-ов возможностью разместить на портале контакты всех сотрудников предприятия, дайте им возможность повесить на видное место какой-нить «Справочник новичка», где они распишут fresh-meat-у все прелести и преимущества работы на Вашем предприятии, а себе в резюме добавят отдельной строкой скилл создания программы адаптации для новичков и использования для этой программы аж собственного интранет-портала. Пообещайте сделать страничку интранет-портала стартовой в браузерах по умолчанию. Удобно же будет пользователям, да и красиво выглядит, корпоративно. Дайте им («хрен-манагерам») возможность совместно поучаствовать во внедрении продукта, поделитесь частичкой славы.

За чашечкой кофе в офисном кафе заикнитесь руководителю field-force-а насчет интересной возможности создания некоего единого онлайнового хранилища всех документов, в которых нуждаются его сотрудники в поле, а в перспективе нарисуйте ему сказку постановки планов сотрудникам тоже через интранет-портал.

Забежав на минутку в бухгалтерию или к секретарям поведайте сотрудницам о великой возможности выложить в будущем раз и навсегда куда-нить образцы фирменных бланков с реквизитами, чтобы их больше не дергали каждый день в духе «Светааа, кинь мне пожалуйста электронкой наш бланк с новым банком».

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

Решительной рукой предложите всем решить старые как мир конфликты разделяемых офисных ресурсов: всевозможных переговорных комнат, курьерских служб, машин автопарка и прочего.

Совсем немного грамотной подготовительной работы – и руководители отделов на очередном совещании сами будут хором волать перед топом фразы в духе «нам нада портал!».

Планирование аппаратных и программных ресурсов.

Требования к программной платформе.

Требования к операционной системе — Windows Server 2008 R2 Service Pack 1 (SP1) Standard или выше, учтите, что для установки на Windows 2012R2 ролей WFE и WebApplication Вам потребуется соответствующий установочный образ SharePoint 2013 with SP1.
Требования к MS SQL Server — 64-bit edition of SQL Server 2008 R2 Service Pack 1.

Требования к аппаратной платформе.

Для нашего сценария я бы настоятельно рекомендовал использовать единый аппаратный сервер в качестве платформы виртуализации. На данный момент Microsoft сделал довольно сильный ход, предложив бесплатную версию Windows Hyper-V Server 2012 R2 в качестве подобной платформы.

В этом случае довольно стандартных аппаратных средств в виде одного Intel Xeon 3.7 Ghz, 64 Gb RAM и гибридной дисковой (SATA/SSD диски с хорошим аппаратным контроллером дисковой, правильно понимающим SSD) вполне хватит, чтобы развернуть три виртуальных сервера (WFE&WebApps + SQL-Database + OWAps) и обслуживать до 1000 пользователей при, порядка 50-100 одновременно запрашивающих страницы.

Процессор значительно больше будет утилизироваться серверами «веб-фронтенда» и «офис-апа» вследствие ресурсоемкости процессорного времени со стороны платформы .NET. Требования к памяти также больше у серверов данной роли по тем же причинам – фреймворк и веб-сервер IIS используют развитое кеширование для ускорения отклика.

Нормальным будет распределение памяти фермы примерно в следующей пропорции:

  • роль WFE & WebApp – 24 Gb
  • роль SQL-Database – 24 Gb
  • роль OWAps – 8 Gb

Остальное отдадите под саму хост-систему Hyper-V.

Дисковая будет узким местом для сервера роли SQL-Database. Будет правильным грамотно подойти к построению дисковой для сервера виртуальных машин будущей фермы SharePoint. Скажем, два обычных SATA диска объединить в RAID1 для развертывания на этом разделе системы гипервизора (Windows Hyper-V Server 2012R2), еще два, а лучше четыре объединить в RAID1 (RAID10) для использования его в качестве тома для хранилища конфигураций виртуальных гостевых систем, а также для хранения контейнеров их дисков и, наконец, еще один RAID1 раздел из двух SSD накопителей использовать в качестве подключенного напрямую к виртуальной машине с ролью SQL-Database для хранения на этом томе контентных БД с SharePoint, которые нуждаются в максимальном быстродействии.
Проще понять принцип построения дисковой можно на иллюстрации ниже:

image

Есть еще небольшие хитрости, как оптимизировать использование ресурсов. Например, для сервера роли SQL-Database целесообразно использовать три контейнера дисков – один для системы, один (большой) для контентных БД для данных, имеющих большой размер, но мало используемых (классический пример – медиатеки) и, наконец, напрямую подстегнутый физический SSD том для конфигурационной БД фермы (SharePoint_Config) и контентных баз, требующих максимальной доступности и скорости обращения. Кстати разметку файловой системы на томах с виртуалками лучше сразу делать максимального для NTFS размера, аналогичное правило действует и для разметки томов с БД внутри самих виртуалок. Прирост производительности конечно получите небольшой, в пределах статистической погрешности, зато спать будете спокойно, уверенные в том, что все сделали правильно.

Ферма SharePoint 2013, виртуализированная целиком, дает массу преимуществ:

  1. Значительно проще наращивать аппаратные ресурсы при росте потребностей, балансировать утилизацией ресурсов при просчетах с планированием и в моменты пиковых нагрузок. Также значительно упрощается кардинальный апгрейд или переезд на новое железо в случае необходимости.
  2. Ускорение внутриферменных сетевых задержек – серверам ролей необходимо «общаться» между собой – с WFE&WebApps идут запросы к СУБД. В случае виртуализации весь внутриферменный сетевой трафик будет происходить по сути в памяти, без задействования физической сети.
  3. Потенциальная возможность выполнения полного резервного копирования средствами самой платформы виртуализации. Да, SharePoint и MS SQL Server обладают собственными средствами резервного копирования, но соблазн слить в бекап целые образы виртуальных машин хотя-бы раз в месяц – слишком велик.

Напоследок пару слов о антивирусной защите платформы. Категорически не следует использовать на серверах фермы стандартные серверные или сетевые антивирусы, не учитывающие специфику фермы SharePoint. По моим оценкам, развертывание на серверах антивирусных агентов продуктов Symantec, TrendMicro или любого другого вендора приводит к катастрофическому падению производительности – субъективно порядка 20% и более. Особенно «страдают» сервера ролей SQL-Database, причем даже при настройке исключений файлов БД либо папок, где они размещаются. Аналогично резко падает производительность серверов роли OWAps, которые архитектурно имеют распределенный файловый кеш – разница в скорости открытия одного и того же документа может достигать нескольких раз!

Ведущими вендорами антивирусных систем разработаны специальные продукты, ориентированные именно к SharePoint: TrendMicro PortalProtect, Symantec Protection for SharePoint, McAfee Security for SharePoint, Kapersky Security for SharePoint Server и т.д. Эти антивирусные системы понимают, как SharePoint хранит документы в контентных базах данных, какие из его системных сервисов являются критическими для быстродействия фермы и как правильно проверять приложения из пулов веб-приложений на IIS.

Достаточно информативная статья на эту тему.

Если же бюджета для приобретения данных продуктов не предвидится – в принципе можно ограничиться антивирусной защитой клиентских точек, останутся лишь гипотетические сетевые уязвимости самих операционных систем серверов фермы, сервисы IIS и MS SQL как таковые.

БОНУСНАЯ ЛИРИКА

Переговоры в индустрии ИТ технологий между представителем бизнеса реального сектора (IT-менеджером, он же Заказчик) и представителем контрагента (он же Исполнитель) бывают двух типов.

Первый тип – переговоры ведутся в неформальной обстановке. Вы уже давно и хорошо знаете того, кто к вам пришел. Вы сотрудничаете много лет, у вас есть уже ряд реализованных совместных проектов, все на доверии. Как правило, во время таких переговоров решаются вопросы освоения будущих бюджетов, оговаривается доля интереса в них со стороны Заказчика, сроки исполнения, открытия бюджетных линий и прочее. ИТ-служба – это по сути сервисное подразделение, своего рода аналог того же отдела закупки или снабжения. Коррупционная составляющая – неотъемлемый бизнес-процесс, традиция вознаграждения сотрудника за совместную работу со стороны Исполнителя существует уже десятилетиями. Называется это по-разному, в зависимости от терминологии конкретной отрасли: от банального «отката» в «отечке» до высокопарного «финсервиса» в европейской компании. В принципе, в западном бизнесе подобные вещи как бы не приняты, но стоимости бюджетов проектов в отечественных ИТ-компаниях и интеграторах всегда ниже западных, так что любой финансовый директор, даже экспат, закроет на это глаза. И потому катаются IT-Manager’s представительств западников со своими семьями на джипах за несколько десятков тысяч вечнозеленых, да живут в хороших новостроях или даже за чертой столиц в фешенебельных коттеджах. Хотя даже с ихними окладами этого они позволить себе вроде-бы не могут. Но… положение обязывает. Все так делают…

Второй тип – каким-то чудом к вам на переговоры напрашивается очередной «разведчик — продаван» из какой-то компании, которая ну очень хочет заполучить стабильного клиента с нормальным бюджетом, потребителя дорогих решений с хорошей маржой. Такие переговоры ведутся как бы официально, чинно, при пиджаках и галстуках на вашей территории, в вашей комнате для переговоров. Суть переговоров сводится обычно к представлению красочной макулатуры – всевозможных релизов, презентаций, копий статусов компании-возможного партнера. К рисованию красивых воздушных замков. К рассказам об историях успешного сотрудничества с аналогичными компаниями. Все это время менеджер внимательно смотрит вам в глаза, пытаясь угадать, когда выкладывать главный козырь или задавать «основной вопрос» – вашу долю.

К сожалению, подавляющее большинство отечественных средних и мелких компаний, занимающихся продажами либо аутсорсом ведут примерно одинаковую стратегию бизнеса. Есть небольшой костяк, постоянный штат. Как правило это директор (сам как правило бывший в отдаленном прошлом системным администратором или даже IT-менеджером), бухгалтер, несколько «продажников» и пара специалистов по наиболее востребованным направлениям. Все остальные специалисты привлекаются как внешние консультанты, по договору, под конкретный проект. Парадоксально, но различных программных продуктов и аппаратных устройств на сегодняшнее время настолько велико, что количество хороших специалистов по ним намного меньше количества компаний, готовых внедрять эти решения. Т.е. при наличии денег у заказчика и его желания что-то внедрять – свои услуги ему предложат сразу несколько компаний, хотя по факту любая из них затем привлечет всего одного профессионала на рынке, обладающего соответствующей компетенцией. Можно наткнуться на смешную ситуацию: во время тендера по какому-то решению – все компании охотно будут предлагать проконсультироваться у «их» специалиста, который окажется общим у всех компаний.

В довершение всего, объявление тендеров на внедрение какого-то конкретного программного продукта либо аппаратного комплекса в большинстве своем весь совершенно глупая. Те, кто «в теме» — прекрасно знают, что любой вендор ведет политику защиты своих дилеров и предлагает т.наз. спец-цену первому обратившемуся под конкретный проект «продавану». Таким образом, кто первый дозвонился в представительство вендора и назвал два волшебных слова – название потенциального клиента и интересующий его продукт – «того и тапки». Речь конечно же идет о стандартных «точечных» внедрениях и единичных продажах. Для комплексных мульти-вендорных проектов все сложнее.

Коррумпированность IT – тотальная. От банальной заправки картриджей для маленькой фирмы до строительства серверных и целых дата-центров – везде, кроме официального бюджета присутствует заложенный в цену «финсервис».

Это считается нормальным и как правило при встрече друзей-IT директоров обязательно будет обсуждаться кто сколько денег и через кого освоил. Увы, это часть нашей культуры. Более того, тех, кто не идет по такому пути обычно за глаза называют чудаками и людьми, не приспособленными к жизни. У них редко удачно складывается карьера и даже личная жизнь. Они не умеют приспосабливаться…

А те, кто громче всех кричит в социальных сетях о коррумпированности власти и бизнеса, перекрашивает аватарки в них в цвета французского флага после терактов Шарли-Хебдо, проявляют демонстративный патриотизм и вываливает целые фотосессии с отдыха за рубежом, сами же на следующий день тихонько, украдкой, обсуждают размеры финсервиса с очередным «своим» контрагентом или поставщиком.

Цинизм, господа-с…

Глава 3. Архитектура – просто о сложном.

Новичкам, пытаясь узнать больше о сути SharePoint, как и всегда в подобных ситуациях, приходится пробираться через завалы чисто маркетинговых построений в духе «совокупность веб-приложений для совместной работы» или «продукт позволяет сотрудникам обогащать свой опыт коллективной работы над важными документами». На самом деле Вам, как внедренцам, достаточно понимать, что SharePoint из коробки – это просто сайт. И ничего более. Выражаясь языком веб-мастеров – пустая CMS. То, какие задачи он позволит решать в Вашей организации – всецело зависит от Ваших потребностей и навыков.

Старослужащие говорят, в самом Microsoft-е в свое время первое внедрение SharePoint-а с треском провалилось. Типа продукт получился слишком гибким, а пользователям дали слишком много прав, но не дали квотирование и вследствие этого очень быстро сервера перестали справляться с наплывом контента и всяких сайтовых структур, порожденных пользователями. В этом случае нужно отдать MS должное – как истинные врачи сперва попробовали на себе, а только затем выпустили в массы.

Кто любит IT археологию – вот Вам ссылка на неофициальную историю продукта.

С тех пор прошло довольно много времени, появились новые технологии, возможности браузеров возросли многократно, появились новые потребности в повышении комфорта и удобства работы пользователей. Возможности SharePoint также на порядки возросли – в WSS (Windows SharePoint Services) мы даже мечтать не могли о технологии AJAX и о том, что при работе с списком на странице больше не нужно будет ее постоянно запрашивать заново с сервера, а документы MS Office и даже PDF (Карл!) отныне мы сможем просматривать прямо в окне браузера.

Физическая архитектура.

Техническим языком SharePoint представляет собой набор сайтов, динамически генерируемых с помощью технологии MS ASP.NET, с контентом, хранящимся в БД MS SQL Server и способном взаимодействовать с другими приложениями или платформами, например, с MS Office Web Apps, MS Exchange, MS Project Server, MS Dynamix и т.д., причем не обязательно с приставкой «MS» — сторонних продуктов также хватает.

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

Совокупность данных серверов называется фермой SharePoint (SharePoint Farm). Минимально существуют следующие роли (серверы) фермы:

  1. Роль Web Front-End Server: сервер(ы) этой роли отвечают за прием и обработку пользовательских запросов. По сути это сервер(ы) MS IIS, которые обслуживают поступающие от пользователей веб-запросы.
  2. Роль Web-Application Server: сервер(ы) этой роли отвечают за динамическое формирование страниц и ответов серверов путем обработки сценариев, написанных на языке ASP.NET и использующие для этого .NET Framework. Страницы и ответы формируются на основе данных из БД. Для проектирования небольших ферм, рассчитанных на обслуживание небольшого количества пользователей (несколько тысяч пользователей, одновременно работают несколько сотен) данную роль часто совмещают с предыдущей ролью.
  3. Роль SQL-Database Server: практически ВЕСЬ контент и ВСЯ структура портала/сайтов SharePoint хранится внутри БД.

Все это – базовые роли. Еще возможно развертывание ролей отдельного сервера поиска и индекса, сервера новых рабочих процессов (в SharePoint 2013 появилась отдельная роль сервера с расширенными возможностями, при сохранении возможности использования старого механизма). Данные роли потребуется развернуть в случае построения действительно больших ферм, либо если возникнет необходимость использования дополнительного функционала новых Workprocess.

В целом архитектура фермы – горизонтально и вертикально масштабируемая, при необходимости можно как апгрейдить оборудование, либо выделять больше ресурсов серверам ролей в случае виртуальных машин, так и добавлять серверы для каждой роли по мере потребностей. Возможности кластеризации решаются исходя из конкретной роли – для IIS/WebApps это стандартные средства системы, а для роли SQL-Database функционалом MS SQL.

В своем повествовании мы рассмотрим отдельно еще одну роль – т.наз. OWAps: Office Web Apps. На самом деле это не совсем роль SharePoint, по-простому это – отдельный сервер рендеринга документов MS Office в веб-страницы (веб-версия Microsoft Office). Ранее его предок действительно входил в комплект поставки SharePoint Server 2010 и обладал довольно скромными возможностями, однако для 2013-й версии Microsoft принял логичное решение выделить данный функционал в виде отдельно развертываемого сервера, с возможностью подключения к нему других приложений, не только SharePoint, например, того же OWA в Exchange. По сути это – локальный вариант облачного сервиса Office 365. Политика лицензирования его проста, в бесплатном варианте продукт позволяет только визуализировать документы в браузере и просматривать их. В платном варианте Вы получаете более-менее полноценный Office 365, т.е. документы можно будет уже и редактировать прямо в браузере, совсем как в 365-м. Коллеги говорят, что в данный момент продукт вроде бы уже недоступен для свободного скачивания, но в подписке MSDN он все еще есть и политика его лицензирования не изменилась. Продукт интенсивно развивается и на самом деле действительно интересен, т.к. подымает функционал платформы SharePoint 2013 как системы документооборота на новый уровень. Также с данным продуктом связан еще один казус – его часто переименовывают. Я привык называть его Office Web Apps и использовать акроним OWAps, но сейчас Microsoft кличет его просто Office Online.

Немного слов о том, как SharePoint 2013 устроен физически.
Поскольку интранет-портал – это по сути обычный ASP.Net сайт, то разумеется без сервера IIS у нас не обошлось. Версия MS Internet Information Server (IIS) у нас может быть разная, напомню, продукт можно развернуть, начиная с версии Windows 2008R2. Т.е. имеем версии IIS с 7.5 до 8.5. Общее для всех версий будет одно – необходимо будет присутствие платформы Microsoft .NET Framework версии 4.5.

Веб-сервер корпорации Microsoft под названием IIS – довольно сложный, модульный продукт. Детально его архитектура (для разных версий) описана в данном документе. У нас нет времени его читать, трубы горят от нетерпения приступить к установке, тем более документ на английском, поэтому попытаюсь упрощенно объяснить, как оно работает в последних версиях для самых неторопливых.

В ядре Windows висит в качестве драйвера HTTP.sys, который иначе еще называют веб-слушателем (web-listener). Он отвечает за получение и обработку всех поступающих на сервер запросов. Висит он путем прикрепления (bind-а) на определенные порты, по дефолту для HTTP и HTTPS это 80 и 443 соответственно. Висит он в ядре не просто так – сделано это для максимального ускорения обработки запросов, повышения доступности, приоритет для драйвера как бы максимален, да и не нужно переключаться в контекст пользовательского режима, в доках также пишут, что он там может юзать некие низкоуровневые процедуры кеширования и прочего. В общем MS очень хотелось сравняться в популярности своего веб-сервера с признанными столпами индустрии, а потому они «запилили» все максимально быстро, как могли.

С точки зрения безопасности это как-бы не очень хорошо, но по сути функция у этого драйвера весьма узкая, на самом деле он работает как грузчик – его задача принять пользовательские запросы, перенаправить их дальше к парням, называемым модулями IIS, которые трудятся уже вне ядра и, приняв обратно то, что они натворили – отдать назад пользователям в их браузеры. С самими запросами и ответами он ничего не делает – просто передает их через себя. Надо думать, HTTP.sys максимально оптимизирован и проверен на наличие уязвимостей, поэтому за эту часть архитектуры IIS вряд-ли стоит волноваться.

Далее есть два системных сервиса (их уже можно увидеть в services.msc) инкапсулируемых в svchost.exe:

  • World Wide Web Publishing Service (он же W3SVC или по-новому WWW Service): отвечает за управление HTTP.sys – делает ему stop/start, обслуживает всякие штуки вроде iisreset/noforce в консоли, обновляет настройки HTTP.sys при изменении конфигурации, собирает статистику и прочее;
  • Windows Process Activation Service (он же WAS, не имеет никакого отношения к службе активации Windows): служит прокладкой между HTTP.sys и тем, что происходит дальше, обслуживает и управляет т.наз. пулами приложений (application pools) – рабочие процессы пользовательского режима, которые обрабатывают входящие запросы, запуская хранящиеся на хосте веб-фильтры, модули различных типов (нативные, расширения и (чаще всего) ASP-сценарии и COM-объекты.

Поступающие от службы WAS запросы переадресуются в пулы приложений, в нашем случае конкретно к .NET Framework, который вызывается изнутри порождаемого службой WAS процесса w3wp.exe.

Всю эту сборную солянку современной архитектуры IIS можно увидеть на скриншоте сервера роли WFE&WebApps с рабочей (боевой) фермы SharePoint 2013 Server:

image

Пулы приложений работают в пользовательском режиме, а значит, могут стартовать под некой пользовательской учетной записи, чаще всего специально для этого созданной локально либо в домене Active Directory. Именно поэтому на приведенном выше скриншоте они закрыты желтыми прямоугольниками – сервер то боевой…

Запомните этот важный момент – мы к нему еще не раз вернемся в следующих главах.
Помимо, собственно, IIS-а в состав SharePoint входит также ряд довольно важных системных сервисов, автоматически развертываемых на серверах роли WFE.

Вот эти сервисы:

image

Эти серверы выполняют довольно важные функции. Они по сути формируют одиночные, по требованию и периодические по таймеру служебные запросы к IIS, которые требуются для нормального и автоматического функционирования фермы SharePoint.

Необходимо пояснить их назначение отдельно:

  • SharePoint Administration — Служба, отвечающая за выполнение административных задач
  • SharePoint Search Host Controller — Служба функционала поиска
  • SharePoint Server Search 15 — Служба функционала поиска
  • SharePoint Timer Service — Управляет одним из важнейших компонентов фермы SharePoint – внутренним планировщиком задач, запускаемых по расписанию. К этим задачам относятся многочисленные задачи внутреннего обслуживания, например, очистка внутренних корзин от старых документов.
  • SharePoint Tracing Service — Отвечает за встраивание в выдаваемые страницы панели разработчика (Dushboard), обеспечивает функционал для отладки и счетчиков производительности и статистики
  • SharePoint User Code Host — Используется для запуска в песочнице пользовательских расширений и приложений
  • SharePoint VSS Writer — Volume Shadow Copy Writer – участвует в процессах резервного копирования

Логическая архитектура.

SharePoint представляет собой по сути Content Management System (CMS). Как и тот же Drupal, WordPress или MODx внутри него весь контент делится на определенные логические блоки.

Самой большой, фундаментальной структурой является семейство сайтов (Site Collection). Семейство сайтов – это сущность SharePoint, которая напрямую связывает такие понятия как URL стартовой страницы сайта и веб-приложение на сервере IIS, которое занимается рендерингом этого семейства и хранит весь контент семейства в какой-то базе на сервере MS SQL. Почему именно «семейство»? Потому что базово семейство состоит минимум из одного (корневого) сайта, обладающего определенным URL именем, но может содержать произвольное количество подсайтов, URL (имя) которых добавляется к базовому. Например, семейство сайтов имеет имя (URL) intranet.company.com, в котором есть два «подсайта» site1 и site2, которые автоматически получат URL вида intranet.company.comsite1 и intranet.company.comsite1.

image

Итак, семейство сайтов – это один корневой сайт либо корневой сайт и несколько подсайтов. Сайты – это конечно хорошо, но по факту это просто шаблонные страницы с определенным оформлением. Внутри страниц сайтов должен находиться контент – текст, изображения, какие-то другие объекты. За сохранением контента в SharePoint отвечают т.наз. списки различных типов. Эти списки могут визуально выглядеть как собственно списки – некие табличные текстовые данные, так и как «библиотеки» — особые списки, которые могут хранить внутри себя файлы документов различных типов, изображения, мультимедийные файлы, календари, задачи и т.д. Зачем внутри SharePoint так много различных типов списков? Все просто, каждый тип контента нужно как-то показывать на странице: календарь должен выглядеть именно календарем, да еще и с возможностью редактирования, библиотека документов – отображать документы в духе Windows Explorer и давать возможность их добавлять, переименовывать и удалять, библиотека изображений – отображать картинки не только в виде таблички списка, но и в виде миниатюр и так далее.

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

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

Семейств сайтов внутри одной портальной фермы SharePoint также может быть произвольное количество, важно помнить, что каждое семейство имеет собственное имя URL и за ним закреплено определенное веб-приложение (Web Application) ASP.Net, которое крутится на сервере роли WFE и Web-Application. Веб-приложения могут объединяться в так называемые пулы приложений (Web Application Pools), в архитектуре SharePoint понятия веб-приложения и пула приложений являются синонимами. Несколько семейств сайтов могут использовать одно веб-приложение, чуть ниже мы обсудим стратегию построения семейств сайтов исходя из конкретных потребностей.

Понимание структуры сайтов SharePoint очень важно с точки зрения грамотного построения URL именований, которые в свою очередь напрямую опираются на DNS имена интранет-портала.

Также логическая структура сайтов напрямую влияет на выдачу прав для пользователей – по аналогии с любой файловой системой, в SharePoint используется механизм наследования прав, который включен по умолчанию для каждого объекта, будь то сайт или список, но который можно выключить на любом из объектов. Выдав права какой-то группе пользователей на корневой сайт семейства сайтов при включенном наследовании приведет к тому, что пользователи этой группы автоматически получат доступ к любому объекту внутри этого семейства. Мы остановимся на моменте Best-practice выдачи прав пользователям в соответствующей главе.

В нашем сценарии будет использовано минимум одно семейство сайтов, URL имя которого будет intranet.company.com. Создание других семейств сайтов может быть необходимо в следующих случаях:

  • когда необходимо разбить весь портал на отдельные структурные элементы на уровне URL адресации;
  • когда требования дисковой требуют разнесения контента по различным SQL базам внутри одного веб-приложения;
  • когда необходимо физически разделить сайты по разным веб-приложениям, это может быть продиктовано вопросами нагрузки фермы SharePoint, утилизации ее ресурсов, удобством обслуживания и отказоустойчивостью;
  • когда есть потребность простого и жесткого разделения прав пользователей между двумя и более подразделениями (офисами) компании, например, выделить дать возможность «полевикам» (Field-Force) вариться в собственном информационном поле.

Выражаясь языком реляционных баз данных, между семействами сайтов, веб-приложениями и контентными базами существуют все варианты отношений: несколько семейств сайтов могут спокойно уживаться с одним веб-приложением и использовать одну контентную базу данных, могут использовать каждый свою базу, а могут использовать каждый свое приложение и соответственно персональную контентную базу.

Как же правильно планировать данную логическую архитектуру?

В следующей главе в процессе создания портала мы непосредственно этого коснемся, а пока для простоты запомним следующие правила:

  1. Назначение каждому семейству сайтов персонального веб-приложения и соответственно одной персональной контентной базы упрощает URL этих семейств сайтов (почему – читайте в следующей главе), упрощает и облегчает администрирование (принадлежность каждого веб-приложения сразу видно в том же «Диспетчере задач» по имени учетной записи, из под которой работает пул приложений, можно останавливать/перезапускать конкретную часть общего портала без вреда для других семейств сайтов), но значительно более требовательное к ресурсам сервера – требуется намного больше оперативной памяти и процессорного времени.
  2. Назначение нескольких семейств сайтов одному веб-приложению (без разницы с одной либо несколькими контентными базами) снижает и аппаратные требования (нет дополнительных накладных расходов со стороны платформы .Net Framework, которая является CIL/CLR, в одном пуле происходит однократный запуск и предварительная компиляция), но усложняет и удлиняет URL сайтов семейств и приводит к неудобствам в администрировании, особенно на больших фермах SharePoint, призванных обслуживать большие портальные решения.
  3. Разные семейства сайтов могут иметь разные контентные базы внутри одного веб-приложения, однако к сожалению, для SharePoint 2013 управлять этим через его штатную веб-консоль невозможно, только через консоль PowerShell.

Лучше понять данные правила и взаимосвязь между семействами сайтов, приложениями и контентными базами можно на рисунке:

image

Обратите внимание на вторые (зеленые) семейства сайтов, вернее на их URL – правила именования семейств сайтов в SharePoint требуют второе и последующие семейства сайтов, использующих одно веб-приложение, размещать после имени «первичного» семейства и зарезервированной части URL «…/sites/…».

БОНУСНАЯ ЛИРИКА

Вы читали «Байки скорой помощи» Веллера? В истории каждого подразделения ИТ в любой компании тоже есть свои локальные «мемы».

Например, звонит кадровик из отдела кадров и гневно восклицает (дословно): «Меня не устраивает текущий масштаб интернета!». Ясное дело, речь шла об масштабировании в браузере. Починили…

Или звонит менеджер из департамента дистрибьюции и тоже, с недовольством в голосе: «Мальчики, а почему ко мне роботы не приходят ?!..». И как обычно, сперва была поставлена в известность аж целый коммерческий директор: «ааа, меня специально ущемляют, я не знаю чем торговать, а другие девочки торгуют!!!111». Та естественно накрутила нас: «Вы чтоооо? Человек бонусов не получает!!! Это вы виноваты!..». В итоге проблема была в том, что к ней не приходит почтовая авторассылка о новых поступлениях на склад. Просто в MUA «сама» отключилась автоматическая автопроверка почты, а нажать на кнопку проверки вручную видимо не позволяла религия. Очень порывались на какой-нибудь из праздников типа первого апреля набрать на складе коробок из упаковочной тары, соорудить костюмы роботов и явиться к продажникам всем отделом в полном составе.

Один раз крупный клиент жаловался на уровне коммерческих директоров, что к ним не приходят документы по электронному документообороту – типа в почту не попадают ни прайсы, ни накладные, ни отказы. Поиск проблемы занял двое суток, были задействованы по полной оба отдела ИТ (наш и клиента), перерыты обе управленческие системы, шина EDI, почтовые сервера, сервисы антиспама. В итоге айтишники клиента догадались наконец навернуть DLP агента на ПК своего проблемного менеджера. Нашли много интересного, например, что менеджер просто настроила автоматическое удаление всех писем с наших адресов и вела интересную, весьма содержательную переписку с «продажником» нашего конкурента…

Интересный случай произошел на одном из заводов. Там работала переводчиком одна интересная дама. Из интересного в ней было какое-то странное высокомерие ко всем окружающим, непомерное чувство собственного достоинства и непогрешимости в своих действиях. Дама очень любила давать всем советы, рассказывать по поводу и без великие достижения своего сына: «Ромчика вчера так хвалили учителя в школе, так хвалили…», и естественно считала любое свое поведение истинно правильным в последней инстанции.

Проработав около года, дама стала постоянно слать жалобы в тамошний отдел ИТ на тему пропажи своих документов MS Office. Документы пропадали как-то странно, то целиком, то только частью, от них типа оставался только начальный кусок текста. Документы были зело важные, всякие переводы документации, технологии и инструкций от наших зарубежных поставщиков, а потому проблему эту попытались исследовать со всей тщательностью. Как всегда, вначале подозревали саботаж или действия по глупости со стороны самого пользователя, происки ее коллег, уставших от такого инородного организма в своем отделе, наконец действия мифических вирусов и промышленный шпионаж. ПК был взят чуть ли не под круглосуточный контроль, поставлен аудит на файловую систему, нахлабучен DLP агент, максимально выкручена политика локальной и сетевой безопасности, пользователь каждую неделю менял пароли на состоящие из не менее 15 символов, даже думали поставить скрытую камеру в отдел, чтобы мониторить, кто физически садится за ее ПК, скажем, когда ее нет на рабочем месте. Ибо она подозревала, что ее коллеги за ней следят и всячески хотят ее подставить и подглядывают ее пароли. И да, одну только систему переставляли аж три раза. Дама регулярно писала пасквили на айтишников на самого генерального в духе «они ни хрена не делают, я вся несчастная, как дальше жить, помогите». В итоге, как всегда бывает в таких случаях, на корень проблемы наткнулись совершенно случайно. Тамошний глава ИТ, зайдя как-то в тот проблемный отдел с чашечкой кофе, решить какой-то вопрос, периферическим зрением уловил странное поведение дамы при работе с документами. Для того, чтобы вставить текст из одного документа MS Word в другой дама… нажимала ПКМ на доке в Проводнике, выбирала там пункт «Вырезать», затем переходила в окно собственно, Ворд-а, прожимала там «Вставить» и получала прекрасную «матрешку» из OLE объекта… При этом текст из исходного документа прекрасно выглядел 1:1 как если бы был набран, но естественно, в пределах одной страницы А4. Причем дама иногда догадывалась дважды щелкнув, зайти в «скопированный» таким образом документ и что-то там поправить или «вклеить» еще один документ внутрь этого. После чего видимо намертво забывала, как она все это сделал и при открытии этого же документа на следующий день снова начинался плач Ярочлавны: «у меня снова документы пропа-а-алиии!!!…». Прикладная археология выявила максимально четвертый уровень OLE вложенности документов друг-в друга.

На другом заводе было отдельно стоящее на территории складское здание с недавно временно перенесенными несколькими офисными помещениями наверху. На заводе вовсю шла реконструкция, и чтобы не заморачиваться с пробросом «времянки», которую вполне могла порвать шныряющая по территории строительная техника, решили сделать радио-эзернет вынос на крышу этого склада, чтобы дотянуться локальной сетью до этих офисов. Вынос этот работал замечательно, но у него была интересная особенность. По странному графику, примерно в районе семи-восьми часов связь с тем офисом магическим образом падала, причем свет в них был, ПК оставались в рабочем состоянии. Сбивало с толку, что внутри их сегмент сети работал, даже можно было друг к другу распечататься на их расшаренных принтерах и МФУ. На беду, сотрудники этих отделов были вынуждены часто оставаться во внеурочное время и отсутствие связи с серверной, где крутились БД их естественным образом расстраивало. График был плавающим, часто связь не пропадала вовсе. Недельная «засада» из сотрудников ИТ подразделения, которые специально оставались после работы, в надежде застать «глюк» — ни к чему не привела. По закону подлости эзернетовский линк и не думал, зараза, падать. Возможный «трабл» с питанием тоже исключили по причине запитки той части радиоэзернетовского моста прямо из одной из розеток одного из тех кабинетов. Сама же «тарелка» вместе с небольшим «упсом» находилась вне здания, на крыше, в гермобоксе. Как всегда, в подобных случаях, с проблемой смирились по принципу «место проклятое». Проблему все же вскрыли, совершенно случайно, в один из дней, когда перед праздником кладовщики пораньше закрыли склад. Где-то через час позвонили из складского офиса и радостным голосом сообщили что «мальчики, ой, у нас все… упало!». Помчались всем отделом, попутно догадались захватить подвернувшегося под руку электрика. На месте обнаружили выключенный главный складской рубильник, складской офис же оказался запитанным от «времянки» с соседнего здания этим же электриком («…ну-у-у, я…э…, хотел, чтобы люди работали, когда склад уже закрыт, они сказали им надо…»), а единственная розетка из всего того офиса, в которую как назло был воткнут радио-эзернет, оказалась каким-то непонятным образом запитанной все же от главного складского рубильника. Бедный «упс» тянул «тарелку» сколько мог…

Глава 4. Процесс установки или алгоритм «эксперимент, пи@#%ц, чтение документации».

SharePoint 2013 – сложный продукт. Нельзя просто взять и, нажав на инсталлятор, нажать десяток «Next» чтобы сразу получить результат из коробки. Вернее, конечно можно, но один раз и для версии Foundation. Еще есть вариант развернуть серверную редакцию в виде Stand-Alone (все роли фермы на одном сервере), но такая конфигурация по сути предназначена больше для одиночных разработчиков либо для тестовой фермы, но не для «продакта».

В общем, развертывание фермы SharePoint можно свести к ряду этапов:

  1. Установка MS SQL Server.
  2. Установка самого SharePoint, вернее его ролей Web Frontend и Web Application.
  3. Первичная настройка, построение портальной структуры.
  4. Интеграция SharePoint с другими сервисами компании: Office Web Applications, Exchange, Project, Dynamix и т.д.

Почему «сиквелл» на первом месте? Да потому, что мастер установки SharePoint Server почти сразу спросит Вас о его наличии. Его первым и поставим.

Установка MS SQL Server 2014.

С установкой MS SQL Server 2014 не должно возникнуть трудностей, тут таки то самое «Next-Next-Next», разве что не стоит забывать сразу перед установкой выключить Windows Firewall и предварительно добавить .NET 3.5 в Futures, иначе при развертывании сервера его мастер инсталляции выдаст соответствующее предупреждение:

image

В комплект инсталляции входит хороший чекер конфигурации, проверяющий, все ли нормально в поле, в котором мы собираемся воздвигнуть храм «сиквелла» (да простят меня некоторые sql админы и программеры, которым это сленговое слово порежет слух).

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

Наименование экземпляра (Instance) сервера не имеет значения, можно оставить по умолчанию.

Все компоненты сервера для начала ставить нет смысла, достаточно следующих:

  • Database Engine Services
  • Client Tools Connectivity
  • Management Tools Basic & Complete

Учетные данные служб и «коллейшн» оставляем по умолчанию. Если SQL сервер не предполагается в будущем использовать для каких-то других нужд кроме фермы SharePoint (что в принципе не желательно), то выбираем предлагаемый по умолчанию Windows authentication mode.

Очень важно производить установку и MS SQL Server, и SharePoint Server из-под одного доменного административного аккаунта, в этом случае вы сразу избежите кучи неочевидных проблем с авторизацией и правами в процессе установки SharePoint. Поэтому сразу указываем данную учетную административную запись в качестве первичного администратора сервера.

Стандартные пути к компонентам БД и пути резервного копирования мы переопределим потом, на этапе развертывания ролей самого SharePoint. Да и возможно в будущем Вам придется еще раз их изменить, например, в случае внесения изменений в дисковую подсистему либо изменения стратегии резервного копирования.

Есть еще один ньюанс – MS в последнее время любит раздавать инсталляции помимо традиционных ISO и VHD, еще и в формате IMG. Перед инсталляцией желательно их не просто смонтировать, а распаковать куда-то во временную папку и запускать инсталлятор уже оттуда. Не знаю почему, но пару раз сталкивался с странными, нигде не описанными ошибками в процессе инсталляции прямо из смонтированного IMG или ISO образа. Поэтому лучше делать проверенным способом.

Не лишним будет напомнить, что после развертывания MS SQL необходимо будет еще раз прогнать Windows Update с включенной опцией обновления приложений помимо системы. Возможно Вы слышали о компаниях, администраторы которых не используют обновления серверных систем и приложений в принципе, либо ставят их в плановом порядке пару раз в год. В чем-то они конечно правы: обновление сложных систем и приложений Microsoft всегда является испытанием и вызовом администраторам, нельзя наперед быть уверенным в их успешности, либо нарушении совместимости с каким-то сторонним софтом, однако в случае проблем при попытке обратиться за поддержкой к любому интегратору либо партнеру MS по саппорту первым же стандартным вопросом к Вам будет насколько Вы «свежи» в плане обновлений от вендора.

Последним шагом необходимо не забыть для тома «D» добавить в его корень полный доступ для служебной учетной записи «NT ServiceMSSQLSERVER» – по сути учетной записи, под которой крутится служба самого Database Engine.

Установка MS SharePoint Server 2013.

Развертывание продукта также следует начать с обновления операционной системы «до упора». SharePoint – очень гибкий продукт. Структура, конфигурация портала, и само его наполнение живут в базе данных, а поэтому сам процесс установки ролей Web FrontEnd и Web Application двухэтапный: сначала нам необходимо собственно установить эти роли, которые создадут стартовый «скелет» системы в виде папок и основных стартовых сценариев и шаблонов в веб-папке IIS, прогнать обновление системы (в который раз) и только затем запустить мастер конфигурирования продукта, который собственно создаст всю необходимую стартовую структуру непосредственно в базе данных MS SQL, которая в станет называться SharePoint_Config и будет хранить конфигурацию (настройки) всей фермы SharePoint.

Итак, в директории инсталляции жмем заветный «Hello World!», тьфу, «setup.exe». Естественно, сразу наступаем на грабли:

image

А вот не надо было спешить… Разные продукты в MS делают разные группы людей, естественно присутствует принцип несообщающихся сосудов. Нам на самом деле нужен неприметный файлик default.hta, на который указывает autorun.inf, который конечно же у всех нормальных людей отключен либо руками, либо доменной политикой, либо вообще политикой сетевого антивируса.

Запускаем:

image

Как видим, здесь тоже есть установка пре-реквизитов. Делать нечего, ставим сперва их.

Если при попытке их установки выпрыгнуло нечто вроде этого:

image

Значит Вы живете на Windows 2012, не послушались автора, либо были невнимательны, скачали «SharePoint Server 2013» (без SP1) и Вам настоятельно необходим KB2771431, который не ставится самостоятельно через Windows Update. Элегантно проверить его наличие в системе можно через powershell: systeminfo | findstr «KB2771431».

Если же Вы запускаетесь на Windows 2012R2 с аналогичной проблемой – Вам необходим именно инсталляционный набор «SharePoint Server 2013 with SP1», который вышел уже после появления 2012R2 и учитывает новые грабли от MS. Иначе придется ставить все необходимые пререквизиты руками через сценарий PowerShell. Взять можно, например, отсюда.

В случае удачной установки системе нужно будет самостоятельно перезагрузиться, войти в систему, подождать некоторое время, после чего она бодро отрапортует о полном успехе:

image

Что затем? Правильно, снова обновляшки! Скорее всего залетит что-то вроде обновлений для ADRMS Client – ставьте, пригодится. Избежите одного очень противного бага, в случае если ваша портальная ферма будет обслуживать несколько доменов из разных деревьев…

Устав от бесконечных обновлений и перезагрузок жмем на заветный запуск инсталляции продукта. Здесь Вы (те, кто читает эту статью) разделитесь примерно поровну. У одних (счастливчиков) установка запустится и бодро побежит дальше. У других – вывалится одно, довольно неприятное окно:

image

Связано это с тем, что добрый дядя MS постоянно создает головную боль администраторам и радость программистам – занимается творчеством с обновлением .NET Framework. Проблема в том, что в вашей системе стоит его версия 4.6 (или уже даже выше), а инсталлятор SharePoint 2013, даже с SP1 на свою беду умеет работать только с 4.5.

Подробнее об этой проблеме, как ее точно определить и способе ее лечения. Вкратце – сносим фичу .NET 4.5 (на самом деле 4.6) с помощью утилиты MS DotNET CleanUp Tool, качаем и ставим ее ручками. После установки SharePoint 2013 можно будет с легким сердцем доверится Windows Update, которая вновь повысит ее до 4.6. Дальше ферма SharePoint будет работать с ней нормально. Вроде бы…

Кстати в одной из недавних боевых ситуаций наткнулся на кейс, когда удаление фичи .NET Framework 4.5 через стандартный системный мастер на Windows 2012 R2 начисто снесло весь GUI и PowerShell в придачу. То есть Вы правильно поняли, нас оставили в 2012 R2 даже без Core-режима ОС. Оболочка Explorer также не загружалась. Слава Богу, MS предусмотрел альтернативный консольный вариант загрузки, когда нечему грузится – альтернативно загрузится старый добрый cmd.exe. Тем, кто попал в аналогичную ситуацию — сюда. К слову, в том случае и CleanUp утилита не отрабатывала свое. Потому пришлось немного поразмыслить, сходить в панель управления и руками удалить KB, ответственное за появление в системе злополучного 4.6-го Framework-а. После перезагрузки ключ в реестре указал понижение версии и инсталлятор SharePoint-а заработал без проблем. Странно, что в MS не додумались указать этот вариант как вполне рациональный способ решения проблемы, а вместо этого предпочли выстрелить себе в ногу удалением критического компонента из системы…

Сама инсталляция продукта проста.

Выбираем режим установки (нормальная продакт-ферма или все на одном сервере). Наш выбор очевиден – первый вариант:

image

Во второй вкладке интересных параметров для нашего сценария нет. Первый параметр указывает на папку, где будут развернуто бинарное ядро SharePoint, его лучше оставить на системном томе в стандартном месте в Program Files. Второй параметр указывает, где будут храниться достаточно низкоуровневые данные, нам они также не интересны, т.к. мы не будем развертывать отдельный сервер под поисковую подсистему, поэтому смело ждем кнопку установки.

Через некоторое время установщик предложит запустить конфигурационный мастер:

image

Не следует спешить. Все, что сделал пока установщик – развернул программное ядро SharePoint-а в виде системных сервисов. Еще не созданы сами сайты SharePoint, не развернута БД конфигурации и прочее. В этом нетрудно убедиться, посмотрев в настройки IIS (там пока пусто) и системных сервисов (которые тоже пока в выключенном состоянии):

image

Правильным шагом будет снова (в который раз) прогнать Windows Update с включенной настройкой поиска обновлений для других продуктов MS.

Когда все обновления установлены, настает черед собственно финального развертывания SharePoint. Ищем в меню START мастер конфигурирования под названием «SharePoint Products Configuration Wizard», запускаем его, соглашаемся с предупреждением что мастер перезагрузит некоторые посторонние системные сервисы и доходим до вопроса о создании новой или подключении к существующей ферме.

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

Нам естественно нужна новая ферма. Выбираем ее и получаем от мастера второй серьезный вопрос:

image

С именем сервера – все понятно, мы уже подготовили его. Имя конфигурационной БД лучше оставить по умолчанию, не будет потом путаницы при чтении документации. Мастер также спрашивает Вас о учетной записи, под которой будет выполняться подключение приложения конфигурации фермы с IIS на SQL сервер. Поскольку на этапе установки SQL сервера мы выбрали режим Windows аутентификации и мы работаем в домене, значит мы можем (и должны по Best-Practice) создать в домене отдельную служебную учетную запись для этой цели.

Поскольку в будущем мы не раз будем создавать подобные учетки, целесообразно выделить под них отдельный контейнер OU (Organization Unit или Подразделение) на который особо опытные и параноидальные товарищи смогут в дальнейшем еще и дополнительно накрутить групповую политику, ужесточающую безопасность.

Насчет прописывания данной учетки в SQL Server беспокоиться не стоит – мастер конфигурации SharePoint все корректно сделает за нас (когда-то, во времена WSS 3.0 и SharePoint Server 2007 это нужно было делать руками).

Единственное, чем сейчас действительно стоит озаботиться перед нажатием заветной кнопки «Next», так это дополнительной юстировкой SQL сервера. Пришло время залезть к нему в конфигурацию и переопределить расположение файлов новых БД по умолчанию. Напомню, в нашем сценарии развертывания мы условились все БД фермы SharePoint складировать на том «D» сервера SQL, который специально развернут на быстром RAID-е. Его и вписываем:

image

Все, можно нажимать педаль «Next». Вас спросят парольную фразу, которая будет использоваться для шифрования некоторых критически важных данных. Чем-то это напоминает аналогичное окно с вопросом при развертывании Active Directory. Рекомендуется ее запомнить, т.к. в отличие от AD здесь она потребуется не только на этапе восстановления при сбое, но и при любых серьезных изменениях в структуры фермы, например, при добавлении нового сервера.

Далее Вас спросят об порте и режиме аутентификации административного веб-приложения и пользователя. Порт лучше оставить сгенеренный рэндомно дефолтный, только не забыть проковырять под него отверстие в системном Windows FireWall, если Вы используете его в доменной среде. Насчет аутентификации — по умолчанию стоит NTLM. Для большинства сценариев этого более чем достаточно, т.к. после развертывания и настройки собственно конфигурирование всей фермы будет выполняться редко, возможно и вовсе в режиме RDP подключения к WFE серверу (т.е. Вы будете запускать браузер и открывать страничку конфигурации фермы на самом же сервере, где крутится IIS с ней) и достоинства Kerberos аутентификации будут оправданы только в случае повышенной паранойи. Если же Вы все-таки решитесь выбрать вариант Kerberos – будьте готовы вносить руками нужные spn атрибуты в AD. Мой совет – не создавайте себе лишних проблем. С Kerberos-ом мы еще не раз столкнемся при создании семейств сайтов.

Кстати некоторые, не слишком опытные администраторы интеграторов таки выбирают этот вариант и затем ничего не настраивают и при этом у них почему-то вроде все работает… Только на самом деле в этом случае идет попытка аутентификации через Kerberos первым, она успешно проваливается и веб-приложение переходит на резервный вариант – NTLM. Это прекрасно видно через консольную команду klist – билет (ticket) не выдается.

Вернемся к нашему мастеру конфигурирования SharePoint. Далее он в последний раз даст нам посмотреть на введенные нами параметры и начнет делать свою работу. За ее результатами можно наблюдать не только в окне мастера, но и периодически поглядывая в сервер SQL – там будут созданы две первые базы, в настройки безопасности сервера будет внесен новый «логинс» в SQL, ему будут выданы необходимые серверные роли и права.

Когда мастер успешно отработает, настанет время запуска заветной консоли администрирования «SharePoint 2013 Central Administration»:

image

Если при запуске выскочило стандартное окно IE запроса логина и пароля – не расстраивайтесь. Просто MS кое-что поменял в локальной политике безопасности в Windows 2012 / 2012R2[16]:

image

Проблема в включенной по умолчанию проверке на т.наз. Loop Back check. Если оно Вам надоедает, от него можно избавится путем создания нового ключа реестра BackConnectionHostNames типа Multi-String Value в HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlLsaMSV1_0, в котором перечисляем все адреса всех семейств сайтов, на которые предполагается заходить локально на данном сервере SharePoint WFE.

Все, основные сервера фермы SharePoint Server 2013 успешно развернуты, поздравляем. Настало время наполнить их смыслом.

БОНУСНАЯ ЛИРИКА

Раскол. Именно таким словом можно назвать то, что сейчас происходит в отечественной индустрии ИТ. Тех, кого еще совсем недавно называли «айтишниками» — теперь делят на программистов и всех остальных.

Программисты – наша новая элита. У них теплые, позитивные фотографии аватарок в этих ваших вконтактиках, фейсбучиках и инстаграммчиках. В их профилях – кучи фотоальбомов активного отдыха со всех уголков Мира. Лазурные моря Карибских островов, зелень джунглей Таиланда и Вьетнама, огни Манхеттенских небоскребов и рекламы, старинные узкие каналы Венеции и прочая, прочая, прочая. На всех фото у них здоровые, светящиеся от счастья лица. Они работают в прекрасных, модерновых, креативно оформленных офисах. У них выхолощенные, такие же как они, только постарше, молодые начальники-тимлиды, которые прекрасно разбираются во всем. К их услугам всевозможные конференции, тимбилдинги, даже профильные сайты, где они жалуются друг-другу на отсутствие возможности приобрести «в этой стране» что-то модное, казуальное или отсутствие нормальных пармезанов в супермаркетах. Они хорошо отдыхают, едят здоровую пищу, ведут активный, здоровый образ жизни. По фото складывается впечатление, что нет у них никаких дедлайнов, митингов и прочего, о чем они так любят, вздыхая, рассказывать. Совершенно непонятно, когда они собственно работают. Сплошной позитив. Программисты – это современный средний класс нашего общества. Будьте как программисты.

Все остальные, а их подавляющее большинство – простые рядовые сотрудники ИТ. Системные администраторы, сетевики, железячники, сотрудники хелп-десков, эникейщики, прочие тыжпрограммисты. У них все не так радостно. Фотографий в социалочках как правило мало, в основном по делу. Если и есть что-то насчет фото с отпуска – то поголовно недалекое. Где-нить на Кавказе, в Крыму или украинском Закарпатье. У большинства из них совершенно ненормированный график работы, хапужное и жлобское отечественное начальство, абсолютно не разбирающееся в ИТ специфике, зато хорошо разбирающееся в откатах. Постоянные урезания бюджетов с одновременным возрастанием хотелок боссов в духе «чтобы было круче чем у конкурентов, бо нам нужны продажи». Еда в обеденное время в лучшем случае из фастфуда или в «судочке», принесенном с собой. Дома их с нетерпением ждет замаявшаяся от безделья жена, которую недавно сократили, с маленьким дитём на шее, заведенным в «сытые» годы, когда казалось, что все будет хорошо. У некоторых – еще и кредиты и повезет, если в национальной валюте…

Иногда приходится видеть, как вечером в пятницу, после трудовой недели, в каком-то питейном заведении сидят за разными столами две компании молодых людей. За одним столом казуально и по-хипстерски одетые ребята со светлыми лицами чинно пьют мартини и дорогие сорта пива. За другим же – компания их сверстников, не так хорошо одетых, более мрачных, уставших от недельной пахоты и думающих каждый о чем-то своем. На столе у них что-то покрепче – вискарь или банальная водка.

За одним столом витают в воздухе интересные случаи отладки очередного забугорного проекта, слышны термины из популярных языков программирования. Иногда разговор переключается на тему какой из отелей в Пхукете лучше поехать в следующий отпуск. За другим – пересказ свежей истории о том, как сократили очередную секретаршу шефа, о том, как пользователи «натупили в очередной раз» или зачитывание дословно требований к очередной найденной вакансии в духе «работать в нашем банке – большая честь». При фразе одного из сидящих в духе «хочу в отпуск, мечтаю наконец выспаться…» остальные понимающе кивают. Каждый продолжает думать о чем-то своем.

Сидящие за первым столиком иногда бросают полупрезрительные взгляды на сидящих за вторым. Вторые, те, которые потрезвее – отвечают им чуть ли не лучами ненависти.

Если свести представителей двух этих классов за один стол в дискуссию, то те, которые молодые, успешные программисты, будут пафосно восклицать в духе «кто на что учился – тот это и имеет». Еще возможно приведут пару примеров, как какие-то их знакомые в институте не бегали по ночным клубам, а сидели ночи на пролет, неистово кодив какую-то хрень.

Все это конечно здорово, но порождает огромную проблему.

Программирование давно превратилось из подлинного искусства, воспетого Виртом и Ричи, в обыденное ремесло. Среды программирования, графические отладчики, бесконечные фреймворки, паттерны, готовые либы и компоненты упростили донельзя написание кода. Не знаешь, как решить конкретную задачу? Топаешь на Гитхаб или Стековерфло и копипастишь, что тебе нужно. Нужно решение какой-то конкретной задачи? С вероятностью 0.999 уже где-то есть готовый кусок кода или «либа». Зачем придумывать что-то свое или даже разбираться как оно там внутри на самом деле работает?

Современный «кодинг» идет рука об руку с продуктовым маркетингом и банальной модой. Ваша система CMS морально устарела, мы предлагаем вам новую! Мы напишем вам новый серверсад, вы сможете уменьшить свои бизнес-риски и привлечь новых клиентов! То, на чем написан ваш софт уже давно не моден, мы предлагаем вам новую систему на платформе нового поколения! Как это вы не хотите? Ваши конкуренты уже заказали это мобильное приложение, а у вас что, его не будет?

Поголовно все современные студенты-выпускники технических специальностей мечтают стать программистами. Всевозможные, на любой вкус, компьютерные курсы ломятся от желающих быстро научиться сделать что-то в духе «тяп-ляп-и в продакшн». Все мечтают работать в Гуглах, Яндексах, на худой конец в EPAM-ах и LuxSoft-ах. Все хотят всего и сразу.

Если вы руководите отделом ИТ в какой-то отечественной FMCG компании, будьте готовы к постоянной ротации среднего и низового звена. Вы постоянно будете заставать своих подчиненных за чтением очередного онлайнового курса по javascript или по python. Вам будут многозначительно напоминать насчет повышения ЗП или… «я уйду в программисты». И их не смутит, если вы в шутку спросите у кого-то из них, кто уже который месяц собирается быть программистом, какие три основные концепции в ООП. Бывший сокурсник Вася же смог! Он тоже работал сисадмином, но забил, походил на курсы и теперь он получает полтора косаря баксов!

Если вы хороший руководитель, заботитесь о климате внутри коллектива и переживаете за своих подчиненных – вы должны как-то их удержать. Делать какие-то послабления в дисциплине для тех, кто достаточно долго проработал. Выбивать у зажравшегося руководства какие-то символические премии. Пытаться дать интересные задачи или даже делегировать часть своей проектной деятельности – поделиться проектом. Проводить внутри отдела совместные онлайновые тренинги по каким-либо продуктам, ПО или железу.

Впрочем, сейчас все это уже, увы, не работает. Перекос в зарплатах между программистами и остальным составляет уже даже не разы, а целые порядки. Бесполезно пытаться создать идеальные условия для сотрудника-сисадмина, если у его более удачливого друга-программиста ЗП реально больше раз в 10-15. И в твердой валюте.

Конечно, не всем программистам так реально везет работать на западный бизнес. Очень многие пашут на отечественный рынок. Многие вообще программисты 1С и их остальные не считают тру-программистами. «Старики», ступившие на стезю программинга в седые (уже) девяностые, все никак не могут расстаться со своими Дельфями и Файербердами, а потому не способны переклассифицироваться на то, что реально сейчас широко востребовано – энтерпрайзовые java, .NET и программинг под мобильные платформы.

Мы находимся у шарнира времени. Отмирают целые направления старых бизнесов, связанных с ИТ. Целые поколения специалистов в мгновение ока становятся практически не нужными. Кому, например, нынче нужны старые сисадмины, могущие по звуку из dial-up модема сразу понять, удался ли хендшейк и знающие наизусть AT команды для разных чипсетов модемов? А ведь когда-то это было прямо сокровенное знание, владение Силой, которое передавалось чуть ли не от джедая к падавану. И наоборот, рынок буквально разметает всех тех, кто хотя бы краем уха слышал о какой-то суперновомодной платформе или языке программирования и в состоянии сделать на ней хоть что-то, чуть ли не банальный «Hello World».

Облака, облака, облака…

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

Все течет. Все меняется. Рано или поздно бум программирования тоже закончится. Может, наконец пресытится рынок, а развитие систем разработки и написания кода эволюционно превратится в банальные визуальные конструкторы. Может все уйдет в другую область, предсказанную фантастами – в мир VR, нейроинтерфейсов и технологической сингулярности.

Для одних всегда было и всегда будет слишком поздно. Кто-то успеет вскочить на последнюю ступеньку уходящего за горизонт событий поезда технологий. Единицы будут находиться в его авангарде, рассекая потоками сознания будущее.

Все, что имеет начало, имеет и конец…

Глава 5. Создаем портал. Муки творчества.

Настало время необузданно предаться творчеству.
Так же, как театр начинается с вешалки, наш портал начнется с веб-консоли администрирования:

image

Консоль администрирования в SharePoint 2013 очень похожа на старую Панель управления Windows – весь функционал разбит логически на группы. Этим она отличается от консоли старого SharePoint 2007, которая была больше похожа какую-нибудь старую классическую CMS.
На стартовую панель выведены только самые основные функции управления, гораздо больше их скрыто внутри каждой из групп. Нам нужна группа «Application Management»:

image

Наша портальная ферма содержит пока только один сайт и этим сайтом является собственно сам центр администрирования. В этом легко убедиться – достаточно посмотреть в оснастку управления IIS. Раз сайтов нет, а мы хотим портал, то нужно как-то эти сайты создать.
Как мы уже определили в предыдущей главе, сайты группируются в семейства сайтов, которые обслуживаются пулами приложений и хранятся в контентных базах. Давайте положим первый блок в фундамент нашего будущего портала – создадим первое, корневое семейство сайта.

Создание веб-приложения.

В Application Management идем в Manage web applications:

image

Как видим, у нас в наличии пока только одно веб-приложение, да и то обслуживает сам центр администрирования. Мы видим ссылку (URL), на которой вертится сайт, обслуживаемый веб-приложением и порт, на котором висит данный сайт. Если мы посмотрим на адресную строку браузера, то увидим некоторое сходство.

Нужно создать веб приложение. Основным отличием SharePoint 2013 от своего предшественника SharePoint 2010 является компоновка интерфейса. Microsoft остался верен своей политике последовательной модернизации интерфейсов в своих программных продуктах, поэтому дизайн меню в стиле Ribbon, впервые представленных в пакете MS Office 2007 – постепенно добрался и до веб-интерфейса SharePoint.

Найдите на ленте слева вверху кнопку New и нажмите на нее. Откроется страница создания нового веб-приложения:

image

Пробежимся по всем полям формы и заполним их.

Нам предлагают выбрать существующий на сервере сайт IIS либо создать новый, задать его имя (на сервере IIS, не путать с URL), порт, на котором он будет висеть, заголовок (собственно URL) и путь к папке сайта внутри веб-дерева IIS в файловой системе.

Нам по дефолту предлагают создать сайт, не использующий SSL. Давайте сразу делать все правильно.

Давно прошли те времена, когда SSL использовался только на некоторых сайтах в Интернете, да и то на них не везде, а только для тех страниц, через которые выполнялась авторизация. Это было продиктовано соображениями уменьшения нагрузки, вызванной необходимость выполнять шифрование, как на веб-серверах, так и на стороне ПК пользователей. Времена те давно прошли, вычислительных мощностей в избытке и сейчас стоит вопрос уже о том, чтобы вообще отказаться везде в Интернете от чистого HTTP в пользу HTTPS.

Для теста я уже сгенерировал самоподписный сертификат для доменного имени intranet.company.com и прописал его в корневые локального центра сертификатов на сервере роли WFE&WebApp. Если Вы хотите сделать то же самое – Вам дорога в оснастку IIS, в Server Sertificates – справа в панели выбираем Create Self-Signed Certificate…:

image

Поскольку в статье мы имеем дело с тестовой фермой SharePoint, доменное имя intranet.company.com является вымышленным и наш доменный DNS сервер об этом не знает.

Помогаем ему в этом:

image

Заполняем поля согласно скриншота:

image

Обратите внимание, в Claims Authentication Types нам предлагают выбрать по умолчанию метод аутентификации пользователей NTLM, но я выбрал Nogotiate (Kerberos). Дело в том, что метод NTLM более универсален в силу отсутствия необходимости какой-либо настройки, т.е. будет работать из коробки. Портал на базе SharePoint умеет «спрашивать» браузер (или любую другую программу, выполняющую запрос ресурса с него) об учетных данных пользователя в системе Windows, из-под которых он работает, для того, чтобы не задавать лишних вопросов в духе «введите имя и пароль».

Почему же я выбрал именно Kerberos, а не NTLM? Если знать, как работает авторизация в доменах Windows, то ответ напрашивается сам собой: авторизация «по керберу» быстрее, меньше «шумит» по сети и технически более безопасна и надежна. Есть и обратная сторона медали – она требует ручной настройки и не работает вне пределов леса. Т.е. если мы имеем в наличии два офиса с развернутыми внутри доменами в разных лесах, но с настроенными трастами и Site-To-Site VPN подключением между ними (типичная ситуация), то к сожалению, работать Kerberos для запросов из второго офиса не будет.

Хорошая новость в том, что в случае выбора Kerberos-а в качестве основного метода аутентификации NTLM продолжает использоваться как запасной. Если «кербер» в силу каких-то причин не отработает – будет автоматически произведена попытка через NTLM.

Настройка домена для Kerberos не так уж сложна. Все, что нам потребуется – исправить настройку и атрибут в Active Directory.

Вначале идем в оснастку управления Active Directory Users and Computers, в ее меню View переключаем в расширенный (Advanced Features) вид, идем в свойства сервера с ролью WFE и включаем ему возможность делегирования:

image

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

Active Directory – это на самом деле объектная база данных, внутри нее все объекты имеют некоторый набор атрибутов – полей, которые могут хранить какие-то значения. Нам необходимо для учетной записи изменить атрибут servicePrincipalName – вписать туда в определенном формате доменные имена сайтов:

image

Всё, все необходимые для авторизации по Kerberos настройки успешно выполнены.

Проматываем форму создания веб-приложения ниже, до следующих настроек, которые нам интересны:

image

Здесь все довольно интуитивно понятно. Нам автоматически сформировали URL на основе введенных ранее данных, предложили создать новый пул приложений с определенным именем (которое я для красоты немного подкорректировал), посоветовали выбрать пользовательский аккаунт (и автоматом подсунули туда тот, что мы как раз приготовили под Kerberos), предложили указать SQL сервер, имя контентной БД и учетные данные для подключения. Имя контентной БД выбирайте любое по своему вкусу, я бы рекомендовал давать ей осмысленное имя, прямо указывающее какое семейство сайтов или веб-приложение ее использует.

Жмем в самом конце кнопку OK и ждем результата. Нас радуют надписью, что это не займет много времени. Кстати подобные надписи Вы в SharePoint 2013 вы будет видеть постоянно. Разработчики перед Вами все время будут извиниться за невысокую производительность продукта. Что-ж поделаешь, .NET Framework и выбранная архитектура с прицелом на большую гибкость и масштабирование всему виной.

По окончанию процесса мы получим готовое веб-приложение, которое можно будет лицезреть в виде строчки в списке веб-приложений в админке SharePoint, а в оснастке IIS в виде сайта и в виде пула приложений.

Поскольку у нас уже появился сайт на сервере IIS, мы можем привязать к нему созданный нами самоподписный сертификат. Нажимаем на сайте ПКМ, выбираем Edit Bindings, подхватываем сертификат:

image

Настало время сделать семейство сайтов.

Создание семейства сайтов.

Снова идем в Application Management и там в Create Site Collection:

image

Выбираем название (заголовок) корневого сайта семейства, выбираем совместимость с версией (SharePoint 2013 обратно совместим с SharePoint 2010 и по сути позволяет создавать сайты старой версии), выбираем шаблон, при желании добавляем учетные записи дополнительных административных учетных записей сотрудников, которым мы разрешим делать что угодно в рамках этого конкретного семейства сайтов и выбираем шаблон квоты:

image

Про администраторов уровня семейства сайтов и квотирование пользователей мы поговорим детально в следующей главе.

Жмем ОК.

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

При попытке зайти на сайт будет спрашивать учетные данные – добавляем сайт в зону Local Intranet или в Trusted Sites в настройках IE в системе. Чтобы не надоедало, можем также сразу добавить сайт в настройки зон для разных версий браузера в доменной групповой политике.
Радуемся:

image

На показанном выше скриншоте мы видим стартовую страницу нашего портала. Анатомия страницы очень проста, Microsoft в этот раз довольно много сделал для «чистоты» и лаконичности интерфейса, впервые оптимизировав дизайн портала под новый METRO интерфейс и под портативные планшетные экраны и управление при помощи прикосновений.

Многие элементы по умолчанию скрыты, например, вверху слева во вкладках притаились панели кнопок в стиле Ribbon:

image

Справа вверху находятся кнопки управления своим локальным профилем в SharePoint (кнопка с названием учетной записи), кнопка настроек (Settings, в виде шестеренки), кнопки «социальных» действий, кнопка редактирования страницы и, наконец, кнопка переключения режима отображения страницы (включения/выключения боковой панели ссылок слева).

Все остальное поле страницы кроме вышеназванной панели «быстрых ссылок» занимает собственно контент страницы, т.е. пользовательские данные.

Самая часто используемая в нашем случае кнопка будет естественно «шестеренка» — Settings:

image

Настало время заняться локализацией.

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

Microsoft выпустил для SharePoint 2013 большое количество языковых пакетов (Language Pack’s), которые можно скачать совершенно бесплатно. Качаем с сайта microsoft.com и ставим:

image

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

SharePoint 2013 обладает способностью автоматически подстраивать локализацию интерфейса под пожелания пользователя. Пожелания могут выражаться в двух видах: пользователь может прямо задать предпочитаемую локализацию в своих персональных настройках (нажав на «кнопку» с именем своей учетной записи справа вверху страницы) либо портал по умолчанию может считывать локаль системы и при наличии развернутого языкового пакета сразу выдавать страницы на нужном языке.

Администратор должен предварительно указать в настройках сайта используемые языковые пакеты, если они будут установлены. Для этого учимся редактировать настройки сайт – жмем на «шестеренку» справа вверху, выбираем в открывшемся меню Site Settings и поражаемся богатству возможных настроек:

image

Нам нужна настройка Site Administration – Language settings:

image

Как видим, явно после нашей установки здесь появился второй пункт альтернативного языка. Активируем его.

Также не лишним будет сходить в Site Administration – Regional settings и подкорректировать общие настройки локали сайта: единицы измерения, календарь, дни недели, регион и прочее.

После всего этого, если у Вас стоит в Windows русская локаль – Вы увидите интерфейс сайта на родном языке:

image

Если у Вас русской локали по какой-то причине нет, но очень хочется интерфейс на русском – как писалось выше, можно исправить отображаемый язык в персональных настройках (кнопка с именем учетной записи – My Settings — My Language And Region – выбираем нужный язык по вкусу в My Display Languages. Естественно будет работать, только при условии установленных языковых пакетов и их подключения в конкретном сайте:

image

Анатомия сайта SharePoint.

Как мы выяснили ранее, сайт SharePoint – это по сути контейнер контента в семействе сайтов. В нем могут размещаться другие страницы (минимум одна из которых присутствует изначально и является корневой) и списки различных типов.

Для начала научимся управлять внешним видом сайта. Подобно многим другим CMS страница SharePoint представляет собой набор шаблонов с определенной тематикой управления. В 2013-й версии Microsoft довольно много сделала для удобной возможности правки внешнего вида страницы сайта прямо на месте, не прибегая для этого к каким-то специальным инструментам.
Стиль сайта одним махом можно поменять, если зайти в Settings – Change the look:

image

Обратите внимание, мы можем менять не только саму тему, но и базовые параметры ее оформления в виде фона страницы, гарнитур шрифтов и цветовой палитры [44]:

image

Тут-же можно и попробовать тему в деле. Очень похоже на тот же WordPress.

Помимо выбора темы теперь (в 2013-й версии) присутствует встроенный WYSIWYG-редактор страниц. Опять таки, теперь нет надобности в стороннем приложении. Кстати на будущее, под сторонним приложением обычно понимают MS SharePoint Designer 2013 – специальный веб-редактор, заточенный под SharePoint. Программа эта с «славной» родословной, ее прямой предок – FrontPage, если кто не знает, это название среди веб-верстальщиков когда-то было именем нарицательным – очень он любил вставлять при верстке массивные шаблоны кода где надо и где не надо. Ходят слухи, что 2013-я – это последняя версия этого многстрадальца и либо его больше не будет, либо его функционал, как расширенный инструмент для MS SharePoint, встроят в MS Visual Studio.

Вернемся к редактированию страницы. Редактировать ее просто, достаточно либо нажать на кнопку EDIT справа вверху, под шестеренкой, либо в меню Settings выбрать аналогичный пункт:

image

Редактор очень похож внешним видом на MS Office Word – тот же Ribbon.

Обратите внимание, что на канве страницы появились видимые прямоугольные рамки вокруг элементов контента – два блока приветственного «баннера» Get started with your site и библиотеки документов Documents. Это включилась подсветка так называемых «веб-частей» (Web Parts) — объектов страницы, которые отвечают за визуализацию чего-либо.

Эти веб-части можно двигать на странице путем простого перетаскивания. Поначалу это не так легко и требует сноровки, но вполне удобно. Например, ниже представлена эта же страница, только переделанная в двух-колоночный вид:

image

Помимо веб-частей, на странице также можно впечатывать в произвольном месте текст, размещать изображения и прочие элементы. Поверьте, по сравнению с предыдущими версиями SharePoint, в 2013-й это прямо прорыв в возможностях.

По окончанию редактирования страницы необходимо нажать на кнопку сохранения SAVE – внесенные Вами изменения смогут видеть Ваши пользователи.

Веб-части бывают двух типов: простые, которые «живут» самостоятельно на странице и веб-чести «приложений» (App Parts). Под приложениями в SharePoint 2013 понимают пользовательские хранилища контента – те самые списки всевозможных типов.

К примеру, веб-часть «Get started with your site» — это самостоятельная веб-часть, она присутствует только на странице и играет роль баннера для новичков. Если Вы удалите ее со страницы, то она удалится «с концами», вместе со своими настройками, если они были изменены. Конечно, ее можно добавить вновь:

image

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

Займемся этим.

Пожалуй, одно из самых важных пунктов меню, куда Вы будете поначалу заглядывать, это пункт «Site contents»:

image

Здесь отображаются все приложения данного сайта, отсюда же можно создать новое приложение, а также дочерний к данному сайт. Обратите внимание, что в ново-созданном семействе сайтов в корневом сайте уже содержится ряд приложений. Некоторые из них являются служебными, как например Site Pages и Site Assets, их удалять не рекомендуется.

Помимо этого, в данной панели содержится ссылка на управление рабочими процессами и встроенная корзина удаленных элементов. Со всем этим мы разберемся в следующих главах.

Попробуем добавить новое приложение и разместить его на странице.

Нажимаем «add an app». Кстати быстро добавить приложение можно также и из основного меню Settings сайта:

image

Приложений в SharePoint 2013 довольно много. Причем чем выше редакция, тем больше будет доступных приложений, да и веб-частей тоже. Некоторые Вы будет использовать постоянно, например, библиотеки документов и списки как хранилища пользовательской информации. Возможности приложений тоже довольно разные, но их назначение интуитивно понятно из их названия.

Библиотека изображений умеет показывать сразу миниатюры картинок и даже устраивать показы их как слайдов. Календари, задачи и контакты – синхронизироваться с Microsoft Office Outlook, что очень удобно для коллективной работы. Есть приложение с функционалом простого форума, есть список новостей с рассылкой, есть приложение для сбора и визуализации результатов голосования, есть простой список с ссылками на внутренние или внешние ресурсы. В серверной и энтерпрайзовой редакции присутствуют приложения для подключения к внешним источникам данных, библиотеки отчетов и так далее. Описывать все это в статье нет смысла, достаточно самим попробовать поиграться со всеми этими приложениями.

Попробуем создать простейший список.

Выбираем его (Custom List) из перечня приложений, от нас попросят ввести его имя. Одним из замечательных изменений в SharePoint 2010-2013 по сравнению со старыми версиями продукта является то, что имя приложения теперь не является частью его URL ссылки. Проще всего это пояснить на примере:

image

Здесь я создал список и присвоил ему имя. Он отобразился в контенте сайта, SharePoint для нашего удобства подсветил его зеленым флажком «new!». Если навести на него курсор мыши, браузер подскажет ссылку, по которой будет выполнен переход, если мы сделаем щелчок мышью на нем:

intranet.company.com/Lists/List/AllItems.aspx

. В нашем случае приложение списка получило имя URL «List», таким образом полный путь URL к содержимому списка получился, как написано ранее. В более старых версиях SharePoint имя URL приложения формировалось на основе его имени как элемента, введенного пользователем. В результате, особенно в отличных от английского названиях, включался юникод и длина URL списка могла получиться чрезмерно большой, ведь URL автоматически учитывал вложенность сайтов и их элементов.

С точки зрения администрирования SharePoint это выливалось в проблему превышения допустимой длины URL, которая разная для разных браузеров. Да и работать с такими ссылками довольно неудобно и пугающе для пользователя. К этому следует добавить проблему работы других приложений, например, MS Office до 2007-й версии включительно категорически не хотел открывать по ссылке документы с портала, если длина их URL был более 256 символов – очевидно стояла проверка на длину для защиты переменной от переполнения. Приходилось идти на всякие малоочевидные хитрости, например, сперва давать приложениям короткие названия на английском языке, а затем их редактировать на желаемый – адрес URL формировался автоматически на этапе создания и при изменении собственно имени приложения уже не менялся.

В последних версиях SharePoint с этим полный порядок – всем создаваемым приложениям автоматически присваиваются короткие английские «типовые» имена URL и группируются в наборы подобных элементов.

В качестве иллюстрации — вот как будет выглядеть имя URL для второго нового списка:

image

С подчиненными сайтами немного сложнее – от нас потребуют прямо указать их имя URL, которое будет добавлено к родительскому:

image

Хорошая привычка — научиться сразу продуманно именовать URL сайтов. Лучше всего одним словом, на английском языке.

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

Управление навигацией.

Базово почти любой стандартный шаблон сайта предполагает наличие двух навигационных панелей – верхней, главной и левой, боковой, так называемой панели быстрого запуска «quick launch».

Функционал верхней панели не изменился с времен старых выпусков SharePoint, однако добавилась возможность более удобной его правки прямо на странице, причем для этого даже не надо заходить в режим ее редактирования. Панель также может автоматически быть общей для всего семейства сайтов (наследываться), либо быть уникальной для какого-то конкретного подсайта.

Функционал панели быстрого запуска также может редактироваться «не отходя от кассы», однако сама панель стала интеллектуальной. Теперь на нее автоматически могут добавляться ссылки последних посещенных списков, библиотек и прочего. Это на самом деле довольно удобно и стоит отметить это для себя на будущее, как одна из «плюшек», которую можно упомянуть в обучении пользователей.

Последнее, что хотелось бы рассмотреть в данной главе – изменение параметров сайта.

Чтобы зайти на страницу с ними – необходимо выбрать в меню Settings пункт Site Settings:

image

Богатству настроек нет предела. Можно настроить все – начиная от имени сайта и заканчивая дублированием редактирования его навигации.

Стоит обратить внимание на то, что настройки корневого сайта семейства сайтов будут сильно отличаться от количества доступных настроек подчиненных сайтов:

image

Связано это с тем, что настройки корневого сайта затрагивают все семейство сайтов в целом, поэтому там и присутствует отдельная, большая группа настроек Site Collection Settings.

БОНУСНАЯ ЛИРИКА

Так уж заведено, что ИТ специалисты очень уязвимы в личной жизни. Пожалуй, как никто другой. Ни в какой другой специальности тебе не нужно сливать свой разум… даже не с машиной. С целым миром. Колоссально большим миром. Нажимая кнопкой на закладке в своем браузере, вы пробуждаете к жизни целый организм. Где-то там, в квантовом мире возникают флуктуации, где-то рядом обертывая их и облекая в едва понятную нам форму живет теория струн в своей неопределенной многомерности пространства. Они существуют отдельно от вас, но именно по вашей воле, повинуясь обычному нажатию вполне понятной и осязаемой мыши, где-то глубоко в микросхемах ориентируются в нужных направлениях свободные электроны, которые приводят в активное состояние другие электроны. Информация множится, перетекает из формы в форму. Сигналы, да что сигналы — сама энергия, посланная вашей волей, растекается во все стороны от вас – к DNS серверам провайдера, по цепочке от вашего компьютера к серверу, на котором живет своей жизнью другой организм – запрошенный вами сайт. И вот уже в ответ летит по бесконечным магистралям, часто разными путями, его ответ. Волна энергии захлестывает себя в ваш компьютер, бесконечное число электронов в транзисторах микросхем снова приходят в движение, обрабатывая ответ и переводя в доступную для вашего сознания форму – в виде пикселей на экране вашего монитора.

Понимание этого зрелища — завораживает. Осознание своих возможностей в этом мире – способно привести в экстаз. Тем, кто ни разу не касался этого удивительно мира, не представлял себе его истинную суть и душу – никогда не понять нас, айтишников. Нас миллионы. В отличие от обычных пользователей, мы понимаем суть того, как работает этот, созданный нами, но не только для нас, удивительный и прекрасный мир.

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

Глубина-глубина, я не твой…

Они поругались.

Это случалось очень редко за их чуть более чем шесть лет совместной жизни. Обычно он всегда в конечном итоге уступал ей. Осуждал ее ошибки, неверно принятые решения, объяснял где она не права, но всегда взваливал всю вину на себя. Он принимал ее такой как она есть. За то, что она принимает его таким-же. За то, что терпит его. За то, что дает ему разделять свою привязанность между ней самой и машинами на его столе дома и на работе.

Женщинам обычно очень трудно принять факт, что мужчина способен в равной степени разделить свое внимание между ней, живой и каким-то своим делом или увлечением, совсем не материальным и эфемерным.

Но в этот раз что-то пошло не так. Он почувствовал это сразу же. Долгие годы совместной жизни заставили активизироваться его интуицию. Где-то в глубине души назойливый голос говорил ему, что что-то неуловимо изменилось. Разум же успокаивал – ничего страшного, она не права. Да, она солгала, не поставила тебя в известность. Непонятно зачем взяла этот небольшой денежный кредит, ведь вроде ей не в чем было нуждаться, ты и так отдавал, и тратил на нее практически все, что зарабатывал и зарабатывал по нынешним кризисным меркам весьма немало. Она знает это, осознает, что не права, это пройдет и все будет как раньше. Но что-то в этот раз пошло не так…

Он привык все возникающие проблемы держать в себе. Перемалывать, переживать их. Самостоятельно. Не показывать виду. Ничего. У всех сейчас кризис. У всех упали доходы. Да, он больше не может, как раньше, без раздумий повести ее в какой-то большой торговый центр и дать выбрать себе то, что она захочет купить и надеть. Да, он не умеет воровать и приспосабливаться. И даже кризис не смог заставить его брать на работе взятки с компаний-партнеров, которые только за сам факт продолжения сотрудничества были готовы платить отступные с своей и так сократившейся из-за кризиса прибыли. Про таких как он, в некоторых компаниях говорят кратко и ёмко: «неудачник и лох». Нужно просто потерпеть, говорил он себе. Возможно сделать над собой еще одно усилие и переквалифицироваться в программисты, как некоторые из его друзей. Может, ему еще повезет, и он сможет устроиться в какую-то западную компанию, где банально будут платить больше или меньше нагружать работой, как привыкли выжимать последние соки в отечественном бизнесе. Но каждый день, приходя измученным с работы, все что ему хочется – это просто предаться наркотику какой-нибудь очередной онлайн-игрушки и, домучав разогнанный за день мозг, упасть в постель рядом с ней и заснуть. А на выходных – просто тупо вместе отоспаться.

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

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

Но в этот раз что-то все-таки неуловимо изменилось. ЧТО?..

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

Он делает попытки примирения. Начинает пытаться поговорить. Пытается вновь сделать себя виноватым. Дать ей выговориться. Чтобы потом, обнять изо всех сил, зарыться лицом в ее волосы и вместе заснуть. Так, как всегда в подобных ситуациях было ранее.

Но в этот раз все происходит совсем иначе…

Через пару дней, в пятницу, она кладет кольцо ему на стол, рядом с монитором. Говорит, что ей нужно навестить родителей, а когда она вернется, «мы поговорим…». Категорически отказывается от предложения отвезти.

Он ждет ее до поздна. Пытается выяснить, нормально ли она добралась к родителям. Те хранят молчание и лишь успокаивают, что все хорошо. Наверняка лгут. Все действительно серьезно. Её подруги делают вид, что ничего не произошло. Он знает учетные данные ее смартфона (сам ведь всегда все ей настраивал) и в принципе может в несколько кликов узнать ее местоположение. Но они уже когда-то говорили на эту тему. И он дал слово никогда не пользоваться этой возможностью, только в исключительных случаях. Является ли этот случай исключительным?

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

Пусть отдохнет…

Проходит еще два дня. В понедельник вы наконец видитесь. Изменения в ее облике теперь еще более явные. Она стала внезапно более уверенной в себе. Что-то явно решила…

«Я приняла решение разойтись с тобой. Мы долго вместе, и ты сам знаешь, я не создана для обычной семейной жизни. Мне сделали предложение по работе, уехать в феврале в Германию. Я хочу остаться одна…»

Она произносит эти слова быстро. Будто заранее уже все продумала и отрепетировала. На ее глазах начинают проступать слезы. Она забилась в дальний угол дивана. Он пробует приблизиться к ней, но сразу получает чуть ли не истеричный отказ.

Он впадает в ступор. Это совсем не то, чего он ожидал. Сознание отказывается верить в происходящее. Всего какой-то месяц назад они сидели вместе в суши-баре, ели ее любимые унаги-роллы и весело смеялись, что-то обсуждая. Все было хорошо, вплоть до этого непонятного кредита…

Он решает попробовать поговорить с ней. Выяснить настоящую причину такого кардинального решения несопоставимой по тяжести проблемы. Что с ней вообще происходит? Кто ее так накрутил? Родители, которые его, будем честны, из-подтишка недолюбливали последние года два, когда его доходы упали? Может быть на ее работе, в представительстве большой западной компании, ее «добрые коллеги» (девушки, удачно устроившие свою жизнь путем выхода замуж за обеспеченных папиков разных сортов) как обычно, наговорили ей лишнего и настроили против него?

Она все отрицает. Говорит, что хочет сосредоточиться исключительно на карьере. Что хочет остаться одна. Что так будет лучше. Что если он это не хочет принимать, то она съедет из их квартиры к подруге.

Он вздыхает. Долго думает. Наконец, предлагает переехать к своему брату. Он еще надеется, что она одумается. Что не может все вот так поменяться без предупреждения в один миг.

Она соглашается.

Этой ночью он пытается еще раз заговорить с ней в постели, но она отстраняется от него, неожиданно резко и в самый дальний конец кровати.

Он начинает понимать, хотя мозг по-прежнему продолжает отказываться адекватно воспринимать происходящее. Он задает главный вопрос: «…ты хочешь уйти к другому? Ты мне изменила?..» Она моментально отвечает отрицательно. Он понимает, что она лжет. Остаток ночи он спит на раскладушке. Сквозь сон, под утро, он слышит всхлипывания, доносящиеся с ее кровати.

За все время их совместной жизни он никогда не думал об измене. Его все устраивало. У него было две любви – к этой женщине и к тому, параллельному в своей реальности миру информационных технологий. Зачем заводить еще третьи отношения?

Глубина-глубина, я не твой…

На следующий день он собирает свои вещи, которых почему-то оказывается больше чем он думал. Наверно, в сравнении с ее гардеробами. Да, он и правда не жалел на нее денег. Наверно не одна иномарка погибла в ворохах всех этих модных женских тряпок, лежащих в квартире повсюду – во всех шкафах, на просторной двухуровневой вешалке в углу комнаты, даже на креслах и диване. Что-ж, ее работа в забугорной компании обязывала хорошо выглядеть. Он старался, чтобы она не чувствовала себя ущербно, на фоне других высокопарных представительниц офисного планктона, хозяек жизни, как они себя считали. В коллективе, где каждая новика, будь то очередная модная тряпка, туфли или банальный новый смартфон обеспечивают основной поток новостных событий за день в виде обсуждения сколько стоит новинка и где была куплена.

Их общий кот с недоумением лазил по всем пакетам и сумкам. Коты любят все новое. Любят перестановку.

Но это ее кот, она захотела два года назад подобрать задорного котёнка с улицы, который прибежал прямо ей в ноги, когда они стояли у подъезда и ждали такси. Она тогда подняла его с земли, кот мяукнул и попытался лизнуть ее в лицо. Она с немым вопросом подняла глаза на него, и он с улыбкой кивнул в ответ, соглашаясь принять животное в их семью. Дома должен быть милый домашний зверек, радующий своих хозяев.

С тех пор, всю заботу о животном он практически взял на себя – накормить его, поиграться, убрать за ним лоток. Ничего этого она практически не делала. Но кот все же одинаково любил обоих, очевидно справедливо рассудив, что она сделала для него самое главное – забрала его с улицы. Черт, кота реально жалко…

Он решил все же оставить его ей. Вдруг, она все же говорит правду – тогда этот кыцик ей реально нужен. Ведь так тяжело приходить в пустой дом…

Он выехал из квартиры к брату, перевезя вещи. Они договорились встретиться на следующий день в одном из ЦОК-ов мобильного оператора – она попросила перевести свой мобильный номер с его контракта на свой. Он согласился. Она снова куда-то отлучается до вечера. Он наводит идеальный порядок в квартире, забивает холодильник всевозможной едой. Потом решает оставить последнее слово за собой и распечатывает шуточную инструкцию по эксплуатации кота для сильной, независимой женщины, которую оставляет напоследок на их кровати, накрывая круглой желтой подушкой с вышитым смайликом. На него накатывают воспоминания – ей тогда было плохо из-за проблемы на работе, он ночью в ближайший супермаркет и купил для нее эту смешную подушку, чтобы хоть немного ее развеселить. Ей это тогда реально помогло…

Вечером, уже в квартире брата, тот просит его смартфон для теста своего приложения. Брат – разработчик мобильных приложений, а на его смартфоне накатана последняя версия Android. Брат долго колдует над устройством, под конец, отдавая его назад интересуется мобильным приложением управления домашним роутером, запуская его и оставляя открытым.

Он берет назад свой мобильный. На экране в приложении открыт состав его сети в той, другой квартире. Там перечислены все, активные в данный момент устройства. Среди знакомых, подаренных ее смартфонов, нетбука и планшетов, он внезапно замечает чужое имя «ВЛАД-ПК»…

В крови внезапно появляется адреналин. Мозг пронизывает вихрь из мыслей. Память тут же начинает работать как прозрачный экран, в котором, как в популярном нынче сериале про Шерлока Холмса в исполнении Бенедикта Камбербетча, начинают всплывать события из прошлого, которым он до сих пор не придавал значения.

Влад… Так завали патрульного из новой полиции. Три месяца назад она попала в небольшое, практически смешное ДТП – чуть помяла дверь служебной машины о столбик, когда выезжала с парковки торгового центра. Он тогда не смог оперативно подъехать, потому что в этот же момент ехал в пробке в машине своего шефа, на другом конце столицы. Он смог добраться на место событий только через два часа, но там уже никого не застал. По ее словам, приехал патрульный полицейский экипаж, оформил ее ДТП вместе с представителем страховой. Из-за сущей мелочи, всего лишь маленькой вмятины на двери пассажира, все дело ограничилось минимальным штрафом, даже без пометки в права. Ей тогда понравились «эти ребята… они такие милые и прикольные…». С тех пор был еще случай, она хотела познакомить его с своими новыми друзьями-патрульными. Но в тот раз как-то не сложилось, «ребята» срочно были вынуждены уехать на какой-то вызов…

Да, имя «Влад» она один раз уже упоминала тогда в разговоре. Тогда же он заметил какую-то мягкую перемену в ее лице, когда она упоминала о том случае.

Память вытащила из своих архивов еще один козырь: он вспомнил, что пару недель назад она «отпрашивалась» у него покататься со знакомыми по вечерней столице. Он тогда приболел и не мог составить ей компанию. Но она вернулась вовремя и, что его тогда удивило, была в приподнятом настроении. Он еще искренне порадовался за нее тогда: она смогла отдохнуть, развеяться. Это то, чего ей так не хватало последнее время, и он не мог ей этого дать. Он ей так безгранично доверял…

Когда вы работаете в довольно небольшом ИТ коллективе в довольно большой компании, вам поневоле приходится осваивать довольно большой перечень профессий. А уж если вы руководите этим коллективом и по сути своей являетесь «играющим в поле тренером», то вам сам бог велел знать куда больше своих фактических повседневных обязанностей. Среди них – информационная безопасность, социальная инженерия и пентестинг.

Он вздохнул. Включил свой ноут. Вставил флешку с Кали. Через приложение – пинг подсказывает что цель под Windows. Проброс нужных портов с цели через роутер наружу. Nmap. Херитейдж. Первая попавшаяся уязвимость. Нагрузка. Сессия. Консоль.

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

Запрос содержимого файловой системы. Локальный фильтр по расширениям файлов. Поиск фотоархива. Кеш браузера. Загрузка клавиатурного сниффера как новой нагрузки. Самое важное – это их переписка…

Руки вводят команду запуска новой нагрузки и палец замирает над кнопкой Enter. Он впервые использовал свое искусство в личных целях. Никогда ранее не было такой ситуации. Он задумался.

Насколько это этично и справедливо. Он сейчас воспользовался своими навыками. Да, с этической точки зрения и с точки зрения закона это взлом. Вторжение в чужую личную жизнь. В чужие мысли и чувства. Он сделал это через тот мир, к которому питал такую же любовь, как и к ней. Это ЕГО мир. Его законы. Его правила. Он в его власти и может сейчас сделать все что угодно с той несчастной машиной, власть над которой он только что похитил у ее владельца.

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

Взамен он открывает несколько фото. С них на него смотрит симпатичный, улыбающийся парень, с веселыми, немного озорными глазами. На одной из фото парень в новенькой полицейской форме…

Он удаляет следы своего присутствия, на всякий случай оставляет в одном из системных каталогов текстовую метку, меняет время создания этого файла и разрывает сессию.

Нет никакой сложности влезть еще глубже, вытянуть всю их переписку, все нужные учетные данные и прочие интимные вещи. Но… это было бы неправильно. Подло. Слишком подло. Даже успокаивая, что он формально имел все права на это действие.

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

В психологии этот подобные методики называются профайлингом.

Его обидчик из довольно обеспеченной семьи. Он моложе на несколько лет, даже моложе ее. На фото видны хорошие частные дома, дорогие автомобили. Он ведет активный образ жизни, занимается туризмом. Ему нравится военная тематика, он прыгал с парашютом, пытался учиться управлять самолетом – на фото он в кабине ЯК-52 и 172-й Цессны. Значит – любит обоснованный риск, любит пощекотать себе нервы, видимо не хватает в жизни впечатлений и не так нагружен повседневной работой, деньги даются легко. Черт, у них довольно много общего…

У него уже были отношения с женщиной, намного старше его, с ребенком. На нескольких фотографиях они вместе. Вроде бы просто сидят рядом, но положения их тел, жесты выдают их. Странная пара… Она наверняка была «учительницей», «обучила его всему», а он по какой-то причине не хотел иметь отношений хотя-бы со своими сверстницами. Многочисленные посты сексуального характера выдают внутренние переживания. Они явно не так давно расстались. Скорее всего по ее инициативе. Впрочем, его выбор вполне обоснован – эта дама, несмотря на возраст, довольно ухожена, с хорошей фигурой, тоже любит туризм, значит у них совпадают интересы. Ее фото выдают ее спокойный, явно уравновешивающий его характер.

Его фотографии намекают еще кое-на что, и это не нравится. Нарцисцизм… На всех фото, даже в группе людей – он находится в центре, но всегда чуть в стороне от группы. Сознательно отбирает только наиболее выигрышные фотографии. С видео в ВК из его диалога с оператором за кадром становится ясно, что он переживает за качество съемки и просит, чтобы получилось лучше, чем в прошлый раз.

Явно избалован женским вниманием, подавляющее большинство «лайков» от сверстниц – так вот откуда такая тяга к опытной женщине…

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

Считает себя баловнем судьбы, все ники в соцсетях в духе «лаки-что-то там» — да, парень, ты явно слишком жизнерадостный, тебя жизнь еще не била как следует…

Рассветает. Тот ноут с характерным сетевым именем все еще висит в ее сети. Значит, все-таки измена…

Вечером они, как и договаривались, встречаются по дороге в офис мобильного оператора. Она — за рулем служебной машины. Он — так и не смог скопить денег на собственную и потому едет рядом на пассажирском сиденье. По дороге, заметив проезжающий рядом патрульный автомобиль, он интересуется, где сейчас Влад – на службе или дома. Она вначале пытается сделать вид, что не поняла вопрос. Он повторяет. Она теряет самообладание, аккуратные наманикюренные ногти вонзаются в руль. Они чуть не влетают на перекрестке в впереди стоящий автомобиль. После сигнала светофора она утапливает педаль газа в пол. Он просит ее делать подобные вещи исключительно в присутствии Влада, так как не желает вместе с ней попадать в еще одно ДТП или тем более вместе ехать в больницу в карете скорой помощи, не говоря уже о других возможных несчастных, которые ничем не виноваты.

Пока они едут к месту назначения, он старается все запомнить и почувствовать. Ведь все это: и тепло кресла, и запах машины, и ее лицо в свете встречных фар и светофоров – происходят с ними в последний раз. Он для себя уже все решил этой ночью. Он никогда не умел прощать предательство, каким бы оно не было. Потому, что, предавая, человек делает больно сознательно и максимально цинично. Что-бы ни случилось: всегда было и всегда будет слишком поздно. Так как раньше – никогда не будет. У них больше не будет никаких совместных переживаний, ни совместных радостей, ни горя. Больше никогда птица в четыре утра не поприветствует за окном восход солнца, когда он вместе с ней помогал ей учить до утра выпускной экзамен в институте. Никогда больше между ними не ляжет их кот. У них никогда не будет совместных детей. Никогда больше они вместе никуда не пойдут и ничего не сделают вместе.

Предавший один раз – предаст снова. Интересно, как у нее сложится дальше с этим новым парнем. Возможно, Влад даже не догадывается, что, возможно его ждет в будущем. Впрочем, не нужно думать в таком ключе. На чужом несчастье собственного счастья никогда не построить. Прописная истина…

Она видимо все решила раньше. Пусть будет так.

Она спрашивает, откуда он узнал про Влада. Спрашивает всю ли их переписку он прочёл. У нее начинается истерика. Он говорит ей правду. Что оказалось достаточно все понять и без копания в чужом грязном белье.

У нее начинают выступать слезы на глазах. Атака – лучший способ защиты. Женщины почему-то никогда даже не пытаются постигнуть, в чем конкретно они могут быть неправы. Мужчины потакают им в этом, разыгрывая благородство и считая своим долгом взять всю вину на себя.

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

Они добираются до торгового-центра, где размещается ЦОК оператора без происшествий, он переводит на нее номер из своего контракта, желает напоследок удачи в новой жизни, разворачивается и уходит, уходит не спеша, расправив плечи. Она отворачивается и старается не смотреть ему в след – он видит это в зеркалах соседних бутиков.

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

Что-ж, у каждого из них теперь свой путь.

Глубина-глубина, я не твой…

В следующих частях статьи:

Глава 6. Разделяй и властвуй: права пользователей и администраторов. Как их делегировать правильно, чтобы в будущем не иметь головной боли.
Глава 7. Браузерные войны.
Глава 8. Как сделать так, чтобы вашим порталом действительно пользовались.
Глава 9. Делаем сопряжение с другими системами и платформами на примере Office WebApps.
Глава 10. Продвинутое администрирование.
Глава 11. Второе правило системного администрирования (резервное копирование).
Глава 12. Как не спать ночами или что вы должны знать об обновлении портальной фермы.
Глава 13. Таинственные рабочие процессы.


Table of Contents

  • Before Start
  • Hardware Requirement.
  • Software Requirements:
    • Operating System For SharePoint Servers:
    • SQL Server:
  • Prerequisites:
  • Service Accounts:
  • Supported Scenario:
  • Single Server Installation
    • Prerequisite Installations:
    • SharePoint Installation:
    • Configure the SharePoint Server:
    • SharePoint Configuration Wizard.
  • Post Installation:

As SharePoint 2016 RTM is released by Microsoft it’s another exciting version of Sharepoint with a lot of improvement. Installation and Configuration process is still the same we witnessed in Sharepoint 2013 /2010 with a slight difference of the MinRole.

The MinRole feature in SharePoint Server 2016 lets SharePoint farm administrators assign each server’s role in a farm topology. The role of a server is specified when you create a new farm or join a server to an existing farm.

In this post, let’s walk through the step by step process of installation and configuration of SharePoint Server 2016.

Before Start

Before you start deploying SharePoint, let’s remind you of the hardware and software requirement of the SharePoint. We want to make sure our servers meets the min requirement set by Microsoft. We are on the supported deployment scenarios.

Hardware Requirement.

As per Microsoft, you need the 64-bit processor with 4 cores. Please see below table for the minimum Hardware requirement for the SharePoint Server 2016.

Installation scenario Deployment type and scale RAM Processor Hard disk space
Single server role that uses SQL Server Development or evaluation installation of SharePoint Server 2016 Release Candidate with the minimum recommended services for development environments. For information, see Minimum recommended services for development environments. 12–16 GB 64-bit, 4 cores 80 GB for system drive

100 GB for second drive

Single server role that uses SQL Server Pilot or user acceptance test installation of SharePoint Server 2016 Release Candidate running all available services for development environments. 16–24 GB 64-bit, 4 cores 80 GB for system drive

100 GB for second drive and additional drives

Web server or application server in a three-tier farm Development or evaluation installation of SharePoint Server 2016 Release Candidate with a minimum number of services. 8–12 GB 64-bit, 4 cores 80 GB for system drive

80 GB for second drive

Web server or application server in a three-tier farm Pilot, user acceptance test, or production deployment of SharePoint Server 2016 Release Candidate running all available services. 12–16 GB 64-bit, 4 cores 80 GB for system drive

80 GB for second drive and additional drives

Software Requirements:

Operating System For SharePoint Servers:

  • · The 64-bit edition of Windows Server 2012 R2 Standard or Datacenter
  • · Windows Server 2016 Technical Preview 4

SQL Server:

  • · The 64-bit edition of Microsoft SQL Server 2014 Service Pack 1 (SP1)
  • · The 64-bit edition of Windows Server 2012 R2 Standard or Datacenter

Note: SQL Server Express is not supported anymore.

Prerequisites:

The SharePoint Server 2016 prerequisite installer (prerequisiteinstaller.exe) installs the following software if it has not already been installed on the target server, in the following order:

  1. Application Server Role, Web Server (IIS) Role
  2. Microsoft
    SQL Server 2012 SP1 Native Client
  3. Microsoft
    ODBC Driver 11 for SQL Server
  4. Microsoft
    Sync Framework Runtime v1.0 SP1 (x64)
  5. Windows
    Server AppFabric 1.1
  6. Windows
    Identity Foundation (KB974405)
  7. Microsoft
    Information Protection and Control Client 2.1
  8. Microsoft
    WCF Data Services 5.6
  9. Microsoft
    .NET Framework 4.6
  10. Cumulative
    Update Package 7 for Microsoft AppFabric 1.1 for Windows Server (KB 3092423)
  11. Visual
    C++ Redistributable Package for Visual Studio 2012
  12. Visual
    C++ Redistributable Package for Visual Studio 2015

Service Accounts:

It is highly recommended to use the different service account with least-privilege to install and configure the SharePoint. This will enhance the security of the farm. As we are going to install Single-Server farm, we, at least, need 3 accounts (SQL, Setup
A/C, FarmAdmin A/C).

Account Purpose Requirements
SQL Server service account The SQL Server service account is used to run SQL Server. It is the service account for the following SQL Server services:

  • MSSQLSERVER
  • SQLSERVERAGENT
Use domain user account.

(KrossfarmKF-SQL).

Setup user account (Install Account)

The Setup user account is used to run the following:

  • Setup
  • SharePoint Products Configuration Wizard
  • Domain user account. (KrossfarmKF-Setup)
  • Member of the Administrators group on each server on which Setup is run.
  • SQL Server login on the computer that runs SQL Server.
  • Member of the following SQL Server roles:

    • securityadmin fixed server
      role
    • dbcreator fixed server role
Server farm account ( Farm Admin Account) The server farm account is used to perform the following tasks:

  • Configure and manage the server farm.
  • Act as the application pool identity for the SharePoint Central Administration website.
  • Run the Microsoft SharePoint Foundation Workflow Timer Service.
  • Domain user account and Local Admin On SharePoint Server. (KrossfarmKF-farmadmin)

Additional permissions are automatically granted for the server farm account on Web servers and application servers that are joined to a server farm.

The server farm account is automatically added as a SQL Server login on the computer that runs SQL Server. The account is added to the following SQL Server security roles:

  • dbcreator fixed server role
  • securityadmin fixed server
    role
  • db_owner fixed database role
    for all
    SharePoint databases in the server farm

Supported Scenario:

There is little change in the supported scenario for developer/stand alone installation. Below tables mention all supported scenarios:

scenario SharePoint Server 2016
Workgroup Unsupported
Domain Controller Developer Installation
Client OS Unsupported
Dynamic Memory Unsupported
Windows Web Server Unsupported

There are mainly two types of installation:
single server
 or multiple server deployments (more
than 1 server).

Single Server Installation

This type of installation is usually used for developers, proof of concept, testing the functionalities or if you have a small number of users. You can have SQL on the same server as well as use a separate SQL Server. If this will be used in production, go
with separate SQL Server approach (1 SharePoint server, 1 SQL Server) because it gives more flexibility in future to add more SharePoint servers in the farm.

There are 3 steps to complete:

  1. Install the prerequisites
  2. Install the SharePoint
  3. Run the PSconfig wizard to set up the farm.
  4. Post-Installation Work

Before proceeding with installation, please make sure:

  • SQL Server Installed (SQL server 2014 SP1 x64).
  • Windows server 2012 R2 x64.
  • Make sure it is clean installation (fresh OS).
  • You have the installation media ready (downloaded on the one of the server’s drives or CD/DVD).
  • Product Key for the SharePoint Server 2016.
  • The account which will be used during the installation should have the proper permission.
  • Disk Drive space meets the minimum requirement.
  • Max degree of Parallelism set to 1 on the SQL Server.
  • The server has access to the internet.
  • Disable the anti-virus during installation and configuration.
  • Make sure firewall is not blocking.

Prerequisite Installations:

There are two ways to install the prerequisite on the SharePoint server.

  1. If Server is connected to the internet, then you can use the prerequisite.exe and let the wizard install it.
  2. If your server is not connected to the internet, then you can download all prerequisites and install using the command line.

Let’s install the prerequisite using the .exe.

SharePoint Installation:

Once we successfully install the prerequisites on the server then our next step is to install SharePoint Server 2016. We need the Product Key during the installation of SharePoint.

  • On the Splash Screen, click on the Install SharePoint Server.
    spalsh

  • Now enter the SharePoint Server 2016 Key (the key showed below is the Trial Key.). Click Continue.
    set2

  • Now Accept the Software Terms and click Continue.
    set3

  • On this screen, you can mention the location of the SharePoint Installation. Click Install Now.
    set4

  • This will start the installation of SharePoint.
    set5

  • Once it’s Installed successfully you will get this.
    set6

Configure the SharePoint Server:

  • Click on the SharePoint Products Configuration Wizard.

  • On the Welcome to SharePoint Products Page, click Next.
    1

  • Click Yes on the Warning Page.
    2

  • Connect to a Server Farm Screen, please Click the Create a new Server Farm radio button and click Next.
    3

  • On Configuration Database Windows, please provide the following details:

    • Database Server Name

    • Database Name (name of the Configuration Database)

    • UserName in the following format: domainUserName (this should your farm admin account)

    • Password for the account
      4
  • Please specify the Passphrase (write it down to some place safe as you need it if a new server joins to farm). Click Next.
    6
  • New MinRole feature in SharePoint 2016. As this is single-server farm configuration, please select Single-Server-Farm and
    click Next.
    7
  • Please specify the Port Number for the Central Admin website and click Next.
    8
  • On this page, please review the configuration and click Next.
    9
  • Now it will start configuring the SharePoint.
    10
  • Finally, you will get this successful screen.
    11
  • Click Finish.

SharePoint Configuration Wizard.

Once you click the Finish button, this will launch the Central admin with SharePoint
Configuration Wizard
.

This will complete the SharePoint Installation and Configuration. Now time to configure the additional service applications and create the Web Application and site collections. If you go to the Central
Admin > System Settings > Server in the Farm. 
You will see something like this.  24

Post Installation:

It is not over. You can use SharePoint and start adding the content but it is highly recommended to complete the following steps:

  • Configure incoming e-mail
  • Configure diagnostic logging
  • Configure usage and health data collection
  • Configure Search settings
  • Configure the Workflow Manager
  • Exclude the SharePoint Folders from the Anti-Virus

замечания

SharePoint может ссылаться на один или несколько продуктов из семейства Microsoft SharePoint.

  • SharePoint Foundation . Это была основная технология для всех сайтов SharePoint и больше не доступна для SharePoint 2016
  • SharePoint Server : это локальная версия SharePoint. Вы можете развернуть один или несколько серверов SharePoint. Он предлагает дополнительные функции в SharePoint Foundation, такие как возможности BI, управление корпоративным контентом и многое другое.
  • SharePoint Online : облачная версия SharePoint. Клиенту не нужно заботиться о инфраструктуре сервера или масштабируемости.

Office 365 — это отдельное предложение Microsoft, которое включает службу SharePoint Online, хотя не все планы поддерживают все функции SharePoint.

Следующие ссылки предоставляют обширные сопоставления функций между доступными версиями SharePoint:

  • SharePoint 2013 в режиме реального времени и SharePoint 2016: доступность объектов по локальным планам SharePoint
  • Возможности SharePoint в Office 365: доступность функций в планах SharePoint
  • Возможности SharePoint в SharePoint Online (без Office 365): доступность функций в автономных планах SharePoint
  • Объединенное сравнение функций между SharePoint 2013 и SharePoint Online: http://www.buckleyplanet.com/2014/06/sharepoint-online-vs-onprem-feature-comparison.html

Версии

Вступление

SharePoint 2016 — это версия семейства продуктов SharePoint версии 16. Он был выпущен 4 мая 2016 года. В этом примере рассматривается установка SharePoint 2016 с использованием конфигурации Single Server Farm. Эта конфигурация охватывает основы настройки фермы SharePoint без необходимости иметь несколько серверов. Обратите внимание, что описанные сценарии односерверной фермы обычно ограничиваются разработками и очень небольшими производственными сценариями.

Требования

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

  • 4 ядра на 64-разрядных совместимых процессорах
  • 12 — 24 ГБ ОЗУ (в зависимости от развертывания теста или prod)
  • 80 ГБ жесткий диск для системы
  • 100 ГБ жесткий диск в качестве второго диска
  • Сервер с 64-битным Windows Server 2012 R2 или Технический просмотр «Порог»
  • SQL Server 2014 или SQL Server 2016
  • .NET Framework 4.5.2 или .NET Framework 4.6
  • Домен подключился к компьютеру и делегировал учетные записи фермы

Все другие предварительные условия могут быть установлены вручную или выполнены с помощью установщика SharePoint Preprise, входящего в состав установки SharePoint.

Монтаж

  • Запустите программу установки предварительных условий; он может запросить перезагрузку сервера, прежде чем продолжить
  • Запустите Setup.exe из установки SharePoint
  • Введите лицензионный ключ
  • Принять лицензионное соглашение
  • Выберите «Завершить» на вкладке «Тип сервера»
  • Настройка должна завершиться успешно
  • На полной странице оставьте флажок рядом с Мастере настройки продукта и нажмите Закрыть

конфигурация

Если вы продолжаете с предыдущего шага, мастер настройки продуктов SharePoint 2016 должен открываться автоматически. если окно не отображается или вы используете конфигурацию позже, откройте мастер настройки, перейдя в меню Пуск -> SharePoint 2016 Products -> Мастер настройки продукта SharePoint 2016.

  • Нажмите «Далее» на странице приветствия
  • Появится модальное диалоговое окно с сообщением некоторых служб, которые я должен перезапустить во время конфигурации; ничего еще не установлено, поэтому нажмите «Да».
  • Добавить сервер базы данных для фермы
    • Введите имя машины, на которой запущен SQL Server; в этом случае это локальная машина
    • Введите имя базы данных конфигурации или сохраните имя по умолчанию SharePoint_Config
    • Введите имя пользователя пользователя службы домена, который будет обращаться к базе данных (в форме DOMAIN user). * Введите пароль для пользователя домена.
    • Нажмите дальше, когда закончите.
  • Введите пароль фермы; это будет использоваться при подключении дополнительных серверов к новой ферме
  • Выберите роль Single Server Farm
  • Настройте Центральное администраторское веб-приложение (где SharePoint будет управляться администраторами фермы) выберите номер порта и выберите тип федерации аутентификации (NTLM или Negotate (Kerberose)).
  • Просмотрите настройки на последних страницах и внесите необходимые изменения
  • Когда будете готовы, запустите конфигурацию, которая может занять несколько минут
  • По завершении работы вы откроете мастер, который позволит вам открыть сайт Центра администрирования
  • При сбое вы можете исследовать журналы в папке% COMMONPROGRAMFILES% Microsoft Shared Web Server Extensions 16 LOG

Настройка фермы

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

  • Если позднее вы запустите конфигурацию, нажмите «Быстрый запуск» -> «Мастера настройки» -> «Мастер настройки фермы»
  • Если вы запустите мастер с этапа установки, нажмите «Запустить мастер»
  • Выберите, хотите ли вы быть частью программы улучшения клиентов, нажав «Да» или «Нет».
  • На странице конфигурации фермы выберите учетную запись домена, на которой будут выполняться фоновые службы на ферме
    • Хотя эта учетная запись может совпадать с учетной записью базы данных, они могут также отличаться для разделения ролей и привилегий
    • Введите учетную запись как DOMAIN user
  • Подтвердите, какие службы вы хотите получить в ферме на странице «Услуги»
  • Создайте первый семейство сайтов в ферме (этот шаг можно пропустить и позже)
    • Введите заголовок, описание, веб-адрес семейства сайтов (обычно первый сайт находится в корне сервера), а шаблон
    • Большинство вещей можно изменить (название, описание) можно легко изменить, но другим, таким как веб-URL, может потребоваться гораздо больше работы для изменения; шаблон также не может быть легко откат, но SharePoint позволяет большое количество настроек, которые позволяют вам использовать любой базовый шаблон и преобразовать стиль и макет сайта
  • Когда вы закончите настройку, нажмите «Готово»

Ферма и первый семейство сайтов теперь настроены для использования.

dev.office.com/sharepoint — отличное место для работы с SharePoint Framework.

SharePoint Framework — это современный подход на стороне клиента к SharePoint Development, первоначально ориентированный на SharePoint Online в Office 365. Веб-части, созданные с помощью SharePoint Framework, представляют собой новый тип веб-части, и они могут быть доступны для добавления на обеих существующих страницах SharePoint и новые страницы SharePoint.

Для этого процесса есть большой привет приветственный пример. Создайте свою первую веб-часть на стороне клиента SharePoint (Hello World, часть 1) . Все примеры на dev.office.com доступны для вкладов сообщества через github.

Основные шаги Hello World в SharePoint Framework:

  1. Создайте скелет проекта с помощью Yeoman SharePoint Generator .

    yo @ microsoft / SharePoint

  2. Измените сгенерированный код в редакторе по вашему выбору. Поддержка Visual Studio Code сильна на разных платформах.

  3. Предварительный просмотр веб-части с помощью gulp и локальной SharePoint Workbench

    подача глотки

  4. Предварительный просмотр в среде SharePoint Online

Перейдите по следующему URL-адресу: « https: //your-sharepoint-site/_layouts/workbench.aspx »

Служба унифицированных журналов SharePoint (ULS) предоставляет возможности поддержки и отладки как для операционных систем, так и для разработчиков. Понимание того, как читать журналы, является важным первым шагом к решению проблем.

механическая обработка

Microsoft предоставляет средство просмотра ULS для чтения старых журналов и журналов, которые в настоящее время записываются при запуске фермы. Он также может фильтровать и применять форматирование в журналах, чтобы уменьшить проблему.

Идентификатор корреляции

Чтобы изолировать проблему, полезно только посмотреть на конкретный идентификатор корреляции. Каждый идентификатор корреляции связан с запросом или от конца до конца действия системы (например, время работы). Если возникает проблема с визуализируемой веб-страницей, поиск запроса в журналах ULS и выделение его на определенный идентификатор корреляции устраняет все шумы из других журналов, помогая выявить проблему.

Добавление SPMonitoredScope в мой код

Один из способов увеличить регистрацию и некоторый мониторинг производительности — добавить SPMonitoredScope к вашему коду.

using (new SPMonitoredScope("Feature Monitor"))
{
    // My code here 
}

Этот код будет записывать начало и конец ваших запросов, а также некоторые данные о производительности. Создавая собственный пользовательский монитор, который реализует ISPScopedPerformanceMonitor, вы можете установить уровень трассировки или максимальное время выполнения для набора кода.

Понравилась статья? Поделить с друзьями:
  • Инструкция китайского зарядного устройства для аккумуляторов
  • Как собрать прямоугольник рубика 2х2х3 инструкция
  • Мануал по ремонту ваз 2101
  • Как сделать массажер из киндеров для детского сада пошаговая инструкция
  • Афатиниб инструкция по применению цена отзывы