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的理解。我后续会在写关于这方面的东西。

你可能感兴趣的:(学习)