您的位置:首页 > 其它

十个必备的.NET开发小工具

2011-01-21 13:23 260 查看
本文将介绍下列工具:·代码片段编译工具:
Snippet
Compiler·正则表达式构建工具:
Regulator·代码生成工具:
CodeSmith·单元测试工具:
NUnit·代码分析与检查工具:
FxCop·.NET
程序集检查工具:
.NET Reflector·代码文档创建工具:
NDoc·解决方案编译工具:
NAnt·版本切换与转换工具:ASP.NET Version Switcher

Visual Studio .NET
Project Converter没有好的工具,就写不出好的程
序。除了众所周知的工具(例如,
Visual Studio? .NET
)以外,
.NET
社区里还有许多声名未广的小工具。本文将简单介绍一些很好的针对
.NET
开发的免费工具及其使用方
法,它们有的会从方方面面节省你编程的时间,有的则可能会彻底改变你编写代码的方式。由于在一篇文章中谈及这么多工具,所以我无法作全面的介绍,但你应当
充分了解它们,确定哪些对你的项目有用。Snippet Compiler
Snippet Compiler
是一个基于
Windows?
的小应用程序,利用它能够编写、编译和运行
. NET
代码。如果你有小段代码需要
测试而又不想专门为它专门创建完整的
Visual Studio .NET
项目时,这个工具很有用。例如,我要向你展示如何从
Microsoft? .NET Framework
调出
Notepad
应用程序,代码片段如下:
System.Diagnostics.Process proc = new System.Diagnostics.Process();
proc.StartInfo.FileName= "notepad.exe";[/code]
proc.Start();
proc.WaitForExit();
我可以在
Snippet Compiler
中新建一个默认的控制台应用程序(译注:代码框架已生成),然后在它的
Main
方法中写入代码片段,如图
1
所示。
1 Snippet Compiler
要测试这段代码,只需按工具条上的
start
按钮(绿色三角),它就会运行
在调试方式下。该段代码产生一个控制台窗口,然后调出
Notepad
。关闭
Notepad
,控制台窗口也随之关闭。我发现为求助者编写小例程时,
Snippet
Compiler
非常有用。通常,我必须先创建一个项目,保证所有代码编译成功后,把代码片段发给求助者,然后再删除项目。有了
Snippet Compiler
,这个过程就很容易。Snippet Compiler

Jeff Key
编写,可以从这里下载:
http://www.sliver.com/dotnet/SnippetCompiler。[
以下内容为译者补充,摘自: http://royo.is-a-geek.com/regulator
]Snippet Compiler
主要功能:编译和运行一个或多个
C#

VB.NET

ASP.NET
代码片段可选择编译
WinForm
EXE
文件、控制台
EXE
文件或
DLL
文件用户可存储模板库显示编译错误和警告,包括在编辑器中以波浪线提示智能感应(
IntelliSense
)静态成员、方法及构造器签名导入
VS.NET
项目可方便置入任务栏通知区将代码片段导出为
HTML
文件或
RTF
文件=======================================================================RegulatorRegulator是最近才加入到我的必备工具列表中的。它是一个功能全面、易于使用的正则表达式构建和测试工具。正则表达式定义了基于字
符、字符出现频率和字符顺序的字符串匹配模式,通常用于验证用户输入或在长字符串中进行子串查找,例如,在网页上查找URL或e-mail地址。你可以在Regulator中输入一条正则表达式和一些测试内容(或打开文件),利用它来测试正则表达式的匹配结果,如图2所示。
图2
Regulator
文档窗口中包含的是一条简单的正则表达
式[0-9]*,右下角是测试输入,左下角则显示正则表达式的匹配结果。像这样在独立的应用程序中编写和测试正则表达式要比在自己的程
序中作起来容易得多。Regulator最好的功能之一是能够搜索regexlib.com站点的在线正则表达式
库。例如,如果在搜索框中输入字符串“phone”,就会找到各种电话号码的正则表达式匹配结果。Regulator由Roy
Osherove编写,下载网址:
http://royo.is-a-geek.com/regulator
。[以下内容为译者补充,摘自:
http://royo.is-a-geek.com/regulator
]Regulator
主要功能
正则表达式操作
支持
支持三种最通用的正则表达式操作:查找多个匹配按表达式替换文本按表达式拆分文本Regexlib.com
集成

