Http://www.codeproject.com/KB/WF/wcf-wpf-wf-hello-world.aspx
Analysis:
Hello WorldProgramAs allProgramming LanguageIn the initial stage, hello World occupies an unchangeable position. This example is simple. It uses three relatively new technologies: WPF, WCF, and WF. In this example, there are three projects:
1. wpfproject:WPF applications
2. wcfproject:WCF Service
3. wfproject:WF Process Definition
The execution sequence is that the wpfproject program starts the workflow of the wfproject, And the wfproject project calls the wcfproject's WCF Service. Then, the wcfproject service returns the most classic words in the 'hello world' field to the wfproject. The wfproject will return 'Hello world' to the UI of the wpfproject. The execution sequence is as follows:
Implementation:
Create a wpfapplication, consoleapplication, and activitylibrary for workflow. The three projects are named wpfproject, wcfproject, and wfproject respectively. The solution is as follows:
We generateCodeTo implement this Hello World Program, we try our best to use the generated code.
The least familiar with WCF:
Reference System. servicemodel. dll
Add interface iservice1:
1 [servicecontract]
2 public interface iservice1
3 {
4 [operationcontract]
5 string getdata ();
6}
Add a class service1:
1 public class service1: iservice1
2 {
3 Public String getdata ()
4 {
5 return string. Format ("Hello World ");
6}
7}
App. config Configuration:
1 <? XML version = "1.0" encoding = "UTF-8"?>
2 <configuration>
3 <system. servicemodel>
4 <services>
5 <service name = "wcfproject. service1" behaviorconfiguration = "metadata">
6 7 <baseaddresses>
8 <add baseaddress = "http: // localhost: 8001/service1"/>
9 </baseaddresses>
10 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>
Add the following code to start the WCF Service in program. CS:
1 using (servicehost host = new servicehost (typeof (service1 )))
2 {
3 host. open ();
4 console. writeline ("the service is ready .");
5 console. writeline ("press <enter> to terminate service .");
6
7 console. Readline ();
8}
The above implements a simple WCF Service, so that the wcfproject is complete.
The most familiar WF:
Support a sequence on activity1, and then send a send activity on sequence to call the defined WCF Service.
Add a returnvalue output parameter that stores the returned values.
Send activities need to know the ABC of the WCF Service. Make the following settings.
1. operatename: Getdata (same as the name of the above WCF method)
2. endpointSet to endpoint
3. bingdingSet to basichttpbingding.
4. endpointaddressSet it to new uri ("http: // localhost: 8001/service1"), which is the same as the address of APP. config in wcfproject.
5. servicecontractnameSet it to the interface name iservice1 of the WCF Service.
Right-click the send activity and select create extension reply to create a replica reply. You need to set an attribute: Click content to set it as follows:
The final process is shown in:
This completes the workflow project.
The last WPF
Since wpfproject and wfproject are directly referenced, wpfproject directly references the DLL of wfproject, for example.
To start WF, you also need to add the system. Activities. dll reference of the workflow.
Drag a button in the mainwindow form and change the text to "invoke workflow". Add the following code in the click event:
1 idictionary <string, Object> Results = workflowinvoker. Invoke (New activity1 ());
2
3 MessageBox. Show (results ["returnvalue"]. tostring ());
This wpfproject has completed the Logistics Distribution Network http://wlphw.com/QQ online: 471226865.
Debugging and result:
Start wcpproject, for example:
Start wpfproject. Click invoke workflow. The result is as follows:
Summary:
The Hello world program is implemented in combination with WPF, WCF, and WF.
This articleArticleThe simplest Hello World program teaches you how to use the three latest technologies. Is it worth your suggestion? Thank you. :)
Code:/Files/zhuqil/wpfwcfwf.rar
Author: Zhu Yulin
Source: http://zhuqil.cnblogs.com
The copyright of this article is shared by the author and the blog Park. You are welcome to repost this article. However, you must retain this statement without the author's consent and provide a clear link to the original article on the article page. Otherwise, you will be held legally liable.