背景:搭建一个适合公司erp业务的开发平台。css
架构概要图:html
表单设计开发部署示例图
前端
表单设计开发部署示例说明
1)每一个开发人员能够本身部署表单设计至本地一份(固然也能够共用一套开发环境,可是若是开发交叉功能也比较容易冲突和调试冲突,特别是服务常常调试产生冲突)。完成某个功能开发之后,经过项目一键发布至测试环境进行集成测试。在集成测试ok后,一键发布至线上开发环境。
2)正式线上部署能够按照项目为单位创建负载均衡,按照项目为单位总体创建集群。单个web站点包含表单文件服务和表单代码服务。表单文件服务为一些css,js,html,图片等的静态文件。表单代码服务为一些动态C#代码服务,随时编译,随时发布,以http方式提供服务。表单文件能够经过js调用这些http服务。jquery
表单项目管理功能
图:
web
说明:
表单设计按照项目的方式管理,表单文件服务和表单代码服务及各自相应的编辑及文件。因此创建表单设计前,应该要先创建项目。
项目名称是整个项目发布,开发的惟一约定名称,不得重复。
如有公用的项目,则创建公用的项目,里面可包含公用的js,公用的图片,公用的css等。这个也是全部表单项目可公用的基础前端框架。
发布和撤销服务按钮:用于发布当前的c#后端代码成服务接口。若当前项目设置了负载均衡,相应的负载均衡节点会在2s-5s内自动更新服务。
发布上线按钮:用于发布当前项目至另一个项目环境。好比测试或线上环境。目前至支持全量发布,将来可优化。
清除缓存按钮:清理表单文件服务的静态文件缓存。由于表单文件都是会在单个网站存储静态文件缓存,从而下降数据库的压力和静态文件负载均衡实现。理论上静态文件更新,自己相应项目的负载均衡节点也会在2s-5s内更新相应的缓存文件。数据库
表单文件管理
列表图
c#
前端详情图
后端
后端详情图
跨域
全屏编辑示例:
缓存
表单文件包含前端文件(css,js,html,图片等静态文件)和后端文件(.cs 的c#后端代码文件)这两种文件,相应的不一样类型文件会造成相应的不一样服务。
前端文件相关介绍
前端文件包含(css,js,html,图片等静态文件),其中能够经过上传附件的方式如(jquery框架.js文件),也可经过编辑文本的方式提交。会根据不一样的后缀进行解析输出,同时支持跨域访问。
历史版本:默认根据文件名保留历史版本,故也可恢复使用历史版本。
内部方式按钮:不使用站点缓存文件访问,直接访问数据库输出文件。
外部方式按钮:会使用站点缓存文件访问输出文件。
调试预览按钮:能够打开新的页面进行当前编辑效果的实时调试,一键刷新,所见即所得。
(编辑器控件,参考http://runjs.cn/code)
后端文件相关介绍
后端文件包含.cs c#代码文件;c#后端文件分为接口文件和公用代码文件两种类型。
接口文件:会自动公开该文件的类的方法为接口,支持http访问。js便可调用。
公用代码文件:该类默认为static静态类及静态方法。可被其余类访问。
第三方程序集的支持:第三方程序集放到站点的BuildsAssemblys文件下面,便可被其余类库所调用。(目前不支持第三方程序集的自动发布,正式发布要手工拷贝到线上)
快速编译:根据本地的cs文件缓存,快速编译。
从新编译:从新下载当前项目全部的cs文件至本地,从新编译。
提交并发布:先从新编译->将当前内容保存到数据库(非草稿保存)->发布当前服务到所在站点(不会发布到负载均衡节点)。
代码调试:目前仅支持接口经过模拟http的方式调试,方便接口调试。
其余介绍:
保存草稿:编辑器默认在进行编辑后每10s保存一次草稿到数据库。
备注说明:
我的更倾向于绝对定位形式的表单设计器,相似ccflow。可是由于公司的缘由,决定使用常规页面设计的方式。而页面展示形式由于多变,普通的页面表单设计器不能知足。
由于人手,成本,不开源等缘由,目前仅为粗糙之做,未作很细性能考虑,仅考虑架构扩展和平行性能扩展。
by 车江毅