Chris Eargle

Life Student of the Kodefu Arts

MSBuild Extension Pack First Impression

by chris 8. October 2008 08:28

Mike Fourie has begun a project to combine two of the larger MSBuild task libraries. FreeToDev and SDC tasks have a lot of overlap, so I believe the MSBuild Extension Pack is a great endeavor to simplify the life of many of us build architects. However, I do have a gripe after reading the description on the project page.

It implements a TaskAction based design which improves usability and maintenance whilst reducing the code base, e.g. to start or stop a website, typically two task files would be created to perform each task, whereas the pack accomplishes this in a single task files using TaskAction=”Stop” and TaskAction=”Start”.

I feel that a "TaskAction based design" decreases cohesion. Each task should be like a method: the name describes what it does and the attributes are the parameters to do it. If you start coding tasks that change behavior, then you've effectively given the class (remember, tasks are classes) too much responsibility. If multiple tasks have similar responsibilities, the correct approach is to abstract. Create a base class with the common elements, encapsulate what varies, then implement that variation in the child classes which are represented in MSBuild as tasks.

In the example given on the project page, I would prefer to have <Website.Start ... /> and <Website.Stop ... /> than <Website TaskAction="Start" ... /> and <Website TaskAction="Stop" ... />

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

msbuild

Kodefu

E-mail | Kick it! | DZone it! | del.icio.us
Permalink | Comments (4) | Post RSSRSS comment feed

Related posts

Introducing MSBuildThe Introducing MSBuild presentation.Set Operations in MSBuildThere are scenarios where the situation calls for performing set operations on item collections. You...Environment Variables and MSBuildEverything worked fine the last time I gave my MSBuild presentation. There were no changes to my fil...

Comments

December 21. 2008 20:53

Busby SEO Test

thank you very much chris

Busby SEO Test us

December 24. 2008 22:44

Busby SEO Test Pinay

hi,

Me pregunto por qué a las grandes es esta tecnología y un montón de usuario, ¿cuál es la mejor palabra o de prensa esta blogengine?

Busby SEO Test Pinay us

December 25. 2008 00:02

Busby SEO Test

it has a good features

Busby SEO Test us

December 25. 2008 00:37

Busby SEO Test

Great combination project

Busby SEO Test id

Saving the comment

Add comment


(Will show your Gravatar icon)  

  Country flag

[b][/b] - [i][/i] - [u][/u]- [quote][/quote]



Live preview

January 5. 2009 15:30

Powered by BlogEngine.NET 1.3.1.0
Theme by Mads Kristensen

About the author

Chris Eargle Chris Eargle
Enterprise .NET developer in Columbia, SC.

E-mail me Send mail

Pages

  • Presentations

Twitter Updates

    Recent comments

    • Kicking Off 2009 In Style (1)
      Justin James wrote: Congrats to both, particularly the C# MVP! I took … [More]
    • MDC Atlanta (6)
      SEO Dubai wrote: I forgot to congratulate you..:) [More]
    • MDC Atlanta (6)
      SEO Dubai wrote: wish you are happy in your new place.. [More]
    • WCF 3.5 Security Guidelines (9)
      Busby SEO Test wrote: nice work man [More]
    • Project Astoria September 2007 CTP Released (1)
      Busby SEO Test Pinay wrote: good luck to the project, i hope it gonna finish q… [More]
    • Load Balancing Header Issue (5)
      Busby SEO Test wrote: Me too [More]
    • WCF 3.5 Security Guidelines (9)
      Busby SEO Test wrote: nice work man [More]
    • WCF 3.5 Security Guidelines (9)
      Busby seo test wrote: Security indeed is very important in web developme… [More]
    • The Path Is Not a Legal Form (5)
      Busby SEO Test wrote: thanks for the information [More]
    • The Path Is Not a Legal Form (5)
      Busby SEO Test wrote: Thanks for share you analize on this post. [More]

    Archive

    • 2009
      • January (1)
    • 2008
      • December (5)
      • November (4)
      • October (7)
      • September (8)
      • August (5)
      • July (1)
      • June (1)
      • April (4)
      • March (1)
      • February (4)
      • January (5)
    • 2007
      • December (5)
      • November (1)
      • October (6)
      • September (3)
      • August (1)
      • June (1)

    Tags

    • activex
    • addin
    • ado.net data services
    • ajax
    • architecture
    • asp.net
    • astoria
    • azure
    • beta
    • bug
    • c#
    • champs
    • code camp
    • com
    • community
    • communitycredit
    • consolas
    • continuous integration
    • conversion
    • ctp
    • database
    • deployment
    • design
    • design principles
    • download
    • ebook
    • entity
    • entlib
    • environment variables
    • expression blend
    • fail
    • font
    • framework
    • gadget
    • generics
    • grid
    • guidelines
    • icon
    • ineta
    • interfaces
    • jacksonville
    • lamdba
    • linq
    • linqtosql
    • list
    • live mesh
    • macro
    • mdc
    • mobile
    • msbuild
    • msdn
    • msi
    • mvc
    • mvp
    • powertoy
    • preview
    • properties
    • ray ozzie
    • refactoring
    • regasm
    • russ fustino
    • security
    • serialization
    • silverlight
    • snippet
    • source code
    • sql server
    • sql2008
    • sqlmetal
    • srss
    • starter kit
    • stream
    • string
    • tfs2008
    • trial
    • usability
    • ux
    • vb.net
    • vbscript
    • vista
    • visual studio
    • vs2008
    • wcf
    • web
    • winforms
    • wpf
    • xml

    Categories

    • RSS feed for Bleeding EdgeBleeding Edge (5)
    • RSS feed for Build NinjaBuild Ninja (2)
    • RSS feed for CEDGCEDG (2)
    • RSS feed for GeneralGeneral (1)
    • RSS feed for KodefuKodefu (21)
    • RSS feed for Path NotesPath Notes (10)
    • RSS feed for PresentationPresentation (5)
    • RSS feed for TechniquesTechniques (2)
    • RSS feed for TrainingTraining (5)
    • RSS feed for WeaponsWeapons (4)
    • RSS feed for ZenZen (5)

    Archive

    Blogroll

    • RSS feed for Structure Too BigStructure Too Big
      • Should you buy an exten...
      • WorldMaps Update
      • MSDN Roadshow -- coming...
    • RSS feed for Chris CraftChris Craft
      • Alpha Blending and the...
      • How to Resize Images Pa...
      • Raleigh Code Camp Fall...
    Download OPML file OPML

    Disclaimer

    The opinions expressed herein are my own personal opinions and do not represent my employer's view in anyway.

    © Copyright 2009

    Sign in