Weapsy学习记录
最近在看一个基于CodeFirst-MVC3-EntityFramework的项目。
项目的地址是http://weapsy.codeplex.com/,虽然项目还没做多少,但是非常的适合学习,发起者是一个资深的软件架构师,他对EF的理解让我眼前一亮。
我会慢慢的记录下这个项目的学习心得。
第一部分:
关于一个IOC的工具,叫做Ninject.项目官网http://www.ninject.org/,项目源代码的地址是https://github.com/ninject。它非常的棒,因为之前很少去深入了解这些工具或者说开源项目,发现它确实不错,而且因百度,谷歌上也多少关于这个项目的介绍。唯一有的只有官网和它对应的WIKI。
为什么我会先写关于Ninject的东西?因为Global.asax是我看项目的一个起点,因为一段代码疑问,折腾了一会才发现Ninject这个隐藏的宝箱。
Code Here:
public class MvcApplication : NinjectHttpApplication { private Assembly ExecutingAssembly { get; set; } public MvcApplication() { // cache executing assembly for future use ExecutingAssembly = Assembly.GetExecutingAssembly(); } protected override IKernel CreateKernel() { var kernel = new StandardKernel(); kernel.Load(this.ExecutingAssembly); return kernel; } public void RegisterGlobalFilters(GlobalFilterCollection filters) { filters.Add(new HandleErrorAttribute()); } public void RegisterRoutes(RouteCollection routes) { IKernel kernel = new StandardKernel(new InjectionModule()); var _languageService = kernel.Get<ILanguageService>(); var _pageService = kernel.Get<IPageService>(); WeapsyGlobal context = WeapsyGlobal.Current; routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); } protected override void OnApplicationStarted() { base.OnApplicationStarted(); new StandardKernel(new InjectionModule()).Get<IInstallService>().EnsureInstalled(); ExecuteStartupTasks(); AreaRegistration.RegisterAllAreas(); RegisterGlobalFilters(GlobalFilters.Filters); RegisterRoutes(RouteTable.Routes); ViewEngines.Engines.Clear(); ViewEngines.Engines.Add(new RazorViewEngine()); } }
上面只是Global.asax的部分代码。关键在于NinjectHttpApplication这个类才让我发现了Ninject.
所以准备花点时间写写关于Ninject的介绍和使用方法。
1 Ninject的简单介绍。
暂时对Ninject介绍到此为止,更多的可以看我SVN对Ninject的一些注释。我会长期更新。
SVN的地址: svn://www.oksvn.com/Ninject/Ninject/
可以使用 TortoiseSVN 下载。
项目必须的环境:VS2010。当然彻底了解和运行还需要一些其他的工具和开源项目。
- xunit.net ,最近在找帮手处理这块的翻译。 这是一个单元测试工具,Nunit的创始人为C#,F#,VB.NET和其他的.NET进行开发的单元测试工具。想要了解和运行Ninject测试项目的同学可以先下载和了解TestDriven.NET 地址。顺便说下这个测试工具的第一个好处,直接在项目里面直接运行,对于一些不喜欢建立测试项目的同学起到很方便的作用,因为每次启动项目真的伤不起啊,特别越是大的项目,有时候编译还通不过~~~来个图片吧,更加的直观
- 还有FluentAssertions,非常棒的测试断言。非常符合人的思维模式。 如图:
- 当然这几个还和一些其他的工具或者项目有关:先给个关键词:Resharper,CodeRush,MSBuild Reference,CruiseControl .NET,TeamCity,NUnit,.NET Framework 2.0 Redistributable (x86, x64)。
第二部分:
关于对EF的理解。我后续会在写关于这方面的东西。