title: Best practice to handle large WCF service
body: <p>I'm working on a 4-player network game in WPF and learning WCF in the process. So far, to handle the network communication, I've followed the advice from the <a href="http://blogs.msdn.com/coding4fun/archive/2007/10/29/5773166.aspx" rel="nofollow noreferrer">YeahTrivia game on Coding4Fun</a> game: I use a <code>dualHttpBinding</code>, and have use a <code>CallbackContract</code> interface to send back messages to clients. It works pretty well.</p>
  
  <p>However, my service is getting very large. It has methods/callbacks to handle the game itself, but also the chat system, the login/registration process, the matchmaking, the roster/player info, etc. Both the server and client are becoming hard to maintain because everything is tied into a single interface. On the client for example, I have to redirect the callbacks to either the game page, the lobby page, etc, and I find that very tedious. I'd prefer being able to handle the game callbacks on the game page, the chat callbacks on the chat window, etc.</p>
  
  <p>So what's the best way to handle that? I've thought of many things, but not sure which is best: splitting the service into multiple ones, having multiple "endpoints" on my service, or is there other tricks to implement a service partially where appropriate? </p>
  
  <p>Thanks</p>