SharePoint服务器端对象模型 之 对象模型概述(Part 2)
(三)Url
作为一个B/S体系,在SharePoint的属性、方法参数和返回值中,大量的涉及到了Url,总的来说,涉及到的Url可以分为如下四类:
绝对路径:完整的Url,包含了协议头(http或https)、端口号、主机名等等,例如:http://myserver/subweb/documents/myfolder/myfile.doc。在SharePoint中,必须要使用绝对路径的机会并不是很多。一些网站级别对象的属性为绝对路径,例如spWeb.Url和spSite.Url。
相对服务器路径:以“/”开头的相对于服务器的路径,不包含协议头、端口号和主机名称,例如:/subweb/documents/myfolder/myfile.doc。在SharePoint中,使用相对服务器路径的机会比较多,一些对象都包含了名为ServerRelativeUrl的属性,用来描述其相对服务器的路径,例如SPFile和SPFolder都有这样的属性。
相对网站的路径:不是以“/”开头的相对于其所在网站地址的相对路径,不包含网站本身的路径,例如:documents/myfolder/myfile.doc。在SharePoint中,这类路径也比较常见,很多对象都包含了名为Url的属性,大都指的是相对网站的路径(SPWeb和SPSite是例外)。
相对路径:相对于某个特定路径的相对路径,例如:myfolder/myfile.doc(相对于documents路径)。
在SharePoint的各种对象的属性、方法参数和返回值中,只要涉及到Url,必定会在SDK中明确指明这个Url是以上哪一种Url。在方法的参数中,很多时候可以使用多种Url,SharePoint的API会在内部进行相应的转换。
(四)如何尝试使用和了解SharePoint对象模型
在实际的开发过程中,我们所使用的Visual Studio 2010中内置的SharePoint项目模板已经帮我们做好了相关程序集和命名空间的引用,无需我们再去操心。但是如果我们只是想尝试一些对象的使用,或者确定某个具体功能是否如我们想象中正常运行,并且希望能够立刻获得结果的话,我们可以创建一个专门用来测试各种对象模型使用的控制台程序。
1、创建一个使用SharePoint对象模型的控制台程序
(1)启动Visual Studio 2010,选择新建项目(New Project);
(2)在新建项目的对话框中选择控制台程序(Console Application),并注意选择使用.NET Framework 3.5作为运行时环境(SharePoint 2010不是使用.NET 4.0的内核运行的);
(3)解决方案浏览器(Solution Explorer)中右键点击项目,选择属性(Properties),在生成“生成(Build)”标签页中,将“目标平台(Platform Target)修改为Any CPU或x64(默认为x86,但是SharePoint 2010不能运行在32位环境下);
(4)在项目(Project)菜单中选择添加引用(Add Reference),在.NET标签页中找到“Microsoft.SharePoint”,点击确定。绝大多数常用的服务器端对象模型都包含在这一程序集当中。该程序集的位置在SharePoint Root目录(C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14)中的ISAPI目录中,如果Visual Studio没有安装在服务器上,也可以将服务器目录中的Microsoft.SharePoint.dll文件手动复制出来并添加引用,并不影响程序的编写和编译(但是不能运行)。
【注】如果是SharePoint 2013的话,对应的目录是“15”
(5)在代码中添加命名空间。绝大多数常用的SharePoint对象模型都包含在Microsoft.SharePoint命名空间中,也有一些和服务器管理相关的对象模型包含在Microsoft.SharePoint.Administration命名空间中。
至此,我们就可以去试验我们的程序片段了。
2、为什么使用控制台程序
与其他类型的SharePoint项目模板相比,控制台程序包含如下优点:(1)环境简单:控制台程序运行在独立的进程中,而其他的运行在网站中的代码则运行在IIS进程或相应的用户代码进程中,使用控制台程序不容易受其他环境的影响。(2)快速看到结果:直接按下F5或者Ctrl+F5就可以看到运行结果,无需任何部署(虽然Visual Studio 2010已经将SharePoint项目模板的部署简化到了极致),也不需要经过IIS中的动态更新和加载过程,运行较快。(3)只关注数据操作的功能和逻辑,无需考虑界面层。
但是这并不意味着控制台程序没有缺点,其局限之一在于SharePoint服务器端对象模型——即本章介绍的所有内容——只能运行在SharePoint服务器上(在本书第五章会专门介绍客户端访问的对象模型),这也就意味着为了能够方便地编写和调试,我们必须把SharePoint和Visual Studio安装在同一台机器(或者虚拟机)上。局限之二在于控制台程序不太容易切换用户身份,在试验不同用户对代码的运行结果时,并不如在浏览器中切换用户方便(尽管对象模型中也提供了以特定用户身份执行操作的方式)。
不过总的来说,当我们不太确定某个对象的某种方法或属性的使用,需要写一些简短的程序片段进行试验的时候,使用控制台程序不失为一种很好的选择。控制台程序也可以作为一些简单模块的单元测试工具。实际上,在笔者编写实际项目代码的过程中,也经常使用控制台程序来测试某些不熟悉的对象模型的使用,或者测试某些代码片段的运行结果。
因此,本章中所有的代码片段都通过上述过程创建出的控制台程序进行演示。
3、如何快速查看网站中的常用对象及其属性
在Visual Studio 2010之前,我们在开发一些SharePoint项目或应用的时候,最麻烦的事情往往是需要频繁地从Visual Studio中切换到浏览器中,去查看网站的层次结构、列表的名称、字段的种种属性等,更让人头疼的是,有一些在开发过程中需要了解属性在页面中是很难发现的(比如字段的内部名称)。而如今,通过使用Visual Studio 2010种新增加的“SharePoint连接(SharePoint Connections)”功能,我们就可以直接在Visual Studio中迅速了解到网站、列表的结构,甚至这些常用对象的具体属性。
在Visual Studio中的服务器资源管理器(Server Explorer)窗口中,我们会看到一个“SharePoint连接(SharePoint Connections)”结点,我们可以在该结点上点击右键,选择添加连接(Add Connection),添加我们所需要的SharePoint站点。之后,通过这个结点,我们就可以看到网站中所有的子网站、列表、列表栏、内容类型、工作流模板等常用对象,并且在选中一个对象后,可以在Visual Studio的属性(Properties)窗口中,立即看到关于选中对象的所有属性。有了这个内置工具的支持,极大地提高了SharePoint的开发效率。
SharePoint服务器端对象模型 之 对象模型概述(Part 2)的更多相关文章
- SharePoint服务器端对象模型 之 使用CAML进展数据查询
SharePoint服务器端对象模型 之 使用CAML进行数据查询 一.概述 在SharePoint的开发应用中,查询是非常常用的一种手段,根据某些筛选.排序条件,获得某个列表或者某一些列表中相应的列 ...
- SharePoint服务器端对象模型 之 序言
对于刚刚开始接触SharePoint的开发人员,即使之前有较为丰富的ASP.NET开发经验,在面对SharePoint时候可能也很难找到入手的方向.对于任何一种开发平台而言,学习开发的过程大致会包括: ...
- SharePoint服务器端对象模型 之 访问网站和列表数据(Part 1)
本节将会介绍SharePoint中最为常用的一些对象模型,以及如何使用这些对象模型来访问和操作网站中的数据.几乎所有的SharePoint服务器端开发都会涉及到这些内容,因此应着重掌握本节中所介绍的基 ...
- 开启貌似已经过时很久的新坑:SharePoint服务器端对象模型
5年前(嗯,是5年前),SharePoint 2010刚发布的时候,曾经和kaneboy试图一起写一本关于SharePoint 2010开发的书,名字叫<SharePoint 2010 应用开发 ...
- SharePoint服务器端对象模型 之 对象模型概述(Part 1)
在一个传统的ASP.NET开发过程中,我们往往会把开发分为界面展现层.逻辑业务层和数据访问层这三个层面.作为一个应用开发平台,SharePoint是微软在直观的开发能力和自由的扩展能力之间,取到的一个 ...
- SharePoint服务器端对象模型 完结
整个系列已完结,大概看了一眼,平均阅读量不到200.估计也没什么人看了,而且服务器端对象模型除了在某些企业开发中会用到,从2013时代开始其实已经不是SharePoint开发的最佳选择了.不过既然已经 ...
- SharePoint服务器端对象模型 之 访问用户、用户组和权限(Part 1)
(一)概述 SharePoint权限系统是整个SharePoint体系中一个比较重要的部分,权限系统主要分成两大部分:认证和授权. 认证主要解决的问题是判断登陆者是否合法,以及他究竟是哪一个用户,Sh ...
- SharePoint服务器端对象模型 之 使用CAML进行数据查询
(一)概述 在SharePoint的开发应用中,查询是非常常用的一种手段,根据某些筛选.排序条件,获得某个列表或者某一些列表中相应的列表条目的集合. 除去列表上的查询之外,在SharePoint中还大 ...
- SharePoint 服务器端对象模型 之 使用LINQ进行数据访问操作(Part 2)
(四)使用LINQ进行列表查询 在生成实体类之后,就可以利用LINQ的强大查询能力进行SharePoint列表数据的查询了.在传统SharePoint对象模型编程中,需要首先获取网站对象,再进行其他操 ...
随机推荐
- 機器學習基石(Machine Learning Foundations) 机器学习基石 作业四 Q13-20 MATLAB实现
大家好,我是Mac Jiang,今天和大家分享Coursera-NTU-機器學習基石(Machine Learning Foundations)-作业四 Q13-20的MATLAB实现. 曾经的代码都 ...
- Spring 注入简介
注入方式有三种,setter,构造方法,接口注入. 常用的是setter注入和构造方法注入. setter注入: <?xml version="1.0" encodi ...
- 软件质量特征 ISO9126
ISO/IEC9126软件质量模型是一种评价软件质量的通用模型,包括3个层次: 1.质量特性 2.质量子特性 3.度量指标 其中各六个质量特性与二十七个质量子特性的关系如下表: 1.功能性 是指当软件 ...
- 工作总结 razor 接收datatable
- 深入理解Tomcat虚拟文件夹
我们知道,Web站点中的内容(包含网页,图片,音频文件等)一般都存放在App的文件夹下.但随着站点内容的不断丰富,用户须要把不同层次的内容组织成站点的子文件夹. 我们通常的做法是在站点主文件夹 ...
- Office-Excel取消掉每次打开弹出的自定义项安装程序弹窗
电脑重装了系统之后,重新安装了office2013,发现每次打开Excel都会弹出一个如下图所示的弹窗,比较烦人. 要取消掉这个弹窗也是比较简单的. 打开“文件”--“选项”--“加载项” 在下面的管 ...
- 转:c++里关于cerr,clog,cout三者的区别
c++里关于cerr,clog,cout三者的区别: cerr(无缓冲标准错误)-----没有缓冲,发送给它的内容立即被输出 clog(缓冲标准错误)--------有缓冲,缓冲区满时输出 cout- ...
- Java联网技术之一TCP socket
最近突然对java网络编程编程这一块非常感兴趣,于是找了很多资料,一点点的尝试,下面是自己的一点小见解,不喜勿喷,欢迎指正. 首先说说客户端和服务器端吧, 如果是网页的话,客户端通过网页的链接对服务器 ...
- spring 第一篇(1-3):鸟瞰spring蓝图
如你所见,spring框架的核心是关注于如何使用DI.AOP和模板来让企业级java开发变得更简单.spring确实也是这样做的,所以很值得你去使用它.不过spring内容可能比你所能看到的要多很多. ...
- MFC 改变控件的大小和位置
mfc 改变控件大小和位置用到的函数: ) void MoveWindow(int x, int y, int nWidth, int nHeight); ) void MoveWindow(LPCR ...