• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

BestQA: 基于DDD思想与ENode框架的开源问答系统

原作者: [db:作者] 来自: 网络 收藏 邀请

开源软件名称:

BestQA

开源软件地址:

https://gitee.com/yubaolee/BestQA

开源软件介绍:

####系统工程简介:

  • 系统采用的ENode框架结构图如下:系统结构图

  • 程序运行效果图如下:输入图片说明输入图片说明输入图片说明输入图片说明

####系统工程结构:

######Server

  1. BestQA.MessageQueue: 系统消息队列中心
  2. BestQA.CommandSubscribe: 为系统命令的订阅处理程序
  3. BestQA.EventSubscribe: 为领域事件订阅处理程序

######Other

  1. BestQA.Commands: 包含所有的命令(即CQRS框架中的Command)及命令处理CommandHandler
  2. BestQA.Domain: 核心领域层(内部包括领域事件的定义)
  3. BestQA.EventHandler: 领域事件处理
  4. BestQA.Metedata: 通用数据结构定义
  5. BestQA.QueryService: 系统查询接口,即CQRS中的Query
  6. BestQA.RegisterExtension: 系统中所有命令编码的定义
  7. BestQA.Repository: 系统数据存储处理,采用EF方式
  8. BestQA.UnitTest: 系统单元测试
  9. BestQA.Web: 基于MVC的用户操作界面,前端采用angularjs
  10. Lee.Infrastructure: 公共类库,与平台无关

####启动顺序:

  • 创建数据库:BestQA,并使用InitTables.sql进行初始化;

######依次运行:

  1. BestQA.MessageQueue.exe
  2. BestQA.CommandSubscribe.exe
  3. BestQA.EventSubscribe.exe
  4. BestQA.Web(注意修改连接字符串)

######单元测试:

  1. 只运行行BestQA.UnitTest即可,无需任何其它程序

####典型的业务处理流程:

发布一个新问题:

  • 用户通过WEB发送CreateNewQuestionCmd
  • BestQA.MessageQueue收到命令
  • BestQA.CommandSubscribe收到通知,调用BestQA.Commands中的CommandHandler处理,最终通过调用BestQA.Domain处理,然后发送QuestionCreatedEvent
  • BestQA.MessageQueue收到领域事件
  • BestQA.EventSubscribe收到事件通知,调用BestQA.EventHandler中的EventHandler处理,并通过BestQA.Repository把结果写入数据库

鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap