2011-06-17 53 views
1

我一直在尋找與C#代碼的Sharepoint交互。基本上,它將是一個小型應用程序,它將向遠程共享點服務器添加/刪除數據。與sharepoint的互動,幾種方式?

我發現了很多東西,但基本上是兩件事情:

一旦我們用「ClientContext」訪問,之後我們有一個「網站」上,我們可以發現,「列表」等...

我發現的另一件事情是「SPSite的」訪問,我們有「SPList」,「SP ......」等。

我說得對不對?這兩個不同的訪問數據?爲什麼這個?我應該使用哪一個?它取決於什麼?

有沒有更多的可能性與這些方法之一?

非常感謝你:)

編輯:我不知道爲什麼,我不能「你好」我的問題開始一放,抱歉:/

回答

7

ClientContextSiteWebList類是SharePoint的client object model的一部分。它們允許您從任何客戶機操縱SharePoint對象。

SPContextSPSiteSPWebSPList類是SharePoint的server object model的一部分。它們允許您從部署在SharePoint服務器上的代碼自行操作SharePoint對象。

這兩種技術沒有以相同的方式使用。例如,查詢filteringbulking是客戶端對象模型的重要概念,但不是服務器對象模型的重要概念。

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); 

或者使用輔助方法來填充數據網格

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開發變成了很多樂趣!

乾杯

+0

我不會通過額外的3td派對API連接到提供的API。您和其他人維護您的應用程序將變得更加困難。 – 2011-06-17 12:45:44

+0

是的,我確實喜歡實體框架風格:) – J4N 2011-06-17 13:56:41

+0

JC你可能誤解了這個的目的,它是一個ADO。NET適配器的SharePoint翻譯任何查詢您發送,第三方api將在我看來是完全不同的東西。這對標準化非常有用,它確實簡化了使用SharePoint的過程。 – 2011-06-17 15:13:39