首页 > 其他分享 >.net erp(办公oa)开发平台架构概要说明之表单设计器

.net erp(办公oa)开发平台架构概要说明之表单设计器

时间:2022-11-11 14:05:54浏览次数:45  
标签:文件 缓存 服务 代码 oa 表单 erp net js

.net erp(办公oa)开发平台架构概要说明之表单设计器介绍

背景:搭建一个适合公司erp业务的开发平台。


架构概要图

.net erp(办公oa)开发平台架构概要说明之表单设计器_负载均衡

 

表单设计开发部署示例图

 

.net erp(办公oa)开发平台架构概要说明之表单设计器_静态文件_02


表单设计开发部署示例说明
1)每个开发人员可以自己部署表单设计至本地一份(当然也可以共用一套开发环境,但是如果开发交叉功能也比较容易冲突和调试冲突,特别是服务经常调试产生冲突)。完成某个功能开发以后,通过项目一键发布至测试环境进行集成测试。在集成测试ok后,一键发布至线上开发环境。
2) 正式线上部署可以按照项目为单位建立负载均衡,按照项目为单位整体建立集群。单个web站点包含表单文件服务和表单代码服务。表单文件服务为一些 css,js,html,图片等的静态文件。表单代码服务为一些动态C#代码服务,随时编译,随时发布,以http方式提供服务。表单文件可以通过js调 用这些http服务。

 

表单项目管理功能

图:

 

.net erp(办公oa)开发平台架构概要说明之表单设计器_静态文件_03

说明:
表单设计按照项目的方式管理,表单文件服务和表单代码服务及各自相应的编辑及文件。所以建立表单设计前,应该要先建立项目。
项目名称是整个项目发布,开发的唯一约定名称,不得重复。
若有公用的项目,则建立公用的项目,里面可包含公用的js,公用的图片,公用的css等。这个也是所有表单项目可公用的基础前端框架。
发布和撤销服务按钮:用于发布当前的c#后端代码成服务接口。若当前项目设置了负载均衡,相应的负载均衡节点会在2s-5s内自动更新服务。
发布上线按钮:用于发布当前项目至另外一个项目环境。比如测试或线上环境。目前至支持全量发布,未来可优化。
清除缓存按钮:清理表单文件服务的静态文件缓存。因为表单文件都是会在单个网站存储静态文件缓存,从而降低数据库的压力和静态文件负载均衡实现。理论上静态文件更新,本身相应项目的负载均衡节点也会在2s-5s内更新相应的缓存文件。

 

表单文件管理

列表图

 

.net erp(办公oa)开发平台架构概要说明之表单设计器_表单_04

前端详情图

 

.net erp(办公oa)开发平台架构概要说明之表单设计器_.net c# 表单设计器_05

后端详情图

 

.net erp(办公oa)开发平台架构概要说明之表单设计器_表单_06

全屏编辑示例:

 

.net erp(办公oa)开发平台架构概要说明之表单设计器_负载均衡_07

表单文件包含前端文件(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 车江毅

 

(此文只做阶段性的总结,也许对同样做流程引擎的人有些启发,也欢迎交流。分布式相关架构可以参考本人其他文章)

开源是一种态度,分享是一种精神,学习仍需坚持,进步仍需努力,.net生态圈因你我更加美好。



标签:文件,缓存,服务,代码,oa,表单,erp,net,js
From: https://blog.51cto.com/chejiangyi/5844797

相关文章

  • .net erp(办公oa)开发平台架构之流程服务概要介绍
    .neterp(办公oa)开发平台架构之流程服务(流程引擎)概要介绍背景搭建一个适合公司erp业务的开发平台。架构概要图: 流程引擎开发平台: 包含流程引擎......
  • .net 分布式架构之分布式缓存中间件
    便实现缓存的分布式,集群,负载均衡,故障自动转移,并兼容多种缓存存储的.net分布式缓存中间件。分布式缓存中间件 方便实现缓存的分布式,集群,负载均衡,故......
  • .net 分布式架构之配置中心
    .net统一配置中心,用于所有项目统一的配置集中管理,简化运维和项目部署,具备高灵活性,高性能,高稳定性,高及时性。同时具备配置项的负载均衡和故障转移,从......
  • .net 分布式架构之分布式锁实现
    .net分布式锁,包括redis分布式锁和zookeeper分布式锁的.net实现。分布式锁在解决分布式环境下的业务一致性是非常有用的。分布式锁经常用于在解决......
  • .net 分布式架构之任务调度平台
    .net简单任务调度平台,用于.netdll,exe的任务的挂载,任务的隔离,调度执行,访问权限控制,监控,管理,日志,错误预警,性能分析等。.net任务调度平台用于.net......
  • .net 分布式架构之业务消息队列
    .net业务消息队列是应用于业务的解耦和分离,应具备分布式,高可靠性,高性能,高实时性,高稳定性,高扩展性等特性。大量的业务消息堆积能力;无单点故障及故障监控......
  • .net 任务调度平台
    .net简单任务调度平台,用于.netdll,exe的任务的挂载,任务的隔离,调度执行,访问权限控制,监控,管理,日志,错误预警,性能分析等。.net任务调度平台用于.net......
  • 乘风破浪,遇见新一代工业互联网(Industrial Internet)之自主移动机器人(AMR)、自动导航
    什么是自主移动机器人(AMR)从工厂车间的重复性工作到农业、物流、酒店等领域的活动,自主移动机器人的使用正在改变业务的运营方式。自主移动机器人(AutonomousMobile......
  • asp.net中updatepanel控件向外传值
    .aspx代码如下:<%@PageLanguage="C#"AutoEventWireup="true"CodeFile="UpdatePanel控件传值.aspx.cs"Inherits="UpdatePanel控件传值"%><!DOCTYPEhtmlPUBLIC"-//W3......
  • asp.net中FileUpload控件研究汇总
    .aspx代码如下:<%@PageLanguage="C#"AutoEventWireup="true"CodeFile="文件上传.aspx.cs"Inherits="文件上传"%><!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transi......