<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Leric&#039;s Blog &#187; WF</title>
	<atom:link href="http://www.leric.info/tag/wf/feed" rel="self" type="application/rss+xml" />
	<link>http://www.leric.info</link>
	<description>Temec Nosce</description>
	<lastBuildDate>Sun, 18 Apr 2010 02:32:41 +0000</lastBuildDate>
	
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Windows Workflow Foundation学习心得</title>
		<link>http://www.leric.info/post/54.htm</link>
		<comments>http://www.leric.info/post/54.htm#comments</comments>
		<pubDate>Fri, 20 Nov 2009 18:48:48 +0000</pubDate>
		<dc:creator>Leric</dc:creator>
				<category><![CDATA[计算机技术]]></category>
		<category><![CDATA[WF]]></category>
		<category><![CDATA[Windows Workflow Foundation]]></category>

		<guid isPermaLink="false">http://leric.net.cn/?p=54</guid>
		<description><![CDATA[近来因为工作需要，转到.net门下了，转眼过去快两个月，感觉收获还是很大的，又过去的Java经验，对学习微软的一堆框架还是很有益处的。最近在学习Windows Workflow Foundation，.net里的工作流框架。这还是第一次接触工作流，对工作流都还没有概念，在皮皮上找了本Pro WF Windows Workflow in .NET 3.5开始慢慢啃。
工作流，并不像我原本想象的那样，仅仅是个什么工作的流程。我的理解，工作流是一个对程序流程逻辑与具体操作的分离，程序的流程和逻辑可以在工作流图上清晰的展现，图中每个步骤或状态中的操作就不在掺杂着太繁杂的逻辑结构了。这么做的好处呢，就是从复杂的程序逻辑，抽出一个大的轮廓，通过一个工作流图，把大的问题切割成一个个小块儿了。其实，所有的架构设计不都是为了分解复杂的问题吗。
VS2008里的工作流编辑器，让创建工作流的工作变得相当简单和直观，简单了解了一些常用的Activity的用途和使用之后，半天时间就足够学会用工作流图表达程序逻辑了。
可能是因为我对C#的委托和事件不够熟悉，在工作流和Host的通信上花费了不少时间，才理清了这个过程。因为Workflow和Host程序是在不同线程中运行的，所以相互之间的调用只能通过delegation和event。Host通过触发ICustomeService接口中的事件，调用注册在这个事件上的HandleExternalEventActivity。另一个方向上，Workflow调用ICustomService接口中的方法，方法里触发一个CustomService中定义的公开事件，而Host程序把需要被调用的代码，通过委托注册到这个事件上，从而被Workflow调用。
先不写了，明天有空了补上个例子和图片吧。
]]></description>
			<content:encoded><![CDATA[<p>近来因为工作需要，转到.net门下了，转眼过去快两个月，感觉收获还是很大的，又过去的Java经验，对学习微软的一堆框架还是很有益处的。最近在学习Windows Workflow Foundation，.net里的工作流框架。这还是第一次接触工作流，对工作流都还没有概念，在皮皮上找了本Pro WF Windows Workflow in .NET 3.5开始慢慢啃。</p>
<p>工作流，并不像我原本想象的那样，仅仅是个什么工作的流程。我的理解，工作流是一个对程序流程逻辑与具体操作的分离，程序的流程和逻辑可以在工作流图上清晰的展现，图中每个步骤或状态中的操作就不在掺杂着太繁杂的逻辑结构了。这么做的好处呢，就是从复杂的程序逻辑，抽出一个大的轮廓，通过一个工作流图，把大的问题切割成一个个小块儿了。其实，所有的架构设计不都是为了分解复杂的问题吗。</p>
<p>VS2008里的工作流编辑器，让创建工作流的工作变得相当简单和直观，简单了解了一些常用的Activity的用途和使用之后，半天时间就足够学会用工作流图表达程序逻辑了。</p>
<p>可能是因为我对C#的委托和事件不够熟悉，在工作流和Host的通信上花费了不少时间，才理清了这个过程。因为Workflow和Host程序是在不同线程中运行的，所以相互之间的调用只能通过delegation和event。Host通过触发ICustomeService接口中的事件，调用注册在这个事件上的HandleExternalEventActivity。另一个方向上，Workflow调用ICustomService接口中的方法，方法里触发一个CustomService中定义的公开事件，而Host程序把需要被调用的代码，通过委托注册到这个事件上，从而被Workflow调用。</p>
<p>先不写了，明天有空了补上个例子和图片吧。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.leric.info/post/54.htm/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
