воскресенье, февраля 10, 2013

Sharepoint и Windows Store - 2

Как-то смешно выглядит невозможность сделать приложение для WinRT, работающее с Шарепойнтом – прямо из серии “такого не может быть…”. Должна же быть какая-то возможность…
При рассматривании SDK попадается на глаза “ECMAScript Class Library” – библиотека для работы с CSOM на языке ECMAScript (JavaScript, JScript). Отлично, щас попользуемся…
Раскопки на MSDN показывают, что программу для WinRT тоже можно соорудить на JavaScript (+ HTML5, CSS 3 etc). Совсем здорово, начинаем пробовать практически, тем более, даже книжка бесплатная на эту тему существует.
Делаем по книжке, примеры работают, начинаем смотреть, как оно вообще устроено, и …приходим в ужас: написать руками  код на JScript длиннее 50 строк и сложнее вызова alert(“Hello!”) можно только после двух месяцев тренировок…
Выходим из прострации, обращаемся к Гуглю и выясняем, что для облегчения жизни существует язык TypeScript – масштабируемый, с типизацией, поддерживается MS. Ура, мы спасены! Тем более, к языку приложено довольно приличное приложение для WinRT. Ну, немного кривоватое, но к мелочам зачем же цепляться…
Делаем новое приложение, добавляем туда js-скрипты из папок Шарепойнта, в файле script.ts пишем долгожданное
clientContext = SP.ClientContext.get_current();
На этом эксперименты с TypeScript заканчиваем: выясняется, что JS-библиотеки языком TypeScript не воспринимаются, а библиотек с определениями типов (*.d.ts-файлов) никто пока не сделал и в общее пользование не предоставил.
При попытках продолжить эксперименты уже на JavaScript выясняем, что “ECMAScript Class Library” вовсе не предназначена для работы вне страниц, полученных с сервера Sharepoint: в отличие от C#-библиотеки, js-объект SP.ClientContext не имеет средств для логина пользователя и не позволяет коннектиться к произвольному УРЛ. И это не только в версии 2010, но и в новейшей 2013-й… Можно, наверное, эти библиотеки дополнить соответствующим функционалом – но это уже другая песня.
Остаётся, конечно, ещё одна возможность – REST-сервисы. Но что-то в 2010-й версии Шарепойнта лично у меня с ними отношения не сложились, а 2013-й Sharepoint пока не сильно интересует…
В общем, подождём развития событий. А WinRT пока поживёт без Шарепойнта (особенно, в версии для ARM).

Комментариев нет: