Home / Posts tagged ".NET"

Real World builds in .NET

How do you build your Visual Studio solution, verify your coding guidelines and execute tests?
What steps do you take when adding a new project to your Visual Studio solution?

Living in the past

Let me summarize my past experience. I have tried several different approaches, all of them involved build scripts, and Visual Studio Project Templates or manual editing of *.csproj files. I don’t like any of the approaches. Why? I will show you some drawbacks of this kind of build definitions.

Build scripts:

  • you have to learn a scripting language
  • you try to solve problems which you would solve in your preferred .NET language with less effort

Visual Studio Project Templates:

  • making up-to-date versions available to all team members is a PITA (pain in the ass butt)
  • update your templates and you still have to update all previously existing *.csproj files manually
  • if you change your build process (e.g. enable StyleCop) you have to release and distribute a new version of your templates

Manual editing:

  • enough said

Imagine the unimaginable

Continue reading

Clean Code and Clean TDD Cheat Sheets

Updated: new version here!

I have compiled two cheat sheets about clean code (the ones mentioned in my post about Code Quality!).

The first covers clean code – code that is easy readable and keeps changeable. The second is about Test Driven Development. Both cheat sheets list principles, patterns, practices and smells.

You can download them here – Clean Code Cheat Sheet V1.3, Clean TDD Cheat Sheet V1.2.

Take a look!

I’d like to read your feedback in the comments section…

Clean Code

(just an unreadable preview 🙂   – click on link in text above)

Speaking at BASTA! in Mainz (Germany) on September 21st 2010

I’m going to speak about code quality (see my short version of the presentation) at the conference BASTA!

BASTA! is mainly focused on .NET technology and gives you the opportunity to see and speak with a wide range of technology experts.

If you have any feedback of what you are missing in my short presentation, please write a comment here or on the post with the presentation. The short version takes about 30 minutes and my speak at BASTA! is scheduled for 1 hour and 15 minutes.  I will mainly show real life examples of the theory shown in the short version. But if you want to here something specific, ask for it 🙂

I’ll probably will publish the long version on this blog, too – for all of you not joining the conference.

So long…

Hierarchical State Machine with Fluent Definition Syntax (.NET)

The .NET component library bbv.Common (open source – Apache License 2.0) provides a powerful hierarchical state machine.

Its features are:

  • value type based (enums, ints, …) resulting in single class state machines.
  • actions
    • on transitions
    • entry and exit actions (parametrizable)
  • transaction guards
  • hierarchical
    • different history behaviours to initialize state always to same state or last active state
  • fluent definition interface
  • synchronous/asynchronous state machine
    • passive state machine handles state transitions synchronuously
    • active state machine handles state transitions asynchronously on the worker thread of the state machine
  • configurable thorough logging simplifies debugging using log4net (can be replaced easily with custom logging)
  • state machine report for textual description of state machine

Continue reading

bbv.Common moved to Google Code

bbv.Common – a .NET library containing components for

  • (a)synchronous loosly coupled event notifications (event broker),
  • hierarchical state machines,
  • active objects and asynchronous workers to build robust multi-threaded applications,
  • context based loosely coupled rule engines
  • and much more

has move from sourceforge.net to Google Code.

Check out the project at http://code.google.com/p/bbvcommon/

Join the discussion at http://groups.google.com/group/bbvcommon