You can simply use ASP.NET:
http://www.asp.net/get-started[
^].
The front end would be any Web browser with enabled Javascript, which solved the platform compatibility problem, the communication would be just HTTP, nothing else. Keep it simple; card games are not real-time, don't require anything fancy at all.
The big problem is the need for the server push. You need to have you players get notified on the move from the other side through the server, not sending periodic HTTP requests as it is typically done in all those stupid business systems. Please see:
http://en.wikipedia.org/wiki/Pull_technology[
^],
http://en.wikipedia.org/wiki/Push_technology[
^].
So, I would also recommend SignalR:
http://en.wikipedia.org/wiki/SignalR[
^],
http://www.asp.net/signalr[
^].
I explained this key aspect in my past answer, please read carefully:
Application 'dashboard' for website accounts[
^].
Now, persistence on the server side? ADO.NET:
http://en.wikipedia.org/wiki/ADO.NET[
^],
http://msdn2.microsoft.com/en-us/library/aa286484.aspx[
^].
This excellent CodeProject article can get you started in no time:
Using ADO.NET for beginners[
^].
As you can see, I answered all your questions in different order; it looks like this is all you need. No special communication technology, no special client-side or server-side platform, only the mainstream.
—SA