Nature使用规则及约束

首先,我们需要在根目录添加一个叫做Nature.config的配置文件,该文件记录了Nature这个框架,相关的配置
但是,蛋疼的是,我们还需要另外一个根目录的配置文件Nature.Core.dll.config这是由于,Shuttle的配置是采用默认配置文件的,而我们在Nature中定义了默认的寄主服务,以至于,关于Shuttle的配置信息只能在这个文件中才能被读取到。

以上是关于框架的配置的,后面我们来介绍各个模块需要注意的事项:

Boot:

这个模块的使用很简单,只需要写一个继承了IBoot接口的类型,并将Enable返回True,就可以在BootManager中调用Boot时,被调用了。
需要前置的Boot请配置在ProBootList中,这里放的是,需要在该Boot启动之前进行启动的Boot的Name。

Cache:

这里有个比较蛋疼的地方,我们总是需要在Nature.config中配置这样一个节点:

原因呢,是因为我们有个BootCache(Name为:Nature.Core.Cache)会在启动的时候被启动,这个时候会初始化Boot的配置。
这里具体的配置方法,将在Cache专门的介绍中说明。

Exceptions:

在应用系统中,需要定义自己的异常,继承LogicException类型,并实现其构造函数。
如果需要捕捉框架异常,请捕捉FrameException
如果需要捕捉改系统下所有自定义异常,请捕捉BaseException

其中,errNo全局不可重复,errNo的信息被配置在指定的xml文件中,其中,Core的文件为Exceptions目录下的FrameExceptions.xml文件
自定义的文件需要用BaseException的AddExceptions方法加载,建议在Boot时加载。

Log:

目前提供的LogHelper基本直接使用Log4net实现,所以,只需要把当前的config/log4net.config拷贝过去就可以了,注意目录依然不可变。如果需要,请自行改变配置内容。

Distributed:

这里是开框架中分布式相关的内容,目前是由Shuttle提供的消息,值得注意的是,这里的配置信息,需要配载Nature.Core.dll.config
中。

DDD:

这里的使用相对较为复杂。主要如下:
实体需要继承EntityBase类
值对象需要继承ValueObjecBase类
聚合根需要继承IAggregationRoot
领域事件需要继承BaseDomainEvent,领域事件的发布,需要调用领域事件的Raise方法
处理领域事件,需要继承IDomainEventHandler接口
仓储需要继承IRepository接口
查询需要继承IQuery接口
接口的继承的对应的实现,需要进行配置,建议在对应的Boot中进行(注:IDomainEventHandler不需要)


来自为知笔记(Wiz)


你可能感兴趣的:(Nature使用规则及约束)