ASP.NET MVC和测试驱动开发

mec*_*krt 4 .net asp.net testing asp.net-mvc

我是新手.NET程序员.我学习了C#,Windows编程,SQL Server 2005,ASP.NET 3.5.我想问一下,开始从事需要ASP.NET MVC和测试驱动开发的工作是否困难或不合适.我已经获得了"Pro ASP.NET MVC Framework"这本书,但这本书让我感到担忧.那我该怎么办?请帮忙.

-

谢谢你的回答,全部!我现在更加困惑:-)但是我要反对它显示坚持学习.

Nea*_*eal 5

如果您不了解MVC或TDD并且该工作需要在这两个方面都有经验,那么您不太可能获得这份工作,但是如果您对自己的经验,技能和愿望持开放态度,那么您可以询问他们是否有任何工作初级职位,您可以在这些领域与人合作,以便您可以学习和提升.

TL; DR版本=)

  1. 阅读博客
  2. 学习TDD
  3. 构建简单的MVC应用程序
  4. 使用IoC和ORM扩展简单的MVC应用程序
  5. 通过github或类似的方式共享简单的MVC应用程序

完整版

同时学习TDD和MVC是很多工作,因为虽然MVC比webforms更容易测试,但仍有许多领域非常难以测试(出站路由是立即想到的).

一个好的开始是查看周围的一些.NET TDD katas,因为它们将向您展示经验丰富的TDD从业者如何使用TDD解决简单问题.您也可以自己开始练习这些katas,以熟悉所使用的概念和方法.浏览一下博客圈 - 有很多优秀的博主撰写有关MVC和TDD的优秀内容.

一旦你克服了最初的TDD障碍,建立一个简单的MVC网站 - 就像经典的博客引擎.要减少您的初始认知负荷,请保持简单:

  • 将所有内容存储在内存中的列表中,并使用简单的界面隐藏控制器中的实现 - 这意味着您可以忽略短期内的数据访问.
  • 使用测试构造函数public MyController( IPostDao posts ) { ... },即将其重载以供运行时使用public MyController() : this( new SessionPostDao() ) {}- 这意味着您可以在短期内忽略IoC容器.

始终要注意,这些"快捷方式"只是为了减少学习曲线的陡峭程度,不应该在生产代码中使用.

一旦你开始构建一个简单的MVC应用程序,就可以在混合中添加一个IoC容器.我建议使用Ninject,因为它具有常见.NET IoC容器的最佳文档,并且似乎是最简单的启动和运行.现在您要使用IoC来构建控制器,请记住删除那些丑陋的重载构造函数.

接下来添加一些真正的持久性,我更喜欢NHibernate到EF,但NH学习曲线非常陡峭(即使你使用ActiveRecord). LightSpeed是一个很好的选择,因为免费版限于8个模型类,它使用起来非常简单,但缺点是未来的雇主可能没有使用它.

现在你有一个使用MVC的简单博客引擎构建,你的控制器通过IoC容器组装,你的持久性通过ORM处理(所有的单元和集成测试都包含在内),你可以用来向未来的雇主展示你知道多少 - 但是记住这只是一种表面处理,构建MVC应用程序要比将一些控制器,IoC和ORM(例如路由,查看heplers,过滤器,替代视图引擎)联系在一起要多得多.

为了使您的博客引擎与潜在雇主分享更简单,使用免费的github帐户来存储您的项目,这样您就可以学习git以及mvc/tdd/ioc和orm =)