SharePoint 沙盒解决方案 VS 场解决方案

博客地址 http://blog.csdn.net/foxdave

最近看书正好看到了关于沙盒解决方案的介绍,便整理记录一下。

虽然沙盒解决方案已经在最新的SharePoint开发中被否决弃用了(被APP取代),但是我觉得一些简单的东西用也无妨,比如霖雨大神文章中提到的那种情景。

具体内容参阅“在 SharePoint 2013 中选择正确的 API 集”。

我们先来回顾一下SharePoint开发接口历程

●SharePoint 2007(2007之前的版本不是很熟悉,但应该是跟2007类似的):此时是场解决方案的天下(或者说,沙盒解决方案还没有),而且WSP解决方案包需要手工生成,是简陋的原始的;同时,SharePoint提供了WebService供远程调用,也可以做很多操作。

●SharePoint 2010:沙盒解决方案出现了。同时,API中也新增了客户端对象模型(CSOM)。借助Visual Studio 2010,解决方案的生成也变得智能化,把开发者从繁琐的打包部署过程中解放出来,大大缩短了调试时间。具体内容参阅“决定要使用的 SharePoint 2010 API”。

●SharePoint 2013:SharePoint APP问世了,伴随而来的开发接口也变得丰富起来,具体内容参考上面的链接。

回到我们的重点,沙盒解决方案。

沙盒是一个受限制的执行环境,可使程序仅访问某些资源,并使在沙盒中发生的问题不会影响服务器环境的其余部分。部署到沙盒中的解决方案称为沙盒解决方案,它们不能使用某些计算机和网络资源,也不能访问它们部署到的网站集以外的内容。

因为沙盒解决方案不会影响整个服务器场,因此不必由服务器场管理员进行部署。沙盒解决方案可以由网站集管理员部署,或者,在某些情况下,可由具有对网站集根目录的完全控制权限级别的用户部署。但是,只有服务器场管理员才能配置沙盒解决方案相关设置(如负载平衡、层、配额和资源点),也只有服务器场管理员才能提升沙盒解决方案,使其直接在沙盒环境之外的服务器场中运行。

沙盒解决方案适合在以下两种常见情况下使用:

  • 组织希望在 SharePoint Server 生产网站上运行员工代码,并且此代码没有经过严格的评审和测试。
  • 宿主希望让所承载的 SharePoint Server 网站的所有者上载和运行自定义代码。

使用沙盒解决方案的主要好处如下:

  • 可以将沙盒解决方案添加到 SharePoint Server 生产环境中,而不存在影响沙盒外的进程的风险。
  • 网站集管理员可以部署沙盒解决方案。这将使服务器场管理员从此项任务中解脱出来。
  • 由于沙盒在可受配额限制的单独进程中运行,并且可以监控其对服务器场的影响,因此增加了可伸缩性和灵活性。
  • 可以将解决方案从沙盒中移出并直接在场中运行,而不必修改或重新编译解决方案。

因为沙盒解决方案的局限性,必然有一些东西是它无法实现的,这些内容包括:

?连接到不在本地服务器场上的资源。
?访问数据库。
?更改线程模型。
?调用非托管代码。
?写入到磁盘。
?访问不同网站集中的资源。

下面详细比较场解决方案与沙盒解决方案的区别

场解决方案:

运行在IIS工作进程(W3WP.EXE)中。

运行在场解决方案中的代码会影响整个场。

部署或回收任何功能时,都会造成整个应用程序池被回收。

由于范围为场级别,他们对所有的资源都有完全信任的访问权限。

沙盒解决方案:

运行在SharePoint用户代码解决方案工作进程(SPUCWorkerProcess.EXE)中。

该进程运行在CAS策略下被限制访问沙盒之外的任何资源,所以它从来不会重启IIS应用程序池。

运行的代码只会影响解决方案所在的网站集。

注意:

场解决方案是安装和部署、沙盒解决方案是上传和激活。

沙盒解决方案不能创建在TEMPLATES/_LAYOUTS下的应用程序页,部署的沙盒解决方案没有访问文件系统物理路径的权限。

沙盒解决方案无法创建可视化Web部件(在SharePoint 2013中可以,但是要确保使用的类对象没有被限制并且没有使用layout文件夹)。

沙盒解决方案无法使用代码链接外部的Web服务或数据库。

有些API的类无法使用。

方面 沙盒

部署过程


添加解决方案,然后将它部署到场中。


将解决方案上载到网站集,然后在网站集中将其激活。


可以部署的人


服务器场管理员。


如果解决方案中包含一个程序集,则只有网站集管理员可以部署它。如果解决方案不包含程序集,则拥有对网站集根目录的完全控制权限级别的用户可以部署它。


数据访问


不受限制。


解决方案只能访问部署到的网站集中的内容。


运行解决方案的进程


不受限制的 IIS 工作进程,或将解决方案部署到的任何进程。


单独的权限受限制的工作进程。


代码访问安全性


解决方案开发人员在将解决方案打包时可以设置代码访问安全性策略。


受限制。


监控


不受监控。


受监控,并受服务器场管理员设置的配额限制。


负载平衡


不定,具体取决于解决方案的种类。


可从非沙盒解决方案单独配置。


解决方案功能


不受限制。


受限制。

补充阅读:

沙盒解决方案概述 (SharePoint Server 2010)

