Skip to content

Instantly share code, notes, and snippets.

View koltyakov's full-sized avatar

Andrew Koltyakov koltyakov

View GitHub Profile
@koltyakov
koltyakov / using-pnp-js-core-outside-a-browser-node-js-environment.md
Last active May 19, 2017 09:33
Using PnP JS Core outside a browser (Node.js environment)

Использование PnP JS Core за пределами браузера (в среде Node.js)

Расширяем области применения любимых инструментов

Осенью прошлого года я писал об первоначальном опыте использования PnP JS Core, прошло вот уже как 9 месяцев. В том посте я поделился первыми впечатлениями использования библиотеки и решением использовать ее на боевых проектах.

Что же я могу поведать по прошествии времени? Сейчас, для меня и команды, PnP JS Core стала почти обязательной и включаемой по умолчание в шаблоны сборок front-end проектов для SharePoint. Честно говоря, я практически забыл, когда в последний раз приходилось прибегать к помощи старичка JSOM (sp.js) для взаимодействия с объектами SharePoint API в рамках UI-приложений. JS Core предоставляет интерфейс к почти всем доступным часто используемым элементам REST API. Конечно не без проблем самого REST, есть довольно много чего, что в REST по каким-то прич

Работа с API службы профилей пользователей SharePoint с помощью Node.js

Данная статья является логическим продолжением предыдущей публикации, где разбиралось, как работать со службой управляемых метаданных (MMD). Статья приоткрывает проблематику работы с SharePoint API средствами Node.js, а именно - работу с API очень популярного сервиса SharePoint - службами профилей пользователей (UPS).

REST интерфейс для UPS будет поинтереснее аналогичного для MMD, как минимум он есть. Разделы UPS API PeopleManager и ProfileLoader позволяют довольно много чего. Однако, как всегда, не обошлось без того, что чего-то да и не хватает, не все возможности CSOM UPS присустствуют в его аналоге на REST. Большинство методов предназначены для работы с собственным профилем и большинство свойств только на чтение.

В нашем же сценарии мы собираемся создать механизм по записи свойств в произвольные п

@koltyakov
koltyakov / working-with-sharepoint-mmd-in-node-js.md
Created February 15, 2017 16:42
working-with-sharepoint-mmd-in-node-js

Работа со службой управляемых метаданных SharePoint в Node.js

Программный интерфейс REST API в SharePoint решает массу задач автоматизации в SharePoint и является универсальным, платформанезависимым, однако зачастую можно "встрять" в ситацию ограничений и отсутствия нужной функциональности в REST API, которая есть в других объектных моделях (CSOM/JSOM). Не проблема, когда исполняемый код является частью клиентского приложения на странице SharePoint, т.к. отсутствующий в REST метод может быть в JSOM API. Но что, если контекст исполнения - не страница в браузере? Если код запускается не в браузере, самое очевидное использовать C# CSOM или PowerShell c SSOM или CSOM. Но что, если среда исполнения и используемый язык ограничены и .Net не вариант?

В данной статья я хочу рассмотреть возомжности Node.js и JavaScript "на сервере". А задачей будет обеспечить базовый слой функциональности для работы с Managed Metadata (Taxonomy). Необходимо реализовать, например, следующие методы и при этом не использовать дополнит

@koltyakov
koltyakov / pnp-basic-example.js
Last active September 9, 2016 15:56
PnP-JS-Core
$pnp.sp.web
.lists.getByTitle('ListTitle').items
.get()
.then(function(items) {
// all items are in the `items` array
});

Разработчики SharePoint все больше привыкают в современным подходам клиентской разработки. Сама front-end разработка для SharePoint превращается в некий гибрид использования Visual Studio Code, Gulp задач и инструментов разработки Chrome (Dev Tools + Workspaces).

Все больше подходов и инструментов из "хипстерской тусовки" оседают как профессиональные средства, без которых сам процесс кодинга кажется уже невозможным. Однако, всегда есть что-то, чего не хватает для полноты картины. Чтобы хотелось видеть после того, как в редакторе кода нажимется "Ctrl+S"? Правильно, чтобы изменение было сразу отображено на живой странице портала. Возможно кто-то скажет - "А как же BrowserSync (это модуль, позволяющий динамически отслеживать изменения в локальных исходниках и обновлять страницу отладки)?". "А Вы пробовали его подружить с SharePoint?", отвечу я.

В SharePoint есть ряд специфических нюансов, которые не позволят BrowserSync предоставить все, что хотелось бы. К счастью, теперь есть альтернатива.

Не так давно я об