RegexLib.com数据库搜索和导入表达式及示使用图形化
向导将用户自己的正则表达式提交到
RegexLib.com数据库支持代理服务器文本编辑句法显亮多文档选项卡界面“快速添加”功能允许用户轻松选择要插入的句法操作“快速添加”菜单项完全可定制,只需简单地修改程序目录中相关的配置文件支持括号匹配使选定的文本“转义”到特定的字符串而无需手工输入
/s

/n
以及其它转义字符折合和打开选择:可创建折叠区域以便于易读在编辑器中仅选择表达式的一部分对其执行匹配和替换性能分析
图形化显示匹配和替换操作的时间表图,便于观察优化效果精确显示匹配和替换操作用时
文本片段工具
简单易用的常用文本片段工具条,方便表达式键入文本片段工具条完全可定制,任何文本片段均可编辑或删除,或者可以只添加用户自己的文本片段插入的包含“
<>
”符号的文本片段将自动在文本编辑器选中,允许你编写节省键入时间的范型片段常用功能
多线程操作:
能取消长时间运
行的表达式匹配和替换
操作
可最小化到系统托盘“最近打开文件”菜单其它小功能=====================================================================================CodeSmithCodeSmith
是一个基于模板的代码生成工
具,它使用类似于
ASP.NET

语法
来生成代码或文本。CodeSmith
不像其它许多代码生成工具,它
不要求你
掌握特殊的应用程序设计或体系结构。利用CodeSmith
可以生成简单的强类型集合,也可以生成完整的应用程序。在创建应用程序时,无论是编写数据访问代码还是创建定制集合,你经常会发现自己在重复
某些工作。这时候
CodeSmith
就特别有用,因为你可以编写模
板来自动完成重复性任务,不但提高了生产力,而且自动完成了烦琐的任务。CodeSmith
带有许多模板,包括所有
.NET
集合类型的模板以及生成存储过程的模板,但它真正强大的功能在于创建定制模板。下面我就快速介绍一下
创建定制模板。创建定制模板
CodeSmith
模板是简单的文本文件,可以用任何文本编辑器创建,只需保存成以
.cst
为扩展名的文件即可。我将要创建的样例模板接受一个字符串并且创建以该字符串为名的类。首先是添加模
板头,它声明了模板语言、目标语言以及模板的简要描述:
<%@ CodeTemplate Language="C#"

??

TargetLanguage="C#"

??

Description="Car Template" %>
接下来是声明模板每次运行时要指定的属性。我要使用一个字符串类型的属性,其声明如下:
<%@ Property Name="ClassName" Type="String" Category="Context"

????

Description="Class Name" %>
当模板运行时,
ClassName
属性将出现在
CodeSmith
属性窗口中。下一步是创建实
际的模板体,非常类似于用
ASP.NET
编写代码,如图
3
所示。
3
定制模板与代码输出
可以看到,模板将接受字符串输
入并产生一个以它为类名的单件类。模板体中使用的开始和结束定界符标记(
<%

%>
)与
ASP.NET
相同。在这个模板中,我只是简
单地插入了属性值,但你可以在定界符标记内使用任何类型的
.NET
代码。一旦模板完成,可以通过
双击把它加载到
CodeSmith
中或者从
CodeSmith
应用程序打开它,如图
4
所示。
4
打开模板文件
可以看到,左边的属性是我在模
板中声明的。如果输入“
SingletonClass
”作为类名,然后点击“
Generate
(生成)”按钮,就会生成如图
3
底部所示的类。CodeSmith
使用起来比较容易,正确运用会获得很好的效果。代码生成应用程序
最常用的功能之一是生成数据访问层代码。CodeSmith
包括一个专门的程序集叫作
SchemaExplorer
,它可用于生成数据表、存储过程或几乎任何其它
SQL Server?
对象
模板。CodeSmith

Eric J. Smith
编写,下载网址: http://www.ericjsmith.net/codesmith
。[
以下内容为译者补充,摘自: http://www.ericjsmith.net/codesmith
]CodeSmith
概览
CodeSmith

