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.
Комментариев нет:
Отправка комментария