I am currently in the early stages of designing a browser based game using silverlight. The game is going to have many matches of 2-4 players (perhaps even up to 8) and will be turn based.
The Front end is Silverlight 3.0 since I have some experience there. I am trying to figure out what the back end should be. Since the game is turn based it will not need to poll the server as often as a real time game. The server end will include some sort of intermediary layer which communicates between the client and the back end. The back end is going to be a c# based Windows service which performs validation and calculations based on user actions (attack, defend, move, skills, leveling etc etc).
What are the pro's and cons of the following for middle communication layer between the Silverlight 3.0 Client and the c# windows service on the server.
- Sockets
- WCF / WCF Duplex Service
- .Net RIA Services
Currently I don't know anything about the three options above, however I have in the past created ASP.Net Web services and in university I did some socket programing that I have mostly forgotten.