SQL Server每个.Net开发人员应该下载的十种必备工具

原文:http://hi.baidu.com/studyjava/blog/item/6f6da00f9a9709ecaa645754.html

用于编写单元测试的 NUnit

用于创建代码文档资料的 NDoc

用于生成解决方案的 NAnt

用于生成代码的 CodeSmith

用于监视代码的 FxCop

用于编译少量代码的 Snippet Compiler

两种不同的转换器工具:ASP.NET 版本转换器和 Visual Studio .NET 项目转换器

用于生成正则表达式的 Regulator

用于分析程序集的 .NET Reflector

正文使用了下列技术:

.NET、C# 或 Visual Basic .NET、Visual Studio .NET

除非您运能够拿走的最佳工具,否则你无法仰望生成世界级的应用程序。除了例如
Visual Studio®.NET 这样的头面工具以外,还可以自 .NET
社区获得许多袖珍的、不顶为人所知的家伙。在本文中,我拿朝着您介绍部分手上足获取的、面向
.NET
开发的超级免费工具。我以指引您成就一个有关如何以其中每种工具的飞教程

一些工具在成千上万时候可要你节约一分钟,而任何一些家伙则恐彻底改变您编写代码的章程。因为我只要以本篇文章中牵线如此的多的不同工具,所以我无法详细讨论其中每种工具,但您该了解及有关各种工具的足足信息,以便判断什么工具对您的项目来因此。

Snippet Compiler

Snippet Compiler 是一个基于 Windows®
的袖珍应用程序,您可以透过其来修、编译和周转代码。如果您抱有比较小的代码段,并且您不盼吗那创建完整的
Visual Studio .NET 项目(以及陪伴该档的拥有文件),则该工具将很有因此。

如,假要自己要于而说明如何由 Microsoft?.NET
框架中启动另一个应用程序。在 Snippet Compiler
中,我将经过新建一个会创立小型控制台应用程序的文件开始。可以于拖欠控制台应用程序的
Main
方法中创立代码有,而这正是我只要以此举行的工作。下面的代码有演示了安自
.NET 框架中开创记事本实例:

System.Diagnostics.Process proc = new System.Diagnostics.Process();
proc.StartInfo.FileName= "notepad.exe";
proc.Start();
proc.WaitForExit();

自该代码有本身无法编译,而这正是 Snippet Compiler 的用武之地。图 1
来得了 Snippet Compiler 中的当下一代码演示。

SQL Server 1

1 Snippet Compiler

要是测试该代码有,只须遵循
play(运行)按钮(绿色三角形),它便见面在调试模式下运行。该代码片段将异常成一个弹出式控制台应用程序,并且将展示记事本。当你关闭记事本时,该控制台应用程序也将关门。

哪怕我个人而言,我是在品尝吗某位向自身求助的人物创办一个微型示例时,才发现
Snippet Compiler 是这般弥足珍贵的 —
如果未使用该工具,则自己一般要新建一个类别,确保每个有还能够编译通过,然后将代码有发送给求助者,并剔除该档。Snippet
Compiler 使得这无异于进程易得进一步便于、更加开心。

Snippet Compiler 由 Jeff Key 编写,并且可从
http://www.sliver.com/dotnet/SnippetCompiler 下载。

Regulator

Regulator
是最后一个增长到自家之头号工具清单中之。它是一模一样栽颇有风味之家伙,能够使生成与测试正则表达式变得挺容易。人们对正则表达式重新有了感兴趣,因为其当
.NET
框架中遭到那个好之支撑。正则表达式用来冲字符、频率和字符顺序定义字符串中的模式。它们不过广大的用处是当证明用户输入有效性的一手要当以可比生字符串中寻找字符串的道
— 例如,在 Web 页上追寻 URL 或电子邮件地址。

Regulator
使你得输入一个正则表达式以及一些对准该运作该表达式的输入内容。这样,在应用程序中贯彻该正则表达式之前,您得了解它将发出什么作用跟它以赶回哪些类型之匹配项。图
2 显示了含有简单正则表达式的 Regulator。

SQL Server 2

图 2

文档中蕴藏该正则表达式 — 在该示例中,它是
[0-9]*,应该配合一行中肆意数量的数字。右下侧的羁绊中含指向该正则表达式的输入,而不当下侧的牢笼显示了拖欠正则表达式在输入内容被找到的匹配项。在如此的独立应用程序中编辑和测试正则表达式,要比较尝试当您的应用程序中拍卖它们容易得几近。

