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 地址。顺便说下这个测试工具的第一个好处,直接在项目里面直接运行,对于一些不喜欢建立测试项目的同学起到很方便的作用,因为每次启动项目真的伤不起啊,特别越是大的项目,有时候编译还通不过~~~来个图片吧,更加的直观
![Figure 5. Test With Debugger]()
- 还有FluentAssertions,非常棒的测试断言。非常符合人的思维模式。 如图:
- 当然这几个还和一些其他的工具或者项目有关:先给个关键词:Resharper,CodeRush,MSBuild Reference,CruiseControl .NET,TeamCity,NUnit,.NET Framework 2.0 Redistributable (x86, x64)。
第二部分:
关于对EF的理解。我后续会在写关于这方面的东西。


![D~]19$X~[V2JA4TSUK0_~EO D~]19$X~[V2JA4TSUK0_~EO](http://images.cnblogs.com/cnblogs_com/fengxing/201204/201204041846564958.jpg)
浙公网安备 33010602011771号