zoukankan      html  css  js  c++  java
  • 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的理解。我后续会在写关于这方面的东西。

  • 相关阅读:
    Linux的目录结构
    python爬虫系列序
    Ant批量处理jmeter脚本
    SoapUI测试webservice接口
    Jmeter分布式部署
    基础知识回顾:闭包
    Jmeter简单应用
    postman安装与使用
    python2.7编码与解码
    Markdown及MarkdownPad使用规则
  • 原文地址:https://www.cnblogs.com/fengxing/p/2412509.html
Copyright © 2011-2022 走看看