Взаимодействие с sharepoint, несколько способов? - PullRequest
1 голос
/ 17 июня 2011

Я искал взаимодействия с Sharepoint из кода C #. По сути, это будет небольшое приложение, которое будет добавлять / удалять данные на удаленном сервере sharepoint.

Я нашел много вещей, но по существу две вещи:

Как только мы обращаемся с помощью «ClientContext», и после того, как у нас есть «Сайт», на котором мы можем найти «Список» и т. Д. *

Другая вещь, которую я нашел, - это доступ с помощью «SPSite», и у нас есть «SPList», «SP ...» и т. Д.

Я прав? Это два разных доступа к данным? Почему это? Какой из них я должен использовать? От чего это зависит?

Есть ли еще какие-нибудь возможности с одним из этих способов?

Большое спасибо:)

Редактировать: я не знаю, почему, я не могу поставить «Привет» в начале моего вопроса, извините: /

Ответы [ 2 ]

7 голосов
/ 17 июня 2011

Классы ClientContext, Site, Web и List являются частью клиента объектной модели SharePoint. Они позволяют вам манипулировать объектами SharePoint с любого клиентского компьютера.

Классы SPContext, SPSite, SPWeb и SPList являются частью сервера объектной модели сервера SharePoint. Они позволяют вам манипулировать объектами SharePoint из кода, развернутого на самих серверах SharePoint.

Эти две технологии не используются одинаково. Например, запросы filtering и bulking являются важными концепциями объектной модели клиента, но не объектной модели сервера.

0 голосов
/ 17 июня 2011

В дополнение к Фредерику Хамиди отличный ответ.

Скорее всего, это то, что вы ищете http://www.bendsoft.com/net-sharepoint-connector/. Он подключается через API-интерфейс SharePoint, поэтому вы можете использовать его как для внутренней, так и для внешней разработки SharePoint. Прежде всего вам не нужно изучать CAML и использовать вместо этого SQL.

Пример

Вставить некоторые данные

public void SharePointConnectionExample1()
{
    using (SharePointConnection connection = new SharePointConnection(@"
                Server=mysharepointserver.com;
                Database=mysite/subsite
                User=spuser;
                Password=******;
                Authentication=Ntlm;
                TimeOut=10;
                StrictMode=True;
                RecursiveMode=RecursiveAll;
                DefaultLimit=1000;
                CacheTimeout=5"))
    {
        connection.Open();
        using (SharePointCommand command = new SharePointCommand("UPDATE `mytable` SET `mycolumn` = 'hello world'", connection))
        {
            command.ExecuteNonQuery();
        }
    }
}

Или для выбора данных списка в DataTable

string query = "SELECT * FROM list";
conn = new SharePointConnection(connectionString);
SharePointDataAdapter adapter = new SharePointDataAdapter(query, conn);

DataTable dt = new DataTable();
adapter.Fill(dt);

Или с помощью вспомогательного метода для заполнения DataGrid

string query = "Select * from mylist.viewname";
DataGrid dataGrid = new DataGrid();
dataGrid.DataSource = Camelot.SharePointConnector.Data.Helper.ExecuteDataTable(query, connectionString);
dataGrid.DataBind();
Controls.Add(dataGrid);

Поверьте мне на слово, это превращает разработку SharePoint в удовольствие!

Приветствия

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...