SharePoint App 是微软在SharePoint 2013中引入的编程模式。回顾一下2007在SharePoint开发解决方案,只能用SharePoint Farm Solution, 由于Farm Solution如果不小心写入一些危险代码很可能导致整个SharePoint Farm崩溃(crash),于是微软在2010中引入了Sandbox(沙盒) Solution,Sandbox Solution的好处是安全,因为Sandbox Solution只能访问自己本身的资源,运行在一个独立的沙盒进程中,即使出错只影响当前Solution,不会造成整个SharePoint Farm崩溃。
在SharePoint 2013之前的 SharePoint版本有很多概念(例如:, lists, libraries, sites, web parts, master pages等),这些都让初学者很难学习SharePoint, 用户会觉得迷惑当看到如此多的ribbon和navigation时。之所以有这么多概念是因为使得SharePoint更加通用和可扩展,在SharePoint 2013中微软希望可以使用户学习SharePoint 2013的新概念起来更加容易。
那么微软在SharePoint 2013中引入SharePoint App又是为什么呢?
从各种新的WEB技术,新工具,以及智能手机技术这些能走到今天的技术来看,终端用户主要能很好地理解和接受的概念有Sites(网站), People (人即用户), Apps(应用) and Themes(主题)。SharePoint 2013的新概念贯穿了这四个大家都熟知的概念,因此终端用户将会更容易学习和熟悉SharePoint 2013.
作为用户这些概念可以简单描述为:
Sites: 一个存储空间,存放着这种内容 (比如 pages, documents and list items, 用户在不了解SharePoint结构的情况下可以用Rest Service(OData) 来访问SharePoint 数据 http://msdn.microsoft.com/en-us/library/fp142385.aspx ).
People: 站点将允许用户在同一个空间访问内容和相互协作.
Apps: Apps (应用) 将提供各种功能来使站点变得有价值, 它可能是web part, document library 等.
Themes: 主题用改进用户体验和网站 (Site) 的外观
在SharePoint 2010中已经有以上四个中的三个概念(Sites, People, Themes), 但是没有类似应用(Apps)的概念,提供特定的功能让终端用户可以感觉很舒服地像使用其它熟悉的平台(比如:智能手机和平板电脑)一样。
SharePoint 2010 应用程序所面临的挑战
Farm Solution如果不小心写入一些危险代码很可能导致整个SharePoint Farm崩溃 (crash),有很多的客户化代码运行在SharePoint服务器上,造成升级和迁移的混乱和更复杂。Sandbox Solution可以部分解决安全问题,但是它有很多限制,比如不能访问全局资源,不可以访问安全级别高的API,而且开发人员在从事SharePoint 2010 应用开发时需要对SharePoint API很熟悉。
SharePoint 2013 App 模式可以很好地解决上述问题
新的SharePoint 2013应用模型不仅解决大家对于SharePoint 解决方案,在SharePoint server上运行客户化代码等可能带来安全问题的担忧,并且引入了很多新的特性。
SharePoint 2013 Apps 不再在SharePoint sever上运行,而是在浏览器、非SharePoint server (如 IIS和 Windows Azure) 上运行。 Apps (应用)同过OAuth协议取得对SharePoint资源的访问权限,并且使用 REST API和SCOM (Client Side object model)来和SharePoint通讯 (读写资源等)。
开发者们将可以把它们的应用发布到一个公共的应用市场,也可以从该市场下载和购买应用。在组织和公司内部也可以建立一个公司私有的市场,在这个私有市场可以下载到所有内部SharePoint应用。
希望这篇文章可以给广大博友一个解释为什么SharePoint 2013需要Apps (应用) 开发模式。我将在接下来的几篇博客中继续介绍SharePoint 2013 App开发模型。