一个基于模板的代码生成器免费软件
,它可以生成任何基于ASCII
的编程语言代码。生成的代码可以使用属性进行定制。属性可以
是任何具有设计器的
.NET
对象(大多数
.NET
内置类型已经有设计器),也可以是一个允许你从结果中有条件
地添加或移除代码的简单的
boolean
属性,或是一个对象,例如能够访问数据库表信息的
TableSchema
对象(包括在
SchemaExplorer
中)。
CodeSmith
完全可扩展,它允许用户创建定制属性类型。
CodeSmith
中包括多个定制属性类型的例子,例如,定制一个允许选择
XML
文件(使用
XmlSerializer
可将其反序列化到对象中)的属性类型。
CodeSmith
还允许用户在模板中引用和调用指定的外部程序集并且允许从
外部程序集的类生成模板。CodeSmith
的语法与
ASP.NET
几乎相同。因此如果你熟悉
ASP.NET
,那么应该会很快理解模板语法。你可以在模板中使用
C#

VB.NET

JScript.NET
语言,并且模板可以输出任何基于
ASCII
的语言。利用
CodeSmith
Explorer
可以查看指定
文件夹中所有的模板,并且可以将模板拖放到任何支持拖放文本的目标。你也可以在
Windows
资源管理器中双击执行模板文件。
CodeSmith
Explorer
窗口还可以嵌
入到
Visual Studio .NET 2003
中作为一个工具窗口,让你可以方便地访问自己的模板。CodeSmith
有几种成批生成代码的方式。
CodeSmith
包括有一个用于
Visual
Studio .NET 2003
的定制工具(
Custom Tool
),它包括基于多个属性集的代码生成模板。这个定制工具允许
CodeSmith
模拟范型,可以通过添加额外的属性集为一个模板创建多个专
门的模板实例。当定制工具再次运行时,对模板的改变将反映到任何模板的实例中。
CodeSmith
中包括多种优化的集合模板(例如
ArrayList

DictionaryList

Hashtable

Idictionary

Ilist

SortedList

Stack
),利用这些模板可以创建避免装箱和拆箱的强类型集合,它
们的性能要比
.NET Framework
中的集合类型高
1500%

CodeSmith
还包括一个基于控制台的版本,它与定制工具相同,只不过是
从命令行运行并且可以包括在任何编译和连接过程中。CodeSmith
包括一个名为
SchemaExplorer
的程序集,利用它可以访问几乎所有的数据库概要(
schema
)细节。访问这种信息让你能够生成各种代码,例如存储过
程、类型
DataSet
、业务对象、表示层代码或任何其它基于数据库概要信息的代码。CodeSmith
作为一个免费软件发布,其目的在于建立一个强大的用户和模板社群。我希望最终能使程序员少做一些重
复性的烦人工作
!
作为交换,我希望收到反馈建议、错误报告、教程、文档以及一些有用的模板以使我们的生活更加轻松
!==============================================================================================NUnitNunit是一个为
.NET Framework建立
的开源单元测试框架。
Nunit允许在代码中
编写测试程序来测试应用程序特定的功能。单元测试是一种优秀的测试代码功能性的方法,它也为应用程序提供了一种回归测
试方法。
NUnit为编写单元测试提供一个框架并提供图形化界面运行测试和查看结果。编写
Nunit测试例如,我想测试
.NET Framework中
Hashtable类的功能性以确定两个对
象是否可以添加到
Hashtable中并进行检索。首先,我要添加对
NUnit.Framework程序集的引用,以便能够访问
Nunit Framework的特性和方法。接下来,创建一个类并以
TestFixture特性标记。这个特性让
NUnit知
道该类包含
NUnit测试:
using System;

using System.Collections;

using NUnit.Framework;


namespace NUnitExample

{

[TestFixture]

public class HashtableTest {

public HashtableTest() {


}

}

}
再创建一个方法并以
[Test]
特性标记,以便让
NUnit
知道该方法是一个测试。然后,建立一个
Hashtable
并添加两个值,最后使用
Assert.AreEqual
方法来查看是否能够检索到相同的值添加到了
Hashtable
中,代码如下所示:
[Test]

