BizStruct - 商业架构 - 基于架构的富界面 Web 应用的可视化快速开发平台
介绍
互联网在发展的初期,主要局限于高校和科研机构的象牙塔里,随着Web技术的出现,互联网才开始了爆炸性的发展。
早期的 Web 技术由于存在开发效率低、可维护性差、用户操作不便捷和性能不高等缺点,主要应用于广域网这个全新的领域,相对于传统的 C/S 应用在内部网领域还不普及。
但随着 Web 技术的发展,Web 应用相对于 C/S 应用的优势越来越明显,应用的范围也越来越广。 对早期 Web 技术不足之处,各种 Web 新技术都找到了相应的解决之道;但各种 Web 新技术采用的策略是对某一方面特别重视,从而建立起在该方面的优势, 但相对而言,其他方面则处于一定的劣势;有的技术重视可视化的开发方式,大大提高了开发的效率; 有的技术重视系统架构,抽象出了业务逻辑层,提高了系统的可维护性;还有的系统实现了富界面的客户端,提高了用户操作的便捷性; 但几乎没有技术能在各方面取得均衡,即在保持优势的同时,在其他方面也没有相对的劣势。
我们的目标是建立一个各方面相对均衡的开发平台;基于架构是指采用了轻量级的面向数据的持久层,提高了系统的稳定性和可维护性;采用可视化的快速开发方式,提高了系统的开发效率,降低了开发的难度;富界面的 Web 客户端,在保持了 Web 应用的各项特性的同时,提高了用户操作的便捷性。这个平台适合于面向数据的、要求开发快速、部署便利和用户操作便捷的中小型系统。
轻量级的面向数据的持久层
基于架构(Architecture)是相对于基于组件(Component,也称构件)而言的;COM是基于组件开发的代表,这种方式是对系统的纵向的划分,组件是相对独立的,依赖性小,具备完善的功能;组件是代码驱动的,每增加一个组件,需要编写大量的代码,即使可视化的开发可以自动生成大量的代码,但对这些代码维护的难度和工作量仍然很大;基于架构是对系统的横向的划分,将系统分为多层,每层只实现特定的功能,需要各层之间的相互配合才能实现完整的业务;架构是配置驱动的,增加新的功能时,只要对配置的数据进行添加即可。持久层是系统架构的核心。
面向对象持久层的发展已经有很多年了,已有一些成熟的产品。面向对象的持久层为了实现业务逻辑,需要将数据封包为对象,性能上会有一定的损失;并且面向对象的持久层产品功能相对独立,不能满足快速开发和富界面的一些特殊要求;为此需要新开发一个满足以下要求的持久层。
能够实现基于表格、SQL语句和存储过程的业务对象。业务对象是对数据库的屏蔽和抽象,持久层以外只能看到业务对象,看不到数据库。
业务对象能够配置成员及成员属性,包括所对应的数据库的字段和数据类型等。为了实现快速开发和富界面,需要对业务对象及其成员进行较复杂的设置。业务对象的配置采用了 XMLSchema 标准,XMLSchema 是 XML 系列标准中关于类型定义的标准,通用性好,功能强大,可以对数据类型实现复杂的约束;通过私有的命名空间可以对 XMLSchema 进行了扩充,以满足快速开发和富界面的需要。
能够对业务对象的记录进行分页。在业务对象的记录较多时,一次读取会带来持久层、网络和客户端较大的负载,甚至阻塞;所以持久层要支持客户端,只读取需要显示给用户的记录。
能够一次批量的对业务对象的记录进行增加、修改和删除操作。将对业务对象指定记录的增删改操作影射到数据库表指定记录的相应操作。 持久层的接口采用 WebService 服务,可视化开发和富界面客户端都会对持久层进行调用。
富界面的Web客户端
传统的 C/S 应用因为是胖客户端,所以也都是富界面的,用户操作很便捷。而因为是瘦客户端,所以绝大多数 Web 应用都不是富界面的,用户在每个页面只能作较少的操作,需要频繁的和服务器交互,并刷新页面,在操作较多时,效率很低。
Internet Explorer 浏览器日益成熟,功能强大,占领了绝大多数的市场份额,特别是在企业内的桌面办公领域;所以我们不必为了浏览器的兼容性,而束缚住自己的手脚,不能施展。为此,我们在基于 Internet Explorer 浏览器的Web应用中,充分利用 Internet Explorer 的强大功能,借鉴了传统的 C/S 应用的客户端,实现了 Web 应用的富界面,提高了用户操作的便利性。
采用 XML 文档格式的数据结构,来实现业务对象的统一存储;将业务对象存储为树型结构,实现了业务对象之间的关系;利用 XMLHTTP 技术在后台从持久层异步获取业务对象的记录,并实现了自动分页的功能,一次只获取富表格所能显示的数据;XMLHTTP 是 Microsoft 在 1999 年推出的一项异步数据访问的技术,近年,一些开放组织以 AJAX 的名称重新推出,使该技术有了更广泛的应用。
富表格借鉴了胖客户端的数据表格,以表格的形式展现业务对象的数据,在表格内可以直接对业务对象数据进行添加、修改和删除;并根据数据的不同类型,将编辑的方式自动展现为编辑框、下拉列表框或标记框。在富表格之外,还可以对业务对象的成员进行单独的展示和编辑。
可视化的快速开发
传统的 C/S 开发工具基本上都是采用可视化快速开发的方式,但直到Microsoft .Net的出现才真正有了Web应用的可视化快速开发。
Visual Studio.Net提供了功能强大的控件开发能力,本系统就是通过开发控件,从而利用Visual Studio.Net实现了可视化的快速开发,而没有自己设计开发一个独立的可视化开发工具。
本系统的开发方式就是在Visual Studil.Net下利用以下控件开发Aspx页面。
利用业务对象控件配置需要从持久层获取的业务对象,可以设置业务对象的权限,设置业务对象之间的关系;可以选择需要下载的对象成员。
利用富表格控件配置需要展现为数据表格的业务对象,可以设置富表格的外观属性,可以设置富表格需要显示的对象成员。
利用对象成员控件配置需要在富表格之外,展现为可编辑控件的业务对象成员。
演示
www.BizStruct.cn