与sharepoint交互,有几种方式?

时间:2011-06-17 07:48:20

标签: c# .net sharepoint sharepoint-2010

我一直在寻找与C#代码进行的Sharepoint交互。基本上,它将是一个小型应用程序,它将向远程共享点服务器添加/删除数据。

我发现了很多东西,但基本上有两件事:

一旦我们使用“ClientContext”访问,并且在我们拥有“网站”之后,我们可以在其上找到“List”等...

我发现的另一件事是使用“SPSite”访问,我们有“SPList”,“SP ......”等。

我是对的吗?这两种访问数据有何不同?为什么这个?我应该使用哪一个?它取决于什么?

是否有更多可能采用这些方式之一?

非常感谢:)

编辑:我不知道为什么,我不能在我的问题开始时加上“嗨”,对不起:/

2 个答案:

答案 0 :(得分:7)

ClientContextSiteWebList类是SharePoint client object model的一部分。它们允许您从任何客户端计算机操作SharePoint对象。

SPContextSPSiteSPWebSPList类是SharePoint server object model的一部分。它们允许您从SharePoint服务器本身部署的代码中操作SharePoint对象。

这两种技术的使用方式不同。例如,查询filteringbulking是客户端对象模型的重要概念,但不是服务器对象模型的重要概念。

答案 1 :(得分:0)

除了FrédéricHamidi的优秀答案。

这很可能是您正在寻找的http://www.bendsoft.com/net-sharepoint-connector/。它通过SharePoint API进行连接,因此您可以将其用于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开发变得非常有趣!

干杯