public void HashtableAddTest()

{

Hashtable ht = new Hashtable();


ht.Add("Key1", "Value1");

ht.Add("Key2", "Value2");


Assert.AreEqual("Value1", ht["Key1"], "Wrong object returned!");

Assert.AreEqual("Value2", ht["Key2"], "Wrong object returned!");

}
以上测试虽然简单,但能够展示出
NUnit
的功能。
NUnit
中有许多测试类型和各种
Assert
方法,可用于测试代码的每个部分。要运行该测试,需要创建一个项目,在
NUnit
中打开已生成的程序集,然后点击“
Run
”按钮,运行结果如图
5
所示。
5
NUnit
测试运行结果
当看到绿色的状态条,我感觉很兴奋也
很亲切,因为它表明测试通过了。这个简单的例子展示了
NUnit
的易用性和强大的功能。编写可以保存并且无论何时改变代码都
能重新运行的单元测试不仅使得检测代码缺陷更为容易,而且让你能够交付更好的应用程序。NUnit
是一个开源项目,下载网址: http://www.nunit.org/ 。还有一个很好的
NUnit
Visual Studio .NET
插件,它能让你直接从
Visual Studio
运行单元测试。这个插件可以在 http://sourceforge.net/projects/nunitaddin
找到。要了解更多有关
NUnit
的信息以及它在测试驱动开发中的应用,可阅读
2004

4

MSDN?杂志中的文章《
C#
测试驱动开发:利用极限编程技术改进项目设计和灵活性》。[
以下内容为译者补充,摘自: http://www.nunit.org/
]Nunit
包括两种运行方式:控制台方式(
nunit-console.exe
)和图形用户界面方式(
nunit-gui.exe
)。控制台方式:以命令行方式运行,可自动将测试结果保存为
XML
格式,允许产生报告或对结果进行处理。该方式对于测试自动
化和集成到其它系统中非常有用。图形用户界面方式:该方式为
Windows
窗体应用程序,以图形化界面显示测试结果,测试不能运行标
记为黄色圆圈,测试成功标记为绿色圆圈,如果所有测试都失败则标记为红色。====================================================================================================FxCop.NET Framework的功能非常强大,这意味着创建优秀应用程序的潜力巨大,但也同样存在创建出糟糕程序的机会。
FxCop是一个帮助你创建更好应用程序的工具,它使你能够检查程序集并检验它对一些不同规则的遵从性。
FxCop带有一套微软公司创建的规则,但你也可以创建和包括自己的规则。例如,如果你决定所有的类都应当有一
个缺省的不带参数的构造器,那你可以写一条规则检查程序集每个类的构造器。通过这种方式,不论谁来编写代码,都会有确定的一致性。如果你想了解更多有关创
建定制规则的信息,可以阅读
2004年
6月
MSDN杂志的代码杀手专栏中
John Robbins有关这个主题的文章《遇到糟糕代码?
FxCop相助》(
Bugslayer: Bad Code? FxCop to
the Rescue)。那么,让我们利用
FxCop对前面使用的
NUnitExample程序集进
行检查,看看会有什么错误。打开
FxCop后,首先要创建一个
FxCop项
目,然后加入想要测试的程序集,按下“
Analyze”按钮,
FxCop就会执行检查。在
NUnitExample程序集中发现的错误和警告如图
6所示。
6
FxCop
检查结果
FxCop发现了我的程序集存在几个问题。可以通过双击错误查看详细内容,包括规则描述以及在哪里可以找到更
多信息。(你可以用
FxCop检查一下
.NET Framework的程
序集,看看结果如何。)FxCop能帮助你创建一致性更好的代码,但它
不能弥补糟糕的应用程序设计或编程。FxCop也不是一个代码复查的替代工具,但是它能在代码复查之前捕获大量错误,所以你可以将更多时间用在重点问题
上而不是去为命名惯例去操心。FxCop由微软公司开发,下载网址:
http://www.gotdotnet.com/team/fxcop
。===============================================================================================.NET
Reflector
.NET
Reflector
是一个类浏览器和反编译器,它能够检查程序集并显示其
所有信息。
.NET Framework
引入了反射的概念,利用反射可以检查任何基于
.NET
的代码,无论是单个的类还是完整的程序集。反射还可用于检索特定程序集中有关各种类、方法和属性的
信息。使用
.NET Reflector
可以浏览程序集的类和方法,可以检查这些类和方法生成的微软中间语言(
MSIL
),可以反编译类和方法,还可以查看等效的
C#

