当前位置: 首页 > news >正文

最受欢迎的建站平台有什么网站做生鲜配送的

最受欢迎的建站平台,有什么网站做生鲜配送的,wordpress主题信息怎么修改,商城网站备案需要什么26 | 工程结构概览#xff1a;定义应用分层及依赖关系从这一节开始进入微服务实战部分这一节主要讲解工程的结构和应用的分层在应用的分层这里定义了四个层次#xff1a;1、领域模型层2、基础设施层3、应用层4、共享层可以通过代码来看一下源码链接#xff1a;https://githu… 26 | 工程结构概览定义应用分层及依赖关系从这一节开始进入微服务实战部分这一节主要讲解工程的结构和应用的分层在应用的分层这里定义了四个层次1、领域模型层2、基础设施层3、应用层4、共享层可以通过代码来看一下源码链接https://github.com/witskeeper/geektime/tree/master/microservices共享层一共建立三个工程1、GeekTime.Core主要承载基础的简单的类型比如说异常或者一些帮助类2、GeekTime.Domain.Abstractions抽象层领域的抽象是指在领域模型可以定义一些基类或者接口领域事件接口领域事件处理接口还有 Entity 的接口和 Entity 的基类3、GeekTime.Infrastructure.Core基础设施的核心层是指对仓储还有 EFContext 定义一些共享代码这些包实际上在不同的项目里面都可以共享所以建议的做法是把这些代码都通过私有的 NuGet 的仓库来存储然后其他的工程可以使用 NuGet 包来直接引用即可领域模型层就是定义领域模型的地方这里面会有不同的聚合还有领域事件不同的聚合下面就是领域模型基础设施层是仓储层和一些共享代码的实现这里只定义了仓储层的实现包括 EF 的 DomainContext还有 Order 的仓储层User 的仓储层还定义了领域模型与数据库之间的映射关系就是在 EntityConfigurations 这目录下面去定义应用层分两个一个工程是 API 层是用来承载 Web API 或者 Web 应用的另外一个是后台任务这个就是用来执行一些特殊的 Job作为 Job 的宿主运行的它可以是一个控制台的应用程序在 Web 层Web API 层也分了几个关键目录 ApplicationControllersExtensionsInfrastructure基础设施层会放一些身份认证缓存之类的与基础设施交互相关的一些代码扩展层主要是将服务注册进容器的代码和中间件配置的代码也就是两扩展方法一个是对 ServiceCollection 的扩展一个是对 ApplicationBuilder 的扩展控制器层主要用来定义 Web API这一层就是定义前后端交互的接口应用层使用了 CQRS 的设计模式就是命令与查询职责分离把命令放在一个目录把查询放在一个目录同样的这里还有两个事件处理的目录一个是领域模型领域事件的处理一个是集成事件的处理再看一下各层之间的依赖关系Shared 层实际上是不依赖任何层次的它存储了共享的代码被各个工程共享GeekTime.CoreGeekTime.Domain.Abstractions 是不依赖任何工程的而 GeekTime.Infrastructure.Core 依赖了 GeekTime.Domain.Abstractions实现了仓储比如说仓储会依赖 IAggregateRoot 接口public interface IRepositoryTEntity where TEntity : Entity, IAggregateRoot领域模型需要继承模型的基类并且实现一个聚合根的接口表示它是一个聚合根public class Order : Entitylong, IAggregateRoot领域事件需要实现一个领域事件的接口public class OrderCreatedDomainEvent : IDomainEvent基础设施层是一个独立的程序集实现了仓储的部分定义了一个 Order 的仓储public interface IOrderRepository : IRepositoryOrder, long还定义了 Order 仓储的实现public class OrderRepository : RepositoryOrder, long, DomainContext, IOrderRepository {public OrderRepository(DomainContext context) : base(context){} }这里可以看到仓储实际上依赖了基础设施层共享代码里面的仓储的定义 IRepository这样就可以复用仓储层的代码这样定义 OrderRepository 就会比较简单可以复用 Repository 的一些实现public abstract class RepositoryTEntity, TKey, TDbContext : RepositoryTEntity, TDbContext, IRepositoryTEntity, TKey where TEntity : EntityTKey, IAggregateRoot where TDbContext : EFContext {public Repository(TDbContext context) : base(context){}public virtual bool Delete(TKey id){var entity DbContext.FindTEntity(id);if (entity null){return false;}DbContext.Remove(entity);return true;}public virtual async Taskbool DeleteAsync(TKey id, CancellationToken cancellationToken default){var entity await DbContext.FindAsyncTEntity(id, cancellationToken);if (entity null){return false;}DbContext.Remove(entity);return true;}public virtual TEntity Get(TKey id){return DbContext.FindTEntity(id);}public virtual async TaskTEntity GetAsync(TKey id, CancellationToken cancellationToken default){return await DbContext.FindAsyncTEntity(id, cancellationToken);} }已经实现了一些基本的方法增删改查的方法数据库访问的实现继承了自己定义的 EFContextEFContext 作为共享代码在各个工程里面复用public class DomainContext : EFContext另外一个比较特殊的是事务处理的对象这个对象是用来管理整个应用程序的请求上下文中的事务这样就可以避免手动地去处理事务简化代码public class DomainContextTransactionBehaviorTRequest, TResponse : TransactionBehaviorDomainContext, TRequest, TResponse {public DomainContextTransactionBehavior(DomainContext dbContext, ICapPublisher capBus, ILoggerDomainContextTransactionBehaviorTRequest, TResponse logger) : base(dbContext, capBus, logger){} }应用层依赖了基础设施层基础设施层又依赖了领域层应用层实际上是把各层组装在一起的这一层它是应用程序的一个宿主协调各层之间的关系以及组装代码都是在这里实现的总结一下领域模型层专注于业务的设计它不依赖于其他各层它是相对独立的基础设施的仓储层仅仅负责领域模型的存取它不负责任何的业务逻辑代码的承载推荐使用 CQRS 的模式来设计应用程序使应用程序的代码结构更加的合理在团队和项目膨胀的情况下工程的可维护性不至于急剧的下降Web API 是面向前端交互的接口避免依赖领域模型共享代码建议设计为共享包使用私有的 NuGet 仓库来分发和管理
http://www.zqtcl.cn/news/2469/

