风信子RainHyacinth框架介绍

  每个开发人员都有一个架构师的梦,这个是我的第一个着手写的框架,我希望能够在这里与各位网友一起分享我的想法,并希望能够借此机会跟大家一起进步。

  IKernelManager是风信子项目总的核心接口,这个接口提供了内核的各种服务以及程序的对外入口。所以,我们就从这个接口来谈谈它的架构设计。

    既然IKernelManager是框架的核心,所以我们先看下IKernelManager到底有哪些东西:

 1          /// <summary>
 2         /// 当前运行时
 3         /// </summary>
 4         /// <returns></returns>
 5         IRainRuntime CurrentRuntime();
 6 
 7         /// <summary>
 8         /// 当前上下文
 9         /// </summary>
10         /// <returns></returns>
11         IRainWorkContext CurrentContext();
12         /// <summary>
13         /// 本机缓存
14         /// </summary>
15         ICacheService Cache { get; }
16         /// <summary>
17         /// 本机缓存依赖
18         /// </summary>
19         ICacheDependencyService CacheDependency { get; }
20 
21         /// <summary>
22         /// 分布式缓存
23         /// </summary>
24         IDistributedCacheService DistributedCache { get; }
25         /// <summary>
26         /// 依赖注入器
27         /// </summary>
28         IDependencyInjectHub DependencyInjectHub { get; }
29 
30         /// <summary>
31         /// 日志
32         /// </summary>
33         ILogManagerService LogManager { get; }     
34  
35          /// <summary>
36         /// 初始化装载
37         /// </summary>
38         void InitLoad();
39         /// <summary>
40         /// 开始请求
41         /// </summary>
42         /// <param name="workContext"></param>
43         void Begin_Request(IRainWorkContext workContext);
44         /// <summary>
45         /// 结束请求
46         /// </summary>
47         /// <param name="workContext"></param>
48         void End_Request(IRainWorkContext workContext);

 

从接口中可以看到,IKernelManager提供了几个服务:

---IRainRuntime 运行时
运行时托管着当前请求的处理对象,用于监听整个请求处理过程

---IRainWorkContext 框架上下文
上下文存储着客户端一个请求过来的数据信息,知道当前请求结束,上下文对象才会被释放掉
---ICacheService 本地缓存服务
一个将数据缓存在本机上的缓存服务
---ICacheDependencyService 缓存依赖服务
文件的缓存会依赖文件内容的变动而时时更新缓存

---IDistributedCacheService 分布式缓存服务
分布式缓存提供了项目负载部署时多台服务器之间的数据共享机制
---IDependencyInjectHub 依赖注入服务
使用Autofac注入框架,项目面向接口开发

---ILogManagerService 日志服务
日志服务框架,程序运行过程中可用于记录信息

接下来,我们来看下风信子框架的结构设计图

IKernelManager框架的设计理念是,基础服务以一种垂直的方式来派生。当有新的服务需要增加时,只要扩展改接口,增加新的服务,就可以在框架中调用你想要的接口。
而每个接口内部,有着自己不同的实现处理机制,如:
IDependencyInjectHub 接口,具体哪些实现需要调用到依赖注入的东西,这个是由外部决定的,这里只是提供了一个服务调用的入口而已。



posted @ 2016-10-07 20:11  AntColony  阅读(159)  评论(0)    收藏  举报