Visual Basic? .NET
代码。为了加以说明,我把前面的
NUnitExample
程序集加载到
.NET Reflector
中进行查看,如图
7
所示。
7
利用
.NET Reflecto
查看
NUnitExample
程序集
.NET Reflector带有
多种工具,你可以进一步检查这个程序集。如果要查看组成方法的
MSIL,可以右键点击方法,然后
从弹出菜单选择“
Disassembler”。除了查看
MSIL,
你还可以通过选择工具菜单下的
Decompiler查看方法的
C#代码。也可以通过选择语言菜单
查看方法反编译后的
Visual
Basic .NET或
Delphi代码。下面就是
NET Reflector产生

C#代码:
public void HashtableAddTest()

{


Hashtable hashtable1;


hashtable1 = new Hashtable();


hashtable1.Add("Key1", "Value1");


hashtable1.Add("Key2", "Value2");


Assert.AreEqual("Value1", hashtable1["Key1"],

"Wrong object returned!");


Assert.AreEqual("Value2", hashtable1["Key2"],


"Wrong object returned!");

}
以上代码和我编写的实际代码非常像,下面是实际代码:
public void HashtableAddTest()

{


Hashtable ht = new Hashtable();



ht.Add("Key1", "Value1");


ht.Add("Key2", "Value2");



Assert.AreEqual("Value1", ht["Key1"],


"Wrong object returned!");


Assert.AreEqual("Value2", ht["Key2"],


"Wrong object returned!");

}
尽管二者有点差别,但功能性相同。虽然用这个例子展示对比实际代码与反编译代码是个好方法,但
我认为
.NET Reflector最有用之处是利用它检查
.NET Framework程序集和方法。
.NET Framework提
供很多途径来执行类似的操作。例如,如果要从
XML读数据集,可以使用
XmlDocument、
XpathNavigator或
XmlReader等各种不同方法。使用
.NET Reflector,你可以查看
Microsoft公司怎样编写
DataSet的
ReadXml方法,或如何从配置文件读取
数据。
.NET Reflector对于查看
HttpHandler或
configuration handler等对象的创建也是一个很好的途径,因为你可以看看
Microsoft开发组在
.NET
Framework中是如何实际构建这些对象的。.NET Reflector由
Lutz Roeder编写,下载网址: http://www.aisto.com/roeder/dotnet
。[译注:在新版本
4.0.10.0中,界面或操作稍有不同
]==========================================================================================NDoc编写代码文档一直是一项令人生畏的任务。这里我并不是指设计
初期的文档或更为详细的设计文档,而是指类中方法和属性的文档。
NDoc工具能使用反射检查程序集
并使用从
C# XML注释生成的
XML文档自动为你的代码生成文
档。目前只有
C#提供
XML注释,但利用
Visual Studio .NET小
工具VB Commenter
以使
Visual Basic .NET具有
XML注释功能。另外,
Visual Studio的下一个发布版本将对更多的语言支持
XML注
释。利用
NDoc
,你很容易在编写代码的同时形成文档(在
XML
注释中)。要使用
NDoc
,首先要在
Visual
Studio.NET
中打开程
序集的
XML
注释生成功能。右键点击项目,选择
Properties | Configuration
Properties | Build
,然后在“
XML Documentation File
”项中输入保存
XML
文件的路径。当项目编译时,就会创建一个包括所有
XML
注释的
XML
文件。下面是
NUnit
范例中一个方法的
XML
文档:
///

/// This test adds a number of values to the Hashtable collection

/// and then retrieves those values and checks if they match.

///

[Test]

public void HashtableAddTest()

{


//Method Body Here

}
该方法的
XML
文档将被抽取并保存到
XML
文件中,如下所示:


