c#版工作流之前端组件片段化(12)
合同与法律事务管理系统是基于asp.net开发的软件平台上构建的,前端以aspx页面承载。工作流前期版本为了跟上销售需求,大量采用了aspx界面进行构建,并在iframe的帮助下完成与业务单据界面的整合。由于aspx界面生命周期较长,都认为存在渲染性能问题。为解决此需求,要求工作流前端前面片段化,也就是ajax请求工作流界面片段,在前端采用浏览器渲染能力完成前端界面整合。原有业务单据只提供工作流控件区域div。
说简单点就是在工作流片段服务中提供html字符串,让流程器能正常渲染。工作流提供完整的js控制包用于前端渲染后的行为处理。
最难的是html生成片段的引擎选型,返回的字符串可以自己写,也可以用开源的模板,但怎么满足后续扩展需求以及客户的定制需求,并保证实现的简单化时。我们就必须否定自己拼的方案。
长沙团队由于在移动应用中使用了mvc4,对razer作为模板引擎有先天好感,而北京团队一直基于aspx完善业务,多razor有排斥心理。经过一段时间的模板引擎比较,发现北京团队找的基本已停止更新,而razorEngine在不断的发展,并且网友都在大量使用。对于razorEngine中启动会产生多个版本dll问题,经过对框架源码的分析,并对源码进行简单优化后,在模板不改变的情况下,将不再重新生成dll.解决了文件积累问题的同时把模板的性能发挥到最大,使产品全面进行片段化改造阶段。