2009-06-10 60 views
5

我想從我們公司的SharePoint網站創建一個C#ASP.Net應用程序和查詢(讀取)信息。這是可能的,如果是這樣的話?將SharePoint用作數據源

回答

9

一個獨立的應用程序從SharePoint站點從外部農場是通過Sharepoint Web Services讀取數據的最佳方式。該頁面對哪些服務可用以及每個服務的功能進行了高級總結。在Visual Studio中,您可以通過在應用程序中創建Web References來連接到所需的服務。

2

可能要使用Lists.asmx服務。從我的記憶中,您應該能夠通過http:///_vti_bin/Lists.asmx來引用Sharepoint服務。有數據訪問,站點/頁面管理,安全等服務。

默認情況下,如果您在名爲MyServer的服務器上名爲HR的頁面上有一個列表,它將是http://MyServer/HR/_vti_bin/Lists.asmx。每個新網站都會自動創建這些網絡服務。

您也可以參考SAMS書「微軟SharePoint 2007的開發」。我曾用於以前的項目,它有幫助。

2

Lists.asmx可能是您最好的選擇。如果您確定您的ASP.NET網站將與SharePoint位於同一臺服務器上,則可以使用SharePoint對象模型。

請注意,SharePoint列表與數據庫表不同。諸如外鍵約束,唯一鍵等在SharePoint中不如健壯。

SharePoint列表提供了大量的價值,但也有在上面的東西也加在性能上的代價。

0

那麼誰去提鈍XML這些服務的回傳?

+0

經過與XML掙扎,這需要處理,我完全同意Wyatt的評論。在網絡應用程序中使用Sharepoint數據沒有簡單的方法,與MS Access 2007不同。 – Nick 2009-07-17 17:04:25

1

我同意Rex M.此外,您可以使用Linq to SharePoint來幫助自己生成並運行查詢。它允許您通過WS或Object模型進行連接,因此您可以在WSS服務器內部或外部使用它。

2

問的問題是一個很好的問題。但是答案現在已經過時了。

有新的方法可以做到你的要求:

  1. SharePoint 2010的現在本身就支持CRUD操作過亂箱REST接口
  2. ADO.NET數據服務可以針對REST使用端點,然後LINQ查詢是可能的。
  3. 如果您希望僅有客戶端的ASP.NET應用程序執行此項工作(ala無服務層),jQuery還可以針對該服務執行CRUD操作。
  4. 使用Microsoft.SharePoint.Linq(和SPMetal從SP站點創建實體模型),也可以使用該路線。

還有一個客戶端對象模型。

結果集可以是XML,JSON的形式,或AtomFeed

請查看以下鏈接代碼的細節:

http://mydevexperience.wordpress.com/2011/06/25/how-to-query-sharepoint-data-source-using-ado-net-data-services/

http://mydevexperience.wordpress.com/2011/05/11/sharepoint-list-access-part-iii-how-to-access-sharepoint-windows-communication-foundation-wcf-rest-representational-state-transfer-services-using-jquery-entirely-client-side-only/

相關問題