This test adds a number of values to the Hashtable collection


and then retrieves those values and checks if they match.

NDoc利用反射查看程序集,然后
读取文档中的
XML并进行匹配。
NDoc可使用该数据创建各种不
同的文档格式,包括MSDN
风格的
HTML
帮助文件格式(
.chm
)、
Visual
Studio .NET
帮助
文件格式(
HTML Help 2
)等。生成
XML文件之后,下一步是将程序集和
XML文
件加载到
NDoc中以便进行处理。操作很简单,只需打开
NDoc并
点击“
Add”按钮,然后添加相关文件即可。一旦程序集和
XML文
件载入
NDoc中并根据属性范围定制输出后,点击“
Generate”按钮就开始生成文档。使用默认属性,
NDoc会生成一些非常有用的
.html和
.chm文件,因而以快速和有效的方式自动
完成了烦人的任务。NDoc
是一个开源项目,下载网址: http://NDoc.sourceforge.net/
。===================================================================================================NAntNAnt

像目前版本的
Visual Studio .NET
,它是一个基于
.NET
的编译(
Build
)工具,能够使项目的编译过程非常容易。当项目开发者很多时,不可能依靠某个人去执行编译过程,你也
不想经常去手工编译项目,而是代之以创建一个每天晚上自动运行的编译过程。
NAnt
允许你执行编译解决方案、复制文件、运行
NUnit
测试、发送
e-mail
等工作。遗憾的是,
Nant
没有漂亮的图形化界面,但它包括一个控制台应用程序和
XML
文件,
XML
文件指定了编译过程中应当完成的任务。注意
Visual Studio 2005
新的编译平

MSBuild
,它提
供非常稳健的编译功能并且同样是由基于
XML
的项目文件驱动的。使用
NAnt在这个例子中,我将为前面创建的
NUnitExample
解决方案创建一个
NAnt
编译文件。首先创建一个以
.build
为扩展名的
XML
文件,将它置于项目的根目录下,然后在文件
顶部添加一个
XML

明。第一个添加的标记是项目标记:



The NUnit Example Project

项目标记设置了项目名称、缺省目标和基目录。描述标记设置了该项目的简要描述。接下来是添加属性标记,用于存储可从
文件任何地方访问的设置值。在本例中,我要创建一个名为
debug
的属性,它可以设置为
true

false
,用于决定项目是否在调试时被编译(这个特殊的属性最后实
际上不影响项目的编译,它是你设置的一个简单变量,可以在实际决定如何编译项目后读取。)属性标记如下:
然后,创建一个目标标记。一个项目可以包含多个标记,它们在
NAnt
运行时指定。如果没有指定目标,则使用项目元素中缺省的设置
值。在本例中,缺省目标是“
build
”。让我们看一看目标元素,它包含大部分编译信息:

在目标元素中,我设置了要编译的目标名并创建一个任务描述。
下面还要创建一个
csc
元素,它指定应当传递给
C#
编译器
csc
的内容。让我们看一看
csc
元素:


debug="${debug}">







首先,必
须设置
csc元素的目标。在本例中我将创建一个
.dll文
件,因此我将目标设置为“
library”。接下来设置
csc元
素的输出,它指定
.dll文件的创建位置。最后,需要设置
debug属
性,它决定项目是否在调试时被编译。因为前面已经创建了一个属性来存储这个值,所以可以使用下列字符串来访问该属性的值:
${debug}。
csc元素还包含一些子元素,这里需要创建
两个元素:引用元素告知
NAnt需要为这个项目引用的程序集,源文件元素告诉
NAnt编
译所包括的文件。在本例中,我引用
NUnit.Framework.dll程序集并包括
HashtableTest.cs文
件。最终的编译文件见图
8。(正常情况下你还应当创建一个用于删除生成的文件的
clean目标,但我为了文章简短而省略了。)
8
NAnt
编译文件
要编译这个文件,需要在
.build文件所在的项目根目录下执行
NAnt.exe。如果编译成功,应用程序的
bin目录下可以找到
.dll和
.pdb文件。尽管使用
NAnt确实不如在
Visual Studio中点击“
Build”那么容易,但对于开发
按进度自动运行的编译过程,它是一个功能非常强大的工具。
NAnt还包括一些有用的功能,例如,运行
单元测试或复制其它文件(目前的
Visual
Studio编译过程不支持这些功能)。NAnt是一个开源项目,下载网址: http://NAnt.sourceforge.net/
。=========================================================================================================
本切换和转换工具
在这一部分,我将介绍两个版本切换和转换工具,它们虽然简
单,但极为有用。第一个工具是
ASP.NET Version Switcher
,它可以切换虚拟目录运行下的
ASP.NET
版本。第二个工具是
Visual Studio
Converter
,它可以将项目文件在
Visual Studio .NET 2002

