Fork me on GitHub

初始化任务Bootstrapper

每个应用程序都需要在启动的时候做些初始化任务,在退出的时候做些清理工作,这类任务被归为Bootstrapper,在codeplex上的开源项目,详见 http://bootstrapper.codeplex.com/帮助我们来完成以下的任务。

1、在需要的时候,我们可以把实现和接口进行分离,实现使用依赖注入(不一定要项目引用,只需要文件夹下有实现的DLL)。那么,我们就需要在网站应用程序或是其它应用程序启动的时候,把这些实现注入进来。这里需要提一点的是,正因为我们把实现和接口进行分离,使得我们可以让两个组件进行相互的引用,比如配置服务的实现可以调用信息中心的接口来记录日志,而信息中心的实现可以调用配置服务的接口来存储配置。

2、然后,我们需要针对每一个组件进行一些初始化工作,比如进行数据初始化,这步工作需要在1之后。

当然,还可以有3、4、5,这些工作我们称为BootstrapperTask,在应用程序启动的时候,只要程序集中有BootstrapperTask,Bootstrapper就会自动找到这些Task并且按照Order分组并行调用,在应用程序结束的时候,Bootstrapper也会依次调用所有的Dispose来清理。

通过 Bootstrapper 将不同的初始化代码组织成不同的任务(实现IStartupTask接口),然后通过Bootstrap.Bootstrapper的Fluent API调用这些任务,并且可以指定任务的执行顺序。

bootstrapperdiag1.png

寂寞如此美丽:脱离Application_Start,让初始化代码更优美

posted @ 2013-01-05 23:09  张善友  阅读(4313)  评论(0编辑  收藏  举报