Как реализовать клиент-серверное лицензирование приложения?
Работа с СУБД предполагается?
Какие типы данных будет передаваться по сети?
На сколько критична потеря данных при передачи, или ее порядок доставки до клиента?
Обязательно посмотрите в сторону WCF. Там есть и TCP, и HTTP, и поддержка TLS (поверх хоть TCP, хоть HTTP), и автоматическая сериализация-десериализация, и асинхронные вызовы, и поддержка сессий...
Внутри WCF использует сообщения SOAP - хотя есть постараться, то можно их кодировать как угодно.