可以在沙盒解决方案中实现哪些内容

沙盒解决方案的限制

Top 10 reasons to use Sandboxed Solutions

Top 10 things to consider when writing SandBoxed Solutions

时间: 2024-12-17 13:41:07

SharePoint 沙盒解决方案 VS 场解决方案的相关文章

SharePoint 沙盒无法启动新的解决方案服务的SPUserCodeV4

开发部署时报错: 错误原因:没有启动该服务: 解决方式:打开管理中心—应用程序管理—服务应用程序--管理服务器上的服务,启动该服务即可.

SharePoint 2013 沙盒解决方案不能激活(激活按钮不可用)

把沙盒解决方案上传到目标站点的"解决方案"库中,发现"激活"按钮是灰掉的,不可用. 首先,我想到的是权限不足,所以 "以管理员身份"启动IE,然后发现还是不能激活. 莫非是沙盒服务没启动?去查看:管理中心------系统设置-------管理服务器上的服务 果然是"Microsoft SharePoint Foundation Sandboxed Code Service"没有启动. 将其启动,然后就可以激活你的沙盒解决方案了

SharePoint2010沙盒解决方案基础开发——开发webpart读取绑定列表数据,并以一定的格式显示(加css样式)

SharePoint2010沙盒解决方案基础开发——开发webpart读取绑定列表数据,并以一定的格式显示(加css样式) 分类: SharePoint2011-12-22 15:13 1974人阅读 评论(2) 收藏 举报 sharepointcss2010classbordernull SharePoint2010沙盒解决方案基础开发——开发webpart读取绑定列表数据,并以一定的格式显示(加css样式) 注:此实例无需添加数据控件,避免了一些繁琐的代码 实现效果如下: 读取数据和图片,并

SharePoint2010沙盒解决方案基础开发——关于TreeView树形控件读取列表数据(树形导航)的webpart开发及问题

SharePoint2010沙盒解决方案基础开发——关于TreeView树形控件读取列表数据(树形导航)的webpart开发及问题 分类: SharePoint2012-01-16 14:24 1295人阅读 评论(1) 收藏 举报 sharepoint2010queryurllistborder SharePoint2010沙盒解决方案基础开发——关于TreeView树形控件读取列表数据(树形导航)的webpart开发及问题 1.实现效果如下: 点击各个节点进入相应的链接 2.测试列表: 3.

SharePoint 2013 场解决方案包含第三方程序集

前言 当我们使用SharePoint 场解决方案的时候,经常会包含第三方的程序集,而第三方的程序集经常会有强签名的问题,如果有强签名可以部署到GAC,没有的话也可以部署到应用程序下. 那么,很多初学者部署的时候,会纠结怎么将dll跟随wsp部署到GAC或者应用程序,其实,很简单,下面跟着步骤来看一下吧. 我这里创建了一个解决方案,就是一个List模板,包含了一个第三方dll(我这里为了测试,就引用了一个其他解决方案的dll),如下图: 双击解决方案里面的Package下面的Package.pac

如何升级SHAREPOINT场解决方案到2013上

原文地址:How to upgrade a custom application to SharePoint 2013 如何升级SHAREPOINT场解决方案到2013上 如果你把SharePoint2010场解决方案(WSP文件)安装到2013,很大程度上他都能好用.这个很可能是因为Microsoft 部署了所有用来支持SharePoint2010的文件到了14 hive.当你部署解决方案,如果Manifest.xml包含 'SharePointVersion="14.0",Shar

SharePoint Farm 3-Tier拓扑结构的实施解决方案

难得的假期,难得有时间来梳理知识. 我写过很多关于SharePoint的安装和配置,有利用PowerShell的,也有图形安装界面的. 也演示了怎样创建一个双层的SharePoint Farm,怎样利用Least Privilege原则来提升SharePoint的安全性. 利用AutoSPSourceBuilder和Autospinstaller自动安装SharePoint Server 2013图解教程——Part 1 利用AutoSPSourceBuilder和Autospinstaller

IOS数据存储 —— 沙盒

沙盒结构 沙盒的文件系统?录,如下图所示(假设应用的名称叫Layer) 1.Documents 目录 您应该将所有的应用程序数据文件写入到这个目录下. 这个目录用于存储用户数据或其它应该定期备份的信息. 保存由应用程序产生的文件或者数据,例如:涂鸦程序生成的图片,游戏关卡记录 iCloud会自动备份Document中的所有文件. 上架注意 如果保存了从网络上下载的文件,在上架审批的时候会被拒! 2.AppName.app 目录:这是应用程序的程序包目录,包含应用程序的本身.由于应用程序必须经过签

IOS开发——UI进阶篇(十一)应用沙盒,归档,解档,偏好设置,plist存储,NSData,自定义对象归档解档

1.iOS应用数据存储的常用方式XML属性列表(plist)归档Preference(偏好设置)NSKeyedArchiver归档(NSCoding)SQLite3 Core Data 2.应用沙盒每个iOS应用都有自己的应用沙盒(应用沙盒就是文件系统目录),与其他文件系统隔离.应用必须待在自己的沙盒里,其他应用不能访问该沙盒应用沙盒的文件系统目录,如下图所示(假设应用的名称叫Layer)模拟器应用沙盒的根路径在: (apple是用户名, 8.0是模拟器版本)/Users/apple/Libra