SharePoint2010产品分成了两个版本SharePointFoundation2010和SharePointServer2010,其中SharePointFoundation2010是WSS3.0的升级,而SharePointServer2010则是MOSS2007的升级,由此我们可以看到SharePointFoundation2010和SharePointServer2010之间的关系,SharePointFoundation2010是SharePoint2010的基础,但后者包含了前者全部功能,本文中的SharePoint2010是这二者的统称。一个新的产品,对于开发者来说,更加关注的是其新增功能。SharePoint2010的新增功能主要集中在3个方面:开发人员工作效率、丰富的平台服务、灵活的部署,具体来说其新增功能如表1所示:有了这么多的新增功能,SharePoint2010的功能和MOSS2007相比又有什么样重大改变呢?SharePoint2010的功能如图1所示:我们可以看到SharePoint2010有六大功能模块,网站、社区、内容、搜索、见解和整合应用,相比较MOSS2007来讲,社区、见解和整合应用是其新增功能。不同于普通用户,对开发人员来说,对一个产品功能的了解更倾向于从自带功能和可扩展功能两方面去了解。SharePoint2010中六大功能模块的自带功能和扩展功能列表如表2所示:对于有一定SharePoint产品基础的开发人员来说,相信看到了上面的功能以后,对SharePoint2010的产品开发已经有了一个大概认识。在本文中,我们不打算对其所有功能都来做详细而又深入描述和讲解,只是结合VisualStudio2010和SharePointAPI的对象模型来介绍SharePoint2010给开发人员带来的好处。VS2010与SharePoint2010在介绍使用VS2010做SharePoint2010开发之前,我们应对SharePoint2010丰富的平台服务有所了解。Microsoft.NETFramework提供了开发人员可通过代码导入和使用的基础服务。SharePoint2010平台通过可直接从开发人员代码调用的其他库和功能扩展了这些服务。
SharePoint还提供了一组最终用户和业务分析师工具,它们紧密集成到了可供开发人员使用的功能和API中。SharePoint2010丰富的平台服务如图2所示:了解了SharePoint2010提供的丰富的平台服务后,结合VS2010,我们来了解一下VisualStudio在开发SharePoint应用上有什么新功能。打开VS2010,顺序选择文件|新建|项目|VisualC#|SharePoint|2010,打开的界面如图3所示:由图3我们可以看到,在VS2010里可以创建的SharePoint2010项目类型有: 空的SharePoint项目 Web部件 时序工作流 状态机工作流 业务数据连接模型 事件接收项目 列表定义 内容类型 站点定义 导入工作流 导入SharePoint解决方案在没有安装SharePoint开发扩展包(VseWss)的情况下,使用VS2010能够支持的MOSS类型的项目如图4所示:在没有安装VisualStudio开发扩展包的情况下,只支持工作流的开发,如果在VS2008中安装了开发扩展包的情况下,可以创建的项目类型如图5所示:由以上的对比我们可以清楚的看到,使用VS2010可以开发出很多的应用程序,在开发的应用程序中,Web部件被认为是SharePoint最常用的可扩展点,几乎每个项目都至少包括一个Web部件。用于创建Web部件的开发工具已扩展到可视化Web部件,可管理连接到Web部件类的ASP.NET用户控件(ASCX)。此方法允许开发人员利用VisualStudio2010中的可视化设计器来编辑Web部件。
与以前的服务器控件类型的非可视化方法相比,此方法可显著提高开发人员的工作效率。SharePoint现在包括对Silverlight文件的内在支持。只需开发Silverlight应用程序(.XAP),并将它部署到服务器即可。然后可以通过添加SilverlightWeb部件并提供.XAP文件的位置,将Silverlight应用程序添加到网页。Silverlight应用程序显示为页面的一部分,如图6所示:除了对Web部件的开发支持,我们需要关注的另一个重点是BusinessConnectivityServices。BusinessConnectivityServices(以前称为业务数据目录)提供了对源自业务线系统、Web服务或SharePoint2010和Office2010应用程序内的其他外部数据提供程序的外部数据的访问。
SharePoint2010和Office2010应用程序都具有可直接使用外部数据的产品功能,并且SharePointDesigner2010和VisualStudio2010中也提供了用于处理外部数据的工具。BusinessConnectivityServices是基于OfficeSharePointServer2007中包含的业务数据目录构建的,添加了来自Office客户端2010应用程序的编写功能、新工具和脱机缓存等。图7显示了新增的BCS会如何创造机会,以便将SharePoint功能和API用于通过直接访问数据库或通过Web服务获得的现有业务线数据。SharePoint2010应用程序接口SharePoint2010通过集成对非SharePoint托管数据的访问,并通过提供一组更加丰富的用于创建SharePoint解决方案的工具,使SharePointAPI可用于包括Web服务器和客户端在内的各个平台。该平台可以支持更广泛的应用程序类型,并且可以延伸到受支持方案的更深处。在SharePoint2010中,开发人员可以使用多种对象模型来访问服务器。客户端对象模型(客户端OM)是与服务器对象模型(服务器OM)使用相同或类似编程概念的统一模型。客户端OM可通过Web服务、客户端(JavaScript)API和REST进行访问。
这样一来,可以显著简化从客户端计算机及基础结构内的其他计算机访问SharePoint数据的过程,从而为更丰富的应用程序铺路搭桥。图8显示了SharePoint对象模型选项。总结SharePoint2010的新增功能主要集中在3个方面:开发人员工作效率、丰富的平台服务、灵活的部署。在SharePoint2010平台上结合使用VS2010和SharePointAPI能够开发出更多更丰富的应用程序出来,如SilverlightWeb部件、工作流、BCS和TFS2010结合进行团队开发、调试、部署等等。诚然,SharePoint2010带给开发者惊喜不止于此,更多的好处希望广大读者去发现。