Quantcast
Channel: Automate IT! » development
Viewing all articles
Browse latest Browse all 8

Sharepoint 2010. Client Object Model (SCOM). Introduction. Клиентская объектная модель. Введение

$
0
0

Введение:

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

Так, любимые всеми администраторами и дизайнерами Sharepoint Designer и PowerShell могут быть запрещены на фермах, не давая нам полностью насладиться всей гибкостью предоставляемой платформы. Это наверняка правильно, потому что любая модификация на продуктовой должна быть обоснована и, если Вы прибегаете к клиентской модели, значит это действительно нужно.

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

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

Клиентская объектная модель доступна в 3х вариациях:

  1. Клиентские приложение (WinForms, Console)
  2. Ecmascript
  3. Silverlight
  4. В данной статье я буду ориентироваться на некоторые тонкости клиентских приложений, с которыми пришлось столкнуться именно мне.Чтобы начать работать необходимо иметь у себя распределяемые сборочки SCOM:

  • Microsoft.SharePoint.Client.dll,
  • Microsoft.SharePoint.Client.Runtime.dll
    • Получить их можно 2мя способами:
      1. Забрать их с Sharepoint сервера
      Путь для получения сборок: C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\ISAPI
      2. Скачать и установить пакет со сборками
      В последнем случае требуемые сборки после установки пакета находятся по адресу – C:\Program Files\Common Files\Microsoft Shared\SharePoint Client

      401 Unathorized

    Эту же вы ошибку Вы можете иногда встретить и при вызове CAML Builder приложения (http://www.u2u.net/Tools/wincamlquerybuilder/CamlQueryBuilder.aspx) . Насколько я понимаю, ошибка связана с тем, что либо изначально при составлении запросов клиентской объектной модели не указываются учетные данные пользователя, либо они не проходят на при повторной (second-hop) передаче данных.

    Что же, выход есть: используйте учетные данные (credentials) явно:
ClientContext Context = new ClientContext(http://…webadress…);
NetworkCredential Cred = new NetworkCredential("username", "password", "Domain");
Context.Credentials = Cred ;

      Заполнение данными объектов клиентской моделью

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

      Наверняка Вы еще не раз столкнетесь с такой или подобными ошибками, пророчишими отсутствие значения даже в переменной типа string:

    ArgumentOutOfRangeException : index and count must refer to a location within the string

      Поэтому необходимо точно понимать, получили ли Вы значение в ходе запроса  к удаленному серверу (Load, LoadQuery, ExecuteQueryAsync) или требуются дополнительные уточнения.

      Полезные ссылки:



      Viewing all articles
      Browse latest Browse all 8

      Trending Articles