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的介绍和使用方法。

Ninject的简单介绍

2 Ninject的项目情况。

3 为什么要使用Ninject。

4 Ninject的上下文绑定。

暂时对Ninject介绍到此为止,更多的可以看我SVN对Ninject的一些注释。我会长期更新。

SVN的地址:  svn://www.oksvn.com/Ninject/Ninject/

可以使用 TortoiseSVN 下载。

项目必须的环境:VS2010。当然彻底了解和运行还需要一些其他的工具和开源项目。

  1. xunit.net ,最近在找帮手处理这块的翻译。 这是一个单元测试工具,Nunit的创始人为C#,F#,VB.NET和其他的.NET进行开发的单元测试工具。想要了解和运行Ninject测试项目的同学可以先下载和了解TestDriven.NET  地址。顺便说下这个测试工具的第一个好处,直接在项目里面直接运行,对于一些不喜欢建立测试项目的同学起到很方便的作用,因为每次启动项目真的伤不起啊,特别越是大的项目,有时候编译还通不过~~~来个图片吧,更加的直观 
  2. Figure 5. Test With Debugger
  3. 还有FluentAssertions,非常棒的测试断言。非常符合人的思维模式。     如图:               
  4. D~]19$X~[V2JA4TSUK0_~EO

  5. 当然这几个还和一些其他的工具或者项目有关:先给个关键词:Resharper,CodeRush,MSBuild ReferenceCruiseControl .NETTeamCity,NUnit,.NET Framework 2.0 Redistributable (x86, x64)。

第二部分:

关于对EF的理解。我后续会在写关于这方面的东西。

posted @ 2012-03-22 22:33  陈卓杰  阅读(972)  评论(0编辑  收藏  举报