Archives / 2010 / August
  • Applying Interface Segregation to Configuration Files

    In .NET, it’s very easy to set up custom configuration section handlers to handle your application or component’s configuration needs.  As my previous post shows, it’s also very easy to configure these with attributes that enforce required fields and other validation.  However, over time it’s very easy to create fairly large configuration sections that violate the Interface Segregation Principle, which states that classes shouldn’t be forced to depend on things they don’t need. Consider this relatively simple configuration section: <configSections> <section name="ConfigurationSettings" type="InterfaceSegregation.Configuration1.ConfigurationSettings, … more

  • System.Core in VS2010 Projects

    I just ran into an odd issue with a VS2010 project.  In my case it was an MVC 2 application I was upgrading from VS2008.  One of the built-in controllers (ProfileController) was failing to compile because it could not resolve the Linq extension method symbols Single() and Matches().  These are located in the System.Core assembly.  I checked my project references in Solution Explorer, and System.Core was not listed.  So I tried Add Reference, and System.Core was listed as included and gave me the option of to Remove it. After some searching, I found this blog post, aptly named Do NOT remove the reference to System.Core from your VS2010 Project.  It pointed out … more

  • Using CCTray with JetBrains TeamCity

    TeamCity is a great build server tool from JetBrains (makers of the awesome Visual Studio add-in, ReSharper).  The user-interface and features of the TeamCity web front-end are wonderful and are leaps and bounds easier to use for new users than my previous favorite, CruiseControl.Net, which required much XMLness to configure.  However, one of my favorite tools from CruiseControl, CCTray, still has no equal among competitors like TeamCity and even the Visual Studio tray watcher for Team Build. Why CCTray Is Awesome CCTray has one job and it does it extremely well.  That job is to let anybody interested in any software projects (that support CCTray) know whenever something … more

  • Startup Business Checklist 2010

    Below is my current checklist for startup businesses in 2010.  This is meant to be relatively industry-agnostic and focuses primarily on online components of the business (meaning, it may not apply to businesses which avoid the Internet for whatever reason).  I’ve included numerous links to more information and references.  Checklists are a great way to ensure you don’t forget important things – check out the Checklist Manifesto for how one doctor is attempting to apply this logic to medicine. If you’re not reading this on my blog, you’re likely missing out on the latest updates to this post – click here to view the source article: Startup Business Checklist 2010 … more

  • Code Analysis Techniques

    There are a number of code analysis tools available for .NET developers, including some stats that are built into the pricier SKUs of Visual Studio.  Recently, I’ve been playing with a relatively new product (released earlier this year by Microsoft agile consulting shop called Nitriq.  Nitriq is a bit like LINQPad for your code.  If you’re not familiar with it, go download LINQPad now – it’s a great tool worth paying for.  I’ll wait until you’re back… Back?  Great!  I think we were discussing using Nitriq for code analysis, which by the way you can run for free on a single assembly.  Before going any further, it’s worth mentioning something … more

  • Getting Started with Code Contracts in VS2010

    The idea of Design By Contract has been around for quite a while, and Microsoft Research has had a project focused on this topic for several years now, called Spec#.  With Visual Studio 2010, there is now support for Code Contracts which are a DevLabs project based on the Spec# project.  You can read more about and download Code Contracts for VS2010 here. Once you’ve downloaded and installed Code Contracts, you’ll have a new tab in your VS2010 projects: With the Code Contracts installed, you can start to use them in your code in place of things like guard clauses to ensure that a parameter is not null.  The benefit of this approach is that you get a richer experience at … more

  • Screencast and Podcast Recording Gear

    I’m working on some screencasts and have had some gear recommended to me that I’m ordering now.  I’ll post back later with an update on how I like these, but if anybody else is interested in what I’ve been told is the best stuff to get, here you go. Microphone The microphone of choice is the Rode Podcaster, pictured at right.  It has a built-in pop filter, so no need to pick up one of those.  This is a USB microphone and doesn’t require any additional boxes or cables.  From the product description: Seamless integration was the idea, and it was obtained by creating a studio dynamic microphone with unparalleled A/D converters, so that the microphone can be plugged … more