Home / Archive by category "Announcement"

Machine.Specifications 0.8.3 released

This might seem like a minor release but I personally think is a very good and worthwhile update! The first cool thing in this release is that we have now full AppVeyor support in the console runner. By default the console runner uses auto detection to determine whether it is running under AppVeyor and automatically prints out the necessary outputs for AppVeyor to report the progress, the passed and failed specs and more on the user interface. The auto detection feature uses the APPVEYOR_API_URL environment variable. The auto detection can be disabled by providing the –no-appveyor-autodetect flag to the console runner. This behavior is congruent to the TeamCity integration.



The next very cool and anticipated feature is the resharper gallery integration for the plugin. The Machine.Specification plugin can now be installed by using the Resharper Extension Manager for Resharper 8.0/8.1/8.2 and dotCover 2.6/2.7. The old installation way with batch files is still supported. But I strongly recommend to use the Extension Gallery! You’ll see why at the end of this post.

Before you install the plugin you need to make sure all previously installed MSpec plugins are removed.

By default the batch files installed the plugin files into %APPDATA%\JetBrains\ReSharper\v8.2\Plugins\mspec.

  1. Make sure you close all instances of VisualStudio and delete the mspec plugin folder.
  2. After that restart VisualStudio, goto the Resharper > ExtensionManager menu and search for Machine.Specifications.Runner.Resharper.
  3. Install the latest stable version and you are ready to go!

In the future all plugin updates will be delivered automatically via the Extension Gallery and the old installation procedure with batch files will be deprecated. The final picture says more than thousand words ;)

Extension Update


Last but not least I want to give a shout out to the following contributors who provided the AppVeyor support:

Happy mspecing ;)

Machine.Specifications 0.8.2 released

After some short nights we finally managed to stabilize the resharper plugin for Machine.Specifications. The latest stable release is 0.8.2. What has changed?

  • Fixes specs not being loaded into Resharper
  • Fixes specs only temporarily shown when base class has tags attribute
  • Support subject attribute on derived and base class in Resharper Runner

Thanks for the patience! Happy coding

The particular service platform introduction

You have already heard me talking or at least read a blog post about NServiceBus from me ;) The next big release from particular software is just around the corner! This time it is not just another version of NServiceBus. No, it is a whole platform or toolset you can use to build up complex distributed systems based on NServiceBus. I give you a brief overview over the platform and then dive into ServiceMatrix. Let’s get started! Continue reading

Onion Architecture Article in Method and Tools Magazine

My article about Onion Architecture has just been released in the Method and Tools Magazine. The article contains even more insights into the Onion Architecture and how it compares to traditional Layered Architecture by analyzing code samples with Structure Studio. I highly recommend you read it.

Methods & Tools is a free software development magazine on Project Management, Software Testing, Agile, Scrum, Lean, Kanban
Requirements (UML, Business Analysis, User Stories), Programming (Java,.NET, Ruby, JavaScript), Databases, User Experience (UX)
Open Source Tools, Software Process Improvement (CMMI, SPICE), Software Architecture, Software Development Jobs
Subscribe to Methods & Tools if you are not afraid to read more than one page to get smarter!

The newest spring edition contains the following interesting articles (including mine):

  • The Principles of Done – How to Get Done Done in Scrum
  • Doing Valuable Agile Retrospectives – Why, When and How to Perform Retrospectives in Scrum
  • Chop Onions Instead of Layers – for a Better Software Architecture
  • Ranorex – Automated Testing Tool for Desktop, Web & Mobile Applications

Download the article directly and for free on their website! I suggest you also click the subscribe button to get notified when the next magazine is published. I would like to thank Franco Martinig for giving me the possibility to publish my article in his magazine!

Remember: Chop onions instead of layers and turn your tears of sorrow into tears of delight.

Machine.Specifications & Machine.Specifications.Should 0.7.0 released

I just released the newest stable release of Machine.Specifications. The newest stable release contains the version number 0.7.0. What has changed in this release? There is one big change and in fact this is the only relevant change for the users of the library:

  • The should extensions have been decoupled into its own nuget package!

