среда, 7 апреля 2010 г.

SharePoint 2010: Client Object Model API

Дошли руки посмотреть Client Object Model API появившийся в SharePoint 2010

API внешне практически полностью повторяет Server Object Model API, который был в SharePoint 2007.

Немного необычно выглядит необходимость использования методов Load и ExecuteQuery, а так же повсеместное внедрение LINQ.

Пример кода выводящего имена подсаитов корневой сайтовой коллекции:

var clientContext = new ClientContext("http://remotesrv14");
var site = clientContext.Web;

var webs = site.Webs;
clientContext.Load(webs);
clientContext.ExecuteQuery();
foreach (var web in webs)
    Console.WriteLine(web.Title);
clientContext.ExecuteQuery();

Порадовало что не запрещается менять пользователя и время создания для элементов листов:

var lst = site.Lists.GetByTitle("Test lst");
var itemCreateInfo = new ListItemCreationInformation();
ListItem listItem = lst.AddItem(itemCreateInfo);
listItem["Title"] = "Write specs for user interface."+DateTime.Now.ToShortTimeString();
listItem["Category"] = "Specification";
listItem["Author"] = 66;
listItem["Editor"] = 67;

listItem["Created"] = DateTime.Now.AddYears(-10);
listItem["Modified"] = DateTime.Now.AddYears(-5);

listItem.Update();

clientContext.ExecuteQuery();

А вот разочаровало, что через Client Object Model API, создавать и удалять сайтовые коллекции - нельзя. Очень надеюсь что останется хотя бы метод в CreateSite в Admin Web Services.

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