Hello World
Spiga

ASP.NET MVC单元测试最佳实践

2009-02-23 09:07 by 老赵, 11189 visits

这是我在上周“.NET技术大会”上的主题Session。

作为一个技术,例如语言或框架,为了确保有能力应付各种情况,以及天生的限制能力不足(例如弱类型语言无法限制数据类型),必然可以“组合”成无穷无尽的使用方法。而最佳实践,便是所有用法的子集——而且很有可能是非常小的子集。通过最佳实践,我们的程序一般可以得到更好的质量(高性能,可扩展性,可维护性等等)。在我看来,只有遵守最佳实践,我们才能充分发挥语言或框架的最佳功效。而最佳实践由于是一种限制,也就将用法的“最大边界”给清晰化了,这使外界能够契合这个边界进行扩展,简化了开发辅助功能的难度。

我对于微软的一个特点时常呈一种否定态度,那就是因为它往往为了“显摆”自己的技术而向外界展现出一种“飘渺的美好”愿景。例如WebForm推出时铺天盖地的“拖拽”风潮,看似精彩却迷人双眼。对于能够“出钱”的合作伙伴来说,微软会给出一定指导。而对于社区来说呢?可能就只有一堆一堆的“How-to”和“Quickstart”……有时候我甚至会想,微软的“精英”们真想清楚过他们的东西该怎么“用好”吗(例如大家可以看到园子里,咳咳,某些微软技术支持中心员工给出的解决方案,咳咳……)?因此在《Essential WPF》一书的“序”中出现了“Microsoft Continuing Employment Act(微软编外就业行动)”,就是形容对微软的技术提供使用指引,并以此谋作为职业的人。

可能是微软故意的吧,呵呵,我想。

先提供这次Session内容的PPT和演示吧,在接下来的一段时间内,我会陆续分析这次课程的内容。希望大家能够尽可能地把东西给“用好”,而不仅仅是得到表面上的正确结果。



关于“最佳实践”,我推荐一篇文章“更好的最佳实践
Creative Commons License

本文基于署名 2.5 中国大陆许可协议发布,欢迎转载,演绎或用于商业目的,但是必须保留本文的署名赵劼(包含链接),具体操作方式可参考此处。如您有任何疑问或者授权方面的协商,请给我留言

Add your comment