Visual Studio .NET 2003

间转换。当
IIS
处理请求时,先查看被请求文件的扩展名,然后基于
Web站点或虚拟目录的扩展名映射,或者将请求委托给
ISAPI
扩展处理,或者由自己处理。这就是
ASP.NET
的工作原理,扩展名映射注册了所
有的
ASP.NET
扩展
名并将它们指引到
aspnet_isapi.dll
。这不会有什么问题,但如果你安装了
ASP.NET
1.1
,会将扩展名映射升级到新版本的
aspnet_isapi.dll
,当建立在
ASP.NET 1.0
上的应用程序试图运行在
版本
1.1
时,就会引起
错误。为了修正这个问题,你可以将所有扩展名映射切换回
1.0
版本的
aspnet_isapi.dll
,但手工切换
18
个扩展名映射可不是一件有趣的事。这时,
ASP.NET
Version Switcher
就有了用武之地。它可以切换任何单个
ASP.NET
应用程序使用的
.NET Framework
版本。ASP.NET Version Switcher
如图
9
所示。使用时,只需简单地选择应用程序,然后选择应用程序想要使用的
.NET Framework
版本。按下切换按钮,
它就会使用
aspnet_regiis.exe
命令行工具将应用程序切换到所选择的
.NET
Framework
版本。当
ASP.NET

.NET Framework
未来版本发布后,这个
工具会更为有用。
9
ASP.NET Version
Switcher
ASP.NET Version Switcher

Denis Bauer
编写,下载网址: http://www.denisbauer.com/NETTools/ASPNETVersionSwitcher.aspx
。Visual
Studio .NET Project Converter
(见图
10
)非常类似于
ASP.NET Version Switcher

它用于转换
Visual Studio
项目文件的版本。尽管
.NET Framework
版本
1.0

1.1
仅小有不同,但项目文件一旦从
Visual
Studio .NET 2002
转换到
Visual Studio .NET 2003

就再转换不回来了。虽然大多数情况下这可能不是一个问题(因为
.NET Framework
版本
1.0

1.1
之间没有大的变化),但有时候你可能需要将项目转换回来。这个转换器可以将任何解决方案或项目文件从
Visual Studio 7.1

Visual Studio .NET 2003

转换到
Visual Studio 7.0

Visual Studio .NET 2002
),如果需要还可以转换回来。
10
Visual Studio
.NET Project Converter
Visual
Studio .NET Project Converter

Dacris Software
公司编写,下载网
址: http://www.codeproject.com/macro/vsconvert.asp
。[
译注:该工具目前提供
2.0
版本,但使用过程中存在问题。
另,作者提供源代码,可供修改、学习和参考。
]结语对这些工具走马观花的介绍结束了,但我已经尽力展现了足够的
信息以激发你的兴趣。我相信这篇文章让你了解了一些可以立即开始使用以写出更好项目的免费工具。我也力促你确保拥有其它合适的工具,无论是最新版本的
Visual Studio
,一台功能强大的计算
机,还是一个免费工具。拥有合适工具,一切都将不同。--------------------------------------------------------------------------------[
作者简介
]
James Avery,
.NET

Microsoft
技术顾问,出版过多部书籍并
发表过很多文章,最新著作为《
ASP.NET Setup and Configuration
Pocket Reference
》(
Microsoft
出版社,
2003
)。
e-mail

javery@infozerk.com

weblog
http://www.dotavery.com/blog
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: