新.NET开发十大必备工具
1. Snippet Compiler:用来编写、编译和运行代码的基于Windows的小型应用程序
2. Microsoft Source Analysis for C#:是一款C#代码规范检查工具
3.GhostDoc:Visual Studio的一个免费插件
4.Sandcastle:帮助文档生成工具
5.Nunit:开放源代码单元测试框架
6.MyGeneration :代码生成工具
7.Reflector for .NET:类浏览器和反编译器
8.The Regulator:生成和测试正则表达式
9.LINQPad:集成在.NET编程语言中的一种特性
10.NAnt:基于 .NET 的生成工具
http://publish.itpub.net/zt/dotnettools/index.html
1. Snippet Compiler:用来编写、编译和运行代码的基于Windows的小型应用程序
源文件 http://tech.it168.com/msoft/2008-06-30/200806301051575.shtml在新版.Net开发必备十大工具一文中,笔者整理总结了.NET平台下开发必备的十大工具,从本文开始,将会通过几篇文章来详细介绍它们的使用方法。
代码段编译工具
1. 工具概述
Snippet Compiler是一个基于 Windows 的小型应用程序,你可以通过它来编写、编译和运行代码。现在Snippet Compiler已经支持.NET Framework 3.5,最新版本为Snippet Compiler Live 2008 Ultimate Edition for Developers (Alpha)。
官方主页:http://www.sliver.com/dotnet/SnippetCompiler/
2. 应用场景
如果你具有较小的代码段,并且你不想创建完整的 Visual Studio项目以及该项目附带的所有文件,此时就是Snippet Compiler的用武之处。假如我们要用记事本编写该代码段,不仅没有智能提示功能,容易出错,编写完成后还需要使用命令行进行编译,是一件非常麻烦的事情;而如果创建Visual Stuido项目,又觉得为了一段很小的代码段创建一个Visual Studio项目有些不值得,这正是Snippet Compiler的强大之处。
3. 使用简介
在下载Snippet Compiler后,无需进行安装,直接运行可执行文件即可。在第一个运行时,它会提示你如何创建快捷方式,运行后默认的语言是C#,可以直接在RunSnippet()方法中编写你的代码片段,如下图所示:
编写代码完成后,如果要进行测试,直接点击工具栏上Start按钮,如下图所示,并且将会在Errors和Output窗口中显示编译错误或者输出结果:
![](https://i-blog.csdnimg.cn/blog_migrate/1f84d0aa46821241754af9545ba640b5.png)
Snippet Compiler还有一个新的特性是,它可以支持两个版本的.NET Framework,分别为.NET Framework 2.0 with SP1和.NET Framework 3.5,在编译时可以根据实际情况而选用:
![](https://i-blog.csdnimg.cn/blog_migrate/00524fc30a7302ccb234e00fa3640d3b.png)
在默认情况下,Snippet Compiler添加了一些常用的程序集,如果我们编写的代码片段中需要用到其它的程序集,可以通过引用管理器来实现,选择Tools->References菜单项,我们可以添加或者删除程序集,如下图所示:
![](https://i-blog.csdnimg.cn/blog_migrate/7023eb4e5bd52bcfee3a481921f45ddf.png)
SourceAnalysis (StyleCop)的终极目标是让所有人都能写出优雅和一致的代码,因此这些代码具有很高的可读性。
早就听说了微软内部的静态代码检查和代码强制格式美化工具 StyleCop ,昨天(2008-05-23)微软在 MSDN Code Gallery 发布了 4.2 版本,并命名为 Microsoft Source Analysis for C# 。
SourceAnalysis (StyleCop)不是代码格式化(代码美化)工具,而是代码规范检查工具(Code Review 工具),它不仅仅检查代码格式,而是编码规范,包括命名和注释等。
SourceAnalysis (StyleCop)目的是帮助项目团队执行一系列常用的源代码格式规范,这些规范是关于如何开发布局规整,易读,易维护并且文档良好的优雅代码的(help teams enforce a common set of best practices for layout, readability, maintainability, and documentation of C# source code)。
SourceAnalysis (StyleCop) 现在包含了 200 个左右的最佳实践规则(best practice rules),这些规则与 Visual Studio 2005 和 Visual Studio 2008 中默认的代码格式化规则是一致的。
SourceAnalysis (StyleCop)可以作为 Visual studio 的插件运行,在VS中(我的是2008)对一个C#文件点击右键后的:
在VS执行后,执行效果如下:
同时 SourceAnalysis (StyleCop)也可以作为 MSBuild 任务(安装时有选项)通过命令行执行。
从我现在的了解,SourceAnalysis (StyleCop)只是一个代码格式的检查工具,它会根据预定义的C#代码格式的最佳实践,对我们的源代码进行检查,并给出不符合编码风格的错误提示。这一点来说与微软的另一个代码检查工具 FxCop 很相似,但 FxCop 是对 dll (compiled binaries) 进行检查,所以 FxCop 适用于新项目通过持续集成工具来使用的情况。也就是说 FxCop 是项目级别的,而 SourceAnalysis (StyleCop)是代码级别的,更适合于程序员在编程过程中使用。
与 FxCop 的另一个不同是,SourceAnalysis (StyleCop)不提供灵活的规则设置,而是使用所谓 one-size-fits-all 的方式强制人们用同样的习惯书写代码,因此 SourceAnalysis (StyleCop)的终极目标是:The ultimate goal of Source Analysis is to allow you to produce elegant, consistent code that your team members and others who view your code will find highly readable.
SourceAnalysis (StyleCop)检查的规则包括:
布局(Layout of elements, statements, expressions, and query clauses )括号位置(Placement of curly brackets, parenthesis, square brackets, etc )空格(Spacing around keywords and operator symbols )行距(Line spacing )参数位置(Placement of method parameters within method declarations or method calls )元素标准排列(Standard ordering of elements within a class )注释格式(Formatting of documentation within element headers and file headers )命名(Naming of elements, fields and variables )内置类型的使用(Use of the built-in types )访问修饰符的使用(Use of access modifiers )文件内容(Allowed contents of files )Debugging文本(Debugging text)3.GhostDoc:Visual Studio的一个免费插件
源文件 http://space.itpub.net/?uid-12639172-action-viewspace-itemid-364703
GhostDoc是Visual Studio的一个免费插件,可以帮助开发人员编写XML格式的注释文档。
C#中XML格式的文档注释好处多多:Visual Studio会在很多地方显示这些注释内容(例如,编辑器的工具提示或对象浏览器),还有一些工具(比如NDoc或微软的文档工具Sandcastle)也可以利用这些注释生成具有良好外观的帮助文件。这些都让XML格式的注释看上去很美——但很不幸,你首先得编写大量简单、乏味的注释。ITPUB个人空间MQ,iE-f~@
GhostDoc可以做什么?
GhostDoc为Visual Studio中的C#代码编辑器安装了一个新的命令。在编辑源文件时,只需将光标置于要添加文档的方法或属性内部,然后通过热键(默认为Ctrl+Shift+D)或右键菜单中的Document this菜单项调用命令,GhostDoc就会插入一段XML格式的注释。你也许会想到在方法或属性前面键入"///"时的类似效果,但是后者只能创建一段空的注释构造,而GhostDoc则能够生成大部分实用的注释。
如果你的类成员是用于实现接口或重写基类的成员,GhostDoc会使用既存的文档,不论这些接口或基类来自何处。这样你就可以重用大量的微软编写的文档——是否想起了在实现IEumerable接口时,需要考虑如何为GetEnumerator()方法添加注释。
如果没有既存的文档可用,GhostDoc会试着”猜测”如何为你生成注释。这主意初看起来也许有点奇怪,不过在特定条件下(后面会提到)GhostDoc做的很不错。有时候它”猜测”的结果会不太准确,甚至有些搞笑,但平均下来,修改这些生成的文档还是要比完全手工去写省了不少时间。
GhostDoc事实上并”不懂”英语,那为何它生成的文档却常常令人相当满意?其中的基本原理颇为简单,GhostDoc假定你的代码遵从微软类库开发人员设计规范:
你的代码使用Pascal或Camel命名法为由多个单词组成的标识符命名
- 你的方法名通常以动词开头
- 你在标识符中不使用缩写
<!--[if !supportLists]--><!--[endif]--><!--[if !supportLists]--><!--[endif]-->
如果你能够遵从这些规则(比如,使用ClearCache()而不是Clrcch()),同时使用一些自解释的标识符名称,那么GhostDoc就能派上用场了,它把标识符分割为几个单词,将它们组合来生成注释,也许并不完美,却给你一个良好文档的开始。
文本的生成使用可定制的规则和模板,除了内置的规则,还可以定义新的自定义规则来扩展或替换既有的规则(为你的自定义规则提供更高的优先级或禁用内置规则)。
上面提到过,GhostDoc并”不懂”英语,但它会尝试使用某种机制来提高生成注释的质量:
<!--[if !supportLists]--><!--[endif]-->
- 动词的处理机制(GhostDoc假定方法名的首个单词为动词):Add->Adds,Do->Does,Specify->Specifies;
- "Of the"排序组织机制:ColumnWidth -> Width of the column.
- 一些特殊形容词的特殊合并机制:例如,MaximumColumnWidth->”Maximum width of the column”而不是”Width of the maximum column”
- 对首字母缩写组成的常量的自动检测,并通过一个列表来处理其它的一些首字母缩写术语
- 使用一个单词列表,以决定何时不使用”the”:AddItem -> Adds the item, BuildFromScratch -> Builds from scratch
<!--[if !supportLists]--><!--[endif]--><!--[if !supportLists]--><!--[endif]--><!--[if !supportLists]--><!--[if !supportLists]--><!--[endif]-->
下面是应用GhostDoc的一些例子:
_5h"j!]1\(D u0
*A-I-U,m#Lm#x0Code highlighting produced by Actipro CodeHighlighter (freeware) ITPUB个人空间|?V)B~1g3gH
http://www.CodeHighlighter.com/ ITPUB个人空间1nJo!A$?n*?R2E
+v)CbQZ\$M.[H5x0--> /// <summary>
C}I:|"qF!X"Df&^+O0 /// Determines the size of the page buffer.
:Zd_J}|0 /// </summary>
buX'Py0 /// <param name="initialPageBufferSize"> Initial size of the page buffer. </param> ITPUB个人空间0[*d7_9D] ]$C Q6d
/// <returns></returns> ITPUB个人空间2R5q!xxs'ZH
public int DeterminePageBufferSize( int initialPageBufferSize)ITPUB个人空间1AV%b)W:nE
{ITPUB个人空间+qo Z5t6} t:Z;Q:]
return 0 ;
V!~i(mBfO5v!]"]v'U0 }
'WIDd;W'@{ Q0ITPUB个人空间)wa+a4Qu
/// <summary> ITPUB个人空间:`e+n}`"@
/// Adds the specified item.
)t f+iI [J;[.YJ@0 /// </summary> ITPUB个人空间0w5gU2N2z;o)l*F4^:Z
/// <param name="item"> The item. </param> ITPUB个人空间q\.s,B4fi/?5bs4p
public void Add( string item)
] d-wY7[8r0 {ITPUB个人空间R XG)H.Cu e
//does something
K,|0uI(Q/PO;g0 }
2Ey H6q ZXj0
E7{;YW1W k)to0 /// <summary>
e7}3d Nwm K0 /// Appends the HTML text.
.]+c2H)~-Q.B9C0 /// </summary> ITPUB个人空间0zx%Q6m7_7g2Y#J$`
/// <param name="htmlProvider"> The HTML provider. </param>
A8D;?P.YL)sY0 public void AppendHtmlText(IHtmlProvider htmlProvider)ITPUB个人空间#a"ouQ!Me4m,o#R{
{
b4M4jq7R0 }
是不是惊人的准确?
GhostDoc生成注释的质量很大程度上取决于标识符命名的质量,所以长期使用GhostDoc,也会让你学会编写一致的和自解释的标识符,不亦乐乎?
GhostDoc不能做什么?
GhostDoc很强大,但也不能对它有太高的期望。它生成注释的方式也许不能很好地符合你个人的注释风格。GhostDoc也不能一次性为整个代码文件生成注释,只能每次为一个成员生成注释——GhostDoc如此设计,是因为不管怎样总需要你去检查它生成的每段注释。
GhostDoc的配置:
在Visual Studio菜单栏中选择Tools->GhostDoc->Configure GhostDoc。
其中包含如下几个属性页:
<!--[if !supportLists]--> <!--[endif]--><!--[if !supportLists]-->
- Rules : 修改,删除,添加文本生成规则
- Acronyms : 指定将哪些单词视为首字母缩写词
- "Of the" Reordering : 指定触发重新排序行为的单词
- "No the" Words : 指定哪些词前不使用”the”
- Options : 配置GhostDoc的其它选项
6.MyGeneration :代码生成工具
【IT168 技术文档】
从一开始,.NET Framework就允许C#开发者在他们的代码中使用XML形式的注释。这一特性被增加到VB.NET 2.0中。该编译器能够使用这些注释生成基本的技术文档。使用XML注释最终得到一个难以理解的大型XML文件。
开发者想要并希望用其它工具代替XML,建立更易于理解的文档。开源项目NDoc通过改进和简化上述过程,并提供各种帮助文件格式,满足了这一需求。遗憾的是,由于创立者很少或几乎没有得到开发社区的支持,最终该项目被终止。
NDoc宣布终止后,微软推出它的第一版文档工具——Sandcastle。这是一个管理类库的文档编译器。它还可通过反射处理汇编源代码,并在代码中使用XML注释生成MSDN形式的文档,这种文档比难以解读的XML更易于理解。微软称它在内部使用它创建.NET Framework文档。
Sandcastle。这是一个管理类库的文档编译器。它还可通过反射处理汇编源代码,并在代码中使用XML注释生成MSDN形式的文档,这种文档比难以解读的XML更易于理解。微软称它在内部使用它创建.NET Framework文档。
Sandcastle与.NET Framework 2.0(可在线找到它与1.1版本的用法说明)和.NET Compact Framework组合使用。Sandcastle支持本地化,并提供一个基本的命令行编译器界面和一个Visual Studio插件。
如何获取Sandcastle
微软2007年3月的社区技术预览提供最新版的Sandcastle。你可以在Windows Server 2003或Windows XP Service Pack 2上安装和运行该工具。它需要系统上安装有.NET Framework 2.0和HTML Help Workshop。安装必要的软件后,你就可以接着安装Sandcastle工具。
深入了解
Sandcastle中共有三个组件:MrefBuilder、Build Assembler和XslTransform。这些工具使用编译汇编代码时生成的输出结果,包括DLL文件以及XML注释文件。
MrefBuilder反射一个项目的汇编代码并生成一个输出文件。MrefBuilder是一个随Sandcastle安装的命令行工具。它生成的输出文件通过XslTransform命令行工具转换成一个叫做reflection.xml的文件。reflection.xml文件包含所有文档数据,但不提供显示细节。
MrefBuilder完成工作后,立即由Build Assembler接手处理。Build Assembler可由命令行工具BuildAssembler启动。它利用由MrefBuilder生成的数据(reflection.xml)和任何代码注释(保存在独立的XML文件中),生成按逻辑分组的HTML文件。HTML Help Compiler再利用这些HTML文件生成最终结果。
该工具并未限制你一次处理一个汇编。如果你需要处理几个汇编代码,你必须深入了解Sandcastle配置文件。它是一个包含建立帮助文件主题所需步骤的XML文件。
输出结果
Sandcastle生成的输出结果具有以下特点:
类似于MSDN布局的界面。
自动生成索引项、内容项目表、主题块和页面布局,提高一致性和熟悉程度。
自动生成语法宣称部分。
自动生成继承表。
代码彩色化。
提供多种风格和语言选择,终端用户可从中选择自己最喜欢的形式。
输出结果以HTML和CSS形式显示,微软承诺将来提供更多选择。
可选界面
许多开发者讨厌命令行界面——他们更喜欢灵巧的GUI界面,如流行的Visual Studio IDE。同时,你还可以使用第三方工具,利用一个友好的GUI界面推动Sandcastle过程。以下是三个有效的工具:
Sandcastle Help File Builder:它提供一个类似于NDoc的界面,允许你输入现有的NDoc项目,自动完成创建过程。
SandcastleGUI:这是一个免费的Sandcastle GUI前端界面。
Sandcastle CHM编译BAT脚本和配置实用工具:这是一个配置实用工具和批处理脚本,由它通过Sandcastle可建立MSDN形式的类文档CHM文件。
帮助他人
如果开发者处理应用程序代码,他们需要了解应用程序的工作原理,以及如何使用应用程序界面。微软Sandcastle提供为你的项目生成MSDN形式文档所需的必要工具。检查这个Sandcastle wiki了解该工具。