摘要: 对于搞asp.net的程序员,都知道所有的服务请求最终都会有一个IhttpHandler来处理,就像我们最常用的aspx页面。相对于IHttpHandler,asp.net还提供了一个异步的相同版本的处理程序接口,它就是IHttpAsyncHandler,同样asp.net也可以让我们的aspx页面实现IHttpAsyncHandler,而不仅仅是IHttpHandler。为什么要异步页面 我们都知道asp.net维护一个处理页面请求的线程池,每一个新的请求,asp.net就会从其中取出一个空闲的线程来实例化页面,运行处理代码然后呈现HTML,然后返回线程池,等待下一次被激活。但是如果请求到. 阅读全文
posted @ 2012-04-07 15:46 for certain 阅读(4620) 评论(1) 推荐(7) 编辑
摘要: 越深入的了解asp.net,就会非常的感叹它的设计,功能强大,任何阶段的开发人员,不管是菜鸟、大牛,都能找到自己的用武之地:灵活,即可以利用本身提供程序通过配置加简单代码方便的完成需求,也可以充分利用它的扩展性完成一些特定或本身不具备的功能。我们可以从session的设计中看到一些这样的例子。session设计简述 准确的来说是会话状态,它是服务状态管理的一部分,每个访问应用程序的客户端有不同的会话且包含不同的信息,我们可以通过属性session来访问它。与viewstate存储方式不同的是,它把信息存储在服务器,当用户访问多时,可能会给服务器带来不小的压力。 既然session的数据存储在. 阅读全文
posted @ 2012-03-18 14:27 for certain 阅读(1908) 评论(0) 推荐(3) 编辑
摘要: 对于大多数程序员而言,viewstate就是页面中的名字叫做__VIEWSTATE的隐藏控件,它使我们页面体积膨胀,不利于页面的seo优化;页面返送间都要携带更多的大量的数据,耗费更多的流量、延长响应时间。它使得我们很焦虑:禁用它,甚至不再使用web form,转向MVC,在MVC还没推出之前,甚至是转向其它的平台。。。 先不说那种取舍的对错,自己还是很喜欢web form这套框架的,看看页面的生命周期,它把整个页面的创建工业化、流水线化,它能让我们很容易的造一个”航母”出来,相比来说mvc就像一个手工作坊。但是对于web这种轻量级的应用,mvc显然更加适合,web form反而有点杀鸡牛.. 阅读全文
posted @ 2012-03-04 22:43 for certain 阅读(10712) 评论(10) 推荐(3) 编辑
摘要: 配置文件,这个再平常不过了。不管你用的服务器,还是开发时用到的各种开发工具,还有我们自己开发的网站/软件,配置文件都是很重要的。今天说的就是.net环境下的配置问题。先来段程序,以connectionString为例:web.config中初始的配置: <connectionStrings> <add name="TestConnStr" connectionString="Data Source=.\SQLEXPRESS;Initial Catalog=Readers;Persist Security Info=True;User ID=tes 阅读全文
posted @ 2012-02-26 11:43 for certain 阅读(4967) 评论(8) 推荐(4) 编辑
摘要: js的数据类型:Number、String、Boolean、Undefined、Null和Object。我们在js里创建的数据一定是以上几种类型的一种。1,typeof操作符js提供了typeof操作符来检测数据的类型,但是typeof操作的结果只会是:number,string,boolean,undefined,object,function中的一个,这个和提供的数据类型是不一致的。2,undefined类型如果一个变量声明未赋值之前,它是undefined类型,并且有值是undefined。要注意的是:如果我们对从未声明过的变量,它也是undefined类型,但是对它进行取值的操作将会产 阅读全文
posted @ 2012-02-22 17:14 for certain 阅读(1032) 评论(1) 推荐(1) 编辑
摘要: javascript简单很容易上手,但是有时会被一些小case搞的晕头转向。它虽然和主流语言有着相似的语法,但是却有着太多自己的特性,了解这些小特性,你会感觉它很强大,反而就会走向另一个极端。1,关于script标记不要在<script>标记内部出现</script>,会被html解析成结束标记而产生错误。1 <script type="text/javascript">2 alert("</script>"); 3 </script>将出现错误,我们可以这样写:alert("< 阅读全文
posted @ 2012-02-21 17:12 for certain 阅读(518) 评论(0) 推荐(0) 编辑
摘要: 首先定义一个自定义的attributeusing System;namespace NUnit.Core.Extensions{ /// <summary> /// 这个自定义特性只是用来标记类,Nunit发现这个标记的类会调用我们插件的逻辑来构建测试类 /// </summary> [AttributeUsage(AttributeTargets.Class, AllowMultiple=false)] public sealed class SampleFixtureExtensionAttribute : Attribute { }}下面是一个插件的主要逻辑:us 阅读全文
posted @ 2011-11-21 15:43 for certain 阅读(513) 评论(2) 推荐(1) 编辑
摘要: 你可以通过以下几种方法扩展Nunit:通过custom constraints对我们测试项目引用的Nunit framework进行扩展,针对我们自己的测试项目;通过addin对Nuint Core扩展,这样可以影响Nuint对测试项目的编译运行,此外,还可以对GUI运行工具的扩展。Custom Constraints (NUnit 2.4 / 2.5)通过继承抽象类Constraint,你可以实现自定义约束custom constraints 它会一个真实值进行一个测试并且产生适当的提示信息。public abstract class Constraint{ ... public a... 阅读全文
posted @ 2011-11-07 17:17 for certain 阅读(536) 评论(0) 推荐(0) 编辑
摘要: 接上篇29,TestFixtureAttribute (NUnit 2.0 / 2.5)它可以标志一个类是测试类,可以包含测试方法、setup和teardown方法。从2.5.3以后,这个类可以是public, protected, private 或者 internal,在.net2.0之后可以是静态的,也可以是泛型类,也可以是abstract。如果TestFixtureAttribute构造时不带参数,测试类必须有一个默认的构造函数;如果带参数,必须有对应的构造函数。如果不符合要求,这个类将是不可运行并且会报告一个错误。因为Nunit可能会一个会话中多次创建这个类,因此这个类的构造函数不应 阅读全文
posted @ 2011-11-02 09:50 for certain 阅读(881) 评论(0) 推荐(0) 编辑
摘要: 接上篇14,RepeatAttribute (NUnit 2.5)RepeatAttribute 是用来指定一个测试用例应该运行几次。如果任何一次失败,以下的次数将不会运行并只报告一次错误。15,RequiredAddinAttribute (NUnit 2.5)RequiredAddin attribute 用来指定一个程序集如果要正确运行所需要的程序集。如果指定的程序集没有被引用,整个程序将会标记为不可执行的。在3个试用版本中,这个特性可以被应用到类或方法上,但是从下个版将会限定只用到程序集。示例:[assembly: RequiredAddin("MyTestFixtureAd 阅读全文
posted @ 2011-10-31 11:33 for certain 阅读(950) 评论(0) 推荐(0) 编辑