52 条回复

  1. Otis's Technology Spac…
    *.*.*.*
    链接

    Otis's Technology Space 2009-02-23 02:19:00

    呃。。 看到老赵的新文章。。赶紧登入坐沙发!!

  2. volnet(可以叫我大V)
    *.*.*.*
    链接

    volnet(可以叫我大V) 2009-02-23 03:16:00

    又见老赵!应该重新讲一遍,或者有没有“肥赵粉”(肥皂粉,哈)拍的实况视频,共享一下

  3. Jacky Chyi
    *.*.*.*
    链接

    Jacky Chyi 2009-02-23 07:35:00

    我只能是做板凳了..继续关注老赵的文章

  4. 紫色永恒
    *.*.*.*
    链接

    紫色永恒 2009-02-23 07:59:00

    恭喜老赵成为微软编外就业协助培训人员

  5. 徐少侠
    *.*.*.*
    链接

    徐少侠 2009-02-23 08:05:00

    “Microsoft Continuing Employment Act(微软编外就业行动)”,就是形容对微软的技术提供使用指引,并以此谋作为职业的人。

    呵呵

    以微软技术的庞杂,外加和windows如此的紧密集成

    这种职业应该是有大市场的。

    众多中小企业买不起大型机,请不动Unix系统专家

    但是使用微软的东西,都是听起来不错,看上去很容易

    一旦掏钱买回来,用起来就麻烦了。

  6. 3333333333333333[未注册用户…
    *.*.*.*
    链接

    3333333333333333[未注册用户] 2009-02-23 08:40:00

    不要倚老卖老就行!

  7. 呀呀呀[未注册用户]
    *.*.*.*
    链接

    呀呀呀[未注册用户] 2009-02-23 08:41:00

    老赵提到asp.net mvc是 webform的替代品,这点是否和微软现在的发展方向优点不一致,微软现在好像asp.net mvc与webform并重发展的吧,在成熟度上webform比asp.net mvc要更强点吧,呵呵

  8. jason_lb
    *.*.*.*
    链接

    jason_lb 2009-02-23 08:41:00

    老赵讲课不错,可惜没时间听完

  9. 农民伯伯
    *.*.*.*
    链接

    农民伯伯 2009-02-23 09:06:00

    老赵,按没装Office2007 能转份03或PDF发我?
    多谢了 : )
    over140@gmail.com

  10. 老赵
    admin
    链接

    老赵 2009-02-23 09:06:00

    --引用--------------------------------------------------
    呀呀呀: 老赵提到asp.net mvc是 webform的替代品,这点是否和微软现在的发展方向优点不一致,微软现在好像asp.net mvc与webform并重发展的吧,在成熟度上webform比asp.net mvc要更强点吧,呵呵
    --------------------------------------------------------
    我有说过asp.net mvc是webform的替代品吗?ppt上都把“不是”两个字标红了……

  11. 老赵
    admin
    链接

    老赵 2009-02-23 09:08:00

    @徐少侠
    其实也不麻烦,主要是和理想还有太大差距。

  12. Rexzhou[未注册用户]
    *.*.*.*
    链接

    Rexzhou[未注册用户] 2009-02-23 09:08:00

    有幸听了现场,相当不错

  13. 老赵
    admin
    链接

    老赵 2009-02-23 09:09:00

    --引用--------------------------------------------------
    Rexzhou: 有幸听了现场,相当不错
    --------------------------------------------------------
    谢谢

  14. kyorry
    *.*.*.*
    链接

    kyorry 2009-02-23 09:12:00

    反正我现在基本没用webform,更具体说,没用服务器控件

  15. RawMan
    *.*.*.*
    链接

    RawMan 2009-02-23 09:14:00

    路过...

  16. 老赵
    admin
    链接

    老赵 2009-02-23 09:15:00

    @kyorry
    用用也不错

  17. RawMan
    *.*.*.*
    链接

    RawMan 2009-02-23 09:17:00

    学习了

  18. 老赵
    admin
    链接

    老赵 2009-02-23 09:19:00

    --引用--------------------------------------------------
    volnet(可以叫我大V): 又见老赵!应该重新讲一遍,或者有没有“肥赵粉”(肥皂粉,哈)拍的实况视频,共享一下
    --------------------------------------------------------
    不肥了谢谢……

  19. 老赵
    admin
    链接

    老赵 2009-02-23 09:20:00

    --引用--------------------------------------------------
    农民伯伯: 老赵,按没装Office2007 能转份03或PDF发我?
    多谢了 : )
    over140@gmail.com
    --------------------------------------------------------
    已经上传至原处了。

  20. 呀呀呀[未注册用户]
    *.*.*.*
    链接

    呀呀呀[未注册用户] 2009-02-23 09:25:00

    @Jeffrey Zhao
    呵呵,不好意思,原来上面有一个“不是”
    支持!有时间写点专题吧,例如性能优化之类的

  21. Study2060
    *.*.*.*
    链接

    Study2060 2009-02-23 09:27:00

    压缩文件用不了

  22. 老赵
    admin
    链接

    老赵 2009-02-23 09:38:00

    --引用--------------------------------------------------
    Study2060: 压缩文件用不了
    --------------------------------------------------------
    哪个压缩文件?

  23. zeus2
    *.*.*.*
    链接

    zeus2 2009-02-23 09:47:00

    ASP.NET 学习的欠下的帐 迟早要是还的。呵呵。

    谁说的这句话的

  24. 老赵
    admin
    链接

    老赵 2009-02-23 10:04:00

    @zeus2
    不是我,不过我同意,嗯嗯。

  25. 老赵
    admin
    链接

    老赵 2009-02-23 10:09:00

    --引用--------------------------------------------------
    乐章: 2003新系统装的mvc rc版,在 设计 视图 进行任何修改后,页面里的中文都会在html里变成 编码,如中Default.aspx页面没这个问题,请问如果修正这个问题?
    --------------------------------------------------------
    不知道,看来是被自动Encode了,IDE的设置问题吧,操作系统编码?

  26. 乐章
    *.*.*.*
    链接

    乐章 2009-02-23 10:09:00

    2003新系统装的mvc rc版,在 设计 视图 进行任何修改后,页面里的中文都会在html里变成 编码,如中Default.aspx页面没这个问题,请问如果修正这个问题?

  27. 乐章
    *.*.*.*
    链接

    乐章 2009-02-23 10:16:00

    asp.net程序一切正常,mvc项目就出现这个问题,Default.aspx页面不会(可能这个页面mvc没对其时行特殊的设置)IDE的设置,操作系统编没有问题

  28. 老赵
    admin
    链接

    老赵 2009-02-23 10:20:00

    --引用--------------------------------------------------
    乐章: asp.net程序一切正常,mvc项目就出现这个问题,Default.aspx页面不会(可能这个页面mvc没对其时行特殊的设置)IDE的设置,操作系统编没有问题
    --------------------------------------------------------
    那就暂时别用那个模板建立项目吧,呵呵。

  29. 郁闷[未注册用户]
    *.*.*.*
    链接

    郁闷[未注册用户] 2009-02-23 10:25:00

    不知道有没有视频录像呢?
    分享一下啊,刚看了一下PPT,非常想听一下

  30. 老赵
    admin
    链接

    老赵 2009-02-23 10:26:00

    @郁闷
    没有……我会慢慢讲的。

  31. xjb
    *.*.*.*
    链接

    xjb 2009-02-23 12:41:00

    "Microsoft Continuing Employment Act"这个词有意思

    期待老赵的下文

  32. Anders Cui
    *.*.*.*
    链接

    Anders Cui 2009-02-23 12:42:00

    很不错的说!

  33. 高秀利
    *.*.*.*
    链接

    高秀利 2009-02-23 13:33:00

    很好

  34. 粉丝[未注册用户]
    *.*.*.*
    链接

    粉丝[未注册用户] 2009-02-23 14:06:00

    再次崇拜下老赵,现在博客园首页尽是水文,老赵要多写点啊!

  35. kyorry
    *.*.*.*
    链接

    kyorry 2009-02-23 16:56:00

    老赵什么时候才能把我收入麾下,上次去你那面试过的,现在已经快一年了

  36. YY疯人院[未注册用户]
    *.*.*.*
    链接

    YY疯人院[未注册用户] 2009-02-23 18:29:00

    相当不错!!!
    刚看完!

  37. volnet(可以叫我大V)
    *.*.*.*
    链接

    volnet(可以叫我大V) 2009-02-24 03:40:00

    昨天发明了“肥赵粉”,后来睡前,想了一下,叫“喜劼精”(洗洁精)也是很不错的~

  38. Study2060
    *.*.*.*
    链接

    Study2060 2009-02-24 08:51:00

    --引用--------------------------------------------------
    study2060: 压缩文件用不了
    --------------------------------------------------------
    哪个压缩文件?
    --------------------------------------------------------
    我用web迅雷下载Demo.zip,Demo-Start.zip只有40K,打不开;直接另存也不行。

  39. 老赵
    admin
    链接

    老赵 2009-02-24 09:12:00

    @Study2060
    那么别用讯雷

  40. 老赵
    admin
    链接

    老赵 2009-02-24 09:12:00

    @volnet(可以叫我大V)
    还是肥皂粉比较好,嗯嗯

  41. yunyun1[未注册用户]
    *.*.*.*
    链接

    yunyun1[未注册用户] 2009-02-24 09:26:00

    @Jeffrey Zhao
    最新的文章怎么删了啊

  42. T2噬菌体
    *.*.*.*
    链接

    T2噬菌体 2009-02-24 13:59:00

    这个很期待。。。

  43. ads的[未注册用户]
    *.*.*.*
    链接

    ads的[未注册用户] 2009-02-27 08:48:00

    老赵最近高产呀,看来最近心情不错,呵呵

  44. 老赵
    admin
    链接

    老赵 2009-02-28 23:35:00

    @yunyun1
    没删过阿

  45. phpxer
    *.*.*.*
    链接

    phpxer 2009-03-04 22:57:00

    Mark

  46. 迪亚苹果
    *.*.*.*
    链接

    迪亚苹果 2009-07-10 14:28:00

    请教一下
    如果我要将数据显示在Master中
    只能用ViewDate吗?
    如果我想建立一个强类型的Model让Master接受可行吗?

  47. 迪亚苹果
    *.*.*.*
    链接

    迪亚苹果 2009-07-10 14:29:00

    不好意思,打错字了
    是ViewData

  48. 老赵
    admin
    链接

    老赵 2009-07-10 16:35:00

  49. Anubis-Sun
    *.*.*.*
    链接

    Anubis-Sun 2009-10-05 17:18:00

    关注。。。中

  50. OOLi
    *.*.*.*
    链接

    OOLi 2009-12-18 12:36:00

    老赵对于微软的一个特点时常呈一种否定态度,那就是因为它往往为了“显摆”自己的技术而向外界展现出一种“飘渺的美好”愿景。例如WebForm推出时铺天盖地的“拖拽”风潮,看似精彩却迷人双眼

    这句话深有感触,支持!

  51. tanher
    119.137.101.*
    链接

    tanher 2010-04-20 19:53:11

    下载不了呀。。。。。 能不能解决一下。。

  52. 竹子
    114.246.68.*
    链接

    竹子 2010-07-13 10:02:46

    我下载了上面的实例,不知道什么原因报出错误,麻烦赵老师帮我看看,以下是错误信息:

    找不到方法:“System.String System.Web.Mvc.Html.LinkExtensions.RouteLink(System.Web.Mvc.HtmlHelper, System.String, System.Web.Routing.RouteValueDictionary, System.Collections.Generic.IDictionary`2)”。

    源错误:

    行 8:  <% } else { %> 
    行 9:  
    行 10:     [ <%= Html.ActionLink<AccountController>(c => c.LogIn(), "Log In") %> ]
    行 11: <% } %>
    

发表回复

登录 / 登录并记住我 ,登陆后便可删除或修改已发表的评论 (请注意保留评论内容)

昵称:(必填)

邮箱:(必填,仅用于Gavatar

主页:(可选)

评论内容(大于5个字符):

  1. Your Name yyyy-MM-dd HH:mm:ss

使用Live Messenger联系我