Task 1: Define and Implement the Durable Service Contract
In this task, you will define and implement the service contract for your durable service.
Defining the contract
Open Visual Studio 2008, click File, and select New and then Project.
In the New Project dialog box, under WCF, select the WCF Service Library template.
Name your project SimpleDurableService and click OK.
Visual Studio 2008 generates the following files for your WCF service: an App.config file to store configuration settings, a source file that contains a contract definition, and a source file that contains the service class that implements the contract definition.
The template creates a service with two operations and a data contract for a custom type. In this tutorial, you will define new operations for your durable service.
Open IService1.cs (or IService1.vb if you created a Visual Basic solution) and replace the existing interface definition with the following code and remove the existing DataContractAttribute definition.
<ServiceContract()> _
Public Interface IService1
<OperationContract()> _
Function Add(ByVal n1 As Integer) As Integer
<OperationContract()> _
Function Subtract(ByVal n1 As Integer) As Integer
<OperationContract()> _
Function Multiply(ByVal n1 As Integer) As Integer
<OperationContract()> _
Sub EndPersistence()
End Interface
[ServiceContract]
public interface IService1
{
[OperationContract]
int Add(int n1);
[OperationContract]
int Subtract(int n1);
[OperationContract]
int Multiply(int n1);
[OperationContract]
void EndPersistence();
}
Open Service1.cs (or Service1.vb if you created a Visual Basic solution).
Implement the updated IService1 interface in your Service1 class definition.
Visual Studio automatically creates default implementations for your interface methods, which you will modify in the next step.
Modify the existing class definition to perform the appropriate logic as shown in the following code:
Public Class Service1
Implements IService1
Private currentValue As Integer
Public Function Add(ByVal n1 As Integer) As Integer Implements IService1.Add
currentValue += n1
Return currentValue
End Function
Public Sub EndPersistence() Implements IService1.EndPersistence
End Sub
Public Function Multiply(ByVal n1 As Integer) As Integer Implements IService1.Multiply
currentValue *= n1
Return currentValue
End Function
Public Function Subtract(ByVal n1 As Integer) As Integer Implements IService1.Subtract
currentValue -= n1
Return currentValue
End Function
End Class
public class Service1 : IService1
{
int currentValue = default(int);
#region IService1 Members
public int Add(int n1)
{
return (currentValue += n1);
}
public int Subtract(int n1)
{
return (currentValue -= n1);
}
public int Multiply(int n1)
{
return (currentValue *= n1);
}
public void EndPersistence()
{
}
#endregion
}
At this point, the WCF service you created is exactly the same as any WCF service you created in .NET Framework 3.0. The next task will show you how to take this service and persist its current state to a persistence store so that in the event your service is disconnected from the client, you can communicate with the client again at a later time from the last successful operation that was invoked.
See Also
Other Resources
Task 2: Enable Persistence for the Durable Service
Tutorial: Create a Durable Service
Copyright © 2007 by Microsoft Corporation. All rights reserved.
Last Published: 2010-03-04