【发布时间】:2009-11-14 06:42:55
【问题描述】:
我正在做一个项目,我必须在 C# 中访问 SharePoint 数据。
我以前从未这样做过;并有以下问题?
如何从 C# 访问 SharePoint 数据?我使用什么 API?是否有任何教程可以帮助我入门?
【问题讨论】:
标签: c# .net sharepoint sharepoint-2007 moss
我正在做一个项目,我必须在 C# 中访问 SharePoint 数据。
我以前从未这样做过;并有以下问题?
如何从 C# 访问 SharePoint 数据?我使用什么 API?是否有任何教程可以帮助我入门?
【问题讨论】:
标签: c# .net sharepoint sharepoint-2007 moss
您可以通过两种方式访问 Sharepoint 数据:
通过使用 Microsoft.Sharepoint.dll 在这种情况下,您需要在同一台机器(Windows 服务器)上进行编码。
第二种方法是使用 Sharepoint Web 服务。 这将允许开发人员在不同的机器上进行开发工作。
【讨论】:
SDK 是一个很好的起点。问题的真正症结在于您是编写将存在于 SharePoint 环境中的代码,还是编写将在外部应用程序中使用 SharePoint 数据的代码。
对于前者,SharePoint 有自己的 API,您只需引用适当的 DLL 即可访问。
对于后者,SharePoint 附带一组 Web 服务,允许外部应用程序使用其数据。这些或一组自定义服务(在 SharePoint 环境中运行)将成为您进入 SharePoint 的入口点。
【讨论】:
这是您在 PowerShell 中的操作方式,与您在 C# 中的操作方式非常相似:
# Lets reference the assembly / GAC that we need for this
function getUsers
{
param ([string] $verify_sitepath="https://extranet.something.com")
$verify_site=new-object Microsoft.SharePoint.SPSite($verify_sitepath)
$verify_web=$verify_site.Rootweb
$verify_web.site.url
$verify_groups = $verify_web.groups | ? {$_.Name -match "^.*$CurrentGroup" }
foreach($verify_group in $verify_groups)
{
foreach($verify_user in $verify_group.users)
{
$verify_user = $verify_user -replace "WRKGRP\\",""
Write-Output "$verify_user" | Out-File -filepath "$splist$currentGroup.txt" -append
}
}
}
这样做是从 SharePoint 获取文本文件中的所有用户。希望这至少能让您思考 SharePoint 的设置方式。
一个很好的资源是具有所有功能的 MSDN 页面。他们提供了大量的 C# 编程示例!
【讨论】:
从Sharepoint SDK page 开始。下载 SDK,查看 MSDN 上的示例代码。
后来添加:根据 MS 的说法,this 是一个更好的站点,可以处理与 Sharepoint 开发相关的所有事情。
【讨论】:
您必须为共享点安装VS 2005 or VS 2008 extensions。在 xp 上安装它们可能会很棘手,this page 应该会帮助你。
【讨论】:
您还应该知道 CAML Query 从共享点列表中查询数据
你可以利用这样的工具http://www.u2u.be/Res/Tools/CamlQueryBuilder.aspx
【讨论】:
在我看来,您应该使用开箱即用的 SharePoint Web 服务。当您可以仅与 Web 服务交谈时,没有理由必须学习整个 SharePoint API。
这个primer on InfoQ 不错,但是在 SharePoint Web Services 上搜索一下,你会发现很多资源
【讨论】: