{"id":189,"date":"2006-10-01T20:42:32","date_gmt":"2006-10-02T02:42:32","guid":{"rendered":"http:\/\/jameskovacs.com\/2006\/10\/02\/And+Thats+A+Wrap+Edmonton+Code+Camp"},"modified":"2006-10-01T20:42:32","modified_gmt":"2006-10-02T02:42:32","slug":"and-thats-a-wrap-edmonton-code-camp","status":"publish","type":"post","link":"https:\/\/www.jameskovacs.com\/index.php\/2006\/10\/01\/and-thats-a-wrap-edmonton-code-camp\/","title":{"rendered":"And That&#8217;s a Wrap: Edmonton Code Camp"},"content":{"rendered":"<p>The <a href=\"http:\/\/www.edmontoncodecamp.com\/\">Edmonton Code Camp<\/a> was a blast. <a href=\"http:\/\/blogs.msdn.com\/jbristowe\">John Bristowe<\/a> and I drove up Saturday morning and returned late Saturday night. There were lots of action packed presentations throughout the day, but <a href=\"http:\/\/www.jpboodhoo.com\/\">Jean-Paul Boodhoo<\/a> stole the show as per usual. His presentation on cool things you can do with generics was excellent and there&nbsp;was not a PowerPoint slide to be seen. It was a nice contrast to my PowerPoint-heavy <a href=\"http:\/\/jameskovacs.com\/downloads\/ToolsOfTheTradeV3.0.pptx\">Tools of the Trade: Must-Have .NET Utilities<\/a>&nbsp;(PowerPoint 2007 slidedeck), which was on right before. (Maybe I&#8217;ll try doing that presentation without the PowerPoint crutch next time.) <img decoding=\"async\" src=\"http:\/\/jameskovacs.com\/downloads\/smile1.gif\">&nbsp;Thanks to everyone who came to my talk and especially those who asked questions.&nbsp;To save people from having to download the slidedeck just to get the links, here is the tools that I talked about in raw, unadulterated HTML:<\/p>\n<h3>The Holy Trinity<\/h3>\n<ul>\n<li>NUnit (<a href=\"http:\/\/www.nunit.org\/\">http:\/\/www.nunit.org<\/a>)<\/li>\n<ul>\n<li>Unit testing framework<\/li>\n<li>See also:<\/li>\n<ul>\n<li>TestDriven.NET (<a href=\"http:\/\/www.testdriven.net\/\">http:\/\/www.testdriven.net<\/a>)<\/li>\n<\/ul>\n<\/ul>\n<li>NAnt (<a href=\"http:\/\/nant.sourceforge.net\/\">http:\/\/nant.sourceforge.net<\/a>)<\/li>\n<ul>\n<li>Make without the wrinkles<\/li>\n<li>See also:<\/li>\n<ul>\n<li>NAntContrib (<a href=\"http:\/\/nantcontrib.sourceforge.net\/\">http:\/\/nantcontrib.sourceforge.net<\/a>)<\/li>\n<li>MSBuild (VS 2005)<\/li>\n<\/ul>\n<\/ul>\n<li>NDoc (<a href=\"http:\/\/ndoc.sourceforge.net\/\">http:\/\/ndoc.sourceforge.net<\/a>)<\/li>\n<ul>\n<li>API documentation generator for .NET Framework v1.X<\/li>\n<li>See also:<\/li>\n<ul>\n<li>Sandcastle (<a href=\"http:\/\/www.sandcastledocs.com\/\">http:\/\/www.sandcastledocs.com<\/a>) <\/li>\n<li>Sandcastle Builder (<a href=\"http:\/\/www.codeproject.com\/useritems\/SandcastleBuilder.asp\">http:\/\/www.codeproject.com\/useritems\/SandcastleBuilder.asp<\/a>)<\/li>\n<li>GhostDoc (<a href=\"http:\/\/www.roland-weigelt.de\/ghostdoc\">http:\/\/www.roland-weigelt.de\/ghostdoc<\/a>)<\/li>\n<\/ul>\n<\/ul>\n<\/ul>\n<h3>Source Control<\/h3>\n<ul>\n<li>Subversion<\/li>\n<ul>\n<li>Subversion server (<a href=\"http:\/\/subversion.tigris.org\/\">http:\/\/subversion.tigris.org<\/a>)<\/li>\n<ul>\n<li>Command-line BerkeleyDB or file system backend<\/li>\n<\/ul>\n<li>TortoiseSVN (<a href=\"http:\/\/tortoisesvn.tigris.org\/\">http:\/\/tortoisesvn.tigris.org<\/a>)<\/li>\n<ul>\n<li>Explorer extension<\/li>\n<\/ul>\n<li>RapidSVN (<a href=\"http:\/\/rapidsvn.tigris.org\/\">http:\/\/rapidsvn.tigris.org<\/a>)<\/li>\n<ul>\n<li>Traditional VSS-style GUI<\/li>\n<\/ul>\n<li>AnkhSVN (<a href=\"http:\/\/ankhsvn.tigris.org\/\">http:\/\/ankhsvn.tigris.org<\/a>)<\/li>\n<ul>\n<li>Visual Studio add-in<\/li>\n<\/ul>\n<li>vss2svn (<a href=\"http:\/\/vss2svn.tigris.org\/\">http:\/\/vss2svn.tigris.org<\/a>)<\/li>\n<ul>\n<li>Perl script to convert VSS DB to SVN<\/li>\n<\/ul>\n<\/ul>\n<li>SourceGear Vault (<a href=\"http:\/\/www.sourcegear.com\/vault\/\">http:\/\/www.sourcegear.com\/vault\/<\/a>) $$$<\/li>\n<ul>\n<li>VSS- or CVS-style check-ins<\/li>\n<li>SQL Server DB backend<\/li>\n<\/ul>\n<li>Team Foundation Server (TFS) $$$<\/li>\n<ul>\n<li>SQL Server 2005 backend<\/li>\n<li>Includes project portal, work item tracking, process enforcement, build server, reports, etc.<\/li>\n<li>Requires Visual Studio Team System (VSTS)<\/li>\n<\/ul>\n<\/ul>\n<h3>Code Analysis Tools &#8211; Static<\/h3>\n<ul>\n<li>FxCop (<a href=\"http:\/\/www.gotdotnet.com\/team\/fxcop\/\">http:\/\/www.gotdotnet.com\/team\/fxcop\/<\/a>)<\/li>\n<ul>\n<li>Analyzes code against a rules database including coding standards, best practices, and defects<\/li>\n<\/ul>\n<li>LibCheck (<a href=\"http:\/\/www.microsoft.com\/downloads\/details.aspx?FamilyID=4B5B7F29-1939-4E5B-A780-70E887964165&amp;displaylang=en\">http:\/\/www.microsoft.com\/downloads\/details.aspx?FamilyID=4B5B7F29-1939-4E5B-A780-70E887964165&amp;displaylang=en<\/a>)<\/li>\n<ul>\n<li>Displays API differences between two assemblies<\/li>\n<\/ul>\n<\/ul>\n<h3>Code Analysis Tools &#8211; Dynamic<\/h3>\n<ul>\n<li>NCover (<a href=\"http:\/\/www.ncover.org\/\">http:\/\/www.ncover.org\/<\/a>)<\/li>\n<ul>\n<li>Analyzes code coverage<\/li>\n<\/ul>\n<li>NProf (<a href=\"http:\/\/nprof.sourceforge.net\/\">http:\/\/nprof.sourceforge.net<\/a>)<\/li>\n<li>JetBrains dotTrace Profiler (<a href=\"http:\/\/www.jetbrains.com\/profiler\/\">http:\/\/www.jetbrains.com\/profiler\/<\/a>) $$$<\/li>\n<ul>\n<li>Profiles application performance<\/li>\n<\/ul>\n<li>CLR Profiler (<a href=\"http:\/\/www.microsoft.com\/downloads\/details.aspx?familyid=A362781C-3870-43BE-8926-862B40AA0CD0&amp;displaylang=en\">http:\/\/www.microsoft.com\/downloads\/details.aspx?familyid=A362781C-3870-43BE-8926-862B40AA0CD0&amp;displaylang=en<\/a>)<\/li>\n<ul>\n<li>Profiles allocations and garbage collections<\/li>\n<\/ul>\n<\/ul>\n<h3>Build Tools<\/h3>\n<ul>\n<li>CruiseControl .NET (<a href=\"http:\/\/ccnet.thoughtworks.com\/\">http:\/\/ccnet.thoughtworks.com\/<\/a>)<\/li>\n<ul>\n<li>Continuous integration server Builds via NAnt, MSBuild, DevEnv, or custom<\/li>\n<li>Runs unit testing (NUnit), coverage (NCover) and\/or code analysis (FxCop) on builds (optional)<\/li>\n<li>Reports build and\/or test failures via email<\/li>\n<li>Dashboard (ASP.NET app) shows current and past build status<\/li>\n<\/ul>\n<\/ul>\n<h3>Debugging Tools<\/h3>\n<ul>\n<li>Lutz Roeder\u2019s Reflector (<a href=\"http:\/\/www.aisto.com\/roeder\/dotnet\/\">http:\/\/www.aisto.com\/roeder\/dotnet\/<\/a>)<\/li>\n<ul>\n<li>Reverse engineers MSIL into C#, VB.NET, or Delphi<\/li>\n<li>See also:<\/li>\n<ul>\n<li>FileDisassembler Add-in (<a href=\"http:\/\/www.denisbauer.com\/NETTools\/FileDisassembler.aspx\">http:\/\/www.denisbauer.com\/NETTools\/FileDisassembler.aspx<\/a>)<\/li>\n<li>Reflector Diff Add-in (<a href=\"http:\/\/www.codingsanity.com\/diff.htm\">http:\/\/www.codingsanity.com\/diff.htm<\/a>)<\/li>\n<\/ul>\n<\/ul>\n<li>ClrSpy (<a href=\"http:\/\/www.gotdotnet.com\/Community\/UserSamples\/Details.aspx?SampleGuid=c7b955c7-231a-406c-9fa5-ad09ef3bb37f\">http:\/\/www.gotdotnet.com\/Community\/UserSamples\/Details.aspx?SampleGuid=c7b955c7-231a-406c-9fa5-ad09ef3bb37f<\/a>)<\/li>\n<ul>\n<li>Exposes Customer Debug Probes (CDP) for diagnosing problems with COM Interop and P\/Invoke<\/li>\n<\/ul>\n<li>Fiddler (<a href=\"http:\/\/www.fiddlertool.com\/\">http:\/\/www.fiddlertool.com<\/a>)<\/li>\n<ul>\n<li>HTTP debugging proxy, which logs all HTTP traffic between your browser and the network<\/li>\n<li>Allows you to \u201cfiddle\u201d and replay requests<\/li>\n<\/ul>\n<li>XmlSerializerPreCompiler (<a href=\"http:\/\/www.sellsbrothers.com\/tools\/#XmlSerializerPreCompiler\">http:\/\/www.sellsbrothers.com\/tools\/#XmlSerializerPreCompiler<\/a>)<\/li>\n<ul>\n<li>Fantastic tool for debugging mysterious XmlSerializer exceptions<\/li>\n<\/ul>\n<li>Everything by SysInterals.com! (<a href=\"http:\/\/www.sysinternals.com\/\">http:\/\/www.sysinternals.com<\/a>)<\/li>\n<ul>\n<li>Tools for monitoring disk, files, handles, registry, processes, and more<\/li>\n<\/ul>\n<\/ul>\n<h3>Coding Tools<\/h3>\n<ul>\n<li>Notepad2 (<a href=\"http:\/\/www.flos-freeware.ch\/notepad2.html\">http:\/\/www.flos-freeware.ch\/notepad2.html<\/a>)<\/li>\n<li>Notepad++ (<a href=\"http:\/\/notepad-plus.sourceforge.net\/\">http:\/\/notepad-plus.sourceforge.net\/<\/a>)<\/li>\n<ul>\n<li>Both excellent Notepad replacements<\/li>\n<\/ul>\n<li>CopySourceAsHtml (<a href=\"http:\/\/www.jtleigh.com\/people\/colin\/software\/CopySourceAsHtml\/\">http:\/\/www.jtleigh.com\/people\/colin\/software\/CopySourceAsHtml\/<\/a>)<\/li>\n<ul>\n<li>Visual Studio Add-in for copying source code as HTML<\/li>\n<\/ul>\n<li>RegexDesigner.NET (<a href=\"http:\/\/www.sellsbrothers.com\/tools\/#regexd\">http:\/\/www.sellsbrothers.com\/tools\/#regexd<\/a>)<\/li>\n<ul>\n<li>Runs regular expressions using System.Text.RegularExpressions<\/li>\n<\/ul>\n<li>pinvoke.net (<a href=\"http:\/\/www.pinvoke.net\/\">http:\/\/www.pinvoke.net<\/a>)<\/li>\n<ul>\n<li>Public wiki for P\/Invoke signatures<\/li>\n<\/ul>\n<li>CodeRush (<a href=\"http:\/\/www.devexpress.com\/Products\/NET\/CodeRush\/\">http:\/\/www.devexpress.com\/Products\/NET\/CodeRush\/<\/a>) $$$<\/li>\n<ul>\n<li>Intuitive coding tool<\/li>\n<\/ul>\n<li>Refactor Pro! (<a href=\"http:\/\/www.devexpress.com\/Products\/NET\/Refactor\/\">http:\/\/www.devexpress.com\/Products\/NET\/Refactor\/<\/a>) $$$<\/li>\n<ul>\n<li>Refactoring tool with awesome previews<\/li>\n<\/ul>\n<li>ReSharper (<a href=\"http:\/\/www.jetbrains.com\/resharper\/\">http:\/\/www.jetbrains.com\/resharper\/<\/a>) $$$<\/li>\n<ul>\n<li>Refactoring\/coding tool with excellent support for TDD and personal favourite<\/li>\n<\/ul>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>The Edmonton Code Camp was a blast. John Bristowe and I drove up Saturday morning and returned late Saturday night. There were lots of action packed presentations throughout the day, but Jean-Paul Boodhoo stole the show as per usual. His presentation on cool things you can do with generics was excellent and there&nbsp;was not a [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3,17],"tags":[],"class_list":["post-189","post","type-post","status-publish","format-standard","hentry","category-dotnettools","category-presentations"],"_links":{"self":[{"href":"https:\/\/www.jameskovacs.com\/index.php\/wp-json\/wp\/v2\/posts\/189","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.jameskovacs.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.jameskovacs.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.jameskovacs.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.jameskovacs.com\/index.php\/wp-json\/wp\/v2\/comments?post=189"}],"version-history":[{"count":0,"href":"https:\/\/www.jameskovacs.com\/index.php\/wp-json\/wp\/v2\/posts\/189\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.jameskovacs.com\/index.php\/wp-json\/wp\/v2\/media?parent=189"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.jameskovacs.com\/index.php\/wp-json\/wp\/v2\/categories?post=189"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.jameskovacs.com\/index.php\/wp-json\/wp\/v2\/tags?post=189"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}