当前位置: 首页 > 图文教程 > 网络编程 > ASP.NET > ASP.NET 2.0下的条件编译

ASP.NET
asp.net GridView控件中模板列CheckBox全选、反选、取消
asp.net GridView 删除时弹出确认对话框(包括内容提示)
asp.net DropDownList 三级联动下拉菜单实现代码
asp DataTable添加列和行的三种方法
Asp.net 页面调用javascript变量的值
asp.net 长文章通过设定的行数分页
asp.net 定时间点执行任务的简易解决办法
asp.net 页面延时五秒,跳转到另外的页面
asp.net 动态输出透明gif图片
asp.net DataList与Repeater用法区别
asp.net Javascript获取CheckBoxList的value
asp.net程序在调式和发布之间图片路径问题的解决方法
asp.net下生成英文字符数字验证码的代码
asp.net 页面版文本框智能提示JSCode (升级版)
ASP.NET URL伪静态重写实现方法
ASP.NET 2.0 中Forms安全认证
asp.net 动态添加多个用户控件
asp.net Repeater显示父子表数据,无闪烁
asp.net 无法获取的内部内容,因为该内容不是文本 的解决方法
asp.net GridView排序简单实现

ASP.NET 2.0下的条件编译


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-13   浏览: 52 ::
收藏到网摘: n/a

在Web开发中测试单个页面的功能实在是太麻烦,从首页用户名、密码进去后,经过一些操作后才可以来到你要测试的那个页面。(其实无论做什么的开发,测试单个功能都是很麻烦)。抱着小心谨慎的态度,我一般喜欢写几段测一次,如果每次都兴师动众的启动整个项目来测试显然是很不经济的做法。

我一般会在Solution中新增一个用于测试用的配置,在其中增加一个“Test"之类的编译指令,然后在代码中,把一些测试条件,测试方法放到这个指令下。在开发团队还没有引进单元测试之类的概念的时候,我可不想用新增一个测试项目这样的方法来做这种事情。而且对于象Web下单个的Page这样的情况我也不知道应该是如何进行法。所以还是用以前自己的编译指令这种方法比较的轻车熟路点。

(我以前在写一些非WEB下的东西的时候,也喜欢把测试方法与类本身写在一个文件里,然后用编译指令区分开,如果要测试,就直接在开发环境下选择"Test"的那个配置,然后启动TestDriven来测试之,不用启动整个项目对机器省力多了,TestDriven这个东西很管用的。
如果你是用C#作开发的,在开发环境中,如果当前这个编译条件不满足的时候,那些代码都会灰掉,而且可以缩进,一点都不障眼)

不过我的那些伎俩,在VS2005下有点不管用了,现在WEB开发跟以前有点区别了。在上面找来找去都找不到地方来新增编译指令,非WEB的开发还是可以找到地方新增的。折腾了半天,发现现在把一些设置的东西都放到Web.config里来了,条件编译当然也不例外。

比如现在要加一个”Test”的条件编译指令。在Web.config文件中,在<compilation>这个节下加入下述语句就可以了。

<compilers>

<compiler language="vb"

type="Microsoft.VisualBasic.VBCodeProvider, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"

extension=".VB"

compilerOptions="/define:Debug=True /define:Trace=True /define:Test=True "/>

<compiler language="c#"

type="Microsoft.CSharp.CSharpCodeProvider, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"

extension=".cs"

compilerOptions="/d:DEBUG;TRACE;Test"/>

</compilers>

很要命的,对每一种语言都要加一个<compiler>,当然如果项目中没用到相应语言,也可以不用理它,可以删掉。一般C#、VB用得比较的多,我只搞了这二种。

Web.config里设置过后就不用在每一个需测试的页面上去定义编译指令了,不过还是没有以前爽,以前直接在IDE工具栏上选择一下配置就行了,现在硬是要写这么多东西,而且主要还是不方便切换。比如我不要在"Test"条件下启动时,我还得跑到Web.config里把上面一段东西注释掉。
按照MSDN的说法,在.Net 2.0下,<compiler>这个element是deprecated的了,我这种做法好象不是正路。