本篇博客是一个基础的演示样例,也就是一个新手教程吧!让大家熟悉一下WPF + WCF + WF三者的关系!这仅仅是一个基础篇,下篇会继续深入,作为这段时间研究工作流的一个小小总结!

三者关系:

WPF--client--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的使用!

最新文章

  1. 关系型数据库与NoSQL数据库
  2. 突破php的imagecopyresampled 和imagecopyresized 实现图片马JPG
  3. HDU 2117 取(2堆)石子游戏【wzf博弈】
  4. iOS-开启arc之后 NSNotificationCenter removeObserver 是否需要调用
  5. jquery总结05-常用事件01-鼠标事件
  6. CS程序,服务器端弹出MessageBox.Show()之类的UI操作???禁止
  7. java List 去重(两种方式)
  8. pes and ts stream, how to convert
  9. Hadoop_Block的几种状态_DataNode
  10. AngularJs练习Demo14自定义服务
  11. Objective-C中的SEL、IMP和Class类型
  12. maven_基本配置
  13. 解决 ASP.NET Core MySql varchar 字符串截取(长度 255)
  14. 别以为真懂Openstack: 虚拟机创建的50个步骤和100个知识点(1)
  15. [Swift]LeetCode372. 超级次方 | Super Pow
  16. Linux 版 SecureCRT 界面变为 Windows 2000 风格的解决办法
  17. python练习实例1--------给定数字组成三位数
  18. C# RestoreDirectory
  19. 雷林鹏分享:XML 实例
  20. URL SCAN简介

热门文章

  1. Gradle 教程:第一部分,安装【翻译】(转)
  2. 使用BackgroundWorker组件进行异步操作编程
  3. android生成apk包出现Unable to add &amp;quot;XXX&amp;quot; Zip add failed问题
  4. unity3d简单的相机跟随及视野旋转缩放
  5. RH033读书笔记(13)-Lab 14 Network Clients
  6. 玩转Web之Jsp(一)-----jsp中的静态包含(&lt;%@include file=&quot;url&quot;%&gt;)与动态包含(&lt;jsp:include&gt;)
  7. 程序猿常识--OJ系统和ACM测试考试大全
  8. 改写String类别
  9. ExtJS学习笔记:定义extjs类别
  10. 基于GeoHash算法的附近点搜索实现(一)