相关文章:

  • 如何做网站直播入口和拓者设计吧类似的网站
  • 网站推广业务网络应用程序设计报告
  • 网站建设手机站wordpress萨隆
  • 天津网站备案时间移动互联网开发技术实验报告
  • 商务网站建设心得体会科技发展给我们的生活带来的变化
  • 增加网站和接入备案想做广告行业怎么入手
  • 安康网站建设合肥房产网上备案查询
  • 动易cms网站后台很慢是什么原因各省备案网站
  • 网站如何被手机端收录筛网怎么做网站
  • 扁平化风格的网站成都旅游住哪里最方便
  • 舆情网站大全大良网站建设收费
  • 网站开发人员工资计入无形资产网站如何做标题优化
  • 网站快速建设软件下载做视频网站 版权怎么解决
  • 怎么做网站的广告wordpress 悬浮公告
  • 企业网站不被百度收录网站的软文 怎么做推广方案
  • iis默认网站 没有属性专业网站
  • 把网站生成app的免费平台陕西省建设网三类人员证书打印
  • 网站建设深圳搜索引擎优化seo公司
  • 网站开发的主要步骤网站产品怎么改顺序
  • 全屏网站模板制作教程怎么做扫二维码登陆网站
  • 电商服务站点建设方案网站建设高端品牌
  • 如何打开网站根目录运营服务商官方网站
  • 做标书经验分享网站在线课堂手机网站模板
  • 马云是做网站的服装如何做微商城网站建设
  • 网站 建设 汇报我要免费开网店
  • 网站开发过滤器作用台州网站建设外包
  • 网站招生宣传怎么做wordpress伪静态404
  • 想招代理去什么网站网站优化及推广
  • 罗湖公司网站建设郴州新网二手车信息
  • IT男做网站免备案做网站可以盈利吗