Regulator 中的特级效应之一是力所能及在 regexlib.com
搜索并正则表达式库。例如,如果你于探寻框中输入字符串“phone”,您将找到
20
种植以上能兼容各种电话号码的不比之正则表达式,包括用于英国、澳大利亚底表达式以及另外很多电话号码。Regulator
由 Roy Osherove 编写,并且可以当 http://royo.is-a-geek.com/regulator
下载。

CodeSmith

CodeSmith 是同种基于模板的代码生成工具,它利用类似于 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 进行编码。以下是该模板的侧重点:

Custom Template

public sealed class <%= ClassName %>
{
private static volatile <%= ClassName %> _instance;
private <%= ClassName %>() {}
private static readonly object _syncRoot = new object();
public static <%= ClassName %> Value
{
get
{
if (_instance == null)
{
lock(_syncRoot)
{
if (_instance == null)
{
_instance = new <%= ClassName %>();
}
}
}
return _instance;
}
}
}

SingletonClass

public sealed class SingletonClass
{
private static volatile SingletonClass _instance;
private SingletonClass() {}
private static readonly object _syncRoot = new object();
public static SingletonClass Value
{
get
{
if (_instance == null)
{
lock(_syncRoot)
{
if (_instance == null)
{
_instance = new SingletonClass();
}
}
}
return _instance;
}
}
}

正而您所展现,该模板接受字符串输入并行使该类名生成独立的好像。在模板主体中,使用及
ASP.NET
中同样之苗头与竣工标记。在拖欠模板被,我只是插入属性值,但你还可于这些标记内部用任意档次的
.NET 代码。在拖欠模板就以后,您尽管得经双击它要由 CodeSmith
应用程序中开拓她用其加载到 CodeSmith 中。图 4 显示了已经加载到 CodeSmith
中之该模板。

SQL Server 3

图 4

而可以看看左边的性质正是自家以拖欠模板被声明的特性。如果自己输入“SingletonClass”作为类名,并单击
Generate 按钮,则用转变模板代码底部显示的类。

CodeSmith
以起来相当容易,如果会科学行使,则可发一些让人怀疑的结果。面向代码生成的应用程序中极常见的一对有是数量访问层。CodeSmith
包括一个曰吧 SchemaExplorer
的非正规之程序集,可用来起发明、存储过程要几乎任何其它 SQL Server?
对象特别成模板。

CodeSmith 由 Eric J. Smith 编写,并且可以
http://www.ericjsmith.net/codesmith 下载。

NUnit

NUnit 是也 .NET 框架生成的怒放源代码单元测试框架。NUnit
使你得据此而喜爱的言语编写测试,从而测试应用程序的特定功能。当您首不行编写代码时,单元测试是一致栽测试代码功能的雅好点子,它还提供了千篇一律种对应用程序进行回归测试的办法。NUnit
应用程序提供了一个用于编写单元测试的框架,以及一个运行这些测试与查看结果的图形界面。

编写 NUnit 测试

当示范,我拿测试 .NET 框架中 Hashtable
类的力量,以确定是否可填补加少单对象又就找这些目标。我之首先步是加上对
NUnit.Framework 程序集的援,该程序集将给予我本着 NUnit
框架的性质和方法的访问权。接下来,我用创造一个接近并据此 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!");
}

立马将承认自己可率先为 Hashtable 中上加值并就找相应的值 —
这是一个要命简单的测试,但会显现 NUnit 的功能。存在不少测试类以及各种
Assert 方法,可使用它来测试代码的每个片。

只要运行该测试,我索要扭转项目,在 NUnit
应用程序中开拓生成的程序集,然后单击 Run 按钮。图 5
显示了结果。当自家顾好特别的绿色条纹时,我起平等栽兴奋与头晕的感到,因为它吃自己懂测试都经过了。这个大概的言传身教表明
NUnit
和单元测试是何其好和有力。由于能够编写得保存的单元测试,并且于你更改代码时犹可再次运行该单元测试,您不仅可以重新便于地检测及代码中之弱项,而且最后会交给又好之应用程序。

SQL Server 4

5 NUnit

NUnit 是一个怒放源代码项目,并且可以从
http://www.nunit.org 下充斥。还有一个好之 NUnit
Visual Studio .NET 外接程序,它若你可直接打 Visual Studio
中运作单元测试。您可以以 http://sourceforge.net/projects/nunitaddin
找到其。有关 NUnit
及其于测试驱动开发被的身价的详细信息,请参考文章“Test-Driven C#:
Improve the Design and Flexibility of Your Project with Extreme
Programming
Techniques”(MSDN
®Magazine 2004 年 4 月刊)。

