100 likes | 240 Views
Tools of the Trade: Must-Have .NET Utilities. James Kovacs November 18, 2004. Agenda. The Holy Trinity Source Control Code Analysis Tools Build Tools Debugging Tools Coding Tools. The Holy Trinity. NUnit ( http://www.nunit.org ) Unit testing framework See also:
E N D
Tools of the Trade:Must-Have .NET Utilities James Kovacs November 18, 2004
Agenda • The Holy Trinity • Source Control • Code Analysis Tools • Build Tools • Debugging Tools • Coding Tools
The Holy Trinity • NUnit(http://www.nunit.org) • Unit testing framework • See also: • TestDriven.NET (http://www.testdriven.net) • NAnt(http://nant.sourceforge.net) • Make without the wrinkles • See also: • NAntContrib (http://nantcontrib. sourceforge.net) • NDoc(http://ndoc.sourceforge.net) • API documentation generator • See also: • GhostDoc (http://www.roland-weigelt.de/ghostdoc/) • Documentor CodeRush Add-in (http://www.paraesthesia.com/blog/comments.php?id=701_0_1_0_C)
Source Control • SourceGear Vault(http://www.sourcegear.com/vault/) • VSS- or CVS-style check-ins • SQL Server DB backend • Subversion • Subversion server (http://subversion.tigris.org) • Command-line • BerkeleyDB or file system backend • TortoiseSVN (http://tortoisesvn.tigris.org) • Explorer extension • RapidSVN (http://rapidsvn.tigris.org) • Traditional VSS-style GUI • AnkhSVN (http://ankhsvn.tigris.org) • VS.NET add-in • vss2svn (http://vss2svn.tigris.org) • Perl script to convert VSS DB to SVN • FireDaemon (http://www.firedaemon.com) • Runs SVN server as a Windows Service
Code Analysis Tools Static • FxCop(http://www.gotdotnet.com/team/fxcop/) • Analyzes code against a rules database including coding standards, best practices, and defects • devMetrics(http://www.anticipatingminds.com/Content/Products/devMetrics/devMetrics.aspx) • Reports kloc and cyclomatic complexity Dynamic • NCover (http://www.ncover.org/) • Analyzes code coverage • NProf(http://nprof.sourceforge.net) • Profiles application performance • CLR Profiler(http://www.microsoft.com/downloads/details.aspx?FamilyId=86CE6052-D7F4-4AEB-9B7A-94635BEEBDDA&displaylang=en) • Profiles allocations and garbage collections
Build Tools • CruiseControl .NET(http://confluence.public.thoughtworks.org/display/CCNET/) • Continuous integration server • Builds done through NAnt, DevEnv, or custom • Runs unit testing (NUnit) and/or code analysis (FxCop) on builds (optional) • Reports build and/or test failures via email • Dashboard (ASP.NET app) shows current and past build status
Debugging Tools • Lutz Roeder’s Reflector(http://www.aisto.com/roeder/dotnet/) • Reverse engineers MSIL into C#, VB.NET, or Delphi • See also: FileDisassembler Add-in (http://www.denisbauer.com/NETTools/FileDisassembler.aspx) • ClrSpy(http://www.gotdotnet.com/Community/UserSamples/Details.aspx?SampleGuid=c7b955c7-231a-406c-9fa5-ad09ef3bb37f) • Exposes Customer Debug Probes (CDP) for diagnosing problems with COM Interop and P/Invoke • XmlSerializerPreCompiler(http://www.sellsbrothers.com/tools/#XmlSerializerPreCompiler) • Fantastic tool for debugging mysterious XmlSerializer exceptions • Everything by SysInterals.com!(http://www.sysinternals.com) • Tools for monitoring disk, files, handles, registry, processes, and more
Coding Tools • RegexDesigner.NET(http://www.sellsbrothers.com/tools/#regexd) • Runs regular expressions using System.Text.RegularExpressions • CodeRush(http://www.devexpress.com/?section=/Downloads/NET/CodeRush) • Code generator and visualization tool • Regions Add-in(http://www.codeproject.com/dotnet/RegionsAddIn.asp) • Moves code into and between regions • pinvoke.net Add-in(http://www.gotdotnet.com/Community/UserSamples/Details.aspx?SampleGuid=75122f62-5459-4364-b9ba-7b5e6a4754fe) • Adds P/Invoke signatures • VSCmdShell Add-in(http://www.gotdotnet.com/Community/Workspaces/Workspace.aspx?id=3751cc72-1345-4872-96a1-99c9d64e7c2d) • VS.NET Command prompt hosted inside VS.NET
Staying in the Loop <plug type=“shameless”> • Blogs • http://www.jameskovacs.com/blog/ • http://www.bristowe.com/blog/ • Blog Readers • SharpReader (http://www.sharpreader.net/) • NewsGator (http://www.newsgator.com/) </plug>