140 likes | 310 Views
Tools of the Trade: Must-Have .NET Utilities. James Kovacs Leader, Application Development MTS Allstream Inc. September 28, 2005. Agenda. The Holy Trinity Source Control Code Analysis Tools Build Tools Debugging Tools Coding Tools. The Holy Trinity. NUnit ( http://www.nunit.org )
E N D
Tools of the Trade:Must-Have .NET Utilities James Kovacs Leader, Application Development MTS Allstream Inc. September 28, 2005
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 • LibCheck(http://www.microsoft.com/downloads/details.aspx?FamilyID=4B5B7F29-1939-4E5B-A780-70E887964165&displaylang=en) • Displays API differences between two assemblies • devMetrics(http://www.anticipatingminds.com/Content/Products/devMetrics/devMetrics.aspx) • Reports kloc and cyclomatic complexity
Code Analysis Tools 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, MSBuild, or custom • Runs unit testing (NUnit), coverage (NCover) 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) • Reflector Diff Add-in (http://www.codingsanity.com/diff.htm)
Debugging Tools • 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 • Fiddler(http://www.fiddlertool.com) • HTTP debugging proxy, which logs all HTTP traffic between your browser and the network • Allows you to “fiddle” and replay requests
Debugging Tools • 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 • Regions Add-in(http://www.codeproject.com/dotnet/RegionsAddIn.asp) • Moves code into and between regions
Coding Tools • 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/ • Blog Readers • OmeaReader (http://www.jetbrains.com/omea/reader/) • SharpReader (http://www.sharpreader.net/) </plug>