仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 2286|回复: 16
打印 上一主题 下一主题

[学习教程] ASP.NET网页设计孤单云云俊丽:离开Application_Start,让初始化代码更幽美仓酷云 ...

[复制链接]
若天明 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-18 11:20:54 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
c语言的编译器,几乎是所有新平台都有的。因此从这点上看,c语言的程序,比其他任何语言更加容易跨平台。  这里的“孤单”指的是将ASP.NET程序中的初始化代码从Global.asax.cs的Application_Start()办法中,移至独自的程序会合,而且这个程序集与Web项目标程序集没有任何交往。好比,初始化代码地点的程序集叫CNBlogs.BootStrapper,Web项目标程序集叫CNBlogs.Web,在VisualStudio中,这两个项目之间没有任何援用干系。
  由于低耦合而变得孤单,代码却因而变得更美。在生存中,孤单可让人坚持心坎的和平,能够享用更多思索之美。
  这篇文章经由过程两种办法让初始化代码变得更幽美:
  1)PreApplicationStartMethod(ASP.NET4.0的新特征,详见这里)。
  2)Bootstrapper(codeplex上的开源项目,详见http://bootstrapper.codeplex.com/)。
  利用Application_Start()的场景
  先看一下不利用Bootstrapper,间接在Application_Start()举行初始化的示例代码:
  1. publicstaticvoidRegisterGlobalFilters(GlobalFilterCollectionfilters){filters.Add(newHandleErrorAttribute());}publicstaticvoidRegisterRoutes(RouteCollectionroutes){routes.IgnoreRoute("{resource}.axd/{*pathInfo}");routes.MapRoute("Default","{controller}/{action}/{id}",new{controller="Home",action="Index",id=UrlParameter.Optional});}protectedvoidApplication_Start(){//MVC的注册AreaRegistration.RegisterAllAreas();RegisterGlobalFilters(GlobalFilters.Filters);RegisterRoutes(RouteTable.Routes);//IOC容器的注册varcontainer=IoCFactory.Instance.CurrentContainter;container.RegisterType<IBlogSiteService,FakeBlogSiteService>();container.RegisterType<IBlogPostService,FakeBlogPostService>();}
复制代码
  这是一种经常使用场景,在Application_Start()中完成一些初始化注册与设置,但这些代码堆在一同,看着老是不扎眼。
  当利用了测试驱动开辟(TDD)以后,不但看着不扎眼,并且用着也不伏手,由于在测试项目中也要举行初始化,但测试项目没法挪用Application_Start()办法。
  我们事先将这部分初始化代码移至自力的程序集(CNBlogs.BootStrapper),就是由于测试所需。自力出来后,Application_Start()与测试项目都经由过程挪用CNBlogs.BootStrapper.Initializer.Initialize()办法完成初始化。
  如许固然自力了,但其实不孤单,也不俊丽。由于:
  1.Web项目要依附CNBlogs.BootStrapper;
  2.这些初始化代码仍然堆在一些,只是换了个中央。
  办理办法
  针对第一个成绩
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-5-9 19:41

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表