Лучший подход к дизайну для WCF + LINQ + Background Workers
Я нахожусь в фазе "дизайна" нового проекта.
Я немного опишу, что это должно включать, и я был бы рад, если бы кто-то мог указать мне правильное направление (поскольку я не архитектор программного обеспечения, я инженер + программист).
- Существует служба WCF, которая будет предоставлять услуги нескольким клиентам.
- Служба WCF будет выполнять операции CRUD над базой данных SQL.
- Служба WCF будет отвечать на вызовы клиентов с данными обратно к ним.
- В дополнение к "опросу" от клиентов у службы должен быть механизм для отправки клиентам обновлений о различных событиях (поэтому в фоновом режиме должен быть какой-то рабочий поток, который будет проверять наличие новых событий и уведомлять все соответствующие клиенты об этом).
- На клиенте должна быть система входа в систему, защищенная паролем.
То, о чем я думал, было (я в фазе диаграммы классов):
- для службы - есть класс интерфейса и класс реализации
- для каждого объекта, который получает или возвращает сервис - создайте класс DTO
- все возвращаемые объекты будут наследоваться от некоторого класса "Result", который может содержать предупреждения и ошибки из бизнес-логики.
- Уровень доступа к данным будет LINQ.
Теперь я застрял в том, как я должен разделить слои, и как я должен проиллюстрировать это на диаграмме классов.
Я знаю, что у меня должно быть несколько сквозных слоев, таких как "Безопасность" и "Ведение журнала", может быть. Я также знаю, что служба WCF не должна взаимодействовать напрямую с базой данных, но должна использовать какую-то бизнес-логику.
Но я не знаю, как показать это на диаграмме классов. Я создаю класс под названием "Бизнес-логика"?
и как мне показать "рабочий" поток, который должен работать в фоновом режиме, и уведомлять клиентов о специальных вещах?
и как все сочетается? смысл - я создаю бизнес-логику, а затем внедряю ее в сервис? или бизнес-логика является статическим классом?
Я думаю, что я мог бы смешивать термины "домен" и "слой", может быть:(
Спасибо за любого, кто может объяснить, как я должен проектировать вещи должным образом, или, возможно, указать мне хорошее руководство для моей ситуации...
1 ответ
Я только что прочитал книгу, которая ответит на большинство ваших вопросов "Разработка многоуровневых сервисов WCF 4.0 с LINQ to Entities". Ищите его в Интернете, у вас могут быть некоторые идеи.