Skip to main content
基于构件的云开发工具简介

摘要: 等度结合了基于构件与云开发的优势,以“组装而非编码,集成而非实现”的理念,实现了积木式在线构建Web应用,极大地提高了开发效率,改变着Web应用开发模式。

管理信息系统是一个具有高度复杂性、多元性和综合性的人机系统,它全面使用现代计算机技术、网络通信技术、数据库技术,以及管理学、运筹学、统计学、模型论和各种最优化技术,为经营管理与组织决策服务。管理信息系统的研发团队不仅要有多个学科的背景知识,而且也要熟悉相关管理领域的业务流程。因此其开发尤其具有学习难度大、开发周期长、开发成本高、缺陷查到难、维护代价大的特点。

业界一直试图开发新的技术、使得高质量计算机程序的开发和维护更容易、更快捷、成本更低廉。人们一直在研发更能表达编程中的各种概念的高级语言和应用程序框架以提高生产率。现代高级语言在命令式的面向对向编程基础上,发展了声明式、函数式和动态的特性,使得其表达能力更接近人类的思考能力,方便开发者能集中精力解决业务本身的细节。人们也一直在归纳设计经验,精炼解决方案,总结能解决软件开发中最常见问题的设计模式,通过现成的抽象,把常见错误解决方案的细节予以制度化来减少缺陷。在各行业的管理需求的驱动下,涌现出了各种管理信息系统。

为了进一步提高某些领域的软件开发生产率,人们提出了基于构件的软件工程(CBSE)。CBSE强调用可复用的“构件”来设计和构造软件系统,把构建重点从编码转移到组装,改变着大型软件系统的开发方式。一些学者开始尝试在相关管理领域尝试基于构件的实践。然而在管理信息系统领域广泛使用CBSE之前,必须分析对应管理领域,寻找重复模式。这就要求系统分析师不仅是软件构建专家,而且也要对管理领域有深入的了解。云计算时代的来临,为解决这个问题提供了契机。一些学者开始尝试软件即服务(SaaS)的应用模式。一个领域的SaaS很难能为其他领域提供服务,因此人们又提出了平台即服务(PaaS)的理念,即把软件研发的平台作为一种服务,以SaaS的模式提交给用户。软件行业的领导者纷纷推出了PaaS,如Google App Engine、Windows Azure等。PaaS提高了应用的开发速度,加快了SaaS的发展。这些服务缩短了开发周期,降低了开发成本,同时也增加了学习难度和缺陷查找成本。

我们结合CBSE和PaaS的优势,研发了一种基于构件的管理信息系统云开发平台, 以基于构件的PaaS 模式提供管理信息系统开发服务。该服务能改变管理信息系统的开发方式, 让开发者在云端即可完成开发工作,把开发者考虑的重点从“编码”转移 到“组装”,考虑的焦点从“实现”转移到“集成”。这种开发模式能够很好地契合敏捷软件开发理念,大幅提高系统的开发效率,减轻系统的维护负担,提升系统的构建质量,降低系统整体成本。


等度云开发后台

我们结合了基于构件与云开发的优势,以“组装而非编码,集成而非实现”的理念,实现了积木式在线构建Web应用,极大地提高了开发效率,改变着Web应用开发模式。

等度云开发后台
等度云开发后台

等度云开发构件开发工具

通过等度云开发后台提供的构件开发工具接口,开发者可以快速Web应用。数据库工具、表单网格工具、内容管理工具、WebAPI开发工具、报表图表工具、工作流工作、问卷工具、访问控制工具等。

等度云开发构件开发工具
等度云开发构件开发工具

数据库工具

数据库工具可以分析元数据,创建数据库文档、创建实体类并在线查看数据以及一键创建各关系对应的BSSP-CRUD数据网格构件(支持查找、排序、分布、按钮的数据网络)。

数据库工具
数据库工具

表单网格工具

