Я в хвостовой части клиент-серверного приложения, которое я начал писать несколько недель назад. Я использовал WCF для .Net cient & server.
Но сервер также должен был подключиться к устройству в сети, которое понимало ASCII только через TCP / IP.
Вы абстрагировали биты связи?
Да. Похоже. Я имею в виду, я не уверен, что понимаю ваш вопрос на 100%. Для моего TCP-соединения со сторонним устройством я скрыл детали TCP-соединения и связи за классом, который я написал. Данное устройство преобразует команды ASCII в ИК-сигналы для управления такими вещами, как спутниковые антенны и DVD-плееры. Я абстрагировал связь TCP в класс, поэтому все, что нужно было сделать моему серверу, это сделать вызов вроде:
_irService.SendCommand(someAsciiCommand);
Какие классовые сущности вы придумали?
Они были основаны на моем домене. Ваш должен быть основан на том, что ваш домен. Я не уверен, что понимаю этот вопрос за этим. Ваш домен будет диктовать ваши объекты.
В моем домене я имел дело с серверным приложением, которое отвечало за планирование и проигрывание многоадресных трансляций по UDP с использованием VLC. Эти многоадресные трансляции должны были настраиваться во всех аспектах.
Когда я проанализировал домен, я пришел к модели, состоящей из Broadcasts, Channels, Devices и BroadcastProcesses (класс, отвечающий за запуск процесса vlc.exe и поддержание его жизненного цикла).
Домен мало повлиял на сетевые технологии. Я получил несколько дуплексных «сервисов» в WCF, которые позволили мне манипулировать доменом. Но выбор сети не был продиктован доменом. Мне нужно было TCP-соединение с двоичной сериализацией моих объектов, и я хотел двустороннюю связь с сервером, чтобы мои клиенты могли получать обновления в режиме реального времени через обратные вызовы. Эти параметры были доступны для меня независимо от того, как выглядел мой домен.