title: Exposing existing business objects in WCF
body: <p>I know there have been similar questions on this topic but I wasn't completely sure they were solving the same problem.  So just to be clear...</p>
  
  <p>I have an existing class library that has namespaces for types, business logic and data access.  The classes in the logic and data access namespaces are static and have basic crud methods to fill the type instances with data or take type instances that are already full and do inserts or updates in the database.</p>
  
  <p>Now, in addition to the existing applications that reference this library directly, I want to also create a WCF service so that other applications can consume the objects and methods that way.</p>
  
  <p>Every WCF turorial that I see creates the domain objects in the service project - but I don't want my objects defined in two places.  </p>
  
  <p>So I was thinking I could reference serialization in my existing class library and mark the type classes as [DataContract] and the properties as [DataMember].  Then, in the WCF project, create the [ServiceContract] interfaces with [OperationContract] methods to match the static logic classes and methods from the existing library that I want to expose.  Then, from the WCF project, reference the existing class library and implement the WCF interfaces by having methods in it that call the existing library logic methods which return the existing library types.</p>
  
  <p>Is this a good pattern?</p>