[WF4.0 实战] WPF + WCF + WF 打造Hello World(基础篇)
2014-10-09 18:40
633 查看
本篇博客是一个基础的示例,也就是一个入门教程吧!让大家熟悉一下WPF + WCF + WF三者的关系!这只是一个基础篇,下篇会继续深入,作为这段时间研究工作流的一个小小总结!
三者关系:
WPF--客户端--View
WF--流转--Controller
WCF--对外提供服务的--Model
下面是一个示例,用这个示例再来理解一下为什么我将三者的关系分别映射为MVC的各层
实现相应的方法:
接口:接口和方法需要对外公开,添加相应的引用ServiceModel
实现类:
编写宿主程序:
引入相应的App.config
启动服务测试:
此时我们可以查看对外公开的服务以及它的描述文件:
将send设置为参数类型
send相当于请求发送过去了,即请求服务的方法,那么就应该有个响应,而响应的结果就应该赋给我们之前定义的那个输出参数(returnView)
而返回的结果名称规则为调用的服务端的名称+result后缀
添加相应的引用usingSystem.Activities;以及WFProject
设置为多启动项
最终的运行结果为:
附上整个解决方法的说明:
好了,整个程序已经完成了,这是一个非常基础的示例,目的是让大家对WPF,WF,WCF有一个简单的理解。
WPF--WebForm
WF---简单的逻辑调用B层
WCF--方法的实现D层
这篇博客还没有真正的应用上这个WF的流程自动控制过程,只是起了一个简单的调用的作用,下篇将细化WF的使用!
三者关系:
WPF--客户端--View
WF--流转--Controller
WCF--对外提供服务的--Model
下面是一个示例,用这个示例再来理解一下为什么我将三者的关系分别映射为MVC的各层
WCF:
新建一个“控制台应用程序”,然后建立接口和相应的实现类实现相应的方法:
接口:接口和方法需要对外公开,添加相应的引用ServiceModel
namespace MyHelloWorld { [ServiceContract] public interface IAppServer { [OperationContract] string GetStringFromWCF(); } }
实现类:
namespace MyHelloWorld { public class AppServer:IAppServer { #region IAppServer成员 public string GetStringFromWCF() { return "Hello World"; } #endregion } }
编写宿主程序:
class Program { static void Main(string[] args) { using (ServiceHost host = new ServiceHost(typeof(AppServer))) { host.Open(); Console.WriteLine("服务已经启动"); Console.ReadLine(); } } }
引入相应的App.config
<?xml version="1.0" encoding="utf-8" ?> <configuration> <system.serviceModel> <behaviors> <serviceBehaviors> <behavior name=""> <serviceMetadata httpGetEnabled="true" /> <serviceDebug includeExceptionDetailInFaults="true" /> </behavior> </serviceBehaviors> </behaviors> <services> <service name="MyHelloWorld.AppServer"> <endpoint address="" binding="basicHttpBinding" contract="MyHelloWorld.IAppServer"> </endpoint> <host> <baseAddresses> <add baseAddress="http://localhost:8080/MyHelloWorld/AppServer/" /> </baseAddresses> </host> </service> </services> </system.serviceModel> </configuration>
启动服务测试:
此时我们可以查看对外公开的服务以及它的描述文件:
WF:
新建工作流的“活动库”(WFProject)将send设置为参数类型
send相当于请求发送过去了,即请求服务的方法,那么就应该有个响应,而响应的结果就应该赋给我们之前定义的那个输出参数(returnView)
而返回的结果名称规则为调用的服务端的名称+result后缀
WPF:
新建WPF应用程序(WPFProject)添加相应的引用usingSystem.Activities;以及WFProject
namespace WPFProject { /// <summary> /// MainWindow.xaml 的交互逻辑 /// </summary> public partial class MainWindow : Window { public MainWindow() { InitializeComponent(); } private void button1_Click(object sender, RoutedEventArgs e) { IDictionary<string, object> results = WorkflowInvoker.Invoke(new WFProject.Activity1()); string result = results["returnView"].ToString(); MessageBox.Show(result); } } }
设置为多启动项
最终的运行结果为:
附上整个解决方法的说明:
好了,整个程序已经完成了,这是一个非常基础的示例,目的是让大家对WPF,WF,WCF有一个简单的理解。
WPF--WebForm
WF---简单的逻辑调用B层
WCF--方法的实现D层
这篇博客还没有真正的应用上这个WF的流程自动控制过程,只是起了一个简单的调用的作用,下篇将细化WF的使用!
相关文章推荐
- [WF4.0 实战] 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程序
- WPF、WCF、WF打造Hello World程序
- WPFWCFWF打造HelloWorld程序
- 结合WPF、WCF、WF编程实例入门Hello World程序
- WF4.0 基础篇 (二十七) WCF Workflow Service 在WCF中使用WF
- WF4.0 基础篇 (二十七) WCF Workflow Service 在WCF中使用WF
- WPF、WCF、WF打造Hello World程序
- WPF、WCF、WF打造Hello World程序
- 综合应用WPF/WCF/WF/LINQ之三十二:XML的反序列化 推荐
- 综合应用WPF/WCF/WF/LINQ之三十五:解决CheckListBox控件中选择项丢失的问题
- WF4.0实战(三):WCF服务
- Prism研究(for WPF & Silverlight)4.从Hello World开始(实战篇)
- WF4.0实战(三):WCF服务
- WF4.0实战(十二):ASP.NET MVC2.0结合WF4.0实现用户多步注册流程
- 临时收藏一下:WPF、Silverlight、WCF、WF、CardSpace的一些链接