To host a service in a managed application, you must create a contract and then implement the service. You must understand the role of the contract and the service implementation to understand how to develop a self-hosted service. The first two rows in the table provide examples of a contract and a service implementation. The last two rows link to code examples for building and configuring your self-hosted service.
The following table details the procedure for hosting a state machine workflow. The code for hosting a state machine workflow is identical to that of a sequential workflow; however, starting the workflow may be different if you intend the workflow to respond to an event.
If you are running Windows Server 2003 and want to check if you are running a 32-bit version or 64-bit version, here is how you can check it. There are different ways to find it out.
WF provides various workflow-authoring styles, such as sequential and state machine, to develop your workflows
WF enables you to separate workflow definition from business logic. You can develop your entire workflow by using code, where you specify the workflow structure and logic in the Microsoft Visual C# development tool or the Microsoft Visual Basic development system. The typical workflow-authoring scenario in Visual Studio provides a designer to specify the workflow definition and then uses code in Visual C# or Visual Basic to represent business logic in separate code-behind pages.
WF includes visual designers for use in Visual Studio 2008, which enable you to quickly design and develop workflow applications. By using workflow classes and custom data types, you can also define your workflow structure programmatically and develop the entire solution in code.
The following table shows some of the commonly used namespaces in WF.
Sometimes it is sufficient to start transactions at service boundaries. At other times, you must create client applications (Windows-based applications or other services) that take control of their own transactions.
You must configure both the client application and the server bindings so that the transaction context flows from the client application to the service.
Propagating transactions across a process or network boundary is not a trivial task.
For most applications, creating data contracts for the parameters or return values is all that is necessary. However, there are times when you must have complete control over the message.