通过“数据库工具”创建BSSP-CRUD数据网格之后,可以使用该工具对网络和表单进行配置。

  • 基本设置:图标、默认排序、查询属性、分页大小、帮助信息、网格/表单数据操作权限(选择、插入、更新、删除)等
  • 元素设置:控件类型、默认值、验证规则、输入提示、各属性操作权限(选择、更新)等
  • 按钮设置:CRUD按钮是否在工具栏中显示、管理LinkButton(在新窗口或模态窗口在打开,可根据选中数据格式化打开地址)和AjaxButton(将选中数据发送到请求地址,并根据结果进行提示操作)
  • 触发器设置:通过一段Python脚本实现在创建、更新、删除等操作前后进行的验证和同步操作
  • 数据级权限:设置过滤字段,用户访问只能访问用户与用户过滤字段值相同的数据行。
  • 工作流:设置该关系的引用的工作流,用状态网络实现审核流程
表单网格工具
表单网格工具

SQL网格工具

分析SQL查询,自动创建一个数据网络。基本设置、按钮设置、数据级权限的设置同“表单网络工具”。

SQL网格工具
SQL网格工具

多对多联系管理工具

网格移动模块用于管理一对多或多对多的关系。通过两条SQL查询定义两个数据网格,一个表示已和实体关联上的数据,另一个表示未和实体关联上的数据。通过记录两个网格之间数据的移动,执行相对应的脚本,把数据的更改写回到数据库中。

多对多联系管理工具
多对多联系管理工具

工作流工具

通过有限状态机,实现一个轻量级的工作流引擎。在表单&数据网格定义中通过引用状态机,用状态网格页面,实现工作流的处理。

工作流工具
工作流工具

WebAPI开发工具

通过向IronPython,实现轻量级的WebApi。用IronPython实现一个类,类对应Controller,方法对应Action。Python的代码是自说明的,因此API的使用说明可集成到代码中。

WebAPI开发工具
WebAPI开发工具

页面开发工具

“页面管理”模块能够实现了一个Model-View模式,开发者可以利用此模块开发自定义模块。

每一个页面实体定义一个视图和一个模型,实体之间可以实现继承关系。

可以用SQL、Python生成页面的模型,可以在服务器端调用视图引擎把模型绑定到视图上,也可以在客户端用模板引擎框架,以AJAX的方式绑定模型。

页面视图中可以任意使用JS框架,访问系统中其他的资源,如PythonApi、表单、代码等。

页面开发工具
页面开发工具

文件管理工具

文件管理实现网站系统的静态资源的管理。文件管理器可以管理“Content”目录、“Temp”目录、“App_Data”目录,也能管理以二进制存储在数据库中的文件。

文件管理工具
文件管理工具

问卷设计工具

问卷是社会研究中用来收集资料的一种工具。问卷管理提供一种简单方式创建问卷。

问卷设计工具
问卷设计工具

报表工具

用HTML和JS语言作为报表定义语言,SQL/PYTHON作为数据源,Razor/KnockoutJS作为模板引擎,定义一种灵活的报表设计和生成工具。报表所见即所得,可以直接下载为PDF文件。

“数据报表”模块实现了一个Model-View模式,开发者可以利用此模块开发报表。每一个报表实体定义一个视图和一个模型。可以用SQL、Python生成报表的模型,可以在服务器端调用视图引擎把模型绑定到视图上,也可以在客户端用模板引擎。页面视图中可以任意使用JS框架,访问系统中其他的资源,如PythonApi、表单、代码等。

报表工具
报表工具

图表工具

一条SQL命令即可生成一个HTMLTABLE,报表引擎将分析表格,自动生成图表的配置JSON,调用百度ECharts工具渲染成图表。

图表工具
图表工具

导航工具

定义系统左侧的导航树,导航树由一系列父子关系的节点组成。

导航工具
导航工具

登录配置工具

定义一个抽象的模型,使系统的登录用户可以存储在多个数据表里,增加系统授权的灵活性。

登录配置工具
登录配置工具

Action授权工具

通过角色属性实现基于角色的访问控制。通过重写OnAuthentication事件,实现在Action执行之前进行访问控制。

Action授权工具
Action授权工具

路由配置工具

对Http请求的处理最终体现在对激活的目标Controller对应的Action方法的执行,通过URL路由系统实现了请求地址与物理文件的隔离。

路由配置工具
路由配置工具

系统日志

详细地记录了系统异常、调试、用户访问、数据写入等信息。

系统日志
系统日志