什么是Sandboxed solution? sandboxed solution是一个由SharePoint 2010引入的新概念. solution指的就是你部署自定义的代码到SharePoint服务器上. 自定义代码是实际工程中不能没有的, 但是自定义代码也是大多数精力花费和头痛问题的主要来源.
sandboxed solution是运行在一个安全沙盒(save sandbox)中的自定义代码. 它运行在某些不可妥协的标准的限制之下, 所以它只能做某些事情, 有些事情是不能做的. 这些被禁止的事情绝大多数都是刚才说到的让人头痛的原因.
除了被限制不能做某些事之外, sandboxed solution还可以被两个层次的管理员的监控. 站点集管理员可以通过Site Actions -> Site Settings -> Solution Gallery来监控; 场管理员可以通过基于每个站点集的管理中心页面来监控sandboxed solution.
场管理员不光可以监控sandboxed solution, 他还可以在不同site collection的管理页面上通过standard quota mechanism, 来为sandboxed solution设置资源分配的上限. 对这种资源分配的限制由16项指标, 这种配置是通过基于点的系统来做到的. 场管理员为站点集分配点的数目. 如果任何的sandboxed solution引发了分配点超过限额的情况, 那么那个站点集上的所有的sandboxed solution都会被停止, 直到24小时持续运行的timer job重置(reset)站点集才恢复它们. 还有, 当你运行在配额数目下的时候, 如果你想做点坏事, 比如说格式化C盘, 那么你的执行也会被阻止掉, 同时还会扣掉一定数目的配额, 如果你的solution再一次尝试做坏事, 结果可想而知, 再一次被阻止, 然后扣掉更多的配额. 这些指标中的每一个, 你都能力在执行被停掉之前设置绝对上限, 或者选择增长资源点数值而不阻止资源的分配. 当你想要停掉执行同时增加资源点的时候是比较有用的.
场管理员还可以阻止某个sandboxed solution的执行.
最后, 如果你的代码被限制的很多, 监控的很多, 但总体来说很少对服务器环境惹麻烦, 你在部署的时候就会更加有信心.
还有, sandboxed solution最大的优势在于他可以被站点集管理员来部署, 它们会被部署在站点集的solution gallery中. 更进一步的是, 如果你的solution不要求部署程序集(assembly), 那么甚至对站点集拥有full control的人就可以部署了. 这极大地减轻了场管理员的头痛症状.
这就是sandboxed solutions的一个简单介绍. 它们受限所以安全, 容易监控, 容易管理, 更容易部署.
下面这个例子能帮助你理解sandboxed solution, 比较浅显, 不翻译了.
I like to think this level of monitoring very much like a family cellphone plan. Dad, Mom, Sister, and Son have a pool of 2000 minutes to share. Now if the Son somehow starts calling his russian girlfriend a little too much, everyone's cellphones quit working! Now dad has to call the phone company, and request the entire family plan to be allowed to run, and the offending solution (the son's cellphone), can now be blocked execution.
摘自:
http://blah.winsmarts.com/2009-12-SharePoint_2010_Sandboxed_Solutions__The_basics.aspx