WPF、WCF、WF打造Hello World程序
来源:互联网 发布:轩辕剑宝殿进阶数据 编辑:程序博客网 时间:2024/05/22 20:35
转自http://www.cnblogs.com/zhuqil/archive/2010/05/14/Hello-World.html
WPF、WCF、WF打造Hello World程序
分析篇:
Hello World程序作为所有编程语言的起始阶段,Hello World占据着法改变的地位。本例子很简单,用了WPF、WCF、WF三种还算比较新的技术。这个例子有三个项目:
1、WPFProject:WPF应用程序
2、WCFProject:WCF服务
3、WFProject:WF流程定义
执行顺序是WPFProject程序去启动WFProject项目的工作流,WFProject项目去调用WCFProject的WCF服务。接着WCFProject服务将'Hello World'这行编程界最经典的话返回给WFProject,WFProject由将将'Hello World'返回给WPFProject的UI。执行顺序如下图:
实现篇:
新建一个WpfApplication、一个ConsoleApplication、一个workflow的ActivityLibrary,共三个项目,命名分别为:WPFProject、WCFProject、WFProject,解决方案如下图:
我们就在这些由VS模板生成的代码实现这个Hello world程序,我们尽量地利用这些生成好的代码。
最不熟悉WCF:
引用System.ServiceModel.dll
添加接口IService1:
2 public interface IService1
3 {
4 [OperationContract]
5 string GetData();
6 }
添加类Service1:
2 {
3 public string GetData()
4 {
5 return string.Format("Hello World");
6 }
7 }
App.config配置:
2 <configuration>
3 <system.serviceModel>
4 <services>
5 <service name="WCFProject.Service1" behaviorConfiguration="metadata">
6 <host>
7 <baseAddresses>
8 <add baseAddress="http://localhost:8001/Service1"/>
9 </baseAddresses>
10 </host>
11 <!--The BasicHttpBinding is used because the Workflow uses a generated ASP.Net proxy to communicate with this service-->
12 <endpoint binding="basicHttpBinding" contract="WCFProject.IService1"/>
13 </service>
14 </services>
15 <behaviors>
16 <serviceBehaviors>
17 <behavior name="metadata">
18 <!-- To avoid disclosing metadata information, set the value below to false and remove the metadata endpoint above before deployment -->
19 <serviceMetadata httpGetEnabled="true"/>
20 <!-- To receive exception details in faults for debugging purposes, set the value below to true. Set to false before deployment to avoid disclosing exception information -->
21 <serviceDebug includeExceptionDetailInFaults="false"/>
22 </behavior>
23 </serviceBehaviors>
24 </behaviors>
25 <serviceHostingEnvironment multipleSiteBindingsEnabled="true" />
26 </system.serviceModel>
27 </configuration>
在Program.cs添加启动WCF服务代码:
2 {
3 host.Open();
4 Console.WriteLine("The service is ready.");
5 Console.WriteLine("Press <ENTER> to terminate service.");
6
7 Console.ReadLine();
8 }
以上实现了一个简单的WCF服务,这样WCFProject就完成了。
最熟悉的WF:
在Activity1上托一个Sequence,再在Sequence托一个Send活动调用上面定义好的WCF服务。
添加一个存储返回值的returnValue输出参数。
Send活动需要知道WCF服务的ABC。故做如下设置。
1、OperateName:GetData(与上面WCF方法名字一致)
2、EndPoint设置为EndPoint
3、Bingding设置为basichttpBingding。
4、EndPointAddress设置为New Uri("http://localhost:8001/Service1"),与在WCFProject的app.config的地址相同
5、ServiceContractName设置为WCF服务的接口名字IService1。
右击Send活动,选择Create ReceivReply,这样就创建了一个ReceivReply,它需要设置一个属性:点击Content设置如下:
最后流程如下图所示:
这样我们完成了Workflow的项目。
最后的WPF
由于WPFProject与WFProject是直接引用的关系,故在WPFProject直接引用WFProject的dll,如下图。
由于要启动WF,故还需添加工作流的System.Activities.dll引用。
在MainWindow窗体中拖一个按钮,将文本改成:“Invoke Workflow”,在click事件中添加下面代码:
2
3 MessageBox.Show(results["returnValue"].ToString());
这样WPFProject 也完成了。
调试与结果:
启动WCPProject,如下图:
启动WPFProject。点击Invoke Workflow,结果如下图:
总结:
结合了WPF、WCF、WF实现了Hello world程序。
一篇文章用最简单Hello World程序教你使用了三种最新技术。是不是值得你推荐一下,谢谢。:)
代码:/Files/zhuqil/wpfwcfwf.rar
作者:朱祁林
出处:http://zhuqil.cnblogs.com
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
- WPF、WCF、WF打造Hello World程序
- WPF、WCF、WF打造Hello World程序
- WPF、WCF、WF打造Hello World程序
- WPF、WCF、WF打造Hello World程序
- WPF、WCF、WF打造Hello World程序
- WPF、WCF、WF打造Hello World程序
- [WF4.0 实战] WPF + WCF + WF 打造Hello World(基础篇)
- 第一个WF程序Hello World!
- wcf学习笔记1 hello world程序
- Hello World WCF
- WCF/WF/WPF/Silverlight资料汇总
- WF & WCF
- WF/WCF/WCS/WPF/MVC/AJAX一些解释
- WF,WPF,WCF,Linq的一个工作流例子
- 一步一步学WF系列(一)Hello world开始
- 一个Hello World程序
- hello world程序
- QT Hello World 程序
- 流控制(RTS/CTS/DTR/DSR )
- Timer和TimerTask详解
- Delphi中当前获得焦点的控件
- delphi线程池【转】
- 十条不错的编程观点
- WPF、WCF、WF打造Hello World程序
- java(Web)中相对路径,绝对路径问题总结
- [技术分享 – RMS 篇] 如何安装 RMS 预生产环境
- 软件测试工程师发展轨迹
- UTF-8和gb2312
- 把多页Word文档缩小打印到同一张纸上
- 用友金蝶深入服装行业,是否有戏?
- Linux软件安装方法总结
- 【转】FORK()函数的理解