Как вы читаете списки 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()