1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/yubaolee-BestQA

Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

Введение в системный подход:

  • Структурная схема системы, основанной на ENode-фреймворке, представлена ниже:

  • Пример работы программы представлен ниже:

Структура системы:

Сервер
  1. BestQA.MessageQueue: центральная система сообщений
  2. BestQA.CommandSubscribe: обработчик подписки команд для системы
  3. BestQA.EventSubscribe: обработчик подписки событий доменного уровня##### Другое
  4. BestQA.Commands: Включает все команды (то есть Command из CQRS-фреймворка) и обработчики команд CommandHandler
  5. BestQA.Domain: Ядро доменного уровня (внутри которого определены события доменного уровня)
  6. BestQA.EventHandler: Обработка событий доменного уровня
  7. BestQA.Metadata: Определение общих метаданных
  8. BestQA.QueryService: Интерфейсы запросов системы, то есть Query из CQRS
  9. BestQA.RegisterExtension: Определение всех команд кодирования в системе
  10. BestQA.Repository: Обработка хранения данных системы, использует Entity Framework
  11. BestQA.UnitTest: Единичные тесты системы
  12. BestQA.Web: Интерфейс пользователя на основе MVC, фронтенд использует AngularJS
  13. Lee.Infrastructure: Общие библиотеки классов, независимые от платформы### Последовательность запуска:
  • Создайте базу данных BestQA и инициализируйте её с помощью InitTables.sql;
Запустите последовательно:
  1. BestQA.MessageQueue.exe
  2. BestQA.CommandSubscribe.exe
  3. BestQA.EventSubscribe.exe
  4. BestQA.Web (не забудьте изменить строку подключения)
Единичные тесты:
  1. Запустите только BestQA.UnitTest, никакие другие программы запускать не требуется.

Пример бизнес-процесса:

Публикация нового вопроса:

  • Пользователь отправляет CreateNewQuestionCmd через WEB;
  • BestQA.MessageQueue получает команду;
  • BestQA.CommandSubscribe получает уведомление, вызывает обработчик команд CommandHandler из BestQA.Commands, затем передает управление BestQA.Domain для выполнения, после чего отправляет QuestionCreatedEvent;
  • BestQA.MessageQueue получает событие доменного уровня;
  • BestQA.EventSubscribe получает уведомление о событии, вызывает обработчик событий EventHandler из BestQA.EventHandler, а затем записывает результат в базу данных через BestQA.Repository.

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Основанная на идеях DDD и с использованием фреймворка ENode система открытого исходного кода для вопросно-ответных сервисов. Развернуть Свернуть
Apache-2.0
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/yubaolee-BestQA.git
git@api.gitlife.ru:oschina-mirror/yubaolee-BestQA.git
oschina-mirror
yubaolee-BestQA
yubaolee-BestQA
master