运行时设计(Design at Run-time)
1、定义
传统软件开发必须经历“设计时”和“运行时”两个阶段,运行时设计,顾名思义,就是在软件运行过程中,对软件进行实时设计修改,而无需再次进行编译,用户即可使用。
“运行时设计(Design at Run-time)”,就是软件在用户使用过程中,可以通过设计器修改界面、功能、甚至对整个页面进行重新定义,保存发布后用户即可使用,而不需经过传统软件漫长的版本发布周期,也与传统快速开发平台功能更新后需要重启服务器,重启客户端等任何重置性操作有本质区别,整个软件修改后,无需编译,发布等过程,而直接保存即可让用户使用到即时修改的功能,它节省了大量开发、测试和发布所需的时间周期,而对客户的功能需求,更加定位准确。这是在2011年开始逐步开始形成的一种全新的软件开发理念和设计模式。
2、Any where、 Any Time调整业务功能的能力
核心内容,即软件在使用过程中可以对功能进行任意调整,而其它用户使用不受丝毫影响。即Any where、 Any Time对业务进行修改调整,而不会影响到其它业务,运行时设计实际上提供了强大的基础平台支持,同时管控和设计。功能开发和调整无需发布即时生效
3、核心内容
它的基本核心内容包括:
1) 脚本、表达式解释器技术:
现代软件平台设计中大规模的引入脚本,之前业内偶尔见到使用脚本,这也会给软件开发技术上带来巨大的挑战与刺激,因为很少人会为了做一个软件,去定义一种语言,并为它编写解释器,这似乎是一个不可完成的工作,而动态编译横行的今天,似乎是杀鸡用牛刀了?然而为了更好的灵活性和更加运用自如,同时保证做到真正的“运行时设计”。快速开发平台更需要提供的动态编译技术,让灵活得到极大提升。
2) 智能窗体技术:
在动态软件发展的今天,如果单单说动态界面已经很常见,而现代快速开发平台的动态界面技术,它不是去定义页面的某个位置的布局,而是全部页面都自己去定义,拖拉完成,同时配合动态数据源(业务表),它做到了快速定义页面,开发效率成倍提升。后来有人把部件和页面定义,统称为“智能窗体”。
3) 界面与数据源分离,低耦合技术:
正如前面所讲,我们需要定义的是一套软件,而非一个页面的某个位置(动态表单),所以,必须做到数据与页面完全分离的技术,这也是运行时设计平台的核心技术之一,真正做到了完全的数据与界面分离。
4) 数据源动态定义技术:
动态数据源技术,将数据来源划分,使数据有不同类别,如通过SQL语句形成,通过自己编写形成等,解决了数据来源的问题,而同时,定义了读写和只读的模式,读写表不但可以显示数据,还可以将变化的数据完整保存到数据库。
5) 解释执行与编译执行技术:
为了提高效率,定义了脚本语法,编写了解释器,实际上,脚本解释器的运行效率非常不错,但是为了更加提高效率,运行时设计还会把代码做类似编译的处理,把它处理为树型结构的DOM,这有点类似于HTML的DOM结构,这样的做法,就是每次运行系统时,不再去解释语言,而直接“执行语言”。似乎说得有点悬乎。
6) 核心工作流技术:
任何工作几乎都离不开工作流,大部分管理系统中,有一半以上是采用工作流来处理,运行时设计软件具备自主工作流引擎,可以处理工作流相关事务。
7) 高扩展性技术:
利用现代语言可以很轻松的做到高扩展性,然而,即使所有设计都考虑得非常完美,也总会有10%在例外,所以,一个软件无论功能有多么强大,必须提供开发扩展,以供用户实现那10%的例外,所以这也是现代快速开发平台的重要一个特点,实际上,采用脚本技术,对于扩展性不需要做过多的设计并可自然获得,然而,它却有着非常重要的意义。
以上7点技术,便是“运行时设计”的重要技术特性,它是贯穿现在软件快速开发平台设计始末,“运行时设计”,Design at Run-time,是现代软件快速开发平台的特点之一,也是非常重要的特性。
4、代表公司
采用此类技术的快速开发平台,目前市面上非常少,典型的代表产品如重庆度量科技旗下的度量快速开发平台,真正做到了运行时设计的理念。
5、发展趋势:
具备“运行时设计”的快速开发平台作为一种新型的开发工具,它不仅具备传统快速开发平台的所有优势,而且运行时设计能让在用户使用过程中立即对软件功能进行调整,同时节省大量返回公司调整、修改、发布所需要的时间周期,对于准确把握客户需求,提高客户满意度,节省研发成本方面,有不可替代的作用。相信越来越多的平台公司会加入“运行时设计”的理念,做更好服务于客户的人性化软件。
运行时设计如何动态创建并调整窗体视频:
运行时设计(Design at Run-time)的更多相关文章
- fastReport 运行时设计报表 (mtm)
设计报表 通过“TfrxReport.DesignReport”方法调用报表设计器.你必须在你的项目中包含报表设计器 (必要条件是:要么使用“TfrxDesigner”组件,要么增加“frxDesgn ...
- 解决vue-cli项目在运行时控制台出现 [WDS] Disconnected! 错误
在项目运行时 控制台输入 npm run dev 后浏览器出现该项目页面,但是出现了[WDS] Disconnected!错误 虽然有时并不影响,但是作为一名合格的程序员 我们还是尽量将其修复,以免将 ...
- ETCD:运行时重新配置设计
原文地址:the runtime configuration design 运行时重新配置是分布式系统中最难,最容易出错的部分,尤其是在基于共识(像etcd)的系统中. 阅读并学习关于etcd的运行时 ...
- WPF 判断一个对象是否是设计时的窗口类型,而不是运行时的窗口
原文:WPF 判断一个对象是否是设计时的窗口类型,而不是运行时的窗口 当我们对 Window 类型写一个附加属性的时候,在属性变更通知中我们需要判断依赖对象是否是一个窗口.但是,如果直接判断是否是 W ...
- 编译器设计-RunTime运行时环境
编译器设计-RunTime运行时环境 Compiler Design - Run-Time Environment 作为源代码的程序仅仅是文本(代码.语句等)的集合,要使其活动,它需要在目标计算机上执 ...
- Swift - 让StoryBoard设计视图,程序运行时都使用横屏形式
1,运行时横屏 将项目属性“General”->“DeviceOritentation”的Portrait复选框去掉 2,storyboard设计视图横屏 在storyboard中,单击中间界面 ...
- winform窗体运行时的大小和设计时不一致
窗体设置的尺寸为1946*850,而电脑分辨率是1920*1280 按说宽度已经超过屏幕大小很多了,应该显示占满屏幕宽度才对,但是运行时宽度只有设计时的一半 高度最多只能是1946像素,再拉大也不管用 ...
- brew 安装的.net 运行时提示"Did you mean to run dotnet SDK commands?"
原因未知,但有解决方案 使用 brew cask 安装的.NET Core brew cask install dotnet 结果运行时出现: 解决方案: 下载官方 .pkg 文件安装,顺便卸载掉 b ...
- permission 文档 翻译 运行时权限
文档位置:API24/guide/topics/security/permissions.html System Permissions 系统权限 Android is a privilege-se ...
随机推荐
- Tomcat目录下文件详解
一.Tomcat背景 (转) 自从JSP发布之后,推出了各式各样的JSP引擎.Apache Group在完成GNUJSP1.0的开发以后,开始考虑在SUN的JSWDK基础上开发一个可以直接提供We ...
- Java类和类成员的访问权限修饰符
一:访问修饰符: 1.省略访问修饰符 具有默认的访问特性,即具有包访问特性,只能被同一个包中的类使用. 2.public访问修饰符 用于说明类和类的成员的访问权限.这种类叫公有类.在一个文件中只能有一 ...
- SUPERVISOR进程管理器配置指南
SUPERVISOR进程管理器配置指南1. supervisor简介1.1. 官网http://supervisord.org/ 1.2. 介绍Supervisor是一个进程控制系统. 它是一个C/S ...
- PHP之输出控制 ob_start(),ob_get_contents(),ob_end_clean()
1.常用函数 ob_start();#打开输出缓冲区 ob_get_contents();#获取缓冲区内容 ob_get_length();#获取缓冲区内容长度 ob_clean();#清除之前的所有 ...
- oracle sqlplus @@用法
本文章已收录于: .embody { padding: 10px 10px 10px; margin: 0 -20px; border-bottom: solid 1px #ededed } .e ...
- css(非表格变成表格用)
父元素:display:table: 子元素:display:table-cell:vertical-align:middle:
- ios开发使用lipo命令合并真机库和模拟器库
在开发ios时,我们经常会遇到编译两套库文件,使用模拟器时链接模拟器库,使用真机时使用真机库,这样操作会对后期的维护带来麻烦,所以Apple提供了一个把多个不同平台的.a库文件合并成一个适用于多平台的 ...
- NumPy基础:数组和矢量计算
今天被老板fire了,还是继续抄书吧,安抚我受伤的小心脏.知识还是得慢慢积累,一步一个脚印,这样或许才是最快的捷径. ------2015-2-16-------------------------- ...
- CentOS下载及版本选择-CentOS LiveCD、LiveDVD和BinDVD区别
1.CentOS系统镜像有两个,安装系统只用到第一个镜像即CentOS-6.x-i386-bin-DVD1.iso(32位)或者CentOS-6.x-x86_64-bin-DVD1.iso(64位), ...
- 批处理数据--db2备份数据
如果要插入数据,前提先根据主键删除记录,然后在插入. 批处理包含两个必要文件 init.bat和start.bat 文档内容如下 init.bat内容如下 @echo ondb2 connect to ...