Лучший подход к дизайну для WCF + LINQ + Background Workers

Я нахожусь в фазе "дизайна" нового проекта.

Я немного опишу, что это должно включать, и я был бы рад, если бы кто-то мог указать мне правильное направление (поскольку я не архитектор программного обеспечения, я инженер + программист).

  1. Существует служба WCF, которая будет предоставлять услуги нескольким клиентам.
  2. Служба WCF будет выполнять операции CRUD над базой данных SQL.
  3. Служба WCF будет отвечать на вызовы клиентов с данными обратно к ним.
  4. В дополнение к "опросу" от клиентов у службы должен быть механизм для отправки клиентам обновлений о различных событиях (поэтому в фоновом режиме должен быть какой-то рабочий поток, который будет проверять наличие новых событий и уведомлять все соответствующие клиенты об этом).
  5. На клиенте должна быть система входа в систему, защищенная паролем.

То, о чем я думал, было (я в фазе диаграммы классов):

  1. для службы - есть класс интерфейса и класс реализации
  2. для каждого объекта, который получает или возвращает сервис - создайте класс DTO
  3. все возвращаемые объекты будут наследоваться от некоторого класса "Result", который может содержать предупреждения и ошибки из бизнес-логики.
  4. Уровень доступа к данным будет LINQ.

Теперь я застрял в том, как я должен разделить слои, и как я должен проиллюстрировать это на диаграмме классов.

Я знаю, что у меня должно быть несколько сквозных слоев, таких как "Безопасность" и "Ведение журнала", может быть. Я также знаю, что служба WCF не должна взаимодействовать напрямую с базой данных, но должна использовать какую-то бизнес-логику.

Но я не знаю, как показать это на диаграмме классов. Я создаю класс под названием "Бизнес-логика"?

и как мне показать "рабочий" поток, который должен работать в фоновом режиме, и уведомлять клиентов о специальных вещах?

и как все сочетается? смысл - я создаю бизнес-логику, а затем внедряю ее в сервис? или бизнес-логика является статическим классом?

Я думаю, что я мог бы смешивать термины "домен" и "слой", может быть:(

Спасибо за любого, кто может объяснить, как я должен проектировать вещи должным образом, или, возможно, указать мне хорошее руководство для моей ситуации...

1 ответ

Я только что прочитал книгу, которая ответит на большинство ваших вопросов "Разработка многоуровневых сервисов WCF 4.0 с LINQ to Entities". Ищите его в Интернете, у вас могут быть некоторые идеи.

Другие вопросы по тегам