代码改变世界

浅谈Web流程图设计器开发

2010-05-30 23:39  LoujaDy  阅读(3168)  评论(0编辑  收藏  举报

浅谈Web流程图设计器开发

背景

项目需要一个能绘制流程图,并能进行加载文件,导出文件使程序能够识别的流程图设计器。

 

 

WinForm结合

 

 

 

Web流程设计器技术路线选择

 当时主要的可选择的技术路线有三种:一是AJAX,二是Silverlight,三则是Flash/ActionScript

三种技术对比:

AJAX方案的优势:Ajax技术成熟,可选框架多,在这方面有经验的人也多,诺碰到问题有很多可求助的人。

AJAX方案的劣势:JS代码调试困难,没有太好的2D图形框架。

 

Silverlight的优势:有几年年C#语言开发经验,开发出来的东西可西和现有的系统兼容性会很好,还有就是上手也相对容易。

Silverlight劣势:对Silverlight的类库不是特别了解,设计器开发的周期只有两周左右,如果花一周左右时间去学习Silverlight类库,剩下一周时间开发,可能不现实。

 

Flash/ActionScript优势:有用Flash/ActipnScript开发游戏的经验,对图形库操作相对熟练。Flash/ActionScript劣势:编译成Swf文件只能通过Shockwave Com组件和现有程序进行交互,兼容性差。

左思右想,结合项目的情况,还是决定用Flash/ActionScript在计划的时间内完成任务。

 

Web流程设计器架构设计

逻辑结构图

 

 

 

 

 

 

 

要实现一个简单的流程图设计器,首先要分析流程图设计器上包含哪些内容?结合上图可以看出,设计器应包含几个大内容:

1. 工具栏:ToolBar(提供设计节点)

2. 画板:DrawBoard(用来放置从工具栏上拖过来的节点)

3. 点节:INode(设计元素,绘制流程图用的节点,如:矩形,圆,线)

4. 连接线:ILine(连接各节点的线)

5. 连接点:IRalationPoint(节点与节点连接时用到的点)

6. 连接器:IDesignNodeContainer(由连接点组成的节点容器)

Web设计器的功能

Web流程设计器有哪些功能,现在几乎没有任何特别的功能,紧紧为了给合项目所需,所做的一个极其简单的设计器它的主要功能包括:新建流程、导出流程图(XML字符串)以便项目存储数据库、加载流程图(以XML字符串的开形)、增加删除节点、增加删除传输线、拖拽节点、动态连接线。

待扩展功能:小地图,放大,缩小,导出图片等等!

 

开发体会

几天的疯狂,动态折线,外接圆,外接棱形,三角公式这些以往很少用到的数学公式,在此次项目中通过“考试“。苦中有乐,很庆幸自己选择了Flash/ActionScript做为设计器的开发工具,最初做出此决定的时候很是担心在开发中遇到问题,因为在我们项目组中,对Flash/ActionScript深入了解的人不多,因为AS的完美,因为其强大的图形处功能,使我寂寞的环境下能顺利的完成计划任务。


作者:Louja
出处:http://loujady.cnblogs.com
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此声明,且在文章页面给出原文连接,否则保留追究法律责任的权利。