Как вы читаете списки SharePoint программно? - PullRequest
11 голосов
/ 29 января 2009

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

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

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

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

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

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

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

Ответы [ 2 ]

9 голосов
/ 29 января 2009

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

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

Вам понадобятся дальнейшие исследования, как я уже говорил, но помните GIYF.

4 голосов
/ 26 января 2011

Я бы очень рекомендовал всем в этой теме взглянуть на драйвер ado.net для sharepoint с bendsoft.com. Это бесплатно для разработчиков и позволяет вам запрашивать информацию о sharepoint с использованием стандартного синтаксиса 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()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...