title: How to change WCF service contract which does not effect client?
body: <p>i am new but reading some article on wcf i came to know that if you change the ServcieContrcat then you have to change not only the Service end but Clients end too and it's really difficult to manage.</p>
  
  <pre><code>Example 1:
  </code></pre>
  
  <p>Developer have to create WCF service for Order processing, with following function: GetOrderById, GetOrdersByStatus, SaveOrder</p>
  
  <p>The ServiceContract could looks like following</p>
  
  <pre><code>[ServiceContract]
  public interface IOrderService
  {
      [OperationContract]
      Order GetOrderById(int orderId);
  
      [OperationContract]
      List&lt;Order&gt; GetOrdersByStatus(OrderStatus orderStatus);
  
      [OperationContract]
      void SaveOrder(Order order)
  } 
  </code></pre>
  
  <p>after month, for example, project manager say: Ok, our customers need another functions: DeleteOrderById, GetOrdersByCustomerId and don't need GetOrdersByStatus any more, we need GetOrdersByStatusAndCustomerId</p>
  
  <p>Developers have to update ServiceContrcat and update client. As you can see, any changes in the ServiceContrcat is really difficult</p>
  
  <p>so i am looking for best guidance how to develop wcf service which will not create any problem if we extend the functionality or any kind of change but client end will not face any problem. thanks</p>