【转】1.2SharePoint服务器端对象模型 之 对象模型概述(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的内核运行的);

image

(3)解决方案浏览器(Solution Explorer)中右键点击项目,选择属性(Properties),在生成“生成(Build)”标签页中,将“目标平台(Platform Target)修改为Any CPU或x64(默认为x86,但是SharePoint 2010不能运行在32位环境下);

image

(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的开发效率。

image

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/439301.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【转】2.1 SharePoint服务器端对象模型 之 访问网站和列表数据(Part 1)

本节将会介绍SharePoint中最为常用的一些对象模型,以及如何使用这些对象模型来访问和操作网站中的数据。几乎所有的SharePoint服务器端开发都会涉及到这些内容,因此应着重掌握本节中所介绍的基本对象模型的使用方法。由于篇幅所限,在介绍每种…

SharePoint安全 - SharePoint网站常用页面URL索引

一. 主要网站内容 首页 /default.aspx /Pages/default.aspx 网站设置 /_layouts/settings.aspx 所有网站内容 /_layouts/viewlsts.aspx 移动端所有网站内容 /_layouts/mobile/mbllists.aspx 共享文档 /shared documents/forms/allitems.aspx 管理网站内容结构 /_l…

docker安装与学习

安装Docker 系统环境:macOS Catalina 10.15.7 通过brew安装docker brew install --cask --appdir/Applications docker 直接brew install docker装上的好像不是,好像是当成了formula了。如下图 brew cask install docker直接提示命令不对&#xff0c…

集群、分布式、负载均衡区别与联系

1、Linux集群主要分成三大类( 高可用集群, 负载均衡集群,科学计算集群) 集群是一个统称,他分为好几种,如:高性能科学群集、负载均衡群集、高可用性群集等。 科学群集 、高性能集群(High performance clus…

Mac下使用brew的常用步骤

以docker为例: 第一步: 先 brew search 软件名 然后发现在Formulae和Casks中都有docker包。 第二步: 分别查看info brew info dockerbrew info homebrew/cask/docker 从详情中可以看出,cask下的才是Docker Desktop for Mac&a…

【机器学习】 - keras中的模型可视化plot_model模块(含依赖包pydot和graphviz的详细安装过程与注意事项)

运行环境: win10 anaconda3-spyder python3.7.4 tensorflow2.0.0 首先需要安装两个包pydot和graphviz,不然会报错: Failed to import pydot. You must install pydot and graphviz for pydotprint to work. 然后去anaconda prompt 里去…

【git学习】统计git项目某user的代码量

查看自己的代码量:(直接awk编程) git log --author"username" --prettytformat: --numstat | awk { add $1; subs $2; loc $1 - $2 } END { printf "added lines: %s, removed lines: %s, total lines: %s\n", add, …

一步步编写操作系统 79 在c代码中内联汇编

基本内联汇编是最简单的内联形式,其格式为: asm [volatile] (“assembly code”) 各关键字之间可以用空格或制表符分隔也可以紧凑挨在一起不分隔,各部分意义如下: 关键字asm用于声明内联汇编表达式,这是内联汇编固定…

LeetCode 237. 删除链表中的节点(思维)

请编写一个函数,用于 删除单链表中某个特定节点 。在设计函数时需要注意,你无法访问链表的头节点 head ,只能直接访问 要被删除的节点 。 题目数据保证需要删除的节点 不是末尾节点 。 https://leetcode-cn.com/problems/delete-node-in-a-…

LeetCode 397. 整数替换

题目大意: 给定一个正整数 n ,你可以做如下操作: 如果 n 是偶数,则用 n / 2替换 n 。 如果 n 是奇数,则可以用 n 1或n - 1替换 n 。 n 变为 1 所需的最小替换次数是多少? 链接:https://leet…

LeetCode 375. 猜数字大小 II

题目大意: https://leetcode-cn.com/problems/guess-number-higher-or-lower-ii 我们正在玩一个猜数游戏,游戏规则如下: 我从 1 到 n 之间选择一个数字。 你来猜我选了哪个数字。 如果你猜到正确的数字,就会 赢得游戏 。 如果你…

【转】2.3SharePoint服务器端对象模型 之 访问网站和列表数据(Part 3)

(三)视图 与传统意义上的数据视图类似,SharePoint中的列表视图指定了列表中数据的筛选条件、排序条件、分组条件、显示栏/字段、显示条目数、显示样式等内容。在SharePoint中,使用SPView表示列表视图,使用SPViewColle…

【转】2.4SharePoint服务器端对象模型 之 访问网站和列表数据(Part 4)

(四)栏/字段 SharePoint中的字段(中文版中叫做“栏”)与传统的数据栏类似,也有不同类型的区别,不过SharePoint中内置的栏类型除了按照数据类型(如数字、日期和时间等)进行区分之外&…

【转】2.5SharePoint服务器端对象模型 之 访问网站和列表数据(Part 5)

(五)列表条目(SPListItem) SharePoint中数据的存储基本上都是通过列表条目来完成(文档库中的文档也是一种特殊的列表条目),因此在SharePoint应用开发中,最终是要和列表条目打交道的…

【转】3.3SharePoint服务器端对象模型 之 访问文件和文件夹(Part 3)

(三)遍历 文件系统的遍历是指按照文件夹的层级结构遍历文档库、列表的文件夹和列表条目。遍历主要有三种方式:(1)直接使用文件系统对象模型进行遍历;(2)使用SPDocumentLibrary进行遍…

【LeetCode240、剑指offer04】二维数组中的查找(线性做法)

在一个 n * m 的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个高效的函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 示例: 现有矩阵 matrix 如下&#x…

【转】4.2SharePoint服务器端对象模型 之 使用CAML进行数据查询(Part 2)

(三)使用SPQuery进行列表查询 1、概述 列表查询主要是指在一个指定的列表(或文档库)中按照某些筛选、排序条件进行查询。列表查询主要使用SPQuery对象,以及SPList的GetItems方法,将SPQuery作为参数传递&a…

【转】理解SQL Server的安全对象和权限

理解安全对象(Securable) 安全对象,是SQL Server 数据库引擎授权系统控制对其进行访问的资源。通俗点说,就是在SQL Server权限体系下控制的对象,因为所有的对象(从服务器,到表,到视图触发器等)都在SQL Server的权限体系…

【NC14 按之字形顺序打印二叉树】

描述 给定一个二叉树&#xff0c;返回该二叉树的之字形层序遍历&#xff0c;&#xff08;第一层从左向右&#xff0c;下一层从右向左&#xff0c;一直这样交替&#xff09; 数据范围&#xff1a;0 \le n \le 15000≤n≤1500,树上每个节点的val满足 |val| < 100∣val∣<1…

SharePoint 2010文档库批量下载文档的实现

在SharePoint 2010文档库中&#xff0c;结合单选框&#xff0c;在Ribbon中提供了批量处理文档的功能&#xff0c;比如&#xff0c;批量删除、批量签出、批量签入等&#xff0c;但是&#xff0c;很遗憾&#xff0c;没有提供批量下载&#xff0c;如图: 若选中多个文档后&#xff…