使用silverlight构建一个工作流设计器(三)

本文配套源码

最新版本在线演示:http://219.153.66.61/wf

新功能调查:系统到这里已经具备一个设计器的雏形了,当然还有很多需要完善的功能,如果您在这方面有经验,请提出您的宝贵意见,也可以留下您想要实现的功能,在后续版本中,我们将考虑您的意见,非常感谢:)

本文继续前文的内容,主要讲述与导入xm,导出xm,xml存储有关的一些内容。包含以下部分:

设计一个流程图的xml描述文件

将流程图导出为xm

根据xml文件呈现流程图

在完成以上内容后,进一步深入思考,既然可以将流程的当前状态保存为xm,那么在每次流程改变的时候将当前状态保存到内存中,在需要的时候再从内存中还原,就可以实现word里面的 撤销 与 前进 的功能了,所以功能就加多了两个。

撤销

前进

在进一步,如果将内存保存的xml对象集合按照一定的频率自动播放,是不是就是一个动画了,呵呵,我们可以用这个来做一个简单的动画片了。

四、xml存取

4.1 xml内容

就是将流程图保存为xml文件,以及根据xml文件还原流程图的功能。首先来看一下xml文件的格式。Xml文件用来描述流程的,在本文中,流程的布局信息主要有几个方面:

流程的属性信息。例如流程名称等

活动和规则的属性信息,例如活动名称等

活动和规则的位置信息

活动和规则的关联信息

我们设计出一个可以完全描述上面内容的xml文件即可,下面给出这个xml描述的一个实现。

<?xml version="1.0" encoding="utf-8" standalone="yes" ?>

<WorkFlow ID="" Name="" Description="">

<Activitys>

<Activity ActivityID="" ActivityName="" PositionX="" PositionY="" ZIndex="">

</Activity>

</Activitys>

<Rules>

<Rule RuleID="" RuleName="" BeginActivityID="" EndActivityID="" BeginPointX="" BeginPointY="" EndPointX="" EndPointY="" ZIndex="">

</Rule>

</Rules>

</WorkFlow>

上面的内容不用多讲了,大家看名字应该可以猜的出来。

我们还可以使用xsd.exe工具(.netframework sdk里面带有)生成对应的workflow.xsd文件,在根据.xsd文件生成Class,这个class就是操作这个xml文件的,.net真是太方便了。(这里就先不这么做了,而直接使用LINQ To Xml来操作上面的xml文件)

如果您不了解xml相关的一些技术,可以参考

http://www.w3schools.com/xm/default.asp或者http://www.w3schoo.com.cn/(中文版)

时间: 2024-08-29 08:13:46

使用silverlight构建一个工作流设计器(三)的相关文章

使用silverlight构建一个工作流设计器(十八)-持久化数据到数据库

使用silverlight构建一个工作流设计器(十八)-持久化数据到数据库-服务器段功能实现 17.3 服务器端代码实现 服务器端的功能是将数据保存到数据库,以及从数据库中取出xml描述文件返回给客户端.本文使用LINQ to SqClasses的方法对数据库进行操作.如下图所示,增加一个linq的类 然后在左边的数据库链接管理器中,增加一个数据库链接,如下图所示:

使用silverlight构建一个工作流设计器(十七)-持久化数据到数据库

使用silverlight构建一个工作流设计器(十七)-持久化数据到数据库-设计webservices接口 在开始之间,先说下程序增加的一个小功能,就是给容器增加网格线的功能,使得容器看上去类似下面的样子 当然可以有两种方法来实现,一种就是使用背景图片,但本文一贯的原色就是少用图片,多用silverlight的画图功能来实现,这些网格都可以使用xaml中的Line对象来实现.为此我们需要动态设定一个Canvas,然后把这些动态生成的Line对象添加到Canvas中,最后再把Canvas添加到容器

使用silverlight构建一个工作流设计器(十三)(动态生成流程图片下载_上)

首先庆祝一下源代码在codeplex上下载量超过1000 另外本演示程序放在微软免费的silverlight host上面,您也可以申请免费的空间. 地址在http://silverlight.live.com/ 源代码下载:http://www.shareidea.net/opensource.htm 在线演示:http://www.shareidea.net/workflow.htm 视频教程: http://www.shareidea.net/video/sharedesigner/sha

使用silverlight构建一个工作流设计器(十六)-持久化数据到数据库—数据库结构

16.1 数据结构 目前的流程信息没有保存到任何一个可持久化的环境中,根据网友建议,增加存储工作流xml文件的功能.这个功能使用数据库来实现,您也可以有更多的持久化方式. 根据工作流引擎的实现不同,有些引擎只需要xml文件配置就可以了,有些引擎需要建立数据库的模型.在本文中,假设工作流引擎是跟数据库相关的. 整个持久化流程是这样的: 从使用webservices从服务器下载相应的流程xml描述(或者新建一个流程) 在客户端使用流程设计器进行流程设计或者修改,此时任何修改都在本地完成 在用户点击保

使用silverlight构建一个工作流设计器(十四)(动态生成流程图片下载_下)

源代码下载:http://www.shareidea.net/opensource.htm 在线演示:http://www.shareidea.net/workflow.htm 视频教程: http://www.shareidea.net/video/sharedesigner/sharedesigner.html 在上篇文章中,韦恩卑鄙提出了silverlight3.0版本中增加了本地动态生成图片的方法,我又搜索了一下,的确可以了,您可以访问http://developer.51cto.com

使用silverlight构建一个工作流设计器(七)

最新源代码下载:http://shareidea.net/opensource.htm 最新版本在线演示:http://www.shareidea.net/workflow.htm 本章包括两部分内容,一个是在活动类上拖拽鼠标自动生成规则,另一个是网友的反馈,就是规则的端点不要在活动的中心,而要在活动的边缘. 五 美化 5.9 使用鼠标拖拽自动生成规则 本章内容将给系统增加一个非常好的用户体验功能.之前我们增加一个设置一个规则需要以下几个步骤: 点击 增加规则 按钮,添加一个规则到容器中. 拖动

使用silverlight构建一个工作流设计器(四)

最新源代码下载:http://www.shareidea.net/opensource.htm 最新版本在线演示:http://www.shareidea.net/workflow.htm 按计划程序到这里就差不多结束了,但是有很多朋友希望能继续完善这个程序,并增加有关工作流属性的内容,应各位朋友要求,把这个系列继续下去,并增加流程属性的一些内容.工作流在现代企业中广泛应用,本文不强求完成一个大而全的流程应用,而是做一个框架类的东西,方便进行二次开发和扩展. 大家从前面的内容可以看出,本文很少直

使用silverlight构建一个工作流设计器(二十)-增加标签(上)

源代码下载:http://www.shareidea.net/opensource.htm 在线演示:http://www.shareidea.net/workflow.htm 视频教程: http://www.shareidea.net/video/sharedesigner/sharedesigner.html 今天把新增的标签功能说一下吧. 在规则中,为了对规则进行说明,可以给规则类增加一个TextBlack来对规则进行注释,之前的程序也是这么做的,如下图所示: 但是这样的注释有一个缺点,

使用silverlight构建一个工作流设计器(五)

最新源代码下载:http://www.shareidea.net/opensource.htm 最新版本在线演示:http://www.shareidea.net/workflow.htm 本文主要侧重于创作一个应用程序过程中的遇到的问题以及解决问题的思路和方法(当然也包括使用silverlight遇到的问题).并且说明解决一个问题的多个方法之间的取舍原因.当然这个原因不是绝对的,根据时间的推移和思路的延伸,我们还可以找到更加合适的解决问题的方法. 在这个学习silverlight的过程中,希望