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

news/2024/5/18 21:05:34

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

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

<script>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();}</script>

从 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 Magazine 的 2004 年 7 月刊。

该杂志可在各地的报摊购买,也可以订阅

转到原英文页面

转到原中文页面



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

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

<script>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();}</script>

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 程序员十种必备工具 - 目录


http://www.niftyadmin.cn/n/4819235.html

相关文章

唐僧是凭什么当领导的...

领导可不是谁都可以当的&#xff0c;当好了就更难&#xff0c;在我们一般人看来要当好领导&#xff0c;就要能力超出常人&#xff0c;处处高人一筹.然而在小说《西游记》里的唐僧却是个例外&#xff0c;手无缚鸡之力&#xff0c;非但不能降妖服魔&#xff0c;还经常错怪好人&am…

SOAP协议(三):用脚本语言编写服务

&#xff08;仙人掌工作室 2001年09月21日 14:41&#xff09; width"360" scrolling"no" height"300" frameborder"0" align"right" src"http://www.cnnet.com.cn/servlets/ad?Pooltech_pip" marginwidth"…

ShellExecuteEx函数卡住

问题现象&#xff1a;守护进程A无法拉起工作进程B。而且在关闭守护进程服务时系统会提示“服务没有及时响应启动或控制要求”。服务器是Windows Server2012。 问题分析&#xff1a;进程A创建进程B&#xff0c;调用的是Windows系统的ShellExecuteEx函数。函数前后加上日志&#…

VueJs创建网易音乐播放器和vueJs常见错误处理

学习vuejs之后&#xff0c;总得自己上手写一些完整的应用&#xff0c;才能够更加了解各个结构与组件之间的运用。 下面从最基础的准备工作开始&#xff1a; 用vue-cli搭建vue应用&#xff1a;先确保自己已经安装Node环境。 &#xff08;1&#xff09;Windows 上安装 Node.js 你…

SOAP协议(四):简化客户程序

&#xff08;仙人掌工作室 2001年09月21日 14:20&#xff09;width"360" scrolling"no" height"300" frameborder"0" align"right" src"http://www.cnnet.com.cn/servlets/ad?Pooltech_pip" marginwidth"0…

云计算的思想领袖:与橡树岭国家实验室云计算研究员Rob Gillen的谈话

Rob Gillen在橡树岭国家实验室为政府研究云计算技术。他也参加Planet技术的研究&#xff0c;该技术最近推出了新的云实践&#xff0c;用云计算来协助政府和公营机构。他 有一篇精彩的博客将云计算追溯到7年前&#xff0c;他在网上还有很多演讲和讲座。Rob也是一位Windows Azure…

面向SOA服务架构的案例分析的研究

转&#xff1a;https://www.cnblogs.com/ljysy/p/10916950.html 随着互联网应用的不断发展,网络业务的种类、数量不断增加,计算机网络管理的研究重点正在由过去的个别资源监控、应用可用性阶段,向着如何通过网络获得所需业务、业务流程的优化、保障业务服务水平方向发展.但这并…

用ASP.NET写你自己的代码生成器

用ASP.NET写你自己的代码生成器 作者&#xff1a; 来源&#xff1a; 阅读 数 205 人次 , 2006-3-29 4:33:00 <script type"text/javascript"></script> <script style"display: none;" type"text/javascript" src"…