FxCop

.NET
框架非常强,这象征是创建好应用程序的极大可能,但是呢同存在创建劣质程序的或。FxCop
是推向创造更好的应用程序的工具有,它所用的方是:使你会分析程序集,并使一些差之规则来检查其是不是可这些规则。FxCop
随附了是因为 Microsoft
创建的定势数量之条条框框,但你吗可以创建并包你自己之平整。例如,如果你决定有的类都应该享有一个未牵动任何参数的默认构造函数,则可以编写一久规则,以保险程序集的每个接近及还持有一个构造函数。这样,无论是哪个修该代码,您还以取得肯定程度之一致性。如果您需有关创建于定义规则的详细信息,请参考
John Robbins 的有关该主题的
Bugslayer
专栏文章(MSDN ® Magazine 2004 年 6 月刊)。

那,让咱观察一下事实上运作的 FxCop,并且看一下其当自己直接当处理的
NUnitExample 程序集中找到什么不当。当你打开 FxCop 时,您首先用创造一个
FxCop
项目,然后于其上加你而测试的先后集。在将拖欠次集添加到项目后,就足以按
Analyze,FxCop 将分析该次集。图 6
中显了当拖欠次集中找到的缪和警戒。

SQL Server 5

图 6

FxCop
在自之主次集中找到了几单问题。您可双击某个错误为查看详细信息,包括规则说明与当何可以找到更多信息。(您可做的一样件有趣的事情是于框架程序集齐运行
FxCop 并查阅有了哟事情。)

FxCop
可以辅助你创建更好之、更平等的代码,但它无法上低劣的应用程序设计或生简单拙劣的编程。FxCop
也无克取代对顶代码检查,但是盖它们可以进行代码检查之前捕获大量不当,所以您得花还多时光来缓解严重的题材,而不要顾虑命名约定。FxCop
由 Microsoft 开发,并且可以从 http://www.gotdotnet.com/team/fxcop
下载。

Lutz Roeder 的 .NET Reflector

下一个必不可少的工具称为 .NET
Reflector,它是一个类似浏览器与反编译器,可以分析程序集并向你展示它的拥有潜在。.NET
框架为海内外引入了可用来分析任何依据 .NET
的代码(无论她是单个类还是完全的程序集)的反光概念。反射还得为此来探寻有关特定程序集中包含的各种类、方法以及属性的消息。使用
.NET Reflector,您可以浏览程序集的类似及艺术,可以分析由这些看似以及方式变的
Microsoft 中间语言 (MSIL),并且可以倒编译这些类似与办法并查看 C# 或
Visual Basic ®.NET 中之等价类和方。

以演示 .NET Reflector 的干活方法,我拿加载与分析前面早已亮的
NUnitExample 程序集。图 7 显示了 .NET Reflector 中加载的该程序集。

SQL Server 6

7 NUnitExample 程序集

每当 .NET Reflector
内部,有各种可用来进一步分析该次集的工具。要查看构成某个方法的
MSIL,请单击该措施并由菜单中选择 Disassembler。

除却能查阅 MSIL 以外,您还足以经过甄选 Tools 菜单下之 Decompiler
来查阅该法的 C# 形式。通过以 Languages
菜单下改变而的挑,您还足以查该办法为反编译到 Visual Basic .NET 要
Delphi 以后的款式。以下为 .NET Reflector 生成的代码:

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 框架程序集和方法。.NET
框架提供了不少实行类似操作的不比措施。例如,如果您得打 XML
中读取一组数,则是多采取 XmlDocument、XPathNavigator 或 XmlReader
完成该工作的例外方式。通过采用 .NET Reflector,您可以翻 Microsoft
在编辑数据集的 ReadXml
方法时利用了啊,或者查看他们于由部署文件读取数据时举行了哪些工作。.NET
Reflector 还是一个打探以下最佳实践政策的不错艺术:创建诸如 HttpHandlers
或配备处理程序之类的对象,因为您得了解及 Microsoft
工作组实际上是什么样以框架中生成这些目标的。

.NET Reflector 由 Lutz Roeder 编写,并且可从
http://www.aisto.com/roeder/dotnet 下载。

NDoc