Machine.Specifications used to ship directly with its own ShouldExtensions. This was a bit of a pain for people using other assertion libraries like FluentAssertions. I personally prefer also FluentAssertions over other assertion libraries and even over the Machine.Specifications ShouldExtensions. In the past the internally shipped ShouldExtensions would “pollute” IntelliSense for example if you use FluentAssertions. This is now resolved!

The following nuget packages are now available:

Read the following instruction carefully!

If you are a user of the Machine.Specifications ShouldExtensions then upgrade by installing the Machine.Specifications.Should or -Signed package. This has a dependency to Machine.Specifications. I’ve seen issues with nuget that installs a pretty old version especially with the signed package. This seems to be a nuget bug. If this happens just upgrade the Machine.Specifications package in Visual Studio manually afterwards.

If you are a user of for example FluentAssertions then just upgrade the Machine.Specifications or -Signed package and you’ll never see the extension in IntelliSense again (unless you install the package ;) ).

If you have any issues please use the official github issue tracker.

Happy coding!

Machine.Specifications 0.6.2 released

While we are constantly pushing forward the development of Machine.Specifications it can happen that regression occurs especially in the area of the resharper provider and runner. Unfortunately we don’t have integration tests in that area. Apart from the 0.6.0 build we broke the capability of having internal specs or private nested specs. This issue is now addressed and a new release under 0.6.2 is available on nuget. Check it out and provide feedback. So the this release contains the two changes

  • Enable support for internal specs
  • Enable support for private nested specs

I’m planning advance more and more to version 1.0.0. Along the way I will be dropping support for old legacy stuff (old versions of dotCover, Resharper…) in order to clean the internals up. Feedback and comments are welcome here. Download the latest release with nuget here.

Machine.Specifications 0.6.1 released

Unfortunately while migrating a lot of existing stuff around the nuget packaging scripts I accidentally broke the nuspec file. I’m really sorry for that! So here is the newest release 0.6.1 which addresses the nuget related issues. Happy coding!

The latest release contains the following changes:

  • Nuget package adds proper references for .NET 4.0 and 4.5
  • Nuget package excludes sources

I’m planning advance more and more to version 1.0.0. Along the way I will be dropping support for old legacy stuff (old versions of dotCover, Resharper…) in order to clean the internals up. Feedback and comments are welcome here. Download the latest release with nuget here.

Packtpub: Explore something new this Columbus Day with Packt’s biggest ever sale

To all geeks out there: I’m usually hesitant when it comes to publishing marketing stuff on planetgeek. But this time I think it is worth it. Packtpub has 50% off on all their Books and Videos. This is definitely worth checking out. Here is their official press release and go and fill your bookshelf :):

Packt Publishing is giving everyone the chance to explore its full range of over 1600 DRM-free eBooks this Columbus Day at a massive 50% off at http://bit.ly/1bqvB29 , for 4 whole days. Customers simply use the code COL50 in their cart – as many times as they like until Thursday October 17th. The offer even extends to Packt’s bestselling pre-order of 2013, the highly acclaimed Mastering Web Application Development with AngularJS.

But that’s not all – to mark the transition out of beta stage, the publisher will also be including its Packt Video product range in this limited offer. These practical screencast tutorials give users the working knowledge they need to get the job done, and all videos will be featured in the Columbus Day sale at 50% off – that includes the hugely popular Kali Linux – Backtrack Evolved: A Penetration Tester’s Guide.

The exclusive 50% discount code COL50 will be active on all eBooks and Videos until Thursday October 17th.

Clean Code Cheat Sheet

It took me about one and a half year to update my cheat sheet about clean code and TDD.

But now, it’s here.

The cheat sheet has grown quite a bit and now contains principles, patterns, smells and guidelines for

  • clean code
  • class and package design
  • TDD – Test Driven Development
  • ATDD – Acceptance Test Driven Development
  • Continuous Integration

I had to re-layout the sheets because maintenance became a nightmare (yes, very ironic).

Download: Clean Code V2.2

Creative Commons License
This work is licensed under a Creative Commons Attribution 3.0 Unported License.

Feedback is highly welcome. Please write a comment below.

Clean Code Cheat Sheet Teaser

Update V 2.1: thanks for your feedback

  • added + and – for DOs and DONTs to make it easier to tell them apart
  • added a creative commons Attribution 3.0 Unported license.

Update V 2.2:

  • changed the colours to be better distinguishable