150 likes | 329 Views
James Kovacs JamesKovacs.com jkovacs@post.harvard.edu January 27, 2007. Tools of the Trade: Must-Have .NET Utilities. Agenda. The Holy Trinity Source Control Virtualization Code Analysis Tools Build Tools Debugging Tools Coding Tools. The Holy Trinity.
E N D
James Kovacs JamesKovacs.com jkovacs@post.harvard.edu January 27, 2007 Tools of the Trade:Must-Have .NET Utilities
Agenda • The Holy Trinity • Source Control • Virtualization • 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) • JetBrainsUnitRun(http://www.jetbrains.com/unitrun/) • NAnt (http://nant.sourceforge.net) • Make without the wrinkles • See also: • NAntContrib (http://nantcontrib.sourceforge.net) • MSBuild (VS 2005) • NDoc (http://ndoc.sourceforge.net) • API documentation generator for .NET Framework v1.X • See also: • Sandcastle (http://www.sandcastledocs.com) • Sandcastle Builder (http://www.codeproject.com/useritems/SandcastleBuilder.asp) • GhostDoc(http://www.roland-weigelt.de/ghostdoc)
Source Control • 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) • Visual Studio add-in • vss2svn (http://vss2svn.tigris.org) • Perl script to convert VSS DB to SVN • SourceGear Vault (http://www.sourcegear.com/vault/) • VSS- or CVS-style check-ins • SQL Server DB backend • Team Foundation Server (TFS) • SQL Server 2005 backend • Includes project portal, work item tracking, process enforcement, build server, reports, etc. • Requires Visual Studio Team System (VSTS) $$$ $$$
Virtualization • Virtual PC 2007 (http://www.microsoft.com/windows/virtualpc) • Free • x64 Host, but not Guest • VMWare Workstation 6.0 (http://www.vmware.com/products/ws/) • USB support beyond mice and keyboards • Multiple snapshots • x64 Host/Guest • Multi-monitor in Guest • Headless VMs • Many more features $$$
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
Code Analysis Tools Dynamic • NCover(http://www.ncover.org/) • Analyzes code coverage • NProf(http://nprof.sourceforge.net) OR • JetBrainsdotTrace Profiler (http://www.jetbrains.com/profiler/) • Profiles application performance • CLR Profiler(http://www.microsoft.com/downloads/details.aspx?familyid=A362781C-3870-43BE-8926-862B40AA0CD0&displaylang=en or http://tinyurl.com/ozsgr) • Profiles allocations and garbage collections $$$
Build Tools • CruiseControl .NET(http://ccnet.thoughtworks.com/) • Continuous integration server • Builds via NAnt, MSBuild, DevEnv, 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 or http://tinyurl.com/2vvms) • 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 or http://tinyurl.com/mqm1) • 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 • Notepad2(http://www.flos-freeware.ch/notepad2.html) • Notepad++ (http://notepad-plus.sourceforge.net/) • Both excellent Notepad replacements • CopySourceAsHtml(http://www.jtleigh.com/people/colin/software/CopySourceAsHtml/ or http://tinyurl.com/s7mea) • Visual Studio Add-in for copying source code as HTML
Coding Tools • Database Publishing Wizard(http://www.codeplex.com/sqlhost) • Scripts a SQL Server database, including data • RegexDesigner.NET(http://www.sellsbrothers.com/tools/#regexd) • Runs regular expressions using System.Text.RegularExpressions • pinvoke.net (http://www.pinvoke.net) • Public wiki for P/Invoke signatures
Coding Tools • CodeRush(http://www.devexpress.com/Products/NET/CodeRush/) • Intuitive coding tool • Refactor Pro!(http://www.devexpress.com/Products/NET/Refactor/) • Refactoring tool with awesome previews • ReSharper(http://www.jetbrains.com/resharper/) • Refactoring/coding tool with excellent support for TDD $$$ $$$ $$$
Questions JamesKovacs.com jkovacs@post.harvard.edu