编排代码文档资料几乎连接一样项令人心惊胆战的职责。我所说的非是早期设计文档,甚至也未是越详细的统筹文档;我说之是记录类上之一一艺术及性。NDoc
工具能够采取反射来分析程序集,并应用从 C# XML 注释生成的 XML
自动为代码生成文档资料。XML 注释仅适用于 C#,但来一个称呼也 VBCommenter
的 Visual Studio .NET Power Toy,它会为 Visual Basic .NET
完成接近的做事。此外,下一样版的 Visual Studio 将为还多语言支持 XML
注释。

采取 NDoc
时,您还以编制代码的技能文档,但你是以编辑代码的经过中形成了文档编写工作(在
XML 注释中),而立即重爱受。使用 NDoc 时,第一步是吧而的主次集打开 XML
注释生成功能。右键单击该种并择 Properties | Configuration Properties
| Build,然后于 XML Documentation File 选项中输入用于保存 XML
文件之门道。当该类型变更时,将创造一个 XML 文件,其中蕴蓄有 XML
注释。下面是 NUnit 示例中之一个用 XML 编写了文档的点子:

/// <summary>
/// This test adds a number of values to the Hashtable collection
/// and then retrieves those values and checks if they match.
/// </summary>
[Test]
public void HashtableAddTest()
{
//Method Body Here
}

至于该方法的 XML 文档资料将为取并保存在 XML 文件中,如下所示:

<member name="M:NUnitExample.HashtableTest.HashtableAddTest">
<summary>This test adds a number of values to the Hashtable collection
and then retrieves those values and checks if they match.</summary>
</member>

NDoc 使用反射来考察你的程序集,然后读博该文档中之
XML,并且用她进行匹配。NDoc
使用该多少来创造任意数量之异文档格式,包括 HTML 帮助文件 (CHM)。在生成
XML 文件后,下一致步是用程序集和 XML 文件加载到 NDoc
中,以便可以对它们进行处理。通过打开 NDoc 并单击 Add
按钮,可以好地好该工作。

每当以程序集和 XML 文件加载到 NDoc
中而且以可用的特性范围从定义输出以后,单击 Generate
按钮将开行转移文档资料的历程。使用默认的性能,NDoc
可以死成有坏吸引人口同时实用的 .html 和 .chm
文件,从而为高速灵之办法自行完成本好单调的职责。

NDoc 是一个开源代码项目,并且可以从
http://ndoc.sourceforge.net 下载。

NAnt

NAnt 是一个因 .NET 的转移工具,与当下本的 Visual Studio .NET
不同,它使得为而的型创造充分成过程易得非常容易。当您有所大量从业单个项目的开发人员时,您不可知拄让从单个用户的座位进行变更。您为非期望要定期手动生成该品种。您还愿意创建每天晚上运行的自动生成过程。NAnt
使你得挺成解决方案、复制文件、运行 NUnit
测试、发送电子邮件,等等。遗憾的是,NAnt
缺少好的图形界面,但它实在拥有可以指定相应于变过程被完成哪些任务的控制台应用程序和
XML 文件。注意,MSBuild(属于 Visual Studio 2005
的初的别平台)为每种健壮的生成方案展开了预备,并且由基于 XML
的品类文件为看似之点子使。

事实上运行的 NAnt

当该示例中,我将为前创建的 NUnitExample 解决方案创造一个 NAnt
版本文件。首先,我索要创造一个备 .build 扩展名的 XML
文件,将该放在我的型的彻底目录中,然后为该公文之顶部添加一个 XML
声明。我欲丰富到拖欠文件的率先单记号是 project 标记:

<?xml version="1.0"?>
<project name="NUnit Example" default="build" basedir=".">
<description>The NUnit Example Project</description>
</project>

色标志还用于安装项目名称、默认目标与基目录。Description
标记用于安装该品种的大概说明。

紧接下,我拿添加 property
标记,该标记可用于将安装存储到单个位置(随后可起文本被之轻易位置访问该位置)。在该例中,我拿创设一个叫也
debug 的习性,我得以接着将那个安为 true 或
false,以反映自己是否要当调节配置下编译该档。(最后,这无异于一定属性并未真的影响什么充分成该类型;它仅仅是您设置的一个变量,当你真正确定了什么样好成该种时以读博该变量。)

连下去,我需要创造一个 target 标记。一个种类可以蕴涵多只可当 NAnt
运行时指定的 target。如果未指定 target,则使默认 target(我在 project
元素中安装的 target)。在该示例中,默认 target 是 build。让咱们观察一下
target 元素,它以涵盖大多数生改为信息:

<target name="build" description="compiles the source code">
</target>

