У меня мало очень опыта программирования сетей. Но пару слов добавлю к теме:
1. Очень хорошая статья про 3 подхода проектирования сервера на C#:
Winsock
2. На C# вроде можно реализовать "горячую" замену кода используя домены приложения. ASP.NET так работает.
3.
Mono позволяет запускать сервер написанный на C# на Windows, *nix, Linux, Mac