微软现代开发平台中最古老的部分之一就是SharePoint。 SharePoint是其原始的基于ASP的Site Server Intranet工具的后继产品,它比其他企业内容管理工具要丰富得多。 尽管它经常被忽略,而只能托管文件和内部Web内容,但从本质上讲,它是使用其自己的编程模型和工具来构建和管理工作流的有效工具。
我们的业务远不止其投入和产出。 它们是将个人,团队和业务流程联系在一起的复杂的信息和物质流。 该结构的大部分已经有机地发展,随着业务的发展而发展,这使得映射变得更加困难,并且增加自动化的难度也越来越大。 这就是SharePoint的用武之地,它为您提供了所需的工具,使您可以了解谁在做什么以及如何进行联系。
人们经常谈论康韦定律,即软件封装了创建它的组织,这就是“运送组织结构图”。 这是一件坏事,因为它使代码很难适应壁垒和服务器之外的环境。 但是在那些墙壁上和那些服务器上,组织结构图是一件好事。 这是您构建该地图的方式,以及如何连接业务流程的人为因素的方式。
以SharePoint为平台
SharePoint作为企业内容管理工具的作用使它可以深入了解您的组织结构图,尤其是当它通过内置的“团队站点”功能用于管理团队级协作时。 正是对组织图的深入了解使其成为内部应用程序的强大后端,为您的公司知识,文档和组织结构图提供了记录系统。
使用SharePoint,您可以使批准工作流自动化,从而使您有机会构建用于处理会计部门或HR(公司中很少有外向软件的部分)服务的代码。
SharePoint为您提供了开发模型的选择。 您可以将其用作Office加载项的一部分,集成到熟悉的Office应用程序(如Outlook或Excel)中,或者如果您将其用作Office 365的一部分,则可以使用REST API和Microsoft Graph从任何应用程序中调用它或Microsoft 365订阅。 另外,它还为您提供了与无服务器和事件驱动的编程模型(例如Azure Functions)集成的webhooks。
但是,用于将SharePoint集成到应用程序中的最强大的工具是SharePoint框架。
SPFx:SharePoint框架
SharePoint框架(aka SPFx)可在Office 365和本地中使用,它基于熟悉的基于C#的Web部件开发模型构建,将您自己的用户界面添加到SharePoint数据和服务。 但是,与原始的Web部件工具不同,SPFx支持您要使用的任何JavaScript框架以及熟悉的开源开发环境。 对于复杂的实现,甚至可以选择结合使用TypeScript和Angular 。
使用SPFx,您可以构建在页面内运行的组件(作为DOM的一部分)。 代码是页面的一部分,就像Web组件一样。 尽管这两种方法有相似之处,但SPFx并不是Web组件模型的实现; 实际上,它不可能成为一体。
Microsoft提供了一个Web部件生成器,以与Yeoman Web应用程序生成器一起使用。 Yeoman是重要的Web开发工具,它还为许多熟悉的Web开发框架提供了代码生成器,提供了您用自己的代码自定义的HTML和JavaScript结构。 使用SPFx生成器,您可以设置应用程序的名称,并指示它是针对本地SharePoint还是SharePoint Online,以及您打算使用的任何JavaScript框架。
构建,测试和部署SPFx Web部件
Yeoman为您的代码创建一个支架,引入适当的SPFx元素,并创建构建Web部件所需的文件结构。 因为它是一个命令行工具,所以您可以从Visual Studio Code终端或带有命令行的任何开发工具中运行它,因此无需离开开发环境即可开始构建SPFx应用程序。
您正在构建的代码使用Gulp任务运行器运行,以处理构建和部署,并使用其内置的Web服务器处理测试。 您需要安装本地证书以确保您的代码安全,并且Microsoft作为SPFx开发环境的一部分提供了开发人员证书。 (它位于Yeoman为您的Web部件创建的目录结构中。)
构建Web部件非常容易,就像构建任何现代Web前端一样。 您可以使用SharePoint的REST API访问服务数据,使用JSON处理将请求中的调用包装在promise和回调中,以处理结果数据。 您使用相同的方法将Web部件链接到计划使用的任何其他服务。
一旦准备好测试代码,SharePoint将提供一个Workbench界面来预览本地开发环境中的Web部件。 由于Visual Studio Code与Gulp集成,因此您可以使用它来调试JavaScript或TypeScript。 默认情况下,Web部件是反应性的,因此您对Workbench中的属性所做的任何更改都会在完成后立即显示。 由于工作台在SharePoint中运行,因此您可以访问SharePoint数据,并且可以测试与SharePoint网站,列表和库的交互。 测试和调试代码后,您可以将其部署到SharePoint实例中,以便在网站和页面中使用。
从2D到3D:SharePoint空间
SPFx中的基础技术比提供集成的Web部件要走得多。 实际上,正是SharePoint框架使Microsoft可以提供SharePoint Spaces,这是一种易于编写的增强现实环境。 它没有使用复杂的建模软件来构建虚拟空间,而是使用了基本的布局引擎和基于Web的3D模型。 您可以将WebVR与Babylon.js 3D动画和模型一起引入SharePoint。 然后将它们链接到SharePoint库,从而为您的内容提供3D视图。
Microsoft已经演示了使用Spaces在SharePoint存储的文档之上构建3D目录,使用拖放工具添加新内容并将3D模型链接到内容的方法。 在我尝试的演示中,我还可以包含360度视频对象,并在更传统的文档和图像旁边快速添加沉浸式内容。
SPFx使SharePoint成为Microsoft Graph的有效前端,将其扩展到浏览器和增强现实中。 除了浏览器之外,其内置的API和Webhooks还提供了更多的编程界面,将其与现代的分布式应用程序和无服务器计算相集成,从而提供了工作流环境和托管存储平台。
随着越来越多的开放式开发工具和可以将本地,Office 35和Azure混合使用的混合部署模型,现在是时候停止将SharePoint视为Intranet并利用它作为生产线中的关键组件了业务应用程序。