摘要:
ParsedRoute是ASP.NET Routing中的内部类,作用是根据既定模式将一段URL解析为一个RouteValueDictionary。上次的文章中我主要谈了如何利用反射使用类库的内部成员,而这次则想分享一些使用ParsedRoute时产生的一些想法。 阅读全文
随笔分类 - 02. ASP.NET
书籍推荐:国内第一本ASP.NET 3.5 MVC技术专著
2009-08-23 15:39 by Jeffrey Zhao, 20106 阅读, 收藏, 编辑
摘要:
周五的时候我知道了国内第一本ASP.NET 3.5 MVC技术专著问世了。当时忙着搬家理东西,写代码,写博客,就没有仔细搭理。现在瞅瞅,不得了,了不得,至少有四大亮点值得推荐。 阅读全文
为什么是HttpContextBase而不是IHttpContext
2009-08-21 15:15 by Jeffrey Zhao, 9942 阅读, 收藏, 编辑
摘要:
由于HttpContext很难进行Mock,因此为了提高可测试性,微软随ASP.NET MVC发布了一个“抽象包”,专门用于对HttpContext及其相关组件进行抽象。不过在Preview 1版本中,这些抽象都是一个个接口,如IHttpContext,IHttpRequest等等。而在下一个版本中,立即就成为了一个个抽象类,如HttpContextBase,HttpRequestBase。现在我打算从“使用”角度来谈一下,为什么这里的确应该用抽象类而不是接口。 阅读全文
在单元测试时指定HttpContext的各种Path
2009-08-21 10:02 by Jeffrey Zhao, 7372 阅读, 收藏, 编辑
摘要:
设置HttpContext中各种Path一直是个问题,因为被测试的方法可能用到各种Path中的任何一个,而各种Path之间有一定关联,如果我们完全手动设置Mock对象的话会是一个浩大的工程。还好,这个问题还算容易解决。 阅读全文
支持Area的ControllerFactory
2009-08-20 11:33 by Jeffrey Zhao, 5721 阅读, 收藏, 编辑
摘要:
由于项目需要,把ASP.NET MVC 2中的Area功能搬到1.0上来吧……其实只是借用个Area名头而已,根本不是那么一回事。有时候,我们就为自己的项目做一点简单的扩展,不是很合适吗? 阅读全文
ASP.NET Routing中最令人摸不着头脑的设计
2009-08-18 19:47 by Jeffrey Zhao, 7335 阅读, 收藏, 编辑
摘要:
您觉得ASP.NET Routing中最令人摸不着头脑的设计是什么? 阅读全文
DefaultControllerFactory不是线程安全的
2009-08-18 16:07 by Jeffrey Zhao, 6807 阅读, 收藏, 编辑
摘要:
由于项目需要,刚才打算为ASP.NET MVC应用程序增强ControllerFactory的功能,因此翻出了ASP.NET MVC的源代码开始阅读其DefaultControllerFactory。代码不多,很容易理解,不过读着读着便发现了问题,因为我发现DefaultControllerFactory不是线程安全的。 阅读全文
ASP.NET MVC 2 Preview 1 发布
2009-08-01 01:35 by Jeffrey Zhao, 7246 阅读, 收藏, 编辑
摘要:
微软发布了ASP.NET MVC 2的Preview 1版本,并在论坛中向社区征求反馈意见和建议。ASP.NET MVC 2的“主题”是“提高生产力”,提供多个有用的功能。令人放心的是,ASP.NET MVC 2 Preview 1能够与ASP.NET MVC 1.0 RTM共存,不会影响后者的正常使用。 阅读全文
浅谈线程池(上):线程池的作用及CLR线程池
2009-07-22 09:01 by Jeffrey Zhao, 44374 阅读, 收藏, 编辑
摘要:
线程池是一个重要的概念。不过我发现,关于这个话题的讨论似乎还缺少了点什么。作为资料的补充,以及今后文章所需要的引用,我在这里再完整而又简单地谈一下有关线程池,还有.NET中各种线程池的基础。更详细的内容就不多作展开了,有机会我们再详细讨论这方面的细节。这次,还是一个“概述”性质的,希望可以说明白这方面问题的一些概念。文章分两段,我们先来谈谈线程池的作用,及CLR自带的线程池。 阅读全文
关于网页*静态化*及SEO问题的一些补充
2009-07-06 00:08 by Jeffrey Zhao, 15431 阅读, 收藏, 编辑
摘要:
前一篇讨论“静态页”的文章反响不错,不少朋友发表了自己的看法,也给老赵更多的想法。虽然也在前一篇文章后面回复了不少内容,但是就以往经验来看,总结为一篇新的文章会让我想表达的内容更为明确。对于“静态化”这一原本就非常容易让人混淆的概念来说更是如此。在这篇文章里,老赵也会谈谈自己对于SEO这个工作的看法——以及以前遇到过的一个SEO“专家”。欢迎围观。 阅读全文
谈*静态页*(或网页*静态化*)的时候,请区分一些概念
2009-07-05 01:37 by Jeffrey Zhao, 29971 阅读, 收藏, 编辑
摘要:
“静态页”,在Web应用程序开发中是很常见的概念。只是我发现目前还是有相当部分的朋友,在这方面的存在一定的误区。不久前有朋友写了一篇题为《提供生成静态页核心代码》的文章,介绍了一种“向硬盘写入页面文件”的方式。这篇文章的内容在此并不多作讨论,只是它的摘要存在一个严重的问题,因为它混淆了两个概念。现在独立写一篇文章,也想把一些问题讲讲清楚,以后在讨论的时候也好有个准。 阅读全文
自己动手生成评论RSS
2009-06-04 11:11 by Jeffrey Zhao, 26286 阅读, 收藏, 编辑
摘要:
最近博客园讨论气氛热烈,有价值的评论也层出不穷。有时候我们会很希望订阅某篇文章的评论RSS,只可惜博客园目前没有这个功能。对于注册用户来说,我们可以通过点击评论框下方的“订阅回复”链接,这样就会在出现新评论的时候收到邮件。可惜匿名用户,只得不断刷新才能关注最近讨论到什么地方了。不过我们是什么人?我们是程序员,这点障碍对我们来说应该是在简单不过的小事了。自己搭一个站点,获取页面数据,分析HTML,输出为RSS,就这么简单。 阅读全文
为视图自定义辅助方法(下)
2009-04-29 22:35 by Jeffrey Zhao, 25374 阅读, 收藏, 编辑
摘要:
在上一篇文章中,我们把繁冗的客户端脚本变成了可以由Visual Studio提示并轻易输出的服务器端辅助方法。但是,目前的做法还有不少可以改进的地方。我们编写辅助方法的目的便是为了简化开发,因此我们还可以在这条路上走的更远,让开发人员可以在使用我们的API时觉得更流畅,更有快感。 阅读全文
为视图自定义辅助方法(上)
2009-04-29 00:24 by Jeffrey Zhao, 24425 阅读, 收藏, 编辑
摘要:
在编写ASP.NET MVC应用程序时,只依赖内置的视图辅助方法很难达到很高的生产力,即使是定义在MvcFutures中的补充类库,也很难满足项目的具体需求。此外,不同的项目有不同的特点,在很多时候也需要定义较为特殊的辅助方法,使开发人员能够更快,更方便地写出更容易维护的代码。这也是自定义视图辅助方法最主要的目的(没有之一)。而这次的文章,便是给出一个这方面的示例,可作为此类问题的一个参考。 阅读全文
使用ASP.NET Abstractions增强ASP.NET应用程序的可测试性
2009-04-23 01:51 by Jeffrey Zhao, 22863 阅读, 收藏, 编辑
摘要:
关于可测试性的重要性,老赵觉得已经不需要再过多强调了。如果您想要获得高生产力,为代码编写单元测试似乎已经是必经之路了。不过可惜的是,ASP.NET应用程序给人的感觉,始终是对可测试性不太友好,其最重要的原因之一在于对HttpContext对象的高度依赖,而我们很难对HttpContext编写Mock或Stub。而现在,我们可以基于ASP.NET Abstraction来辅助ASP.NET开发,改进代码的可测试性。 阅读全文
.NET平台下Web测试工具横向比较
2009-04-13 22:29 by Jeffrey Zhao, 24281 阅读, 收藏, 编辑
摘要:
为InfoQ写的一篇新闻。由于我有三不写原则(不翻译、不介绍、不重复),觉得有些值得介绍并推广的东西,还是放在InfoQ上吧。 阅读全文
辅助方法不嫌多
2009-04-12 19:25 by Jeffrey Zhao, 22268 阅读, 收藏, 编辑
摘要:
在开发项目过程中,总是会出现大量的辅助方法,例如字符串处理,代码检验,格式输出等等。如果您发现自己在多次编写类似的代码,可能就要想着如何把这些代码进行提取,变成辅助方法(亦或是类库甚至框架,关于这方面粒度问题在此不作讨论)。辅助方法的作用除了遵循DRY原则之外,也能让代码更容易编写,更为清晰,可读性也能更好——而且只要您“去做”,就会发现要得到这些好处并不困难。 阅读全文
使用IronPython检测ASP.NET程序状况(下)
2009-03-25 09:03 by Jeffrey Zhao, 27924 阅读, 收藏, 编辑
摘要:
在上一篇文章中,我们在一个请求中执行了IronPython代码,通过这个方法我们可以轻松地的检查系统运行的状态,或对系统进行一些简单修改。但是这种做法只能检查系统在当前时刻的状态,在很多情况下,我们需要对系统的请求进行一段时间的采样。对于简单的数据(例如每秒执行的请求数量,请求时间),我们可以通过查看Performance Monitor中相关的计数器来获得一些概要的数据。但是,如果我们需要获取一些系统的详细状态,甚至是需要根据需要进行动态改变的自定义需求,则势必要深入到系统内部进行数据采集。那么,我们该怎么做呢? 阅读全文
使用IronPython检测ASP.NET程序状况(上)
2009-03-23 09:09 by Jeffrey Zhao, 15654 阅读, 收藏, 编辑
摘要:
在维护一些生产环境中的ASP.NET应用程序时,老赵经常会感到“力不从心”。虽然我们可以建立丰富有效的监控或日志等维护机制,但是调试和分析一次程序经常需要耗费大量的脑细胞。因为我们可以使用的工具大都非常抽象,即使是一个非常微小的问题,也要用较多的时间才能发现“哦,原来是这个变量的值进入了一种奇怪的状态”。如果我们有一种机制,可以直观地检查生产环境中正在运行的程序的状态,那么一定可以大大方便我们的工作。 阅读全文
大家在开发ASP.NET应用程序时感觉有哪些值得讨论的话题呢?
2009-03-13 16:03 by Jeffrey Zhao, 8978 阅读, 收藏, 编辑
摘要:
不知道大家在开发ASP.NET过程中时,会产生哪些思考呢?这些思考可以是开发方式上的,可以是部署运营上的,可以是测试实践上的——只要不是某某具体问题该怎么解决,某段代码里是否有某个Bug,只要是值得议论的话题,都可以提出。最好是具体某个问题,例如XX和XX的优劣或选择,而不是简单的说“XX方面的问题” 我想调查一下,希望可以多做一些思考和总结。 谢谢大家。 阅读全文