《NET-开发人员必备工具.docx》由会员分享,可在线阅读,更多相关《NET-开发人员必备工具.docx(6页珍藏版)》请在第壹文秘上搜索。
1、.NET开发人员必备工具.NET开发人员必备工具:NUnitNUnit是为.NET框架生成的开放源代码单元测试框架,NUnit使你可以用你t爱的语言编写测试.从而测试应用程序的特定功能.当你苜次编写代码时,单元测试是一种测试代码功能的很好方法,它还供应了一种时应用程序进行回来测试的方法.NUnit应用程序供应了一个用于娟写单元测试的框架,以及一个运行这些测试和查看结果的图形界面.写NUnIt源试作为示例,我将测试.NET椎架中Hashtable类的功能,以确定是否可以添加两个时象并1.随后检索这些对象.我的第一步魁添加对NUnitTramework程序集的引用,该程序集将给予我对NUnit框架
2、的麻性和方法的访问权,接卜来,我将创建一个类并用TestFixture属性标记它.该属性使NUnit可以知道该类包含NUnit测试:usingSystem;usingSystem.Collections:usingNUnit.Framework;namespaceNUnitExampleTestFixturepublicclassHashtableTestpublicHashtableTestO下一步,我将创建一个方法并用(TeSH屈性标记它,以便NUnit知道该方法是一个测试。然后,我将建立个Hashtable并向其添加两个值,再运用Assert.AreEqua方法杳看我是否可以检索到与我添
3、加到Hashtable的值相同的值.如下面的代码所示:TestpublicvoidHashtableAddTest()Hashtableht=newHashtableO:ht.Add(*Keyl*,Value】);ht.AddKey2TaIUe2);.Assert.AreEqual(,Value,ht*Keyl,Wrongobjectreturned!*);Assert.AreEqual(*Value2,x,ht*Key2*,Wrongobjectreturned!);)这将确认我可以首先向Hashiable中添加值并随后检索相应的伯-这是个很简洁的测试,但能够表现NUnit的功能,存在很多测
4、试类型以及各种Assert方法,可运用它们来溯试代码的每个部分。嚎运行该测试.我须要生成项目.在NUnit应用程序中打开生成的程序集,然后单击Run按钮.RgUre5显示了结果.当我看到那个大的色条纹时,我有一种兴奋和头虻的礴觉,因为它让我知道测试已经通过了。这个简洁的示例表明NUnit和维元测试是多么便利和强大。由于能弗编写可以保存的单元测试,并且每当你更改代码时都可以重新运行该单元测试,你不仅可以更简洁地检测到代码中的缺陷,而且最终能够交付更好的应用程序.Figure5NUnitNUnit是一个开放源代码项目,下载地址是:.还有一个优秀的NUnitVisualStudio.NET外挂程序,
5、它使你可以干脆从VisualStudio中运行电元测试.你可以在:SOU的地位的具体信息,请参阅文章:Test-DrivenC#:ImprovetheDesignandFlexibilityofYourProjectwithExtremeProgrammingTechniques.NET开发人员必备工具:FXeOP,NET框架特别强大,这意味帙有可能创建优秀的应用程序.但也同样存在创建劣质程序的可能.FxCop是有助于创建更好的应用程序的工具之一,通过分析程序集.并运用很多不同的规则来检杳它是否符合这些规则。FxCopSfi附了由Microsoft创建的一组规则,你也可以创建并包括你自己的规则
6、。例如,假如你确定全部的类都应当具有一个不带任何金数的默认构造函数,则可以编写一条烷则,以确保程序集的翻个类上都具有一个构造函数.这样,无论是谁编写该代码,你都将获得肯定程度的一样性.假如你须要有关创建自定义规则的具体信息,参见JohnRobbins有关这方面的BUgSIayer专栏文弹.那么,让我们看看实际运行的FxCop,并且用心-卜它在我正在开发的NUnitExampIe%中找到什么i5你打开FxCop时,你首先须要创建个FxCop项目.然后向其添加你要测试的程序集.在将该程序集添加到项目以后,就可以按Analyze.FxCop相分析该程序集,Figure6显示了FxCop在该程序集中找
7、到的错误和警告。Figure6FxCop运行直面FxCop在我的程序家中找到了几个问题你可以双击某个错误以我行具体信息,包括规则说明以及在哪里可以找到更多信息.(你可以做的一件好玩的事情是在框架程序集上运行FxCop并查柠发生了什么事情.)FxCop可以用助你创建更好的、更,样的代码,但它无法补偿低劣的应用程序设计或特别简洁拙劣的编程,FxCop也不能替代对等代码拉查,但是因为它Ur以在进行代码检查之前捕获大能惜误,所以你可以花费更多时间来解抉严竣的问即,而不必担忧命名约定.FxCop由Microsoft开发,下钱地址是:.NET开发人员必备工具:COdeSmithCodeSmith是种甚于粮
8、板的代码生成工具,它运用类似于ASP.NET的语法来生成琏通类型的代眄或文本.与其它很多代码生成匚具不同.CodeSmith不要求你订阅特定的应用程序设计或体系结构,借助COdeSmith可以生成包括简洁的强类型集合和完整应用程序在内的任何东西.当生成应用程序时,无论是编用数据访何代码还是生成自定义舜合,你会发觉常常须要重任完成某些特定的任务.这时CodeSmith就显得特殊行用.因为你可以编写模板力动完成这些任务,从而不仅提高你的工作效率,而且能够自动完成那些最为乏味的任务,CodeSmiih附带了很买模板.包括对应于全部.NET集合类型的模板以及刖于生成存储过程的模板,但该工具的真正威力在
9、于能够创铿自定义模板。为了使你能终入门,我将快速介绍一下如何生成自定义模极.生成自定义模板CodeSmith模板只是些可以在l意文本编辑器中创建的文本文件.它的的唯要求fll.cst文件扩展名来保存它们。我将要生成的示例操板将接受一个字符串.然后基于该字符申生成一个类,创建模板的第一步是添加模板头,它可声明模板的语言、目标语言以及简要模板说明:模板的下一部分是屈性尚明,在这里可声明将在模板邮次运行时指定的属性。就该黑板而古,我要运用的唯属性只是一个字符IU,因此屈性声明如下所示:该属性声明将使CIassName属性出现在CodeSmith属性窗口中,以便可以在模板运行时指定它,下一步是实际生成
10、模板主体,它特别类似于用ASPNET进行编码,你可以在Figure3中杏有该校板的主体.编辑更新一6/16/2004:Figure3中的代眄已被更新,以便对多跷程操作保持平安。正如你所见,该模板接受字符串输入并运用该类名生成单独的类.在模板主体中,运用与ASPNET中相同的起始和结束标记,在该模板中,我只是插入应性伯,但你还可以在这些标记内部运用陆意类型的-NET代码.在该模板完成之后,你就可以通过双击它或者从CodeSmith应用程序中打开它将其加我到CgeSmith中。Figure4显示了己经加软到CodeSmith中的该模板.Figure4CodeSmith犊板你可以百到左例的属性正是我
11、在该模板中声明的属性.粮如我输入SingletonClass11作为类名,并单击Generate按钮,则生成Figure3的底部显示的关,CodeSmith运用起来相当简洁,假如能鲂正确应用,则可以产生一些令人难以置信的结果.面对代码生成的应用程序中最常见的部分之一是数擀访问层.CodeSmith包括一个名为SchemaExpIorer的特殊的程序#3可用来从表、存储过程或几乎任何其他SQ1.Server?对象生成模板。CodeSmith由EricJ.Smith编写,下栽地址是;NET开发人员必备工具:RegUIatOrRegulator是最近添加到我的头等工具清单中的.它跄一种很有特色的工具
12、,健检使生成和测试正则表达式变得很简法。由于正则表达式在.NET框架中受到极好的支持,因而人们对正则表达式用新产生了爱好。正则表达式用来基于字符、算率和字符依次定义字符串中的模式.它的最常见的用途是作为脸证用户输入有效性的手段或齐作为在较大字符串中查找字符小的方法例如,在Web页上查找UR1.或电子此件胞址.Regulator允许你输入一个正则表达式以及,些计对其运行该去达式的输入,这样,在应用程序中实现该正则衣达式之前,你便可以了解它将产生什么效果以及它将返回哪些种类的匹配项.Figure2显示了带有简洁正则表达式的Regulator.Figure2Regulator运行画面文档中包含该正则
13、表达式在该示例中,它是0-9.应当匹配行中Ki在数收的数字。右下侧的框中含有针对该正则去达式的输入,而左下恻的框显示了该正则表达式在输入内容中找到的风配项,象这样在单独应用程序中编写和测试正期表达式,要比尝试在你自己应用程序中处理它们简洁得多.Regulator中的最佳功能之一玷能盛在regexib搜寻在襄正则衣达式峰.例如,假如你在搜寻框中输入字符申“phone”,你将找到20种笠种不同的能物匹配各种电话号码的正则去达式,包括用于英国、澳大利亚的衣达式以及其它很多电话号码.Regulator由RoyOsherove弟写,下载地址是:.NET开发人员必备工具:SniPPetCompilerSn
14、ippetCompiler是一个菸FWindows的小里应用程序,你可以通过它来编写、泥汴和运行代码.假如你乂有以小的代码段,并且你不想创建完整的VisualStudio.NET项11(以及该项11附带的全都文件,则该工具会很有用.例如,假设我带电向你示范如何从Microsoft.NET框架中启动另一个应用程序.在SnippetCompiIerM.我将通过新建一个健钙创建小型限制台应用程序的文件起先。可以在该限制价应用程序的Main方法内部创建代眄片段,而这正是我要在这里做的事情.下面的代码片段演示了如何从NET框架中创建记出本实例:System.Diagnostics.Processproc
15、=newSystem.Diagnostics.Process();proc.StartInfo.FileNarae=*notepad,exe”;proc.Start();proc.WaitForExit();当然该代码片段本身无法编译.而这正是SnippetCompiler的用武之地.FigUrel显示了SniPPetCOmPiler中的这一代码示例”Figure1SnippetCompiler运行的而为了测试该代码片段,只须按play运行按钮(绿色三角形),它就会在调试模试下运行。该代码片段将生成一个弹出式限制台应用程序,并且将显示记步本。当你关闭记方本时,该限制台桢用程序也将关闭.就我个人而古,我是在尝试为某位彳f求于我的人士创建个小型示例时.才发觉SnippetCompiIer是个无价之宝假如不运用该工具,那么我通常必需新建一个项目.确保好个部分都能编译