我一直在寻找与C#代码进行的Sharepoint交互。基本上,它将是一个小型应用程序,它将向远程共享点服务器添加/删除数据。
我发现了很多东西,但基本上有两件事:
一旦我们使用“ClientContext”访问,并且在我们拥有“网站”之后,我们可以在其上找到“List”等...
我发现的另一件事是使用“SPSite”访问,我们有“SPList”,“SP ......”等。
我是对的吗?这两种访问数据有何不同?为什么这个?我应该使用哪一个?它取决于什么?
是否有更多可能采用这些方式之一?
非常感谢:)
编辑:我不知道为什么,我不能在我的问题开始时加上“嗨”,对不起:/
答案 0 :(得分:7)
ClientContext
,Site
,Web
和List
类是SharePoint client object model的一部分。它们允许您从任何客户端计算机操作SharePoint对象。
SPContext
,SPSite
,SPWeb
和SPList
类是SharePoint server object model的一部分。它们允许您从SharePoint服务器本身部署的代码中操作SharePoint对象。
这两种技术的使用方式不同。例如,查询filtering和bulking是客户端对象模型的重要概念,但不是服务器对象模型的重要概念。
答案 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开发变得非常有趣!
干杯