您的位置:首页 > 职场人生

.NET 程序员十种必备工具 - 目录收藏

2008-11-02 04:23 806 查看

 .NET 程序员十种必备工具 - 目录收藏

新一篇: .NET 程序员十种必备工具 - Snippet Compiler | 旧一篇: 代码标准

function StorePage(){d=document;t=d.selection?(d.selection.type!='None'?d.selection.createRange().text:''):(d.getSelection?d.getSelection():'');void(keyit=window.open('http://www.365key.com/storeit.aspx?t='+escape(d.title)+'&u='+escape(d.location.href)+'&c='+escape(t),'keyit','scrollbars=no,width=475,height=575,left=75,top=20,status=no,resizable=yes'));keyit.focus();}从
MSDN
中看到这篇文章,觉得不错转了过来,对于我这样的.NET新手来说每个工具都是提高效率的好开始。将这十款软件的介绍重新格式化一下,方便以后查阅。以
“.NET 程序员十种必备工具”开头的10篇文章都是从这篇文章中分离出来,每篇文章就不分别注明版权和出处了。
本文自发布以来已经增加了新信息。请参阅下面的编辑更新。


非您使用能够获得的最佳工具,否则您无法期望生成一流的应用程序。除了像 Visual Studio?.NET 这样的著名工具以外,还可以从
.NET 社区获得许多小型的、不太为人所知的工具。在本文中,我将向您介绍一些目前可以获得的、面向 .NET
开发的最佳免费工具。我将引导您完成一个有关如何使用其中每种工具的快速教程 —
一些工具在许多时候可以使您节约一分钟,而另一些工具则可能彻底改变您编写代码的方式。因为我要在本篇文章中介绍如此之多的不同工具,所以我无法详尽讨论
其中每种工具,但您应该了解到有关每种工具的足够信息,以便判断哪些工具对您的项目有用。
本文讨论: 用于编写单元测试的 NUnit
用于创建代码文档资料的 NDoc
用于生成解决方案的 NAnt
用于生成代码的 CodeSmith
用于监视代码的 FxCop
用于编译少量代码的 Snippet Compiler
用于转换的工具I ASP.NET Version Switcher
用于转换的工具II Visual Studio Converter
用于生成正则表达式的 Regulator
用于分析程序集的 .NET Reflector
本文使用了下列技术:
.NET、C# 或 Visual Basic .NET、Visual Studio .NET
小结

文采用走马观花的方式介绍了上述工具,但我已经试图起码向您提供足够的信息以激起您的好奇心。我相信本文已经让您在某种程度上领悟了几个免费工具,您可以
立即开始使用这些工具来编写更好的项目。同时,我还要敦促您确保自己拥有所有其他可以获得的合适工具,无论是最新版本的 Visual
Studio、功能强大的计算机还是免费的实用工具。拥有合适的工具将使一切变得大不相同。
James Avery
是一位使用 .NET 和其他 Microsoft 技术的顾问。他已经撰写了许多书籍和文章,他的最新著作是《ASP.NET Setup and
Configuration Pocket Reference》(Microsoft Press, 2003)。您可以通过 javery@infozerk.com 向他发送电子邮件,并且在 http://www.dotavery.com/blog 阅读他的网络日记。
本文摘自 MSDN Magazine2004 年 7 月刊。
该杂志可在各地的报摊购买,也可以订阅
转到原英文页面
转到原中文页面



 .NET 程序员十种必备工具 - CodeSmith收藏

新一篇: .NET 程序员十种必备工具 - NUnit | 旧一篇: .NET 程序员十种必备工具 - Regulator

function StorePage(){d=document;t=d.selection?(d.selection.type!='None'?d.selection.createRange().text:''):(d.getSelection?d.getSelection():'');void(keyit=window.open('http://www.365key.com/storeit.aspx?t='+escape(d.title)+'&u='+escape(d.location.href)+'&c='+escape(t),'keyit','scrollbars=no,width=475,height=575,left=75,top=20,status=no,resizable=yes'));keyit.focus();}

CodeSmith

CodeSmith
是一种基于模板的代码生成工具,它使用类似于 ASP.NET 的语法来生成任意类型的代码或文本。与其他许多代码生成工具不同,CodeSmith
不要求您订阅特定的应用程序设计或体系结构。使用 CodeSmith,可以生成包括简单的强类型集合和完整应用程序在内的任何东西。

您生成应用程序时,您经常需要重复完成某些特定的任务,例如编写数据访问代码或者生成自定义集合。CodeSmith
在这些时候特别有用,因为您可以编写模板自动完成这些任务,从而不仅提高您的工作效率,而且能够自动完成那些最为乏味的任务。CodeSmith
附带了许多模板,包括对应于所有 .NET
集合类型的模板以及用于生成存储过程的模板,但该工具的真正威力在于能够创建自定义模板。为了使您能够入门,我将快速介绍一下如何生成自定义模板。
生成自定义模板 CodeSmith
模板只是一些可以在任意文本编辑器中创建的文本文件。它们的唯一要求是用 .cst
文件扩展名来保存它们。我将要生成的示例模板将接受一个字符串,然后基于该字符串生成一个类。创建模板的第一步是添加模板头,它可声明模板的语言、目标语
言以及简要模板说明:
模板的下一部分是属性声明,在这里可声明将在模板每次运行时指定的属性。就该模板而言,我要使用的唯一属性只是一个字符串,因此属性声明如下所示:
该属性声明将使 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 中。下图显示了已经加载到
CodeSmith 中的该模板。



您可以看到左侧的属性正是我在该模板中声明的属性。如果我输入“SingletonClass”作为类名,并单击 Generate 按钮,则将生成上面的代码块底部显示的类。
CodeSmith
使用起来相当容易,如果能够正确应用,则可以产生一些令人难以置信的结果。面向代码生成的应用程序中最常见的部分之一是数据访问层。CodeSmith
包括一个名为 SchemaExplorer 的特殊的程序集,可用来从表、存储过程或几乎任何其他 SQL Server? 对象生成模板。
CodeSmith 由 Eric J. Smith 编写,并且可以在 http://www.ericjsmith.net/codesmith 下载。
转到 .NET 程序员十种必备工具 - 目录
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: