Как вы читаете списки SharePoint программно?

В настоящее время я использую Linq to SharePoint для извлечения данных из нескольких списков SharePoint.

Это мой текущий предпочтительный метод кодирования моего пути из ASP.NET и WinForms для извлечения этих данных.

Моя единственная проблема с этим проектом:

Мне нужно вручную создать файл SPML и добавить его в среду разработки, скомпилировать его в проекте и только тогда я смогу использовать его для подключения к списку.

Это замечательно для проектов, для которых требуется всегда подключаться к одному и тому же списку.

Но у меня есть пользователи, создающие новые рабочие пространства (сайты) с каждым своим собственным списком, из которого я хочу получить данные автоматически (так же, как linq для sharepoint, но не статически).

Вы можете рекомендовать предпочтительный способ доступа к данным из нескольких списков SharePoint и сайтов в С# WinForms и/или ASP.NET вне реальной среды SharePoint, где я могу указать новый исходный сайт и список во время выполнения?

Ответ 1

У вас есть несколько вариантов, из которых потребуются дальнейшие исследования с вашей стороны:

  • Используйте объектную модель SharePoint (Microsoft.Sharepoint.dll), вы должны находиться на ПК в ферме SharePoint.
  • Используйте веб-службы SharePoint, которые можно найти в SiteURL/_vti_bin/, вы можете начать с List.asmx и работать оттуда.

Вам понадобятся дополнительные исследования, как я уже сказал, но помните GIYF.

Ответ 2

Я действительно призываю всех на эту тему взглянуть на драйвер ado.net для sharepoint с сайта bendsoft.com. Это бесплатно для разработчиков и позволяет запрашивать информацию о совпадении с использованием стандартного sql-синтаксиса и заботиться обо всех видах преобразования для вас.

Dim conn As New SharePointConnection("Server=mysharepointserver.com;Database=sitepath;User=spuser;Password=******;")
conn.Open()
Dim cmd As New SharePointCommand("UPDATE Employees SET Salary = 3250.50 WHERE Name = 'Steve Watson'", conn)
cmd.ExecuteNonQuery()