Infovark Underground

  • news
    • infoblog
    • underground
  • product
  • download
  • buy
  • support
  • about
    • ← Using Modal Dialogs with a Splash Screen in WPF
    • →

    Review: Brownfield Application Development in .NET

    04 Apr 2011 by Dean in .NET, Books, Programming / No Comments

    I purchased my copy of Brownfield Application Development in .Net almost as soon as it hit the shelves. I’ve been reading Kyle Baley’s entertaining posts about software development on CodeBetter.com for several years, so I thought I’d get his and co-author Donald Belcham’s consolidated development advice in a handy paperback form.

    Brownfield Application Development in .NET

    Brownfield Application Development in .NET

    I was surprised to read that Brownfield has been out for a full year now, and figured it was high time to post my review of it. (I’d been meaning to post a review of the book for several months, but it’s been on loan to several different people. I didn’t get it back into my possession until a few weeks ago, which should tell you something about its quality right away.)

    Brownfield is about the tools and techniques required to get an existing .NET application under control. Sadly, most of us developers have encountered development projects that were rushed, cobbled together, barely functional messes. This book is about reworking the application and its surrounding environment so that development work can continue on a sustainable footing.

    The book is divided into two parts: the ecosystem and the code. The ecosystem describes all the necessary components to support modern software development:

    • Source control
    • Continuous integration
    • Automated testing
    • Code analysis and metrics
    • Defect tracking

    This was the most valuable part of the book. You’ll see these topics covered elsewhere, but they’re often scattered across vendor sites, developer forms, and programmer blogs. Having all these best practices gathered in one place is worth the price of the book alone. It makes a great checklist to use to evaluate the status of your current development projects as well as any future work you undertake.

    I’ve also found it helpful to get Java developers or development teams up to speed on the .NET suite of tools and practices. It’s saved me a lot of time translating the “we used to do it like this in Java…” conversations into their .NET equivalents.

    The second part of the book concerns coding practices that can help sort out a legacy codebase. I found this much less useful than the first section. While Brownfield provides a useful summary, much of this is material that is covered in depth elsewhere. The whirlwind tour of coding practices includes:

    • OO principles
    • Layers and tiers
    • Taming dependencies
    • User interface patterns
    • Data access patterns
    • Managing external dependencies
    • Keeping up momentum

    The final chapter in the list is the only one that touches on the project management aspects of getting an unruly development effort under control. Though it too is a topic that has been covered elsewhere, I was very glad to see that it was included in the book. I’ve found that a slapdash approach to application development reflects as much upon poor management practices as it does on a lack of programmer skills — if not more.

    In conclusion

    If you’re inheriting an old .NET application and don’t know quite where to begin, Brownfield Application Development in .NET is an excellent guide to tools and practices that can help get you started.

    Related posts

    1. Review: Framework Design Guidelines
    2. Review: Working Effectively with Legacy Code
    3. Review: The Pragmatic Programmer
    4. Review: Domain-Driven Design
    5. Review: Code
    • Tweet
    • Tags:
    • best practices
    • Programming
    • Review

    Leave a Comment

    Posting your comment...

    Subscribe to these comments via email

    • Categories

      • .NET (41)
      • AJAX (3)
      • Books (7)
      • HTML (9)
      • Infovark (8)
      • Programming (48)
      • REST (11)
      • SQL (3)
      • Testing (3)
      • Tools (13)
      • UI (3)
      • WCF (11)
      • Web Services (8)
      • WPF (4)
      • XML (4)
    • Archives

    • Get future articles


       

    • Blogroll

      • Ajaxian
      • Anne Van Kesteren
      • Brain.Save()
      • Coding Horror
      • Eric Sink
      • Joel Spolsky
      • John Resig
      • Mark Pilgrim
      • Raymond Chen
      • Scott Hansleman
      • Secret Geek
      • Steve Yegge
      • The Daily WTF
      • The Database Programmer
    • Meta

      • Log in
      • Entries RSS
      • Comments RSS
      • WordPress.org
  • Site map

    • News
    • Product
    • Download
    • Buy
    • Support
    • About
  • Recent Posts

    • Review: Brownfield Application Development in .NET
    • Using Modal Dialogs with a Splash Screen in WPF
    • Highlighting query terms in a WPF TextBlock
    • Getting XAML Hyperlink text to wrap
    • How to format the XAML Hyperlink NavigateUri
  • Twitter

    Copyright 2011 Infovark, Inc. All rights reserved.