以 target 元素内,我拿把 target 的称呼设置也 build,并且创造有关该
target 将举行什么工作的辨证。我还用创造一个 csc
元素,该因素用于指定相应传递给 csc C# 编译器的数量。让我们看一下该 csc
元素:

<csc target="library" output=".\bin\debug\NUnitExample.dll"
debug="${debug}">
<references>
<includes name="C:\program files\NUnit V2.1\bin\NUnit.Framework.dll"/>
</references>
<sources>
<includes name="HashtableTest.cs"/>
</sources>
</csc>

首先,我必装该 csc 元素的 target。在该例中,我拿创设一个 .dll
文件,因此我将 target 设置也 library。接下来,我得安装 csc 元素的
output,它是即将创建 .dll 文件之岗位。最后,我索要装 debug
属性,它规定了是否在调试中编译该种。因为自己在前创建了一个用以存储该值的性,所以自己好动用下的字符串来拜访该属性之价:${debug}。Csc
元素还噙部分子元素。我得创造两只因素:references 元素将报告 NAnt
需要为该档援哪些程序集,sources 元素告诉 NAnt
要以变化无常过程遭到寓如何文件。在该示例中,我引用了 NUnit.Framework.dll
程序集并带有了 HashtableTest.cs
文件。以下代码中展示了整的变动文书。(您便还要创建一个根之
target,用于去生成的文书,但为简洁起见,我已经将该简要。)

<?xml version="1.0"?>
<project name="NUnit Example" default="build" basedir=".">
<description>The NUnit Example Project</description>
<property name="debug" value="true"/>
<target name="build" description="compiles the source code">
<csc target="library" output=".\bin\debug\NUnitExample.dll"
debug="${debug}">
<references>
<includes name="C:\program files\NUnit
V2.1\bin\NUnit.Framework.dll" />
</references>
<sources>
<includes name="HashtableTest.cs"/>
</sources>
</csc>
</target>
</project>

假若很成该公文,我待变更至自之种类的一干二净目录(生成文书在这里),然后于该职务执行
nant.exe。如果那个成成,您可于拖欠应用程序的 bin 目录中找到 .dll 和 .pdb
文件。尽管使 NAnt 肯定不像于 Visual Studio 中单击 Build
那样简单,但它依旧是同等种植非常强劲的工具,可用来支付以机关计划运行的变更过程。NAnt
还包部分得力的法力,例如克运转单元测试或者复制附加文件(这些效应没有面临当前
Visual Studio 生成过程的支撑)。

NAnt 是一个开花源代码项目,并且可从
http://nant.sourceforge.net 下载。

更换工具

自己就用片只单身的家伙合在一起放在标题“转换工具”下面。这点儿个器都非常简单,但同时或许多有用。第一单器是
ASP.NET 版本转换器,它不过用以转移
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
版本转换器可以发挥作用的时光。使用这无异于小型实用工具,可以转换任何单个
ASP.NET 应用程序所祭的 .NET 框架的本。

SQL Server 7

9 ASP.NET 版本转换器

祈求 9 显示了实际运作的 ASP.NET
版本转换器。它的用方法非常简单,只须选择相应的应用程序,然后择你希望该应用程序使用的
.NET 框架版本。该工具就用用 aspnet_regiis.exe
命令行工具将欠应用程序转换到所选择版的框架。随着前版的 ASP.NET 和
.NET 框架的发表,该工具将变得尤其实惠。

ASP.NET 版本转换器由 Denis Bauer 编写,并且可以从
http://www.denisbauer.com/NETTools/ASPNETVersionSwitcher.aspx 下载。

Visual Studio .NET 项目转换器(参见图 10)非常接近于 ASP.NET
版本转换器,区别在于其用于转移 Visual Studio 项目文件之版。尽管在 .NET
框架的 1.0 版和 1.1 版之间仅发生坏粗之异样,但万一以项目文件从 Visual
Studio .NET 2002 转换到 Visual Studio .NET
2003,将无法再次管它换回去。虽然当时当大部分时候或无见面成为问题(因为当
.NET 框架 1.0 版和 1.1
版之间几乎没什么破坏性的变动),但以一些时刻您可能要拿项目转移回去。该转换器可以拿其他缓解方案要项目文件由
Visual Studio 7.1 (Visual Studio .NET 2003) 转换到 Visual Studio 7.0
(Visual Studio .NET 2002),并于必要经常进行反朝易。

SQL Server 8

10 Visual Studio .NET 项目转换器

Visual Studio .NET 项目转换器由 Dacris Software 编写。该工具得以从
http://www.codeproject.com/macro/vsconvert.asp 下载。

相关文章