详解Visual Studio 2010中WF 4.0的应用

 
   | |

导读:本文将为大家介绍的Windows Workflow 4.0在Visual Studio 2010中的相关应用,希望简短的文章能为大家搞好Workflow 4.0开发有所帮助。

关键词:WPF Visual Studio 2010 工作流 .NET

 
正在加载数据...

    本文将为大家介绍的Windows Workflow 4.0在Visual Studio 2010中的相关应用,希望简短的文章能为大家搞好Workflow 4.0开发有所帮助。

  最近在虚拟机中安装了Visual Studio 2010。界面是WPF的,CPU和内存占用不是很夸张,打开一个很简单的附带的Lab Project,CPU使用率一般在20%一下,内存使用不到800M。

  言归正传,还是来介绍Windows Workflow 4.0。

  与3.5相比工作流模型有了很大改变和不同。

  我们知道3.5中工作流都是托管在WorkflowRuntime中的,通过WorkflowRuntime来创建、执行工作流实例;在4.0中没有WorkflowRuntime类,可以方便的直接创建WorkflowInstance实例和执行工作流。Lab中代码如下:

以下是引用片段:
WorkflowInstance myInstance = new WorkflowInstance(new SayHello(), 
                 
 new SayHelloInArgs(userName));
               myInstance.OnCompleted = delegate(WorkflowCompletedEventArgs e)
               {                   
Console.WriteLine("*** OnCompleted delegate is running on thread {0} ***",                       Thread.CurrentThread.ManagedThreadId); 
                  SayHelloOutArgs outArgs = new SayHelloOutArgs(e.Outputs);
                   greeting = outArgs.Greeting;
                   syncEvent.Set(); 
              }; 
              myInstance.OnUnhandledException = delegate(WorkflowUnhandledExceptionEventArgs e) 
              { 
                  Console.WriteLine(e.UnhandledException.ToString());
                   return UnhandledExceptionAction.Terminate; 
              };
               myInstance.OnAborted = delegate(WorkflowAbortedEventArgs e)
               { 
                  Console.WriteLine(e.Reason); 
                  syncEvent.Set();
               }; 
              myInstance.Run();

  4.0中有一个WorkflowInvoker类,这个类也可以执行工作流,只不过这个类是用来测试工作流的,这很大的改进了前一版本中工作流难以测试的问题。

以下是引用片段:
[TestMethod]
         public void ShouldReturnGreetingWithName()
         { 
            Dictionary<string, object> input = new Dictionary<string, object>()
             { 
                {"UserName", "Test"}
             }; 
            IDictionary<string, object> output; 
            output = WorkflowInvoker.Invoke(new SayHello(), input); 
            Assert.AreEqual("Hello, Test from Workflow 4", output["Greeting"]);
         } 

  3.5中Activity是所有活动的基类,要实现自定义活动,只需重写Activity 的Execute()方法;在4.0中所有的活动都是从抽象类WorkflowElement派生出来的,而且Visual Studio中默认自定义活动都是从CodeActivity或CodeActivity<T>继承的,相似的是也需要重写Execute()方法,从而实现自定义执行逻辑。

以下是引用片段:
public class MyActivity1 : CodeActivity    { 
       protected override void Execute(CodeActivityContext context)
        { 
           //你的实现代码 
       }    

  当然,你还是可以从Activity派生自定义活动,不过与3.5有很大不同。

以下是引用片段:
public class SayHelloInCode : Activity
     {         
protected override WorkflowElement CreateBody()
         {
             return new Sequence()
             { 
                Activities = 
                {
                     new WriteLine()
                     { 
                       Text = "Hello Workflow 4 in code" 
                   } 
                }  
           }; 
        } 
    } 

  4.0中新增加的工作流服务功能,可以直接把工作流发布为WCF服务,当然工作流也必须设计为具有WCF应答功能才行。4.0提供4个与WCF相关的活动:Receive、ReceiveReply、Send、SendReply,通过这些活动可以可视化定义WCF的服务操作。

  4.0中实现了工作流设计器的基本模型,可以很容易的实现自定义设计器。


用.NET框架实现序列化
 用.NET框架实现序列化(一)
 用.NET框架实现序列化(二)
 Visual Studio 2010特性解析:初探ALM功能
 解析.Net框架下的XML编程技术
 Oracle数据实体框架
 ASP.NET中的AJAX应用开发详解
 详解Visual Studio 2010中WF 4.0的应用
 详解Visual Studio 2010中的内置图表控件
 辨析Visual Studio 2010 RC中WPF开发的改进
 如何同时安装VS 2010 RC和ASP.NET MVC 2 RC2
 Visual Studio 2010 RC两个错误问题的解决方法

原文出处:http://developer.51cto.com/art/201001/178452.htm
 
来源:51cto    作者:天域小筑    
 
 
 
 
 

.NET Web服务

 
Mono Project本周发布Moonlight 2,Silverlight的开源Linux实施。微软回应Adobe Flash,Silverlight是创建在线和离线的富应用的框架……
 
这一整年,我们发布了许多技巧来协助您创建更好的面向服务架构。为此我们认真筛选推荐一下5条技巧给您。希望可以起到查漏补缺的作用。
 
就像脱离浏览器运行Silverlight应用这个功能一样酷,微软通过推出运行离线OOB应用的功能而略胜一筹。这里对OOB离线的Silverlight应用……
 
UML从一开始就收到了很多批评。有些观察员认为UML语言有些臃肿,因为许多关系图很少使用,而有些关系图的功能又相互重叠……
 
统一建模语言(UML)是标准的可视化标注,可以用来表示软件工程的各个阶段。这个标准化的语言考虑到为使用它的不同组织和公司之间提供更广泛……

热门技术手册排行

 

随着开源技术越来越成熟,一个稍有开发经验的人通过学习就可以用开源的产品和技术构建一套可用的系统。对于从事软件开发的人员,尤其是对Java或动态语言相关领域的人来说,“开源”也许是他们最喜爱的单词。但是,很多时候我们需要的不仅仅是一个可用的系统,而是希望这个系统开发更简易、性能更高和扩展性更好等。这确实是一个令人头痛的问题。本指南很多地方都是点到为止,要深入了解相关信息的读者请借助参考资料、网站等自行挖掘。

 

本专题分六部分探讨SOA设计模式,当初设计面向服务架构的一大初衷就是降低服务间耦合度,由此提高服务的灵活性和自由度。

 

业务流程管理(business process management,bpm)不是一个新概念,甚至不是一个新名词。它是从相关的业务流程变革领域,如业务流程改进(bpi)、业务流程重组(bpr)、业务流程革新中发展起来的。流程管理技术也是从早期的工作流管理、eai、流程自动化、流程集成、流程建模、流程优化等技术中发展起来的。

 

TOAGF是一个架构框架,简而言之,TOGAF是一种协助发展,验收,运行,使用,和维护架构的工具。它是基于一个迭代(Iterative)的过程模型,支持最佳实践和一套可重用的现有架构资产。

 

云计算的概念越来越流行,Amazon、Google和IBM是第一批将云计算引入公众视线的公司。云计算就是新的Web2.0,一种既有技术上的市场绽放。

 

Mashup是一个非常cool的新的应用程序种类。如果你想真正的了解它们,我们需要回过头来看看你现在的计算机,其实它就是一个非常好的帮助你理解mashup的模型。现在开源的操作系统无疑是非常好的apis的集合或应用程序编程接口,帮助开发者去构建其应用程序。计算机本身也是一个很好的为用户提供接口的例子,键盘和鼠标可以被理解为你通过计算机的接口而使用的不同的应用程序。本技术手册为读者提供了一些相关信息,如果需要深入了解mashup,读者可以借助其他参考资源。

查看更多
 
 

登录TechTarget中国

关闭
本服务仅向TechTarget中国的会员开放,请登录或立即免费注册
电子邮件地址:
请输入您的电子邮件地址
密码:
下次自动登录