BEGINNING SHAREPOINT® 2013 DEVELOPMENT 第2章节--SharePoint 2013 App 模型概览 SharePoint 2013 App 模型
你可以通过两个主要的方式安装SharePoint。对于SharePoint 2010,你可以安装完整版本的SharePoint Server,并且在内部部署环境运行所有的资产和内容。可选的是,你可以提供一个Office 365(O365)实例,然后利用SharePoint Online(或者一个SharePoint云支持版本)。你在第一章看到了一些SharePoint Online的例子,并且在本章你会看到更多。不考虑你如何部署SharePoint实例,SharePoint 新的App模型对于内部部署的SharePoint版本(SharePoint Server)和云支持版本(O365)都可用。尽管你能够手动创建SharePoint 2013网站集,并配置、品牌化以满足业务需求,但是本书是关于开发的。SharePoint 2013中关键的改进地方之一就是新的App模型。广义地说,通过创建和部署SharePoint Apps或Office Apps,你都在应用新的云模型。
Office Apps
Office Apps是Office 2013应用程序的衍生新产品,使用托管代码方法构建文档和邮件Apps(想想Excel、Word和Outlook组件)。这些Apps使你能够用HTML、CSS或JavaScript构建轻量级的Apps,与基于云的Apps集成。这里酷的东西是你可以使用丰富的JavaScript对象模型与文档或邮件项目部分进行集成。Office Apps包含网页加上基于XML配置文件manifest文件(配置了诸如链接到外部网站的项目)、权限等等。你可以将Office Apps看做网页Apps。尽管Office Apps主要瞄准Office,你可以将它们与Office365、文档和邮件项目集成--这些都可能以某些方法与SharePoint集成。下图展示了一个Office App例子。它与邮件集成,在邮件项目中显示来自Windows Azure SQL 数据库的数据:Related Requests from Chris Johnson。
SharePoint Apps
如果你对SP熟悉,可以当SP App是SP解决方案(WSP)的进化。但这里SP App使用拓展名.APP。SP App是向更集中于云开发模型的一个移动--代码不在与SP相同的服务器上。这是代码迁移到云上的结果,也是构建平台支持更加顺利的更新的需要。代码和SP不那么紧密,被部署到云,缓解了一些服务器端代码典型呈现的问题(例如性能和网站负载问题,当代码未被较好的写、部署或测试时)。下图显示SP App,集成Windows Azure 数据--实际上,和上图App中使用的数据是一样的。
之前提过,当你构建SP App时,你正构建一个.APP文件。实际上,.APP文件是个与CAB文件相似的包。在.APP包中有许多关键文件,主要构成配置文件和库。例如,下图图示了一个当你构建并发布SP App时创建的.APP文件,稍后你会进行这个实践。如果你更改.APP拓展名为.ZIP,你会看到.APP文件包含许多文件和另一个ZIP文件。这些ZIP文件代表了SP应用程序的网页部分,而XML文件代表App更加详细的配置信息。
XML配置文件中有一个你会在SP Apps和Office Apps中都会看到,就是AppManifest.xml文件。你会发现关键的元素如App元数据、App权限以及权限范围,Web Apps的GUIDs等等。下面代码片就显示了一个AppManifest.xml文件的简单例子。
<?xml version="1.0" encoding="utf-8" ?>
<App xmlns="http://schemas.microsoft.com/sharepoint/2012/app/manifest" Name="AutohostedEmployeeList" ProductID="{125f9ba3-5efc-414a-ac53-023919ac2142}"
Version="1.0.0.0" SharePointMinVersion="15.0.0.0">
<Properties>
<Title>AutohostedEmployeeList</Title>
<StartPage>~remoteAppUrl/Pages/Default.aspx?{StandardTokens}
</StartPage>
</Properties>
<AppPrincipal>
<AutoDeployedWebApplication/>
</AppPrincipal>
<AppPrerequisites>
<AppPrerequisite Type="AutoProvisioning" ID="RemoteWebHost" />
</AppPrerequisites>
<AppPermissionRequests>
<AppPermissionRequest Scope="http://sharepoint/content/sitecollection/web" Right="Write" />
</AppPermissionRequests>
</App>
注意:你可以使用VS2012 IDE(可视设计器)或者直接右击文件选择查看代码,这样直接修改XML。