Я бы использовал WCF с привязкой net.tcp.
Это будет легко установить, так же эффективно, как и сокеты, хорошо работает с наборами данных,
и вы можете реализовать безопасность разными способами, используя параметры конфигурации.
** ОБНОВЛЕНИЕ **
Ваш сервер приложений будет службой WCF, и код ASP.NET будет вызывать его с помощью прокси (автоматически генерируется)
вы определяете DataConstract для ваших сущностей данных и операцию (Get / Put DataSet)
Оформите заказ на этот пример, и он будет выглядеть понятнее:
Один из многих примеров: Статьи WCF