Posts by Tag

ALM

Continuous Delivery within the .NET realm

7 minute read

Continuous what? Well, if you browse the internet regularly, you will encounter two different terms that are used rather inconsistently: Continuous Delivery and Continuous Deployment. In my words, Continuous Delivery is a collection of various techniques, principles and tools that allow you to d...

August 30, 2016

Software versioning without thinking about it

6 minute read

Solving the versioning problemIf you're building libraries, products or any other software system, versioning is usually a pretty big deal. It's the only way to determine what version of that library, product or system you're looking at. Before an organization settles on a versioning strategy, ma...

April 23, 2015

Prioritizing projects and tasks with minimum loss of time and money

2 minute read

Last week, I was so fortunate to attend a marvelous talk by Donald Reinertsen on a amazingly effective approach for prioritizing projects within an agile organization (and which is part of SAFe). Most managers will tend to prioritize their projects based on non-quantifiable attributes such as the...

April 19, 2015

How Flowdock helps you get better cross-team collaboration

3 minute read

Is your inbox also filling up with loads of emails all part of some kind of discussion where each reply contains the entire history again? Do you also get all kinds of notification emails from build servers, source control systems, and other things to which somebody is supposed to react? Do you o...

January 11, 2015

The all new coding guidelines for C# 3.0, 4.0 and 5.0 have been published!

4 minute read

After 50000 downloads and the recent final release of Visual Studio 2012 / C# 5.0 it was about time to do a thorough update of the C# Coding Guidelines. Although most of the guidelines have been preserved, I’ve tried to rewrite several of them using a less formal and less verbose writing style. I...

November 26, 2012

Slides and demo code for my SpecFlow/WaTiN talk

less than 1 minute read

Yesterday I did a 2-hour talk on getting the most out of UI automation, particularly using SpecFlow and WaTiN. You can find the slides down here and the demo code at GitHub.<iframe allowfullscreen="" frameborder="0" height="356" marginheight="0" marginwidth="0" scrolling="no" src="http://www.s...

August 31, 2012

Quick Review of The Cucumber Book from a SpecFlow perspective

2 minute read

This week I completed reading a new book titled The Cucumber Book: Behaviour-Driven Development for Testers and Developers by Matt Wynne and Aslak Hellesoy. Aslak is the founder of the Cucumber project (which is what SpecFlow for .NET is based on), and Matt is one of its most active developers. T...

July 30, 2012

In Retrospect: About getting through your Sprint

9 minute read

This is the fourth of several posts in which I’d like to share some of the things we learned throughout more than a year of Agile development using Scrum. Some of them might appear as open doors, but I wish I knew or thought about those before I started that project. Just by looking back at the m...

January 11, 2012

In Retrospect: About Bugs

4 minute read

This is the third of several posts in which I’d like to share some of the things we learned throughout more than 14 sprints of Agile development using Scrum. Some of them might appear as open doors, but I wish I knew or thought about those before I started that project. Just by looking back at th...

November 3, 2011

In Retrospect: About the Sprint Planning

12 minute read

This is the second of several posts in which I’d like to share some of the things we learned throughout more than 14 sprints of Agile development using Scrum. Some of them might appear as open doors, but I wish I knew or thought about those before I started that project. Just by looking back at t...

October 12, 2011

In Retrospect: About Requirements Management

4 minute read

This is the first of several posts in which I’d like to share some of the things we decided throughout 14 sprint retrospective. Some of them might appear as open doors, but I wish I knew or thought about those before I started that project. Just by looking back at the mistakes a team of 9 develop...

September 26, 2011

Speaking at Developer Developer Developer North

less than 1 minute read

I’m honored to have been selected to speak at my first event in the United Kingdom, Developer Developer Developer North, hosted at the University of Sunderland, near New Castle. Our job as a software developer seems to revolve mostly around programming languages, frameworks and Visual Studio. And...

September 14, 2011

Where to find me during the Developer Days 2011

6 minute read

Somebody recently asked me what sessions I was planning to attend at the upcoming 2011 edition of the Microsoft Developer Days in The Hague. To be honest, my primary reason for going to a Dutch conference is to chat with fellow .NET enthusiasts, and attending sessions is usually a side-effect of ...

April 8, 2011

Speaking engagements for the next months

less than 1 minute read

I’m very happy that I’ll be speaking at a number of very nice local and international conferences. On Saturday March 26th, I’ll be joining the Dutch Code Camp event where I’ll be doing a chalk’n’talk on my Silverlight Cookbook initiative. <ul> <li>On Wednesday, April 27th, I will t...

March 17, 2011

ALM Practices every developer should know about

less than 1 minute read

So now that I’ve finished my multi-part post on getting the most out of user stories, it is time to provide a nice convenient overview of some essential practices that I’ve blogged about. I don’t have any additional parts planned, but if I come up with something new, I’ll make sure this list is u...

February 6, 2011

A story about User Stories; Where do you start and what about the planning?

7 minute read

In this multi-part post, I’m going to share my personal experiences while working with user stories for gathering, tracking and planning requirements. It currently consists out of three parts:<ul><li>What are they and why do you need them? </li><li>Who writes them and how...

February 5, 2011

A story about User Stories; What are they and why do you need them?

7 minute read

In this multi-part post, I’m going to share my personal experiences while working with user stories for gathering, tracking and planning requirements. <ul><li>What are they and why do you need them? </li><li>Who writes them and how do you control scope? </li><li&...

January 18, 2011

More quotes from QCon

1 minute read

Well, QCon 2010 is over, so it is time to travel back to the Netherlands and finally see my wife and daughter again. However, after the previous post, the quotes have been coming in on Twitter space. So, to complete one of the most intense conferences ever, here are some more funny, inspiring and...

November 6, 2010

Deliberate Discovery, No SQL and CQRS at QCon

3 minute read

The 2nd day of QCon was not one where I chose wisely. My focus for this conference was everything Agile and anything from the well-known speakers. So I ignored most sessions that had words like REST, SQL or Java in it. How wrong I was…. But I did not discover that until I heard and read about all...

November 5, 2010

Quotes from QCon

2 minute read

One of the funny things of this QCon is the many tweets that the attendees have been throwing into the world wide web. That's great for a speaker because now they get immediate feedback on their performance, both good and bad. These are some of the quotes I found funny, inspiring or refreshing: ...

November 4, 2010

Commercial support for the C# 3.0/4.0 Coding Guidelines

1 minute read

A few weeks ago I had a chat with Paul Jansen, CEO of a small Eindhoven-based company named Tiobe. You might indirectly know Tiobe for its programming language index and their commercial code checker ClockSharp. But they have also been hosting a C# Coding Standard I co-wrote for Philips Medical S...

September 13, 2010

ALM Practices Part 9: Ubiquitous Language

2 minute read

What is it? The Ubiquitous Language is a unified language consisting of verbs and nouns from the business domain of an enterprise system and should be used by all team members, stakeholders and other involved persons. Why would you do it? Because it creates a bridge of understanding between th...

August 3, 2010

ALM Practices Part 8: Automatic Builds & Continuous Integration

6 minute read

What is it? An automatic build is a fully automated compilation of a specific version of your source code repository and which runs at regular intervals. More often than not, such a build includes additional steps such as running a static code analysis and code coverage, executing all automat...

July 4, 2010

ALM Practices Part 7: Refactoring

3 minute read

What is it? A mindset and practice that requires you to continuously reevaluate a region of code each time you make a change. In essence, you need to look at the code related to your changes and reconsider whether the original solution is still the best solution accounting for the information you...

June 30, 2010

Coding Guidelines for C# 3.0 and C# 4.0 now available

1 minute read

As promised earlier, you can now download the concept version of my new Coding Guidelines for C# 3.0 and C# 4.0 from a dedicated CodePlex site at www.csharpcodinguidelines.com. The list of changes is quite big, and includes new guidelines covering object-oriented design, design principles, C# 4.0...

June 28, 2010

ALM Practices Part 6: Code Analysis & Guidelines

3 minute read

What is it? Coding guidelines, or coding standards if you will, are documents consisting of rules and recommendations on the use of C# in enterprise systems. They deal with code layout, naming guidelines, the proper use of the .NET Framework, tips on writing useful comments and XML documentat...

April 20, 2010

Interaction Design according to Alan Cooper

2 minute read

I've recently finished the book The Inmates Are Running The Asylum by Alan Cooper, a well known proponent for interaction design. To be honest, I never really saw the purpose of interaction design in our projects. But after reading this book, I now know I didn't really understand what it was abou...

April 16, 2010

Fluent Assertions 1.2 has been released

4 minute read

It has been only 6 weeks since I first released Fluent Assertions to the public, followed by version 1.1 a week later. In the weeks thereafter, I received some nice ideas from the community which caused me to start working on the next version. But it was not easy. I found that designing a small f...

April 12, 2010

ALM Practices Part 5: Checklists

1 minute read

What is it? An (online) list of verification tasks to sign off as part of the delivery process of a newly delivered unit of work. Usually these include things that are often forgotten, or aspects that require explicit verification. See an example of such a list here. Why would you do it? Becau...

March 23, 2010

TFS, ALM, what’s in a name?

less than 1 minute read

In response to my posts on Peer Reviews, Unit Testing & TDD, and Common Code Layout, someone noticed that all these posts were part of my Team Foundation Server Development Practices series, but not every post actually mentioned TFS. Obviously, he was right. The reason for using the TFS prefi...

March 19, 2010

ALM Practices Part 4: Common Code Layout

1 minute read

What is it? A collection of rules stating what a block of code should look like. These may include rules on where line breaks are required, how to place parentheses, how much whitespace to put before and after those parentheses, how many spaces to use when indenting and where to insert empty line...

March 15, 2010

User Stories, a different story altogether

less than 1 minute read

My Dutch article on User Stories in Team Foundation Server 2010 is now available online at the SDN site. Read it over here. I will translate it to English soon.

March 3, 2010

ALM Practices Part 3: Unit Testing & TDD

3 minute read

What is it? In essence, Test Driven Development (TDD) is a practice in which the interface and the behavior of a component is designed while writing a unit test. In other words, you typically start writing a test case and define the exact members, behavior and names on the fly. In fact, the wor...

March 2, 2010

ALM Practices Part 2: Peer Reviews

3 minute read

What is it? A formal review of all code and artifacts related to a requirement or task by another person than the original developer. Rework because of review comments must be revalidated afterwards. Why would you do that? Because the average developer introduces 10-50 bugs per 10...

February 1, 2010

Storyotypes in Visual Studio 2010

less than 1 minute read

Storyotypes are stereotypes for user stories that can help to define the right scope for your user stories. You can read more about these in the article Using Storyotypes to Split Bloated XP Stories and these slides. Team Foundation Server 2010 includes a new VSTS for Agile process template close...

January 8, 2010

ALM Development Practices Part 1: An Introduction

1 minute read

As part of my many assignments, I’m compiling a bunch of Application Lifecycle Management practices into a set of development guidelines for bootstrapping our internal projects using Team Foundation Server. I’ve decided to share these with the community so that others may benefit from it as well....

January 4, 2010

Visual Studio 2010 is huge!

8 minute read

During this week’s PDC 2008, I’ve been spending particular attention to sessions related to the new features of Visual Studio 2010 Team System and Team Foundation Server 2010. The one statement almost every session started with was that this release is huge, and I totally agree! I’ve not seen so ...

November 2, 2008

ALM Practices

ALM Practices every developer should know about

less than 1 minute read

So now that I’ve finished my multi-part post on getting the most out of user stories, it is time to provide a nice convenient overview of some essential practices that I’ve blogged about. I don’t have any additional parts planned, but if I come up with something new, I’ll make sure this list is u...

February 6, 2011

A story about User Stories; Where do you start and what about the planning?

7 minute read

In this multi-part post, I’m going to share my personal experiences while working with user stories for gathering, tracking and planning requirements. It currently consists out of three parts:<ul><li>What are they and why do you need them? </li><li>Who writes them and how...

February 5, 2011

A story about User Stories; What are they and why do you need them?

7 minute read

In this multi-part post, I’m going to share my personal experiences while working with user stories for gathering, tracking and planning requirements. <ul><li>What are they and why do you need them? </li><li>Who writes them and how do you control scope? </li><li&...

January 18, 2011

ALM Practices Part 12: Reducing Technical Debt

3 minute read

What is it? Technical Debt is every change to your code base that does not comply with the usual level of quality your team has agreed upon. Since this level of quality has been introduced to guarantee a healthy code base throughout the life time of the system, introducing technical debt essenti...

October 19, 2010

ALM Practices Part 11: Modeling the business domain using Domain Models

3 minute read

What is it? A domain model is typically depicted by a UML class diagram in which the classes and associations represent the business concepts and the relationships between them. Although you can use a piece of paper to draw up a domain model, in most cases a UML case tool is better suited for t...

August 25, 2010

ALM Practices Part 10: Work Item Tracking

1 minute read

What is it? Using Team Foundation Server’s User Story, Task and Bug work item types as the central unit of work for all the activities done within a project. Why would you do it? Because it adds traceability between the functional requirements and the way these requirements have been realized ...

August 10, 2010

ALM Practices Part 9: Ubiquitous Language

2 minute read

What is it? The Ubiquitous Language is a unified language consisting of verbs and nouns from the business domain of an enterprise system and should be used by all team members, stakeholders and other involved persons. Why would you do it? Because it creates a bridge of understanding between th...

August 3, 2010

ALM Practices Part 8: Automatic Builds & Continuous Integration

6 minute read

What is it? An automatic build is a fully automated compilation of a specific version of your source code repository and which runs at regular intervals. More often than not, such a build includes additional steps such as running a static code analysis and code coverage, executing all automat...

July 4, 2010

ALM Practices Part 7: Refactoring

3 minute read

What is it? A mindset and practice that requires you to continuously reevaluate a region of code each time you make a change. In essence, you need to look at the code related to your changes and reconsider whether the original solution is still the best solution accounting for the information you...

June 30, 2010

ALM Practices Part 6: Code Analysis & Guidelines

3 minute read

What is it? Coding guidelines, or coding standards if you will, are documents consisting of rules and recommendations on the use of C# in enterprise systems. They deal with code layout, naming guidelines, the proper use of the .NET Framework, tips on writing useful comments and XML documentat...

April 20, 2010

ALM Practices Part 5: Checklists

1 minute read

What is it? An (online) list of verification tasks to sign off as part of the delivery process of a newly delivered unit of work. Usually these include things that are often forgotten, or aspects that require explicit verification. See an example of such a list here. Why would you do it? Becau...

March 23, 2010

ALM Practices Part 4: Common Code Layout

1 minute read

What is it? A collection of rules stating what a block of code should look like. These may include rules on where line breaks are required, how to place parentheses, how much whitespace to put before and after those parentheses, how many spaces to use when indenting and where to insert empty line...

March 15, 2010

ALM Practices Part 3: Unit Testing & TDD

3 minute read

What is it? In essence, Test Driven Development (TDD) is a practice in which the interface and the behavior of a component is designed while writing a unit test. In other words, you typically start writing a test case and define the exact members, behavior and names on the fly. In fact, the wor...

March 2, 2010

ALM Practices Part 2: Peer Reviews

3 minute read

What is it? A formal review of all code and artifacts related to a requirement or task by another person than the original developer. Rework because of review comments must be revalidated afterwards. Why would you do that? Because the average developer introduces 10-50 bugs per 10...

February 1, 2010

ALM Development Practices Part 1: An Introduction

1 minute read

As part of my many assignments, I’m compiling a bunch of Application Lifecycle Management practices into a set of development guidelines for bootstrapping our internal projects using Team Foundation Server. I’ve decided to share these with the community so that others may benefit from it as well....

January 4, 2010

Agile

Continuous Delivery within the .NET realm

7 minute read

Continuous what? Well, if you browse the internet regularly, you will encounter two different terms that are used rather inconsistently: Continuous Delivery and Continuous Deployment. In my words, Continuous Delivery is a collection of various techniques, principles and tools that allow you to d...

August 30, 2016

Understanding a growing organization and the effect on technology

4 minute read

The characteristics of a growing organizationDuring this year's QCon conference held in New York, I attended a full-day workshop on the scalability challenges a growing organization faces, hosted by Randy Shoup. Randy explained us how every start-up goes through several phases, each with a differ...

July 11, 2016

Why software innovation is not a free pass for doing whatever you want

3 minute read

Somebody on Twitter recently posed the question whether innovation in software and agile development can co-exist or not. To remove any misinterpretation - something quite common for Twitter discussion - I asked him to clarify what he meant with the word 'innovation'. In short, any kind of softwa...

April 3, 2016

The real challenges of building the right thing right

2 minute read

Suppose you're in the following situation.You and your team are supposed to start working on some important architectural changes that were long due.Your team is then asked by your manager to help build an important feature that requires the unique skills of your team, and ...

October 9, 2015

Dude, you can’t solve all the problems by yourself

2 minute read

I think that the gist of this post should be pretty clear. Unfortunately I've fallen in that same trap myself many times. So often, I had to refrain myself from pulling somebody's keyboard from under their hands, just because I thought I could fix the problem at hand myself much faster. But with ...

May 28, 2015

Software versioning without thinking about it

6 minute read

Solving the versioning problemIf you're building libraries, products or any other software system, versioning is usually a pretty big deal. It's the only way to determine what version of that library, product or system you're looking at. Before an organization settles on a versioning strategy, ma...

April 23, 2015

Prioritizing projects and tasks with minimum loss of time and money

2 minute read

Last week, I was so fortunate to attend a marvelous talk by Donald Reinertsen on a amazingly effective approach for prioritizing projects within an agile organization (and which is part of SAFe). Most managers will tend to prioritize their projects based on non-quantifiable attributes such as the...

April 19, 2015

How to do a tech talk without utterly boring the audience

5 minute read

Over the last year or two I attended numerous sprint demos, product demos and technical talks hosted by technical teams and individuals. Although I can definitely improve as a speaker myself, standing at the side-line and observing other speakers have made me pretty opinionated. I also get bored ...

April 6, 2015

Getting your teams to communicate effectively

5 minute read

Lets be honest here. For a very long time, if I had to choose between an averagely skilled but well-spoken developer and a very skilled and experienced introvert, I would probably choose the first. And yes, I do realize that these are two extremes and that most people have characteristics of both...

April 1, 2015

A scalable software development organization? This is how you do it!

9 minute read

Hey architect! Building a complex system with four talented developers is one thing. Building one with 40 developers is a whole different league. The quote above is closer to the truth than you might expect. Many large organizations develop software systems with hundreds of software developers. ...

March 12, 2015

What kind of software architect are you? Strategist or tactician?

3 minute read

If there's one term next to agile that's so overloaded nobody knows what to expect, then it must be architect. Yes, you can specialize it by prefixing it with software, as in software architect. And with that, you would be able to determine that he or she is probably designing some kind software ...

March 3, 2015

A beacon of light in the shadow of failing builds

3 minute read

As long as I can remember, I've been using an automatic build system to regularly verify the quality of the code based I've been working on. First using Team Foundation Server, but since a year or so, Jetbrains' Team City. In my current project we use continuous integration builds for running the...

February 26, 2015

Evolving your agile architecture without losing any people

3 minute read

I’m a big fan of just-in-time architecture (a.k.a. agile architecture) because it prevents me from trying to predict the future which, frankly, I suck at. So, although I generally start out with a reference architecture, a lot of changes happen after that point, when the functional requirements g...

February 15, 2015

You don’t know what you don’t know

3 minute read

More or less since the start of my assignment at my current client, four years ago, we have had some form of a cross-team stand-up at 10:00 every day (often named Scrum-of-Scrums). But now that we have around 10 teams, we started to notice some issues lately. People joined too late or didn't even...

January 18, 2015

How Flowdock helps you get better cross-team collaboration

3 minute read

Is your inbox also filling up with loads of emails all part of some kind of discussion where each reply contains the entire history again? Do you also get all kinds of notification emails from build servers, source control systems, and other things to which somebody is supposed to react? Do you o...

January 11, 2015

Fluent Assertions 2.0 is out of the beta phase

less than 1 minute read

After six weeks of beta testing, it is time to remove the beta mark from Fluent Assertions 2.0. Since the beta was released, we fixed several little bugs that you won’t notice, but the original release notes still apply. Release 2.0 adds a lot of new features and improvements, most noticeably the...

October 8, 2012

Quick Review of The Cucumber Book from a SpecFlow perspective

2 minute read

This week I completed reading a new book titled The Cucumber Book: Behaviour-Driven Development for Testers and Developers by Matt Wynne and Aslak Hellesoy. Aslak is the founder of the Cucumber project (which is what SpecFlow for .NET is based on), and Matt is one of its most active developers. T...

July 30, 2012

Required Reading Material for July 2012

less than 1 minute read

Since I was already collecting the better articles that I read during the month for sharing with my colleagues and client’s coworkers, I might just as well share them here. Have fun reading them. Virtual Panel: Code-to-Test Ratios, TDD and BDD A great discussion by the authorities on TDD, B...

July 20, 2012

In Retrospect: About getting through your Sprint

9 minute read

This is the fourth of several posts in which I’d like to share some of the things we learned throughout more than a year of Agile development using Scrum. Some of them might appear as open doors, but I wish I knew or thought about those before I started that project. Just by looking back at the m...

January 11, 2012

Architecture

Principles for Successful Package Management

8 minute read

A couple of months ago I shared some tips & tricks to help you prevent ending up in NuGet dependency hell. As a big fan of the SOLID principles, I've always wondered why nobody thought of applying these principles on the package level. If SOLID can help you to build cohesive, loosely coupled ...

October 30, 2016

Scaling a growing organization by reorganizing the teams

4 minute read

During this year's QCon conference held in New York, I attended a full-day workshop on the scalability challenges a growing organization faces, hosted by Randy Shoup. In my previous two posts I discussed a model to understand the needs of an organization in its different life phases, as well as a...

July 25, 2016

Scaling a growing organization by rearchitecting the monolith

5 minute read

During this year's QCon conference held in New York, I attended a full-day workshop on the scalability challenges a growing organization faces, hosted by Randy Shoup. In my previous post, I elaborated on Randy's classification system to illustrate the phases of a growing organization and how that...

July 17, 2016

The magic of hiding your NuGet dependencies

4 minute read

Welcome to the dependency hell While working on a little open-source demo project, I ran into that well-known challenge of NuGet dependency management again. This little project results in a NuGet package, that on itself also relies on other packages. Now, if I would just add those dependencies ...

May 24, 2016

To DRY or not to DRY, it is a matter of boundaries

4 minute read

For a very VERY long time I've been convinced that aggressively refactoring your code in such a way that every piece of logic is repeated only once is a good thing. This practice, often referred to as DRY, or Don't Repeat Yourself, has been one of the many of my tools of choice and goes hand in h...

April 13, 2016

Profiling legacy code using characterization tests

3 minute read

As you might have read, I've been refactoring some example code for a multi-threaded cache that I got from CodeProject into a source-only NuGet package which will soon be published as FluidCaching. Since this cache has been built to be very performant, the internal algorithms are not trivial to g...

March 10, 2016

What kind of software architect are you? Strategist or tactician?

3 minute read

If there's one term next to agile that's so overloaded nobody knows what to expect, then it must be architect. Yes, you can specialize it by prefixing it with software, as in software architect. And with that, you would be able to determine that he or she is probably designing some kind software ...

March 3, 2015

Evolving your agile architecture without losing any people

3 minute read

I’m a big fan of just-in-time architecture (a.k.a. agile architecture) because it prevents me from trying to predict the future which, frankly, I suck at. So, although I generally start out with a reference architecture, a lot of changes happen after that point, when the functional requirements g...

February 15, 2015

Entity Framework 5 and 6 vs NHibernate 3 – The State of Affairs

12 minute read

It has been almost two years since I've last compared NHibernate and Entity Framework, so with the recent alpha version of EF 6, it's about time to look at the current state of affair. I've been using NHibernate for more than 6 years so obviously I'm a bit biased. But I can't ignore that EF's fea...

March 12, 2013

Planning the Windows 8 Cookbook

2 minute read

I'm currently at Microsoft's Build conference and we're all receiving a Surface RT tablet. That means it's a great moment to talk about my plans for the Windows 8 Cookbook. I know, I know, it's a cheesy name so just be aware that I'm open to better suggestions. Since Silverlight is mostly dead, I...

October 30, 2012

Required Reading Material for July 2012

less than 1 minute read

Since I was already collecting the better articles that I read during the month for sharing with my colleagues and client’s coworkers, I might just as well share them here. Have fun reading them. Virtual Panel: Code-to-Test Ratios, TDD and BDD A great discussion by the authorities on TDD, B...

July 20, 2012

If you write an article about TDD, make sure it is correct

6 minute read

I spend a majority of my private time reading articles and blog posts, having discussions on Twitter, or engaging in conversations on conferences and community events. I'm realistic enough to understand that my opinions are not necessarily the truth, so I use those opportunities to challenge my o...

July 19, 2012

About the future of the Silverlight Cookbook

less than 1 minute read

Since my first blog post on the Silverlight Cookbook in September 2010, I’ve invested a lot of private time in sharing my best practices on building line-of-business application in Silverlight. I shared my code on CodePlex, wrote an entire series of blog posts, and talked about the Cookbook at se...

March 13, 2012

Silverlight Cookbook: Switching to another IoC Framework

5 minute read

The Rationale As long as I have been using the Dependency Inversion Principle, Microsoft Unity has always been my preferred Inversion-of-Control framework. So it’s not strange that the Silverlight Cookbook has been using Unity 2 in both its WCF/REST layer as well as within the Silverlight client....

September 28, 2011

Introducing the Silverlight Cookbook

4 minute read

In the 2nd half of 2010 I was so fortunate to get the chance to build my first enterprise-class line-of-business application written in Silverlight 4. And although I designed my original reference architecture earlier that year, actually building it is a completely different thing. I learned a lo...

March 7, 2011

More quotes from QCon

1 minute read

Well, QCon 2010 is over, so it is time to travel back to the Netherlands and finally see my wife and daughter again. However, after the previous post, the quotes have been coming in on Twitter space. So, to complete one of the most intense conferences ever, here are some more funny, inspiring and...

November 6, 2010

Quotes from QCon

2 minute read

One of the funny things of this QCon is the many tweets that the attendees have been throwing into the world wide web. That's great for a speaker because now they get immediate feedback on their performance, both good and bad. These are some of the quotes I found funny, inspiring or refreshing: ...

November 4, 2010

Agile Architecture according to Dan North

1 minute read

Updated on March 3rd 2012 with a PDF of Dan North’s mind map On the first day of the QCon conference in San Francisco, I attended a full-day tutorial titled "Secrets of Agile Architecture" hosted by Dan North. I didn't really know what to expect, but I was hoping for some refreshingly new insight...

November 3, 2010

Silverlight Cookbook: ViewModels, Coroutines and Binding Conventions

10 minute read

This post is part of a series of blog posts detailing various aspects of the Silverlight Cookbook, an initiative to demonstrate proper design choices for building enterprise-class line-of-business applications with Silverlight (and WPF if you will). It currently consists out of the following part...

October 26, 2010

ALM Practices Part 12: Reducing Technical Debt

3 minute read

What is it? Technical Debt is every change to your code base that does not comply with the usual level of quality your team has agreed upon. Since this level of quality has been introduced to guarantee a healthy code base throughout the life time of the system, introducing technical debt essenti...

October 19, 2010

My Silverlight 4 Reference Architecture: The Domain Model

3 minute read

The Domain Model is roughly designed according to the DDD principles where cross-aggregate logic is handled by the command handlers instead of the more traditional domain services. One thing that I changed after I attended Greg Young's DDD/CQRS training is that I no longer allow my domain entitie...

October 13, 2010

My Silverlight 4 Reference Architecture: Querying

2 minute read

After having put the introduction and the commanding part behind us, let me explain how I deal with querying. Consider the following slice of the reference architecture.  My original intention was to use WCF Data Services combined with NHibernate on the query side. For one, because it allo...

October 12, 2010

My Silverlight 4 Reference Architecture: Commanding

2 minute read

<p $1=”$1”></p> <p $1=”$1”>After sharing my thoughts on unit testing in Silverlight and the combination of NHibernate and WCF Data Services, it is time to discuss the updated version of the Silverlight reference architecture from one of my posts of last year. To put the discu...

October 8, 2010

Silverlight Cookbook: WCF Data Services and NHibernate

4 minute read

<p $1=”$1”></p> <p $1=”$1”></p> <p $1=”$1”></p> <p $1=”$1”></p> <p $1=”$1”></p> <p>This post is part of a series of blog posts detailing various aspects of the Silverlight Cookbook, an initiative to demonstrate prope...

September 20, 2010

CQRS and Event Sourcing

less than 1 minute read

Yesterday evening I did a talk on building a .NET-based system using Command Query Responsibility Segregation and Event Sourcing. We had a lot of awesome discussions on its applicability, and as usual, I ran out of time again. I could have easily spend a full day on this subject, but unfortunatel...

May 28, 2010

Defining a reference architecture for Silverlight LOBs

3 minute read

Update October 2010: I’ve started a new in-depth series on my current Silverlight 4 Reference Architecture. Recently I've been catching up on Silverlight by reading Pro Silverlight 2 in C# and the many blogs and articles on Silverlight 3 and I'm seriously impressed. The reason for this sudden in...

July 29, 2009

Book

About ideas that stick

1 minute read

A while ago, some business man from the US who travels a lot throughout the US as part of his job, was sitting in his airline's business lounge for a drink. Right after finishing his 2nd, an attractive women approached him and offered him a drink in exchange for somebody to talk to. Somewhere hal...

January 2, 2013

Quick Review of The Cucumber Book from a SpecFlow perspective

2 minute read

This week I completed reading a new book titled The Cucumber Book: Behaviour-Driven Development for Testers and Developers by Matt Wynne and Aslak Hellesoy. Aslak is the founder of the Cucumber project (which is what SpecFlow for .NET is based on), and Matt is one of its most active developers. T...

July 30, 2012

Build 2012

Build Day 4: WP8, Line-of-Business, Web Essentials and lots of laughs

3 minute read

Here we are at the fourth and last day of Microsoft Build 2012. That so many people showed up at the first session is quite surprising considering the attendee party that went on until midnight in downtown Seattle. It was a typical attendee party; free food and drinks and live music. Since being ...

November 4, 2012

Build Day 3: ASP.NET MVC, TypeScript, SignalR and Node.Js

2 minute read

So at this 3rd day here at Microsoft Build 2012, I'm actually getting lucky. Three great sessions in a row is obviously not something I've seen before. Hey, maybe I'll get to see four great sessions tomorrow. Anyway, with some of the technical debt from last night's Beerfest and a Halloween party...

November 2, 2012

Build Day 2: Azure, JavaScript and even more XAML and Windows Phone

3 minute read

Because day 2 of the Build conference wasn't any different, it seems that I must learn to accept that a maximum of two good sessions per day is going to be the standard. Fortunately the keynote was top notch with both Scott Hanselman and Scott Guthrie taking stage. They showed some of the power t...

November 1, 2012

Build Day 1: Surface, WP8, TFS, Windows Design Guidelines

2 minute read

Day 1 of Microsoft Build was in some way disappointing and at the same time exhilarating. To be honest, I was expecting to be updated on the new stuff Microsoft plans for the near future. The fact that the session list was not disclosed until a day ahead also helped reinforce that expectation. Bu...

October 31, 2012

C#

Entity Framework 5 and 6 vs NHibernate 3 – The State of Affairs

12 minute read

It has been almost two years since I've last compared NHibernate and Entity Framework, so with the recent alpha version of EF 6, it's about time to look at the current state of affair. I've been using NHibernate for more than 6 years so obviously I'm a bit biased. But I can't ignore that EF's fea...

March 12, 2013

The all new coding guidelines for C# 3.0, 4.0 and 5.0 have been published!

4 minute read

After 50000 downloads and the recent final release of Visual Studio 2012 / C# 5.0 it was about time to do a thorough update of the C# Coding Guidelines. Although most of the guidelines have been preserved, I’ve tried to rewrite several of them using a less formal and less verbose writing style. I...

November 26, 2012

Fluent Assertions 1.7.0 has been released

1 minute read

It has barely been more than two months ago, but the number of downloads through CodePlex and Nuget combined has exceeded 2000. Me and co-author Martin Opdam thought that to be a nice reason for releasing a new version of Fluent Assertions. This isn't a big release, but since we are following sem...

January 13, 2012

Feedback Requested: Is there any valid usage for the ‘new’ keyword?

1 minute read

Yesterday I ended up being part of a discussion about using the ‘new’ keyword to hide base-class members. A colleague of mine used it to alter a base-class property in a derived class with the purpose of making it more strongly typed. I’ve always rationalized guideline AV1010 (Don’t hide inherit...

November 30, 2011

Fluent Assertions is finally gaining some momentum

2 minute read

Indeed it is, in particular within the part of the .NET community that believes test-first development is non-negotiable. We receive more and more suggestions, contributions and questions, and we’ve started to notice some blog posts here and there. It’s not that it is being downloaded thousands ...

October 30, 2011

So what does Windows 8 mean for .NET developers?

3 minute read

Last updated on September 22nd Unfortunately, the Microsoft Build conference conflicted with our company's 5-year anniversary and the associated sailing trip in Greece. Fortunately, the blogosphere and twitter-space provided plenty of opportunities for trying to grasp what the stuff Sinofsky and...

September 17, 2011

Why I created Fluent Assertions in the first place

4 minute read

A few weeks ago I read The value of open-source is the vision not the source code and that made me think about my own reasons for starting Fluent Assertions, now more than a year ago. In the light of that article, lets briefly go over my own goals for Fluent Assertions. The intention of a unit te...

July 29, 2011

Fluent Assertions 1.5 is done! Now it’s time for that summer.

4 minute read

In the last couple of months, me and colleague Martin Opdam have spent a considerable amount of time on both improving the reporting capabilities of Fluent Assertions as well as fixing and incorporating various community contributions. Because of the many changes required, a very busy client proj...

July 5, 2011

Another release for Fluent Assertions

2 minute read

It’s only February, but I’ve received so many requests from the community that another release of Fluent Assertions was easily warranted. New Features Somebody working under the name of CtrlAltDel pointed me at the little-known fact that floating point variables are inheritably inaccurate and...

February 27, 2011

A new year with a new release of Fluent Assertions

2 minute read

Christmas usually means a week off and a whole lot of free time between the social obligations and spending some quality time with my wife and daughter. That’s why I decided to get rid of some of the backlog items for the next version of Fluent Assertions. And I’m done, version 1.3.0 is a fact. N...

January 3, 2011

December Update of the Coding Guidelines for C# 3.0 and C# 4.0

1 minute read

I finally found some time to update the coding guidelines with some feedback I received since it’s original release in June this year. I’ve removed the following guidelines because I found that they were either very exotic or not general enough for most developers: Avoid side-effects when...

December 23, 2010

CQRS

My Silverlight 4 Reference Architecture: Commanding

2 minute read

<p $1=”$1”></p> <p $1=”$1”>After sharing my thoughts on unit testing in Silverlight and the combination of NHibernate and WCF Data Services, it is time to discuss the updated version of the Silverlight reference architecture from one of my posts of last year. To put the discu...

October 8, 2010

CQRS and Event Sourcing

less than 1 minute read

Yesterday evening I did a talk on building a .NET-based system using Command Query Responsibility Segregation and Event Sourcing. We had a lot of awesome discussions on its applicability, and as usual, I ran out of time again. I could have easily spend a full day on this subject, but unfortunatel...

May 28, 2010

Coding Guidelines

The all new coding guidelines for C# 3.0, 4.0 and 5.0 have been published!

4 minute read

After 50000 downloads and the recent final release of Visual Studio 2012 / C# 5.0 it was about time to do a thorough update of the C# Coding Guidelines. Although most of the guidelines have been preserved, I’ve tried to rewrite several of them using a less formal and less verbose writing style. I...

November 26, 2012

Feedback Requested: Is there any valid usage for the ‘new’ keyword?

1 minute read

Yesterday I ended up being part of a discussion about using the ‘new’ keyword to hide base-class members. A colleague of mine used it to alter a base-class property in a derived class with the purpose of making it more strongly typed. I’ve always rationalized guideline AV1010 (Don’t hide inherit...

November 30, 2011

Collaboration

Why software innovation is not a free pass for doing whatever you want

3 minute read

Somebody on Twitter recently posed the question whether innovation in software and agile development can co-exist or not. To remove any misinterpretation - something quite common for Twitter discussion - I asked him to clarify what he meant with the word 'innovation'. In short, any kind of softwa...

April 3, 2016

Slack? An even better cross-team collaboration tool?

2 minute read

Two weeks ago, I talked about Flowdock, an online tool to aggregate multiple sources into a single environment where agile teams can work together. I also promised to look at an alternative service named Slack. When we introduced Flowdock, somewhere in November 2013, Slack was still in its very e...

January 26, 2015

How Flowdock helps you get better cross-team collaboration

3 minute read

Is your inbox also filling up with loads of emails all part of some kind of discussion where each reply contains the entire history again? Do you also get all kinds of notification emails from build servers, source control systems, and other things to which somebody is supposed to react? Do you o...

January 11, 2015

Cookbook

Planning the Windows 8 Cookbook

2 minute read

I'm currently at Microsoft's Build conference and we're all receiving a Surface RT tablet. That means it's a great moment to talk about my plans for the Windows 8 Cookbook. I know, I know, it's a cheesy name so just be aware that I'm open to better suggestions. Since Silverlight is mostly dead, I...

October 30, 2012

About the future of the Silverlight Cookbook

less than 1 minute read

Since my first blog post on the Silverlight Cookbook in September 2010, I’ve invested a lot of private time in sharing my best practices on building line-of-business application in Silverlight. I shared my code on CodePlex, wrote an entire series of blog posts, and talked about the Cookbook at se...

March 13, 2012

Silverlight Cookbook: Looking for a great UI design

less than 1 minute read

Why? Because even though think I have a reasonable idea of when a user interface is consistent and user friendly, I suck at the raw design skills. Just check out the current ‘design’ if you don’t believe me. I’m actually looking for something that resembles the Cosmopolitan theme or MetroTwit: ...

November 4, 2011

Silverlight Cookbook: Switching to another IoC Framework

5 minute read

The Rationale As long as I have been using the Dependency Inversion Principle, Microsoft Unity has always been my preferred Inversion-of-Control framework. So it’s not strange that the Silverlight Cookbook has been using Unity 2 in both its WCF/REST layer as well as within the Silverlight client....

September 28, 2011

Yes, the Silverlight Cookbook is still alive

1 minute read

Although it might not seem like that, I am still working on the Silverlight Cookbook. However, I’ve just moved to a new house, so I ran out of time recently. Fortunately, since my colleague Martin Opdam is actively working on Fluent Assertions, so I only have to divide my free time between the co...

September 14, 2011

Introducing the Silverlight Cookbook

4 minute read

In the 2nd half of 2010 I was so fortunate to get the chance to build my first enterprise-class line-of-business application written in Silverlight 4. And although I designed my original reference architecture earlier that year, actually building it is a completely different thing. I learned a lo...

March 7, 2011

Silverlight Cookbook: ViewModels, Coroutines and Binding Conventions

10 minute read

This post is part of a series of blog posts detailing various aspects of the Silverlight Cookbook, an initiative to demonstrate proper design choices for building enterprise-class line-of-business applications with Silverlight (and WPF if you will). It currently consists out of the following part...

October 26, 2010

Silverlight Cookbook: WCF Data Services and NHibernate

4 minute read

<p $1=”$1”></p> <p $1=”$1”></p> <p $1=”$1”></p> <p $1=”$1”></p> <p $1=”$1”></p> <p>This post is part of a series of blog posts detailing various aspects of the Silverlight Cookbook, an initiative to demonstrate prope...

September 20, 2010

DevDays09

Wildcard Proposal: TDD and SOLID, two ingredients for high quality software

less than 1 minute read

Many attempts have been made to improve the overal quality of our software development efforts, but if there’s one I’d like to put some attention on, it’s Test Driven Development. It’s design-first, test-first approach has proved significant increases in overal quality. However, TDD is not easy a...

April 9, 2009

Help prioritizing Enterprise Library 5.0

less than 1 minute read

Patterns & Practices has just finished compiling a list of candidate features and improvements for the next installment of the Enterprise Library. Grigori Melnik, the Enterprise Library’s product manager has opened an online survey and invites the .NET community to share their priorities and,...

April 1, 2009

DevDays10

Is Entity Framework 4.0 ready for the real work?

1 minute read

This morning, on the Developer Days 2010, I did a talk on the current state of affairs of the 4.0 version of the Entity Framework, including a rough comparison with NHibernate 2.1. Apparently this is something that’s on the mind of many people. The room was supposed to accommodate a maximum of 80...

March 30, 2010

My two days of fame at the Developer Days 2010

less than 1 minute read

Some of you who have been visiting the Dutch Developer Days 2010 in The Hague today may have noticed the flyers and banners for promoting the new online version of the .NET Magazine. Those who already know me may have noticed that it’s me on those banners.    Since the photographer spe...

March 30, 2010

Events

Why Windows 10 is much more than a new operating system

3 minute read

Let's be honest here. Since Microsoft has been shipping technical previews of Windows 10, I've been repaving my laptop a couple of times and then reverted to Windows 8.1. I didn't like the intermediate touch experience and stability was also not its greatest strengths. In fact, I reverted to 8.1 ...

May 1, 2015

The Staring Game aka The Art of Social Intelligence

3 minute read

So here I am in New York, all alone and looking for something fun to do during a rainy day preceding QCon New York. The Empire State Building was covered in clouds so what can you do? Well, you go to meetup.com and browse the many events that happen in a big city like this. Country dancing and ro...

June 11, 2014

QCon: The Culture Engine; How to build High Performance Teams

7 minute read

Sometimes you run into a workshop that you didn't have any particular expectations for and then your mind is completely blown. That happened to me on the first day of tutorials here at QCon San Francisco. "By whom?" I hear you asking. Well, by Steve Peha and Amr Elssamadisy and heavily supported ...

November 22, 2013

Noticeable quotes from QCon San Francisco 2013

1 minute read

As with any conference, speakers and attendees tend to make a lot of interesting, inspiring or funny statements. QCon 2013 was no different. Some key takeaways: “Can't tune until you have real users.”  (Stephen Rylander) "If someone comes in suggesting that we move a release date… we mock t...

November 15, 2013

QCon Day 3: About JavaScript, Scaling GitHub and Twitter, and Cultural Diversity

7 minute read

Man, it really feels like we've been around for ages, but this is just the 3rd day of QCon San Francisco. After a quick breakfast at the local Starbucks we dropped in on another keynote, right after the daily introduction by all track owners. The keynote was done by Brendan Eich, the inventor of ...

November 15, 2013

QCon Day 2: Persons, Groups and Teams

6 minute read

Although I did get the feeling that QCon isn't at the same quality level as the last time I was here, I did manage to pick up a considerable amount of new ideas and insights on the first day. Not anything mind blowing, but still worth the trip. So let's see what the 2nd day did bring us. The day...

November 13, 2013

QCon Day 1: Musicians, Google, Open Space & Netflix

5 minute read

So after all that fun during the first weekend (and about which I’ll blog separately), now it's the time to finally shift our attention to the reason for which we're in San Francisco in the first place; InfoQ's highly rated internal software conference QCon. Since my previous visit to QCon was su...

November 12, 2013

Looking back at Build 2012

2 minute read

A question which was asked many times during the week was whether or not this trip to Build 2012 in Redmond was worth the time and money. Even after four days of raw content, there is no short answer here. As Dennis Vroegop clearly illustrated, the organization was definitely not up to the task...

November 5, 2012

Build Day 4: WP8, Line-of-Business, Web Essentials and lots of laughs

3 minute read

Here we are at the fourth and last day of Microsoft Build 2012. That so many people showed up at the first session is quite surprising considering the attendee party that went on until midnight in downtown Seattle. It was a typical attendee party; free food and drinks and live music. Since being ...

November 4, 2012

Build Day 3: ASP.NET MVC, TypeScript, SignalR and Node.Js

2 minute read

So at this 3rd day here at Microsoft Build 2012, I'm actually getting lucky. Three great sessions in a row is obviously not something I've seen before. Hey, maybe I'll get to see four great sessions tomorrow. Anyway, with some of the technical debt from last night's Beerfest and a Halloween party...

November 2, 2012

Build Day 2: Azure, JavaScript and even more XAML and Windows Phone

3 minute read

Because day 2 of the Build conference wasn't any different, it seems that I must learn to accept that a maximum of two good sessions per day is going to be the standard. Fortunately the keynote was top notch with both Scott Hanselman and Scott Guthrie taking stage. They showed some of the power t...

November 1, 2012

Build Day 1: Surface, WP8, TFS, Windows Design Guidelines

2 minute read

Day 1 of Microsoft Build was in some way disappointing and at the same time exhilarating. To be honest, I was expecting to be updated on the new stuff Microsoft plans for the near future. The fact that the session list was not disclosed until a day ahead also helped reinforce that expectation. Bu...

October 31, 2012

A weekend in Emerald City

4 minute read

This week is Microsoft Build 2012. For those who don’t know what that is, it’s Microsoft largest and most important annual event for sharing the future of the company’s plans around Windows, Windows Phone and their development platforms. Since with most trips to the US, it’s usually cheaper to ta...

October 30, 2012

Slides and demo code for my SpecFlow/WaTiN talk

less than 1 minute read

Yesterday I did a 2-hour talk on getting the most out of UI automation, particularly using SpecFlow and WaTiN. You can find the slides down here and the demo code at GitHub.<iframe allowfullscreen="" frameborder="0" height="356" marginheight="0" marginwidth="0" scrolling="no" src="http://www.s...

August 31, 2012

Noticeable quotes from QCon New York

1 minute read

Just to be clear, I didn’t actually attend QCon New York this year. But after the experience of attending QCon San Francisco in 2010, I never forget the many great quotes you’ll find on Twitter. This time was no different. "Distributed objects failed; for very good reasons. Values rule on the w...

July 26, 2012

So what does Windows 8 mean for .NET developers?

3 minute read

Last updated on September 22nd Unfortunately, the Microsoft Build conference conflicted with our company's 5-year anniversary and the associated sailing trip in Greece. Fortunately, the blogosphere and twitter-space provided plenty of opportunities for trying to grasp what the stuff Sinofsky and...

September 17, 2011

Speaking at Developer Developer Developer North

less than 1 minute read

I’m honored to have been selected to speak at my first event in the United Kingdom, Developer Developer Developer North, hosted at the University of Sunderland, near New Castle. Our job as a software developer seems to revolve mostly around programming languages, frameworks and Visual Studio. And...

September 14, 2011

Where to find me during the Developer Days 2011

6 minute read

Somebody recently asked me what sessions I was planning to attend at the upcoming 2011 edition of the Microsoft Developer Days in The Hague. To be honest, my primary reason for going to a Dutch conference is to chat with fellow .NET enthusiasts, and attending sessions is usually a side-effect of ...

April 8, 2011

Speaking engagements for the next months

less than 1 minute read

I’m very happy that I’ll be speaking at a number of very nice local and international conferences. On Saturday March 26th, I’ll be joining the Dutch Code Camp event where I’ll be doing a chalk’n’talk on my Silverlight Cookbook initiative. <ul> <li>On Wednesday, April 27th, I will t...

March 17, 2011

Get me on stage on the Developer Days 2011

less than 1 minute read

Although the Dutch Microsoft Developer Days is mostly about foreign speakers, the organization has a recurring event called the wildcard sessions. This allowed me to speak at the biggest Dutch conference of the year for two years in a row. Unfortunately, the number of proposals has exploded this ...

February 23, 2011

A night of Silverlight, WPF, unit testing and Caliburn Micro

less than 1 minute read

Last Thursday, me and my employer Aviva Solutions hosted the December edition of the DotNED user group in Leiden. And yesterday a shared my Silverlight reference architecture on this year’s last SDN Event. I gave two talks that evening and one last night and wanted to share my slides and example ...

December 11, 2010

More quotes from QCon

1 minute read

Well, QCon 2010 is over, so it is time to travel back to the Netherlands and finally see my wife and daughter again. However, after the previous post, the quotes have been coming in on Twitter space. So, to complete one of the most intense conferences ever, here are some more funny, inspiring and...

November 6, 2010

Deliberate Discovery, No SQL and CQRS at QCon

3 minute read

The 2nd day of QCon was not one where I chose wisely. My focus for this conference was everything Agile and anything from the well-known speakers. So I ignored most sessions that had words like REST, SQL or Java in it. How wrong I was…. But I did not discover that until I heard and read about all...

November 5, 2010

Pretotyping, Best Patterns and History Lessons

2 minute read

The compression ratio of the content versus the timing available is quite high here at QCon. Already at the first official day, I attended 7 (!) talks. That's quite a lot of information to process. Unfortunately, the difference in quality is really noticeable. Some talks were absolutely awesome a...

November 4, 2010

Quotes from QCon

2 minute read

One of the funny things of this QCon is the many tweets that the attendees have been throwing into the world wide web. That's great for a speaker because now they get immediate feedback on their performance, both good and bad. These are some of the quotes I found funny, inspiring or refreshing: ...

November 4, 2010

Agile Architecture according to Dan North

1 minute read

Updated on March 3rd 2012 with a PDF of Dan North’s mind map On the first day of the QCon conference in San Francisco, I attended a full-day tutorial titled "Secrets of Agile Architecture" hosted by Dan North. I didn't really know what to expect, but I was hoping for some refreshingly new insight...

November 3, 2010

A weekend in San Francisco

2 minute read

This week I'll be attending QCON, an international conference on architecture and Agile held in San Francisco. Because a flight on Sunday was 400 euros more expensive than a flight on Saturday, I decided to rent a nice convertible and use the day off to take a nice road trip through the area to t...

November 1, 2010

Is Entity Framework 4.0 ready for the real work?

1 minute read

This morning, on the Developer Days 2010, I did a talk on the current state of affairs of the 4.0 version of the Entity Framework, including a rough comparison with NHibernate 2.1. Apparently this is something that’s on the mind of many people. The room was supposed to accommodate a maximum of 80...

March 30, 2010

My two days of fame at the Developer Days 2010

less than 1 minute read

Some of you who have been visiting the Dutch Developer Days 2010 in The Hague today may have noticed the flyers and banners for promoting the new online version of the .NET Magazine. Those who already know me may have noticed that it’s me on those banners.    Since the photographer spe...

March 30, 2010

Fluent Assertions

The definitive guide to extending Fluent Assertions

10 minute read

Some background In my recent post about the responsibilities of an open-source developer I said that the author of an open-source project is fully entitled to reject a contribution. In the case of Fluent Assertions, this is no different. Some things just aren't a good fit for a general purpose a...

May 4, 2016

The responsibilities of an open-source developer

4 minute read

The proudest moment anybody initiating an open-source project can experience is when that project finally gains the momentum to make a difference within the community it targets. When my colleague Martin and I published the first release of Fluent Assertions on CodePlex in 2011 (yeah, those were ...

March 24, 2016

Why I am abandoning GitFlow

1 minute read

Now that the number of downloads of Fluent Assertions is about to cross the magic number of 1 million downloads, and the library is quite feature complete, it is time to rethink the release strategy. Since its inception we’ve always used a separate branch for working on future features and improv...

December 13, 2015

Fluent Assertions supports .NET 4.6, CoreCLR and .NET Native

less than 1 minute read

With all credits going to Oren Novotny, Tommy Long, Stuart Blackler and some of the Microsoft folks behind the .NET Core projects, Fluent Assertions 4.0 introduces support for the new platforms .NET 4.6, CoreCLR and .NET Native. Since Fluent Assertions has adopted the Semantic Versioning scheme...

August 24, 2015

False positives and semantic versioning

3 minute read

As part of stabilizing an upcoming release, I always dog food a beta package against the 12000 unit tests in one of our bigger projects. In the early days, that would surface all kinds of edge cases I never thought of. In every single case, the first thing I would do is to add a new unit test to ...

June 24, 2015

Fluent Assertions just a got a little bit better

2 minute read

Just a quick post to let you all know that I’ve just published a new version of Fluent Assertions with a load of little improvements that will improve your life as a unit test developer a little bit. New features Added CompareEnumsAsString and CompareEnumsAsValue to the options taken byShouldBe...

February 19, 2015

Universal Apps, WP8.1, xUnit2 or what else is new in Fluent Assertions 3.1

1 minute read

Yesterday, much later than planned, Fluent Assertions 3.1 as well as its companion project Fluent Assertions for Xamarin were released on Github and NuGet. As is becoming quite common this year, the honors for most active contributors once again go to Adam Voss and Oren Novotny. Next to being the...

July 29, 2014

Time to break with the past a.k.a. Fluent Assertions 3.0

3 minute read

Boy do I love the .NET community. Since I moved Fluent Assertions to Github, people have been creating 32 forks and provided me with 37 pull requests. In fact, release 3.0 has been made possible by the likes of Adam Voss (who provided a lot of those pull requests), Maarten Balliauw (for setting u...

May 20, 2014

It took almost a year, but Fluent Assertions 2.1 is done

3 minute read

It has been way too long since I last released a new version of Fluent Assertions, but somehow my intention to deliver at least every three months has once again failed by the obligations a working husband and father of two has. Nonetheless, Fluent Assertions 2.1 is a fact. And although it isn't ...

August 28, 2013

Planning the Windows 8 Cookbook

2 minute read

I'm currently at Microsoft's Build conference and we're all receiving a Surface RT tablet. That means it's a great moment to talk about my plans for the Windows 8 Cookbook. I know, I know, it's a cheesy name so just be aware that I'm open to better suggestions. Since Silverlight is mostly dead, I...

October 30, 2012

Fluent Assertions 2.0 is out of the beta phase

less than 1 minute read

After six weeks of beta testing, it is time to remove the beta mark from Fluent Assertions 2.0. Since the beta was released, we fixed several little bugs that you won’t notice, but the original release notes still apply. Release 2.0 adds a lot of new features and improvements, most noticeably the...

October 8, 2012

Breaking with the past (or…Fluent Assertions 2.0 is in beta)

6 minute read

After many months of development, in particular during in evenings after work and in the weekends, we’re proud to present the first (and hopefully the only) beta of Fluent Assertions 2.0. Together with my good friend and coworker Martin Opdam, and supported by noticeable contributors like Oren No...

August 26, 2012

Fluent Assertions gets a bug fix release

less than 1 minute read

While we are working on the next major version of Fluent Assertions, we received several smaller bug reports that we bundled in release 1.7.1. Fixed a bug that occurs when two collections are compared for equality but the collection contains null. Fixed a stack overflow while formatting an obje...

March 23, 2012

Fluent Assertions 1.7.0 has been released

1 minute read

It has barely been more than two months ago, but the number of downloads through CodePlex and Nuget combined has exceeded 2000. Me and co-author Martin Opdam thought that to be a nice reason for releasing a new version of Fluent Assertions. This isn't a big release, but since we are following sem...

January 13, 2012

Fluent Assertions is finally gaining some momentum

2 minute read

Indeed it is, in particular within the part of the .NET community that believes test-first development is non-negotiable. We receive more and more suggestions, contributions and questions, and we’ve started to notice some blog posts here and there. It’s not that it is being downloaded thousands ...

October 30, 2011

Why I created Fluent Assertions in the first place

4 minute read

A few weeks ago I read The value of open-source is the vision not the source code and that made me think about my own reasons for starting Fluent Assertions, now more than a year ago. In the light of that article, lets briefly go over my own goals for Fluent Assertions. The intention of a unit te...

July 29, 2011

Fluent Assertions 1.5 is done! Now it’s time for that summer.

4 minute read

In the last couple of months, me and colleague Martin Opdam have spent a considerable amount of time on both improving the reporting capabilities of Fluent Assertions as well as fixing and incorporating various community contributions. Because of the many changes required, a very busy client proj...

July 5, 2011

Fluent Assertions as a NuGet package

less than 1 minute read

As of now you can download the latest version of Fluent Assertions directly from within Visual Studio 2010. Just install the NuGet package manager, select Add Library Package Reference from the project context menu and search for FluentAssertions.

January 15, 2011

Verifying PropertyChanged events in Silverlight using Fluent Assertions

1 minute read

Yesterday, I blogged about the newest release of Fluent Assertions for .NET and Silverlight and promised to demonstrate the new event monitoring syntax. Since I’m a Silverlight addict, I decided to show you an example of a MVVM unit test when using the traditional Assert class and the same exampl...

January 4, 2011

A new year with a new release of Fluent Assertions

2 minute read

Christmas usually means a week off and a whole lot of free time between the social obligations and spending some quality time with my wife and daughter. That’s why I decided to get rid of some of the backlog items for the next version of Fluent Assertions. And I’m done, version 1.3.0 is a fact. N...

January 3, 2011

InRetrospect

In Retrospect: About getting through your Sprint

9 minute read

This is the fourth of several posts in which I’d like to share some of the things we learned throughout more than a year of Agile development using Scrum. Some of them might appear as open doors, but I wish I knew or thought about those before I started that project. Just by looking back at the m...

January 11, 2012

In Retrospect: About Bugs

4 minute read

This is the third of several posts in which I’d like to share some of the things we learned throughout more than 14 sprints of Agile development using Scrum. Some of them might appear as open doors, but I wish I knew or thought about those before I started that project. Just by looking back at th...

November 3, 2011

In Retrospect: About the Sprint Planning

12 minute read

This is the second of several posts in which I’d like to share some of the things we learned throughout more than 14 sprints of Agile development using Scrum. Some of them might appear as open doors, but I wish I knew or thought about those before I started that project. Just by looking back at t...

October 12, 2011

In Retrospect: About Requirements Management

4 minute read

This is the first of several posts in which I’d like to share some of the things we decided throughout 14 sprint retrospective. Some of them might appear as open doors, but I wish I knew or thought about those before I started that project. Just by looking back at the mistakes a team of 9 develop...

September 26, 2011

Metro

About the future of the Silverlight Cookbook

less than 1 minute read

Since my first blog post on the Silverlight Cookbook in September 2010, I’ve invested a lot of private time in sharing my best practices on building line-of-business application in Silverlight. I shared my code on CodePlex, wrote an entire series of blog posts, and talked about the Cookbook at se...

March 13, 2012

OWIN Recipes

Ingredients for well-designed OWIN middleware components - Part 7

3 minute read

In the sixth post of this series I talked about how you can use Swagger to create real useful documentation for your API. In this seventh and probably last post, I'd like to present some spices to make that OWIN middleware component extra special. Spice 1: Automate your entire bu...

July 29, 2015

Ingredients for well-designed OWIN middleware components - Part 6

1 minute read

In the fifth post of this series I talked about some PowerShell tips to align the versions of all NuGet packages. In this sixth post, I'd like to show you how you can make your HTTP API much easier to use. Ingredient 7: Swagger-enabled documentation If your component exposes an HTTP API based o...

July 27, 2015

Ingredients for well-designed OWIN middleware components - Part 5

1 minute read

In the fourth installment of this series I proposed a pattern for postponing expensive operations from inside your middleware component until the OWIN pipeline has been constructed. In this post, I'm going to talk about aligning package dependency versions. Why? Well, in my experience a well-desi...

July 22, 2015

Ingredients for well-designed OWIN middleware components - Part 4

1 minute read

In my last post I talked about unit testing your OWIN pipeline and briefly mentioned that you shouldn't do any heavy lifting from inside your UseWhatever method. Examples of that include starting background tasks or connecting to other services (through that HttpMessageHandler). If you're lucky, ...

July 22, 2015

Ingredients for well-designed OWIN middleware components - Part 3

2 minute read

In my last post, I talked about decoupling the construction of the OWIN pipeline from the definition of the OWIN middleware component. In this post, I’m going to talk about the next ingredient, the testing story.Ingredient 4: Testing your entire HTTP pipelineIn most projects that are building ASP...

July 21, 2015

Ingredients for well-designed OWIN middleware components - Part 2

1 minute read

In my last post, I talked about naming conventions and reducing the number of public dependencies, the first two ingredients of a recipe for well-designed OWIN middleware components. In this post, I'm going to talk about separating the OWIN pipeline construction from the middleware defi...

July 20, 2015

Ingredients for well-designed OWIN middleware components - Part 1

2 minute read

My main focus the last couple of months has been on building components that offer HTTP-based services. This whole component-oriented focus is something we've been focusing on the last year or so because we wanted to actively trying move away from building monolithic systems. Tools like OWIN, NuG...

July 16, 2015

Quality

A Git collaboration workflow that provides feedback early and fast

4 minute read

At Aviva Solutions, we’ve been using Git for a little of over two years now and I can wholeheartedly say that after having worked with TFS for years, we'll never go back… ever. But with any new technology, practice or methodology, you need to go through several cycles before you find a way that w...

June 13, 2016

Why software innovation is not a free pass for doing whatever you want

3 minute read

Somebody on Twitter recently posed the question whether innovation in software and agile development can co-exist or not. To remove any misinterpretation - something quite common for Twitter discussion - I asked him to clarify what he meant with the word 'innovation'. In short, any kind of softwa...

April 3, 2016

The responsibilities of an open-source developer

4 minute read

The proudest moment anybody initiating an open-source project can experience is when that project finally gains the momentum to make a difference within the community it targets. When my colleague Martin and I published the first release of Fluent Assertions on CodePlex in 2011 (yeah, those were ...

March 24, 2016

The real challenges of building the right thing right

2 minute read

Suppose you're in the following situation.You and your team are supposed to start working on some important architectural changes that were long due.Your team is then asked by your manager to help build an important feature that requires the unique skills of your team, and ...

October 9, 2015

The all new coding guidelines for C# 3.0, 4.0 and 5.0 have been published!

4 minute read

After 50000 downloads and the recent final release of Visual Studio 2012 / C# 5.0 it was about time to do a thorough update of the C# Coding Guidelines. Although most of the guidelines have been preserved, I’ve tried to rewrite several of them using a less formal and less verbose writing style. I...

November 26, 2012

Quick Review of The Cucumber Book from a SpecFlow perspective

2 minute read

This week I completed reading a new book titled The Cucumber Book: Behaviour-Driven Development for Testers and Developers by Matt Wynne and Aslak Hellesoy. Aslak is the founder of the Cucumber project (which is what SpecFlow for .NET is based on), and Matt is one of its most active developers. T...

July 30, 2012

In Retrospect: About Bugs

4 minute read

This is the third of several posts in which I’d like to share some of the things we learned throughout more than 14 sprints of Agile development using Scrum. Some of them might appear as open doors, but I wish I knew or thought about those before I started that project. Just by looking back at th...

November 3, 2011

Another release for Fluent Assertions

2 minute read

It’s only February, but I’ve received so many requests from the community that another release of Fluent Assertions was easily warranted. New Features Somebody working under the name of CtrlAltDel pointed me at the little-known fact that floating point variables are inheritably inaccurate and...

February 27, 2011

December Update of the Coding Guidelines for C# 3.0 and C# 4.0

1 minute read

I finally found some time to update the coding guidelines with some feedback I received since it’s original release in June this year. I’ve removed the following guidelines because I found that they were either very exotic or not general enough for most developers: Avoid side-effects when...

December 23, 2010

A night of Silverlight, WPF, unit testing and Caliburn Micro

less than 1 minute read

Last Thursday, me and my employer Aviva Solutions hosted the December edition of the DotNED user group in Leiden. And yesterday a shared my Silverlight reference architecture on this year’s last SDN Event. I gave two talks that evening and one last night and wanted to share my slides and example ...

December 11, 2010

ALM Practices Part 12: Reducing Technical Debt

3 minute read

What is it? Technical Debt is every change to your code base that does not comply with the usual level of quality your team has agreed upon. Since this level of quality has been introduced to guarantee a healthy code base throughout the life time of the system, introducing technical debt essenti...

October 19, 2010

Commercial support for the C# 3.0/4.0 Coding Guidelines

1 minute read

A few weeks ago I had a chat with Paul Jansen, CEO of a small Eindhoven-based company named Tiobe. You might indirectly know Tiobe for its programming language index and their commercial code checker ClockSharp. But they have also been hosting a C# Coding Standard I co-wrote for Philips Medical S...

September 13, 2010

ALM Practices Part 11: Modeling the business domain using Domain Models

3 minute read

What is it? A domain model is typically depicted by a UML class diagram in which the classes and associations represent the business concepts and the relationships between them. Although you can use a piece of paper to draw up a domain model, in most cases a UML case tool is better suited for t...

August 25, 2010

ALM Practices Part 9: Ubiquitous Language

2 minute read

What is it? The Ubiquitous Language is a unified language consisting of verbs and nouns from the business domain of an enterprise system and should be used by all team members, stakeholders and other involved persons. Why would you do it? Because it creates a bridge of understanding between th...

August 3, 2010

ALM Practices Part 7: Refactoring

3 minute read

What is it? A mindset and practice that requires you to continuously reevaluate a region of code each time you make a change. In essence, you need to look at the code related to your changes and reconsider whether the original solution is still the best solution accounting for the information you...

June 30, 2010

Coding Guidelines for C# 3.0 and C# 4.0 now available

1 minute read

As promised earlier, you can now download the concept version of my new Coding Guidelines for C# 3.0 and C# 4.0 from a dedicated CodePlex site at www.csharpcodinguidelines.com. The list of changes is quite big, and includes new guidelines covering object-oriented design, design principles, C# 4.0...

June 28, 2010

ALM Practices Part 6: Code Analysis & Guidelines

3 minute read

What is it? Coding guidelines, or coding standards if you will, are documents consisting of rules and recommendations on the use of C# in enterprise systems. They deal with code layout, naming guidelines, the proper use of the .NET Framework, tips on writing useful comments and XML documentat...

April 20, 2010

Fluent Assertions 1.2 has been released

4 minute read

It has been only 6 weeks since I first released Fluent Assertions to the public, followed by version 1.1 a week later. In the weeks thereafter, I received some nice ideas from the community which caused me to start working on the next version. But it was not easy. I found that designing a small f...

April 12, 2010

The curious case of the unsolved extension methods

3 minute read

As part of my effort to improve the type-safety of Fluent Assertions, I’ve been investigating the possibility to use C# extension methods all the way. Unfortunately I think I’ve ran into the limitations of C# 3.0 (and C# 4.0 since it doesn’t add anything useful for this). Essentially, I’d like to...

March 24, 2010

ALM Practices Part 4: Common Code Layout

1 minute read

What is it? A collection of rules stating what a block of code should look like. These may include rules on where line breaks are required, how to place parentheses, how much whitespace to put before and after those parentheses, how many spaces to use when indenting and where to insert empty line...

March 15, 2010

Silverlight

About the future of the Silverlight Cookbook

less than 1 minute read

Since my first blog post on the Silverlight Cookbook in September 2010, I’ve invested a lot of private time in sharing my best practices on building line-of-business application in Silverlight. I shared my code on CodePlex, wrote an entire series of blog posts, and talked about the Cookbook at se...

March 13, 2012

Silverlight Cookbook: Looking for a great UI design

less than 1 minute read

Why? Because even though think I have a reasonable idea of when a user interface is consistent and user friendly, I suck at the raw design skills. Just check out the current ‘design’ if you don’t believe me. I’m actually looking for something that resembles the Cosmopolitan theme or MetroTwit: ...

November 4, 2011

Silverlight Cookbook: Switching to another IoC Framework

5 minute read

The Rationale As long as I have been using the Dependency Inversion Principle, Microsoft Unity has always been my preferred Inversion-of-Control framework. So it’s not strange that the Silverlight Cookbook has been using Unity 2 in both its WCF/REST layer as well as within the Silverlight client....

September 28, 2011

So what does Windows 8 mean for .NET developers?

3 minute read

Last updated on September 22nd Unfortunately, the Microsoft Build conference conflicted with our company's 5-year anniversary and the associated sailing trip in Greece. Fortunately, the blogosphere and twitter-space provided plenty of opportunities for trying to grasp what the stuff Sinofsky and...

September 17, 2011

Yes, the Silverlight Cookbook is still alive

1 minute read

Although it might not seem like that, I am still working on the Silverlight Cookbook. However, I’ve just moved to a new house, so I ran out of time recently. Fortunately, since my colleague Martin Opdam is actively working on Fluent Assertions, so I only have to divide my free time between the co...

September 14, 2011

Choosing the right web technology for business applications

5 minute read

Before I continue with the rest of this post, I first need to make a disclaimer. I'm in no way an expert on all things Microsoft has to offer in the web realm and have yet to complete a full-fledged ASP.NET MVC & JQuery project. However, I see myself as someone who quickly grasps the potenti...

May 15, 2011

Where to find me during the Developer Days 2011

6 minute read

Somebody recently asked me what sessions I was planning to attend at the upcoming 2011 edition of the Microsoft Developer Days in The Hague. To be honest, my primary reason for going to a Dutch conference is to chat with fellow .NET enthusiasts, and attending sessions is usually a side-effect of ...

April 8, 2011

Introducing the Silverlight Cookbook

4 minute read

In the 2nd half of 2010 I was so fortunate to get the chance to build my first enterprise-class line-of-business application written in Silverlight 4. And although I designed my original reference architecture earlier that year, actually building it is a completely different thing. I learned a lo...

March 7, 2011

Another release for Fluent Assertions

2 minute read

It’s only February, but I’ve received so many requests from the community that another release of Fluent Assertions was easily warranted. New Features Somebody working under the name of CtrlAltDel pointed me at the little-known fact that floating point variables are inheritably inaccurate and...

February 27, 2011

Get me on stage on the Developer Days 2011

less than 1 minute read

Although the Dutch Microsoft Developer Days is mostly about foreign speakers, the organization has a recurring event called the wildcard sessions. This allowed me to speak at the biggest Dutch conference of the year for two years in a row. Unfortunately, the number of proposals has exploded this ...

February 23, 2011

Verifying PropertyChanged events in Silverlight using Fluent Assertions

1 minute read

Yesterday, I blogged about the newest release of Fluent Assertions for .NET and Silverlight and promised to demonstrate the new event monitoring syntax. Since I’m a Silverlight addict, I decided to show you an example of a MVVM unit test when using the traditional Assert class and the same exampl...

January 4, 2011

A night of Silverlight, WPF, unit testing and Caliburn Micro

less than 1 minute read

Last Thursday, me and my employer Aviva Solutions hosted the December edition of the DotNED user group in Leiden. And yesterday a shared my Silverlight reference architecture on this year’s last SDN Event. I gave two talks that evening and one last night and wanted to share my slides and example ...

December 11, 2010

The subtleties of Silverlight’s cross-browser compatibility

less than 1 minute read

Last week we put our first full-blown Silverlight 4 line-of-business application into production, and just yesterday, we’ve run into our first production issue. Consider the width specifications of the DataGrid columns in this XAML fragment: This XAML file was generated by Expression Blend and h...

November 16, 2010

Silverlight Cookbook: ViewModels, Coroutines and Binding Conventions

10 minute read

This post is part of a series of blog posts detailing various aspects of the Silverlight Cookbook, an initiative to demonstrate proper design choices for building enterprise-class line-of-business applications with Silverlight (and WPF if you will). It currently consists out of the following part...

October 26, 2010

My Silverlight 4 Reference Architecture: The Domain Model

3 minute read

The Domain Model is roughly designed according to the DDD principles where cross-aggregate logic is handled by the command handlers instead of the more traditional domain services. One thing that I changed after I attended Greg Young's DDD/CQRS training is that I no longer allow my domain entitie...

October 13, 2010

My Silverlight 4 Reference Architecture: Querying

2 minute read

After having put the introduction and the commanding part behind us, let me explain how I deal with querying. Consider the following slice of the reference architecture.  My original intention was to use WCF Data Services combined with NHibernate on the query side. For one, because it allo...

October 12, 2010

My Silverlight 4 Reference Architecture: Commanding

2 minute read

<p $1=”$1”></p> <p $1=”$1”>After sharing my thoughts on unit testing in Silverlight and the combination of NHibernate and WCF Data Services, it is time to discuss the updated version of the Silverlight reference architecture from one of my posts of last year. To put the discu...

October 8, 2010

Getting more out of unit testing in Silverlight

3 minute read

As I already mentioned in my previous post, we're building a line-of-business app using Silverlight 4 and WCF Data Services. I really think Silverlight is great for those kind of systems, but since it is based on a different run-time as the full .NET framework, you may wonder what you'll run into...

September 24, 2010

Silverlight Cookbook: WCF Data Services and NHibernate

4 minute read

<p $1=”$1”></p> <p $1=”$1”></p> <p $1=”$1”></p> <p $1=”$1”></p> <p $1=”$1”></p> <p>This post is part of a series of blog posts detailing various aspects of the Silverlight Cookbook, an initiative to demonstrate prope...

September 20, 2010

My first thoughts on WCF RIA Services

1 minute read

While working on my demo code for my full-day talk on Software Development Practices in Practice I was a bit ambitious and introduced both Silverlight 4 and WCF RIA Services. Apart from the fact that the preparation caused a bit too much of my social live, I ran in some things I don’t really like...

February 26, 2010

Silverlight Reference Architecture revisited

less than 1 minute read

Update October 2010: I’ve started a new in-depth series on my current Silverlight 4 Reference Architecture. In July I posted about my considerations for a Silverlight Reference Architecture, and in December I talked about it in my chalk’n’talk session on architecture, WCF RIA Services and Silver...

February 11, 2010

Defining a reference architecture for Silverlight LOBs

3 minute read

Update October 2010: I’ve started a new in-depth series on my current Silverlight 4 Reference Architecture. Recently I've been catching up on Silverlight by reading Pro Silverlight 2 in C# and the many blogs and articles on Silverlight 3 and I'm seriously impressed. The reason for this sudden in...

July 29, 2009

TFS

How Git can help you prevent building a monolith

5 minute read

During last weeks' Git Like a Pro talk I tried to convey the message that switching to Git is much more than introducing a new source control system. It will affect not just the way you commit source code, branch or merge, it changes the entire development workflow. In fact, I'm willing to claim ...

February 4, 2016

Why you should abandon TFS and adopt Git

4 minute read

Almost every time I do some kind of talk somewhere, people ask me for advice on how to convince their management that they should drop Microsoft Team Foundation Server's source control system and move over to Git. In this post, I'll be talking about the source control system only. Both Visual Stu...

June 26, 2015

ALM Practices Part 10: Work Item Tracking

1 minute read

What is it? Using Team Foundation Server’s User Story, Task and Bug work item types as the central unit of work for all the activities done within a project. Why would you do it? Because it adds traceability between the functional requirements and the way these requirements have been realized ...

August 10, 2010

ALM Practices Part 8: Automatic Builds & Continuous Integration

6 minute read

What is it? An automatic build is a fully automated compilation of a specific version of your source code repository and which runs at regular intervals. More often than not, such a build includes additional steps such as running a static code analysis and code coverage, executing all automat...

July 4, 2010

ALM Practices Part 6: Code Analysis & Guidelines

3 minute read

What is it? Coding guidelines, or coding standards if you will, are documents consisting of rules and recommendations on the use of C# in enterprise systems. They deal with code layout, naming guidelines, the proper use of the .NET Framework, tips on writing useful comments and XML documentat...

April 20, 2010

ALM Practices Part 5: Checklists

1 minute read

What is it? An (online) list of verification tasks to sign off as part of the delivery process of a newly delivered unit of work. Usually these include things that are often forgotten, or aspects that require explicit verification. See an example of such a list here. Why would you do it? Becau...

March 23, 2010

TFS, ALM, what’s in a name?

less than 1 minute read

In response to my posts on Peer Reviews, Unit Testing & TDD, and Common Code Layout, someone noticed that all these posts were part of my Team Foundation Server Development Practices series, but not every post actually mentioned TFS. Obviously, he was right. The reason for using the TFS prefi...

March 19, 2010

How to split a solution into projects

1 minute read

Yesterday, a colleague of mine asked for some guidance on how to partition a Visual Studio solution into individual projects. Instead of simply answering his email I thought that blogging about it may be useful for others as well, so here are my rules: In general, have as few projects as possi...

February 11, 2010

ALM Practices Part 2: Peer Reviews

3 minute read

What is it? A formal review of all code and artifacts related to a requirement or task by another person than the original developer. Rework because of review comments must be revalidated afterwards. Why would you do that? Because the average developer introduces 10-50 bugs per 10...

February 1, 2010

Storyotypes in Visual Studio 2010

less than 1 minute read

Storyotypes are stereotypes for user stories that can help to define the right scope for your user stories. You can read more about these in the article Using Storyotypes to Split Bloated XP Stories and these slides. Team Foundation Server 2010 includes a new VSTS for Agile process template close...

January 8, 2010

ALM Development Practices Part 1: An Introduction

1 minute read

As part of my many assignments, I’m compiling a bunch of Application Lifecycle Management practices into a set of development guidelines for bootstrapping our internal projects using Team Foundation Server. I’ve decided to share these with the community so that others may benefit from it as well....

January 4, 2010

Testing

Profiling legacy code using characterization tests

3 minute read

As you might have read, I've been refactoring some example code for a multi-threaded cache that I got from CodeProject into a source-only NuGet package which will soon be published as FluidCaching. Since this cache has been built to be very performant, the internal algorithms are not trivial to g...

March 10, 2016

Fluent Assertions 2.0 is out of the beta phase

less than 1 minute read

After six weeks of beta testing, it is time to remove the beta mark from Fluent Assertions 2.0. Since the beta was released, we fixed several little bugs that you won’t notice, but the original release notes still apply. Release 2.0 adds a lot of new features and improvements, most noticeably the...

October 8, 2012

Slides and demo code for my SpecFlow/WaTiN talk

less than 1 minute read

Yesterday I did a 2-hour talk on getting the most out of UI automation, particularly using SpecFlow and WaTiN. You can find the slides down here and the demo code at GitHub.<iframe allowfullscreen="" frameborder="0" height="356" marginheight="0" marginwidth="0" scrolling="no" src="http://www.s...

August 31, 2012

If you write an article about TDD, make sure it is correct

6 minute read

I spend a majority of my private time reading articles and blog posts, having discussions on Twitter, or engaging in conversations on conferences and community events. I'm realistic enough to understand that my opinions are not necessarily the truth, so I use those opportunities to challenge my o...

July 19, 2012

Fluent Assertions gets a bug fix release

less than 1 minute read

While we are working on the next major version of Fluent Assertions, we received several smaller bug reports that we bundled in release 1.7.1. Fixed a bug that occurs when two collections are compared for equality but the collection contains null. Fixed a stack overflow while formatting an obje...

March 23, 2012

Fluent Assertions 1.7.0 has been released

1 minute read

It has barely been more than two months ago, but the number of downloads through CodePlex and Nuget combined has exceeded 2000. Me and co-author Martin Opdam thought that to be a nice reason for releasing a new version of Fluent Assertions. This isn't a big release, but since we are following sem...

January 13, 2012

Fluent Assertions is finally gaining some momentum

2 minute read

Indeed it is, in particular within the part of the .NET community that believes test-first development is non-negotiable. We receive more and more suggestions, contributions and questions, and we’ve started to notice some blog posts here and there. It’s not that it is being downloaded thousands ...

October 30, 2011

Why I created Fluent Assertions in the first place

4 minute read

A few weeks ago I read The value of open-source is the vision not the source code and that made me think about my own reasons for starting Fluent Assertions, now more than a year ago. In the light of that article, lets briefly go over my own goals for Fluent Assertions. The intention of a unit te...

July 29, 2011

Fluent Assertions 1.5 is done! Now it’s time for that summer.

4 minute read

In the last couple of months, me and colleague Martin Opdam have spent a considerable amount of time on both improving the reporting capabilities of Fluent Assertions as well as fixing and incorporating various community contributions. Because of the many changes required, a very busy client proj...

July 5, 2011

Another release for Fluent Assertions

2 minute read

It’s only February, but I’ve received so many requests from the community that another release of Fluent Assertions was easily warranted. New Features Somebody working under the name of CtrlAltDel pointed me at the little-known fact that floating point variables are inheritably inaccurate and...

February 27, 2011

Fluent Assertions as a NuGet package

less than 1 minute read

As of now you can download the latest version of Fluent Assertions directly from within Visual Studio 2010. Just install the NuGet package manager, select Add Library Package Reference from the project context menu and search for FluentAssertions.

January 15, 2011

Verifying PropertyChanged events in Silverlight using Fluent Assertions

1 minute read

Yesterday, I blogged about the newest release of Fluent Assertions for .NET and Silverlight and promised to demonstrate the new event monitoring syntax. Since I’m a Silverlight addict, I decided to show you an example of a MVVM unit test when using the traditional Assert class and the same exampl...

January 4, 2011

A new year with a new release of Fluent Assertions

2 minute read

Christmas usually means a week off and a whole lot of free time between the social obligations and spending some quality time with my wife and daughter. That’s why I decided to get rid of some of the backlog items for the next version of Fluent Assertions. And I’m done, version 1.3.0 is a fact. N...

January 3, 2011

A night of Silverlight, WPF, unit testing and Caliburn Micro

less than 1 minute read

Last Thursday, me and my employer Aviva Solutions hosted the December edition of the DotNED user group in Leiden. And yesterday a shared my Silverlight reference architecture on this year’s last SDN Event. I gave two talks that evening and one last night and wanted to share my slides and example ...

December 11, 2010

Getting more out of unit testing in Silverlight

3 minute read

As I already mentioned in my previous post, we're building a line-of-business app using Silverlight 4 and WCF Data Services. I really think Silverlight is great for those kind of systems, but since it is based on a different run-time as the full .NET framework, you may wonder what you'll run into...

September 24, 2010

Fluent Assertions 1.2 has been released

4 minute read

It has been only 6 weeks since I first released Fluent Assertions to the public, followed by version 1.1 a week later. In the weeks thereafter, I received some nice ideas from the community which caused me to start working on the next version. But it was not easy. I found that designing a small f...

April 12, 2010

The curious case of the unsolved extension methods

3 minute read

As part of my effort to improve the type-safety of Fluent Assertions, I’ve been investigating the possibility to use C# extension methods all the way. Unfortunately I think I’ve ran into the limitations of C# 3.0 (and C# 4.0 since it doesn’t add anything useful for this). Essentially, I’d like to...

March 24, 2010

ALM Practices Part 5: Checklists

1 minute read

What is it? An (online) list of verification tasks to sign off as part of the delivery process of a newly delivered unit of work. Usually these include things that are often forgotten, or aspects that require explicit verification. See an example of such a list here. Why would you do it? Becau...

March 23, 2010

Fluent Assertions released on CodePlex

1 minute read

About a year ago, me and some other colleagues started to create a simple framework for verifying the outcome of unit tests in a more natural way. Martin Opdam already blogged about this in June and since then we have been adding some minor features. A few weeks ago I discovered the much more po...

March 1, 2010

Wildcard Proposal: TDD and SOLID, two ingredients for high quality software

less than 1 minute read

Many attempts have been made to improve the overal quality of our software development efforts, but if there’s one I’d like to put some attention on, it’s Test Driven Development. It’s design-first, test-first approach has proved significant increases in overal quality. However, TDD is not easy a...

April 9, 2009

Visual Studio

Entity Framework 5 and 6 vs NHibernate 3 – The State of Affairs

12 minute read

It has been almost two years since I've last compared NHibernate and Entity Framework, so with the recent alpha version of EF 6, it's about time to look at the current state of affair. I've been using NHibernate for more than 6 years so obviously I'm a bit biased. But I can't ignore that EF's fea...

March 12, 2013

The all new coding guidelines for C# 3.0, 4.0 and 5.0 have been published!

4 minute read

After 50000 downloads and the recent final release of Visual Studio 2012 / C# 5.0 it was about time to do a thorough update of the C# Coding Guidelines. Although most of the guidelines have been preserved, I’ve tried to rewrite several of them using a less formal and less verbose writing style. I...

November 26, 2012

Yes, the Silverlight Cookbook is still alive

1 minute read

Although it might not seem like that, I am still working on the Silverlight Cookbook. However, I’ve just moved to a new house, so I ran out of time recently. Fortunately, since my colleague Martin Opdam is actively working on Fluent Assertions, so I only have to divide my free time between the co...

September 14, 2011

Choosing the right web technology for business applications

5 minute read

Before I continue with the rest of this post, I first need to make a disclaimer. I'm in no way an expert on all things Microsoft has to offer in the web realm and have yet to complete a full-fledged ASP.NET MVC & JQuery project. However, I see myself as someone who quickly grasps the potenti...

May 15, 2011

Where to find me during the Developer Days 2011

6 minute read

Somebody recently asked me what sessions I was planning to attend at the upcoming 2011 edition of the Microsoft Developer Days in The Hague. To be honest, my primary reason for going to a Dutch conference is to chat with fellow .NET enthusiasts, and attending sessions is usually a side-effect of ...

April 8, 2011

Introducing the Silverlight Cookbook

4 minute read

In the 2nd half of 2010 I was so fortunate to get the chance to build my first enterprise-class line-of-business application written in Silverlight 4. And although I designed my original reference architecture earlier that year, actually building it is a completely different thing. I learned a lo...

March 7, 2011

Fluent Assertions as a NuGet package

less than 1 minute read

As of now you can download the latest version of Fluent Assertions directly from within Visual Studio 2010. Just install the NuGet package manager, select Add Library Package Reference from the project context menu and search for FluentAssertions.

January 15, 2011

ReSharper versus CodeRush through the eyes of a keyboard addict

5 minute read

I've been a very long-time and very happy user of ReSharper, and I’ve become very dependent of it. I wouldn't know what to do with a plain Visual Studio 2010 installation. However, I also heard many great things about the combination of DevExpress's CodeRush and their Refactor! Pro products. Appa...

November 29, 2010

Fluent Assertions 1.2 has been released

4 minute read

It has been only 6 weeks since I first released Fluent Assertions to the public, followed by version 1.1 a week later. In the weeks thereafter, I received some nice ideas from the community which caused me to start working on the next version. But it was not easy. I found that designing a small f...

April 12, 2010

Is Entity Framework 4.0 ready for the real work?

1 minute read

This morning, on the Developer Days 2010, I did a talk on the current state of affairs of the 4.0 version of the Entity Framework, including a rough comparison with NHibernate 2.1. Apparently this is something that’s on the mind of many people. The room was supposed to accommodate a maximum of 80...

March 30, 2010

ALM Practices Part 4: Common Code Layout

1 minute read

What is it? A collection of rules stating what a block of code should look like. These may include rules on where line breaks are required, how to place parentheses, how much whitespace to put before and after those parentheses, how many spaces to use when indenting and where to insert empty line...

March 15, 2010

How to split a solution into projects

1 minute read

Yesterday, a colleague of mine asked for some guidance on how to partition a Visual Studio solution into individual projects. Instead of simply answering his email I thought that blogging about it may be useful for others as well, so here are my rules: In general, have as few projects as possi...

February 11, 2010

Visual Studio 2010 is huge!

8 minute read

During this week’s PDC 2008, I’ve been spending particular attention to sessions related to the new features of Visual Studio 2010 Team System and Team Foundation Server 2010. The one statement almost every session started with was that this release is huge, and I totally agree! I’ve not seen so ...

November 2, 2008

WCF

My Silverlight 4 Reference Architecture: Querying

2 minute read

After having put the introduction and the commanding part behind us, let me explain how I deal with querying. Consider the following slice of the reference architecture.  My original intention was to use WCF Data Services combined with NHibernate on the query side. For one, because it allo...

October 12, 2010

Silverlight Cookbook: WCF Data Services and NHibernate

4 minute read

<p $1=”$1”></p> <p $1=”$1”></p> <p $1=”$1”></p> <p $1=”$1”></p> <p $1=”$1”></p> <p>This post is part of a series of blog posts detailing various aspects of the Silverlight Cookbook, an initiative to demonstrate prope...

September 20, 2010

WCF RIA Services

My first thoughts on WCF RIA Services

1 minute read

While working on my demo code for my full-day talk on Software Development Practices in Practice I was a bit ambitious and introduced both Silverlight 4 and WCF RIA Services. Apart from the fact that the preparation caused a bit too much of my social live, I ran in some things I don’t really like...

February 26, 2010

Windows

Why Windows 10 is much more than a new operating system

3 minute read

Let's be honest here. Since Microsoft has been shipping technical previews of Windows 10, I've been repaving my laptop a couple of times and then reverted to Windows 8.1. I didn't like the intermediate touch experience and stability was also not its greatest strengths. In fact, I reverted to 8.1 ...

May 1, 2015

Windows8

Looking back at Build 2012

2 minute read

A question which was asked many times during the week was whether or not this trip to Build 2012 in Redmond was worth the time and money. Even after four days of raw content, there is no short answer here. As Dennis Vroegop clearly illustrated, the organization was definitely not up to the task...

November 5, 2012

Build Day 4: WP8, Line-of-Business, Web Essentials and lots of laughs

3 minute read

Here we are at the fourth and last day of Microsoft Build 2012. That so many people showed up at the first session is quite surprising considering the attendee party that went on until midnight in downtown Seattle. It was a typical attendee party; free food and drinks and live music. Since being ...

November 4, 2012

Build Day 3: ASP.NET MVC, TypeScript, SignalR and Node.Js

2 minute read

So at this 3rd day here at Microsoft Build 2012, I'm actually getting lucky. Three great sessions in a row is obviously not something I've seen before. Hey, maybe I'll get to see four great sessions tomorrow. Anyway, with some of the technical debt from last night's Beerfest and a Halloween party...

November 2, 2012

Build Day 2: Azure, JavaScript and even more XAML and Windows Phone

3 minute read

Because day 2 of the Build conference wasn't any different, it seems that I must learn to accept that a maximum of two good sessions per day is going to be the standard. Fortunately the keynote was top notch with both Scott Hanselman and Scott Guthrie taking stage. They showed some of the power t...

November 1, 2012

Build Day 1: Surface, WP8, TFS, Windows Design Guidelines

2 minute read

Day 1 of Microsoft Build was in some way disappointing and at the same time exhilarating. To be honest, I was expecting to be updated on the new stuff Microsoft plans for the near future. The fact that the session list was not disclosed until a day ahead also helped reinforce that expectation. Bu...

October 31, 2012

Planning the Windows 8 Cookbook

2 minute read

I'm currently at Microsoft's Build conference and we're all receiving a Surface RT tablet. That means it's a great moment to talk about my plans for the Windows 8 Cookbook. I know, I know, it's a cheesy name so just be aware that I'm open to better suggestions. Since Silverlight is mostly dead, I...

October 30, 2012

a

The magic of hiding your NuGet dependencies

4 minute read

Welcome to the dependency hell While working on a little open-source demo project, I ran into that well-known challenge of NuGet dependency management again. This little project results in a NuGet package, that on itself also relies on other packages. Now, if I would just add those dependencies ...

May 24, 2016

agile

The Red Hot Developer - A model for removing distractions from your teams

4 minute read

When your project, product or component gets sufficiently big that it has a large impact on the rest of the organization, you’ll automatically get faced with lots of internal and external distractions. Other teams might want to get that pull request merged as soon as possible, all kinds of questi...

March 23, 2018

archit

To DRY or not to DRY, it is a matter of boundaries

4 minute read

For a very VERY long time I've been convinced that aggressively refactoring your code in such a way that every piece of logic is repeated only once is a good thing. This practice, often referred to as DRY, or Don't Repeat Yourself, has been one of the many of my tools of choice and goes hand in h...

April 13, 2016

autofac

The curious case of a deadlock in Autofac

2 minute read

It has been more than two years since we switched from Microsoft Unity to Autofac and we haven't regretted this a single day. Not only is the resolution performance much better than Unity, but it’s the feature set, in particular the relation types, that makes a world of difference. In terms of co...

January 14, 2015

build2015

How Microsoft blew our minds at Build 2015

3 minute read

Here we are again. After a little detour to QCon San Francisco and New Yorkin 2013 and 2014, we thought it to be about time to rejoin our fellow Microsoft developers here at Microsoft Build 2015 at the Moscone Center in San Francisco. Since we couldn't get a direct flight from Amsterdam to San Fr...

April 30, 2015

caching

How to get the best performance out of NHibernate (and when not to use it at all)

9 minute read

Use the right tool for the right problem A very common sentiment I'm getting from the .NET community is the aversion against object-relational mappers like NHibernate and Entity Framework. Granted, if I could, I would use an (embeddable) NoSQL solution like RavenDB myself. They remove the object-...

June 9, 2016

A least recently used cache that you can use without worrying

5 minute read

At the beginning of this year, I reported on my endeavors to use RavenDB as a projection store for an event sourced system. One of the things I tried to speed up RavenDB's projection speed was to use the Least Recently Used cache developed by Brian Agnes a couple of years ago. This cache gave us ...

February 11, 2016

collaboration

The Red Hot Developer - A model for removing distractions from your teams

4 minute read

When your project, product or component gets sufficiently big that it has a large impact on the rest of the organization, you’ll automatically get faced with lots of internal and external distractions. Other teams might want to get that pull request merged as soon as possible, all kinds of questi...

March 23, 2018

components

Principles for Successful Package Management

8 minute read

A couple of months ago I shared some tips & tricks to help you prevent ending up in NuGet dependency hell. As a big fan of the SOLID principles, I've always wondered why nobody thought of applying these principles on the package level. If SOLID can help you to build cohesive, loosely coupled ...

October 30, 2016

The magic of hiding your NuGet dependencies

4 minute read

Welcome to the dependency hell While working on a little open-source demo project, I ran into that well-known challenge of NuGet dependency management again. This little project results in a NuGet package, that on itself also relies on other packages. Now, if I would just add those dependencies ...

May 24, 2016

csharp coding guidelines

Why C#’s “var” keyword can hamper maintainability

3 minute read

Coding conventions never cease to be a great source for heated debates. However, within the C# realm, two specific topics tend to reappear occasionally. The first one is about whether or not to use underscores for class fields (but I'm not going to discuss that here). The other one is the usage o...

January 29, 2016

culture

The magic of keeping a band of developers together

5 minute read

As I work as a consultant for Aviva Solutions, and the nature of my job is to be involved in moderately long-running client projects, I don't get to come to the office that often. And if I do, it's on different days of the week. Over the last year so, our locations in Koudekerk aan de Rijn and Ei...

October 6, 2016

How to optimize your culture for learning, growth and collaboration

3 minute read

At the first day of QCon New York, I attended several talks and open-spaces that had some relation with culture, be it about improving the efficiency of developers, handling disagreement in respectful way, and creating an environment that embraces the learning experience. For instance, one of th...

June 14, 2016

development

The Red Hot Developer - A model for removing distractions from your teams

4 minute read

When your project, product or component gets sufficiently big that it has a large impact on the rest of the organization, you’ll automatically get faced with lots of internal and external distractions. Other teams might want to get that pull request merged as soon as possible, all kinds of questi...

March 23, 2018

documentation

How we document stuff

4 minute read

A recurring topic in every software project I've been involved with is what to document, when to do that, and where to store it. So it wasn't a big surprise that at a recent event, somebody asked me how we track and communicate design decisions. I initially pointed him to an article I wrote in Fe...

June 21, 2015

domain driven design

The Ugly of Event Sourcing–Real-world Production Issues

11 minute read

Event Sourcing is a beautiful solution for high-performance or complex business systems, but you need to be aware that this also introduces challenges most people don’t tell you about. After having dedicated a post on the challenges of dealing with projection migrations and how to optimize that, ...

November 1, 2017

Event Sourcing from the Trenches: Mixed Feelings

2 minute read

While visiting QCon New York this year, I realized that a lot of the architectural problems that were discussed there could benefit from the Event Sourcing architecture style. Since I've been in charge of architecting such a system for several years now, I started to reflect on the work we've don...

June 21, 2016

Event Sourcing from the Trenches: Projections

4 minute read

While visiting QCon New York this year, I realized that a lot of the architectural problems that were discussed there could benefit from the Event Sourcing architecture style. Since I've been in charge of architecting such a system for several years now, I started to reflect on the work we've don...

June 20, 2016

Event Sourcing from the Trenches: Domain Events

4 minute read

While visiting QCon New York this year, I realized that a lot of the architectural problems that were discussed there, could benefit from the Event Sourcing architecture style. Since I've been in charge of architecting such a system for several years now, I started to reflect on the work we've do...

June 17, 2016

Event Sourcing from the Trenches: Aggregates

3 minute read

While visiting QCon New York this year, I realized that a lot of the architectural problems that were discussed there could benefit from the Event Sourcing architecture style. Since I've been in charge of architecting such a system for several years now, I started to reflect on the work we've don...

June 16, 2016

dotnetmag

About ideas that stick

1 minute read

A while ago, some business man from the US who travels a lot throughout the US as part of his job, was sitting in his airline's business lounge for a drink. Right after finishing his 2nd, an attractive women approached him and offered him a drink in exchange for somebody to talk to. Somewhere hal...

January 2, 2013

The all new coding guidelines for C# 3.0, 4.0 and 5.0 have been published!

4 minute read

After 50000 downloads and the recent final release of Visual Studio 2012 / C# 5.0 it was about time to do a thorough update of the C# Coding Guidelines. Although most of the guidelines have been preserved, I’ve tried to rewrite several of them using a less formal and less verbose writing style. I...

November 26, 2012

Looking back at Build 2012

2 minute read

A question which was asked many times during the week was whether or not this trip to Build 2012 in Redmond was worth the time and money. Even after four days of raw content, there is no short answer here. As Dennis Vroegop clearly illustrated, the organization was definitely not up to the task...

November 5, 2012

Build Day 4: WP8, Line-of-Business, Web Essentials and lots of laughs

3 minute read

Here we are at the fourth and last day of Microsoft Build 2012. That so many people showed up at the first session is quite surprising considering the attendee party that went on until midnight in downtown Seattle. It was a typical attendee party; free food and drinks and live music. Since being ...

November 4, 2012

Build Day 3: ASP.NET MVC, TypeScript, SignalR and Node.Js

2 minute read

So at this 3rd day here at Microsoft Build 2012, I'm actually getting lucky. Three great sessions in a row is obviously not something I've seen before. Hey, maybe I'll get to see four great sessions tomorrow. Anyway, with some of the technical debt from last night's Beerfest and a Halloween party...

November 2, 2012

Build Day 2: Azure, JavaScript and even more XAML and Windows Phone

3 minute read

Because day 2 of the Build conference wasn't any different, it seems that I must learn to accept that a maximum of two good sessions per day is going to be the standard. Fortunately the keynote was top notch with both Scott Hanselman and Scott Guthrie taking stage. They showed some of the power t...

November 1, 2012

Build Day 1: Surface, WP8, TFS, Windows Design Guidelines

2 minute read

Day 1 of Microsoft Build was in some way disappointing and at the same time exhilarating. To be honest, I was expecting to be updated on the new stuff Microsoft plans for the near future. The fact that the session list was not disclosed until a day ahead also helped reinforce that expectation. Bu...

October 31, 2012

Fluent Assertions 2.0 is out of the beta phase

less than 1 minute read

After six weeks of beta testing, it is time to remove the beta mark from Fluent Assertions 2.0. Since the beta was released, we fixed several little bugs that you won’t notice, but the original release notes still apply. Release 2.0 adds a lot of new features and improvements, most noticeably the...

October 8, 2012

The Best Articles and Blog Posts of August 2012

1 minute read

Here are some of the highlights of the blog posts, articles and whitepapers I’ve read this month. In two short blog posts, Jimmy Bogard explains seven misconceptions of CQRS and Event Sourcing, and also warns us of the impact of eventual consistency on the user experience. Read about the many ...

August 28, 2012

Quick Review of The Cucumber Book from a SpecFlow perspective

2 minute read

This week I completed reading a new book titled The Cucumber Book: Behaviour-Driven Development for Testers and Developers by Matt Wynne and Aslak Hellesoy. Aslak is the founder of the Cucumber project (which is what SpecFlow for .NET is based on), and Matt is one of its most active developers. T...

July 30, 2012

Noticeable quotes from QCon New York

1 minute read

Just to be clear, I didn’t actually attend QCon New York this year. But after the experience of attending QCon San Francisco in 2010, I never forget the many great quotes you’ll find on Twitter. This time was no different. "Distributed objects failed; for very good reasons. Values rule on the w...

July 26, 2012

If you write an article about TDD, make sure it is correct

6 minute read

I spend a majority of my private time reading articles and blog posts, having discussions on Twitter, or engaging in conversations on conferences and community events. I'm realistic enough to understand that my opinions are not necessarily the truth, so I use those opportunities to challenge my o...

July 19, 2012

Fluent Assertions gets a bug fix release

less than 1 minute read

While we are working on the next major version of Fluent Assertions, we received several smaller bug reports that we bundled in release 1.7.1. Fixed a bug that occurs when two collections are compared for equality but the collection contains null. Fixed a stack overflow while formatting an obje...

March 23, 2012

Feedback Requested: Is there any valid usage for the ‘new’ keyword?

1 minute read

Yesterday I ended up being part of a discussion about using the ‘new’ keyword to hide base-class members. A colleague of mine used it to alter a base-class property in a derived class with the purpose of making it more strongly typed. I’ve always rationalized guideline AV1010 (Don’t hide inherit...

November 30, 2011

Almost five years at Aviva Solutions and still enjoying it every minute

2 minute read

I know, I know, I’m still 3 months away from it. But without doubt, on the 1st of February, I will be celebrating my first 5-year anniversary in the 15 years of my professional career. That might sound silly, but I’ve always had a problem of getting restless after a few years . It never was a pro...

November 4, 2011

In Retrospect: About Bugs

4 minute read

This is the third of several posts in which I’d like to share some of the things we learned throughout more than 14 sprints of Agile development using Scrum. Some of them might appear as open doors, but I wish I knew or thought about those before I started that project. Just by looking back at th...

November 3, 2011

In Retrospect: About the Sprint Planning

12 minute read

This is the second of several posts in which I’d like to share some of the things we learned throughout more than 14 sprints of Agile development using Scrum. Some of them might appear as open doors, but I wish I knew or thought about those before I started that project. Just by looking back at t...

October 12, 2011

Silverlight Cookbook: Switching to another IoC Framework

5 minute read

The Rationale As long as I have been using the Dependency Inversion Principle, Microsoft Unity has always been my preferred Inversion-of-Control framework. So it’s not strange that the Silverlight Cookbook has been using Unity 2 in both its WCF/REST layer as well as within the Silverlight client....

September 28, 2011

In Retrospect: About Requirements Management

4 minute read

This is the first of several posts in which I’d like to share some of the things we decided throughout 14 sprint retrospective. Some of them might appear as open doors, but I wish I knew or thought about those before I started that project. Just by looking back at the mistakes a team of 9 develop...

September 26, 2011

So what does Windows 8 mean for .NET developers?

3 minute read

Last updated on September 22nd Unfortunately, the Microsoft Build conference conflicted with our company's 5-year anniversary and the associated sailing trip in Greece. Fortunately, the blogosphere and twitter-space provided plenty of opportunities for trying to grasp what the stuff Sinofsky and...

September 17, 2011

Yes, the Silverlight Cookbook is still alive

1 minute read

Although it might not seem like that, I am still working on the Silverlight Cookbook. However, I’ve just moved to a new house, so I ran out of time recently. Fortunately, since my colleague Martin Opdam is actively working on Fluent Assertions, so I only have to divide my free time between the co...

September 14, 2011

Speaking at Developer Developer Developer North

less than 1 minute read

I’m honored to have been selected to speak at my first event in the United Kingdom, Developer Developer Developer North, hosted at the University of Sunderland, near New Castle. Our job as a software developer seems to revolve mostly around programming languages, frameworks and Visual Studio. And...

September 14, 2011

Why I created Fluent Assertions in the first place

4 minute read

A few weeks ago I read The value of open-source is the vision not the source code and that made me think about my own reasons for starting Fluent Assertions, now more than a year ago. In the light of that article, lets briefly go over my own goals for Fluent Assertions. The intention of a unit te...

July 29, 2011

Fluent Assertions 1.5 is done! Now it’s time for that summer.

4 minute read

In the last couple of months, me and colleague Martin Opdam have spent a considerable amount of time on both improving the reporting capabilities of Fluent Assertions as well as fixing and incorporating various community contributions. Because of the many changes required, a very busy client proj...

July 5, 2011

Choosing the right web technology for business applications

5 minute read

Before I continue with the rest of this post, I first need to make a disclaimer. I'm in no way an expert on all things Microsoft has to offer in the web realm and have yet to complete a full-fledged ASP.NET MVC & JQuery project. However, I see myself as someone who quickly grasps the potenti...

May 15, 2011

Where to find me during the Developer Days 2011

6 minute read

Somebody recently asked me what sessions I was planning to attend at the upcoming 2011 edition of the Microsoft Developer Days in The Hague. To be honest, my primary reason for going to a Dutch conference is to chat with fellow .NET enthusiasts, and attending sessions is usually a side-effect of ...

April 8, 2011

Introducing the Silverlight Cookbook

4 minute read

In the 2nd half of 2010 I was so fortunate to get the chance to build my first enterprise-class line-of-business application written in Silverlight 4. And although I designed my original reference architecture earlier that year, actually building it is a completely different thing. I learned a lo...

March 7, 2011

Another release for Fluent Assertions

2 minute read

It’s only February, but I’ve received so many requests from the community that another release of Fluent Assertions was easily warranted. New Features Somebody working under the name of CtrlAltDel pointed me at the little-known fact that floating point variables are inheritably inaccurate and...

February 27, 2011

ALM Practices every developer should know about

less than 1 minute read

So now that I’ve finished my multi-part post on getting the most out of user stories, it is time to provide a nice convenient overview of some essential practices that I’ve blogged about. I don’t have any additional parts planned, but if I come up with something new, I’ll make sure this list is u...

February 6, 2011

A story about User Stories; Where do you start and what about the planning?

7 minute read

In this multi-part post, I’m going to share my personal experiences while working with user stories for gathering, tracking and planning requirements. It currently consists out of three parts:<ul><li>What are they and why do you need them? </li><li>Who writes them and how...

February 5, 2011

A story about User Stories; What are they and why do you need them?

7 minute read

In this multi-part post, I’m going to share my personal experiences while working with user stories for gathering, tracking and planning requirements. <ul><li>What are they and why do you need them? </li><li>Who writes them and how do you control scope? </li><li&...

January 18, 2011

Fluent Assertions as a NuGet package

less than 1 minute read

As of now you can download the latest version of Fluent Assertions directly from within Visual Studio 2010. Just install the NuGet package manager, select Add Library Package Reference from the project context menu and search for FluentAssertions.

January 15, 2011

Verifying PropertyChanged events in Silverlight using Fluent Assertions

1 minute read

Yesterday, I blogged about the newest release of Fluent Assertions for .NET and Silverlight and promised to demonstrate the new event monitoring syntax. Since I’m a Silverlight addict, I decided to show you an example of a MVVM unit test when using the traditional Assert class and the same exampl...

January 4, 2011

A new year with a new release of Fluent Assertions

2 minute read

Christmas usually means a week off and a whole lot of free time between the social obligations and spending some quality time with my wife and daughter. That’s why I decided to get rid of some of the backlog items for the next version of Fluent Assertions. And I’m done, version 1.3.0 is a fact. N...

January 3, 2011

December Update of the Coding Guidelines for C# 3.0 and C# 4.0

1 minute read

I finally found some time to update the coding guidelines with some feedback I received since it’s original release in June this year. I’ve removed the following guidelines because I found that they were either very exotic or not general enough for most developers: Avoid side-effects when...

December 23, 2010

A night of Silverlight, WPF, unit testing and Caliburn Micro

less than 1 minute read

Last Thursday, me and my employer Aviva Solutions hosted the December edition of the DotNED user group in Leiden. And yesterday a shared my Silverlight reference architecture on this year’s last SDN Event. I gave two talks that evening and one last night and wanted to share my slides and example ...

December 11, 2010

ReSharper versus CodeRush through the eyes of a keyboard addict

5 minute read

I've been a very long-time and very happy user of ReSharper, and I’ve become very dependent of it. I wouldn't know what to do with a plain Visual Studio 2010 installation. However, I also heard many great things about the combination of DevExpress's CodeRush and their Refactor! Pro products. Appa...

November 29, 2010

The subtleties of Silverlight’s cross-browser compatibility

less than 1 minute read

Last week we put our first full-blown Silverlight 4 line-of-business application into production, and just yesterday, we’ve run into our first production issue. Consider the width specifications of the DataGrid columns in this XAML fragment: This XAML file was generated by Expression Blend and h...

November 16, 2010

Deliberate Discovery, No SQL and CQRS at QCon

3 minute read

The 2nd day of QCon was not one where I chose wisely. My focus for this conference was everything Agile and anything from the well-known speakers. So I ignored most sessions that had words like REST, SQL or Java in it. How wrong I was…. But I did not discover that until I heard and read about all...

November 5, 2010

Pretotyping, Best Patterns and History Lessons

2 minute read

The compression ratio of the content versus the timing available is quite high here at QCon. Already at the first official day, I attended 7 (!) talks. That's quite a lot of information to process. Unfortunately, the difference in quality is really noticeable. Some talks were absolutely awesome a...

November 4, 2010

Quotes from QCon

2 minute read

One of the funny things of this QCon is the many tweets that the attendees have been throwing into the world wide web. That's great for a speaker because now they get immediate feedback on their performance, both good and bad. These are some of the quotes I found funny, inspiring or refreshing: ...

November 4, 2010

Agile Architecture according to Dan North

1 minute read

Updated on March 3rd 2012 with a PDF of Dan North’s mind map On the first day of the QCon conference in San Francisco, I attended a full-day tutorial titled "Secrets of Agile Architecture" hosted by Dan North. I didn't really know what to expect, but I was hoping for some refreshingly new insight...

November 3, 2010

Silverlight Cookbook: ViewModels, Coroutines and Binding Conventions

10 minute read

This post is part of a series of blog posts detailing various aspects of the Silverlight Cookbook, an initiative to demonstrate proper design choices for building enterprise-class line-of-business applications with Silverlight (and WPF if you will). It currently consists out of the following part...

October 26, 2010

ALM Practices Part 12: Reducing Technical Debt

3 minute read

What is it? Technical Debt is every change to your code base that does not comply with the usual level of quality your team has agreed upon. Since this level of quality has been introduced to guarantee a healthy code base throughout the life time of the system, introducing technical debt essenti...

October 19, 2010

My Silverlight 4 Reference Architecture: The Domain Model

3 minute read

The Domain Model is roughly designed according to the DDD principles where cross-aggregate logic is handled by the command handlers instead of the more traditional domain services. One thing that I changed after I attended Greg Young's DDD/CQRS training is that I no longer allow my domain entitie...

October 13, 2010

My Silverlight 4 Reference Architecture: Querying

2 minute read

After having put the introduction and the commanding part behind us, let me explain how I deal with querying. Consider the following slice of the reference architecture.  My original intention was to use WCF Data Services combined with NHibernate on the query side. For one, because it allo...

October 12, 2010

My Silverlight 4 Reference Architecture: Commanding

2 minute read

<p $1=”$1”></p> <p $1=”$1”>After sharing my thoughts on unit testing in Silverlight and the combination of NHibernate and WCF Data Services, it is time to discuss the updated version of the Silverlight reference architecture from one of my posts of last year. To put the discu...

October 8, 2010

ALM Practices Part 11: Modeling the business domain using Domain Models

3 minute read

What is it? A domain model is typically depicted by a UML class diagram in which the classes and associations represent the business concepts and the relationships between them. Although you can use a piece of paper to draw up a domain model, in most cases a UML case tool is better suited for t...

August 25, 2010

Coding Guidelines for C# 3.0 and C# 4.0 now available

1 minute read

As promised earlier, you can now download the concept version of my new Coding Guidelines for C# 3.0 and C# 4.0 from a dedicated CodePlex site at www.csharpcodinguidelines.com. The list of changes is quite big, and includes new guidelines covering object-oriented design, design principles, C# 4.0...

June 28, 2010

Things to do to fill up my free time

1 minute read

Now that my CQRS/Event Sourcing talk for DotNED is done, the pressure on the free hours between work and family has been reduced significantly. That doesn’t mean I’m going to sit back and relax. Oh no, I’m full of ideas. so let’s see some of my plans. I’m still going to continue developing The...

May 30, 2010

CQRS and Event Sourcing

less than 1 minute read

Yesterday evening I did a talk on building a .NET-based system using Command Query Responsibility Segregation and Event Sourcing. We had a lot of awesome discussions on its applicability, and as usual, I ran out of time again. I could have easily spend a full day on this subject, but unfortunatel...

May 28, 2010

ALM Practices Part 6: Code Analysis & Guidelines

3 minute read

What is it? Coding guidelines, or coding standards if you will, are documents consisting of rules and recommendations on the use of C# in enterprise systems. They deal with code layout, naming guidelines, the proper use of the .NET Framework, tips on writing useful comments and XML documentat...

April 20, 2010

Interaction Design according to Alan Cooper

2 minute read

I've recently finished the book The Inmates Are Running The Asylum by Alan Cooper, a well known proponent for interaction design. To be honest, I never really saw the purpose of interaction design in our projects. But after reading this book, I now know I didn't really understand what it was abou...

April 16, 2010

Fluent Assertions 1.2 has been released

4 minute read

It has been only 6 weeks since I first released Fluent Assertions to the public, followed by version 1.1 a week later. In the weeks thereafter, I received some nice ideas from the community which caused me to start working on the next version. But it was not easy. I found that designing a small f...

April 12, 2010

Is Entity Framework 4.0 ready for the real work?

1 minute read

This morning, on the Developer Days 2010, I did a talk on the current state of affairs of the 4.0 version of the Entity Framework, including a rough comparison with NHibernate 2.1. Apparently this is something that’s on the mind of many people. The room was supposed to accommodate a maximum of 80...

March 30, 2010

My two days of fame at the Developer Days 2010

less than 1 minute read

Some of you who have been visiting the Dutch Developer Days 2010 in The Hague today may have noticed the flyers and banners for promoting the new online version of the .NET Magazine. Those who already know me may have noticed that it’s me on those banners.    Since the photographer spe...

March 30, 2010

The curious case of the unsolved extension methods

3 minute read

As part of my effort to improve the type-safety of Fluent Assertions, I’ve been investigating the possibility to use C# extension methods all the way. Unfortunately I think I’ve ran into the limitations of C# 3.0 (and C# 4.0 since it doesn’t add anything useful for this). Essentially, I’d like to...

March 24, 2010

ALM Practices Part 5: Checklists

1 minute read

What is it? An (online) list of verification tasks to sign off as part of the delivery process of a newly delivered unit of work. Usually these include things that are often forgotten, or aspects that require explicit verification. See an example of such a list here. Why would you do it? Becau...

March 23, 2010

TFS, ALM, what’s in a name?

less than 1 minute read

In response to my posts on Peer Reviews, Unit Testing & TDD, and Common Code Layout, someone noticed that all these posts were part of my Team Foundation Server Development Practices series, but not every post actually mentioned TFS. Obviously, he was right. The reason for using the TFS prefi...

March 19, 2010

ALM Practices Part 4: Common Code Layout

1 minute read

What is it? A collection of rules stating what a block of code should look like. These may include rules on where line breaks are required, how to place parentheses, how much whitespace to put before and after those parentheses, how many spaces to use when indenting and where to insert empty line...

March 15, 2010

Speaking at the Microsoft Developer Days 2010

less than 1 minute read

Thanks to all the voters who voted for my wildcard proposal on Entity Framework 4.0, I will be speaking at the Microsoft Developer Days 2010, again. Last year, the whole wildcard thingy was a bit fuzzy, but this year, the organization has gone through great lengths to seriously include us wildcar...

March 12, 2010

Fluent Assertions 1.1 has been released

1 minute read

It’s only a few days ago since we released the first version of Fluent Assertions, and we already have a new release. The reason for this is that the first release was just the public release of an internal set of classes that we’ve been using for a year or so. But this week, we've worked hard t...

March 5, 2010

User Stories, a different story altogether

less than 1 minute read

My Dutch article on User Stories in Team Foundation Server 2010 is now available online at the SDN site. Read it over here. I will translate it to English soon.

March 3, 2010

Visual Studio 2010 is huge!

8 minute read

During this week’s PDC 2008, I’ve been spending particular attention to sessions related to the new features of Visual Studio 2010 Team System and Team Foundation Server 2010. The one statement almost every session started with was that this release is huge, and I totally agree! I’ve not seen so ...

November 2, 2008

event sourcing

The Ugly of Event Sourcing–Real-world Production Issues

11 minute read

Event Sourcing is a beautiful solution for high-performance or complex business systems, but you need to be aware that this also introduces challenges most people don’t tell you about. After having dedicated a post on the challenges of dealing with projection migrations and how to optimize that, ...

November 1, 2017

The Ugly of Event Sourcing - Projection Schema Changes

7 minute read

Event Sourcing is a beautiful solution for high-performance or complex business systems, but you need to be aware that this also introduces challenges most people don't tell you about. Last year, I already blogged about the things I would do differently next time. But after attending another intr...

June 27, 2017

The Bad of Event Sourcing - The Pains of Wrongly Designed Aggregates

9 minute read

Event Sourcing is a brilliant solution for high-performance or complex business systems, but you need to be aware that this also introduces challenges most people don't tell you about. In June, I already blogged about the things I would do differently next time. But after attending another introd...

March 23, 2017

The Good of Event Sourcing - Conflict Handling, Replication and Domain Evolution

6 minute read

Event Sourcing is a brilliant solution for high-performance or complex business systems, but you need to be aware that this also introduces challenges most people don't tell you about. In @June, I already blogged about the things I would do differently next time. But after attending another intro...

February 19, 2017

The Good of Event Sourcing - Projections

5 minute read

It was in 2009 in Utrecht, The Netherlands, when I first learned about Event Sourcing and the Command Query Responsibility Segregation (CQRS) patterns at a training Greg Young gave there. I remembered to be awed by the scalability and architectural simplicity those styles provided. However, I als...

February 11, 2017

Event Sourcing from the Trenches: Mixed Feelings

2 minute read

While visiting QCon New York this year, I realized that a lot of the architectural problems that were discussed there could benefit from the Event Sourcing architecture style. Since I've been in charge of architecting such a system for several years now, I started to reflect on the work we've don...

June 21, 2016

Event Sourcing from the Trenches: Projections

4 minute read

While visiting QCon New York this year, I realized that a lot of the architectural problems that were discussed there could benefit from the Event Sourcing architecture style. Since I've been in charge of architecting such a system for several years now, I started to reflect on the work we've don...

June 20, 2016

Event Sourcing from the Trenches: Domain Events

4 minute read

While visiting QCon New York this year, I realized that a lot of the architectural problems that were discussed there, could benefit from the Event Sourcing architecture style. Since I've been in charge of architecting such a system for several years now, I started to reflect on the work we've do...

June 17, 2016

Event Sourcing from the Trenches: Aggregates

3 minute read

While visiting QCon New York this year, I realized that a lot of the architectural problems that were discussed there could benefit from the Event Sourcing architecture style. Since I've been in charge of architecting such a system for several years now, I started to reflect on the work we've don...

June 16, 2016

fluentassertions

fluid-caching

Profiling legacy code using characterization tests

3 minute read

As you might have read, I've been refactoring some example code for a multi-threaded cache that I got from CodeProject into a source-only NuGet package which will soon be published as FluidCaching. Since this cache has been built to be very performant, the internal algorithms are not trivial to g...

March 10, 2016

A least recently used cache that you can use without worrying

5 minute read

At the beginning of this year, I reported on my endeavors to use RavenDB as a projection store for an event sourced system. One of the things I tried to speed up RavenDB's projection speed was to use the Least Recently Used cache developed by Brian Agnes a couple of years ago. This cache gave us ...

February 11, 2016

git

A Git collaboration workflow that provides feedback early and fast

4 minute read

At Aviva Solutions, we’ve been using Git for a little of over two years now and I can wholeheartedly say that after having worked with TFS for years, we'll never go back… ever. But with any new technology, practice or methodology, you need to go through several cycles before you find a way that w...

June 13, 2016

How Git can help you prevent building a monolith

5 minute read

During last weeks' Git Like a Pro talk I tried to convey the message that switching to Git is much more than introducing a new source control system. It will affect not just the way you commit source code, branch or merge, it changes the entire development workflow. In fact, I'm willing to claim ...

February 4, 2016

Why you should abandon TFS and adopt Git

4 minute read

Almost every time I do some kind of talk somewhere, people ask me for advice on how to convince their management that they should drop Microsoft Team Foundation Server's source control system and move over to Git. In this post, I'll be talking about the source control system only. Both Visual Stu...

June 26, 2015

Software versioning without thinking about it

6 minute read

Solving the versioning problemIf you're building libraries, products or any other software system, versioning is usually a pretty big deal. It's the only way to determine what version of that library, product or system you're looking at. Before an organization settles on a versioning strategy, ma...

April 23, 2015

github

A Git collaboration workflow that provides feedback early and fast

4 minute read

At Aviva Solutions, we’ve been using Git for a little of over two years now and I can wholeheartedly say that after having worked with TFS for years, we'll never go back… ever. But with any new technology, practice or methodology, you need to go through several cycles before you find a way that w...

June 13, 2016

A least recently used cache that you can use without worrying

5 minute read

At the beginning of this year, I reported on my endeavors to use RavenDB as a projection store for an event sourced system. One of the things I tried to speed up RavenDB's projection speed was to use the Least Recently Used cache developed by Brian Agnes a couple of years ago. This cache gave us ...

February 11, 2016

microservices

Scaling a growing organization by rearchitecting the monolith

5 minute read

During this year's QCon conference held in New York, I attended a full-day workshop on the scalability challenges a growing organization faces, hosted by Randy Shoup. In my previous post, I elaborated on Randy's classification system to illustrate the phases of a growing organization and how that...

July 17, 2016

Microservices: The State of the Union

4 minute read

After attending a full-day track with multiple sessions and open-spaces on microservices at QCon New York, it is clear that this technique took flight since I first heard about that at the same conference in 2014. A lot of companies made the jump to solve their technical and organizational scalin...

June 23, 2016

nhiberate

How to get the best performance out of NHibernate (and when not to use it at all)

9 minute read

Use the right tool for the right problem A very common sentiment I'm getting from the .NET community is the aversion against object-relational mappers like NHibernate and Entity Framework. Granted, if I could, I would use an (embeddable) NoSQL solution like RavenDB myself. They remove the object-...

June 9, 2016

nuget

The magic of hiding your NuGet dependencies

4 minute read

Welcome to the dependency hell While working on a little open-source demo project, I ran into that well-known challenge of NuGet dependency management again. This little project results in a NuGet package, that on itself also relies on other packages. Now, if I would just add those dependencies ...

May 24, 2016

open-source

The responsibilities of an open-source developer

4 minute read

The proudest moment anybody initiating an open-source project can experience is when that project finally gains the momentum to make a difference within the community it targets. When my colleague Martin and I published the first release of Fluent Assertions on CodePlex in 2011 (yeah, those were ...

March 24, 2016

A least recently used cache that you can use without worrying

5 minute read

At the beginning of this year, I reported on my endeavors to use RavenDB as a projection store for an event sourced system. One of the things I tried to speed up RavenDB's projection speed was to use the Least Recently Used cache developed by Brian Agnes a couple of years ago. This cache gave us ...

February 11, 2016

people

Key takeaways from QCon New York 2017: The Soft Stuff

6 minute read

This year, for the third time since I joined Aviva Solutions, I attended the New York edition of the famous QCon conference organized by InfoQ. As always, this was a very inspiring week with topics on large-scale distributed architecture, microservices, security, APIs, organizational culture and ...

July 18, 2017

performance

How to get the best performance out of NHibernate (and when not to use it at all)

9 minute read

Use the right tool for the right problem A very common sentiment I'm getting from the .NET community is the aversion against object-relational mappers like NHibernate and Entity Framework. Granted, if I could, I would use an (embeddable) NoSQL solution like RavenDB myself. They remove the object-...

June 9, 2016

powershell

Software versioning without thinking about it

6 minute read

Solving the versioning problemIf you're building libraries, products or any other software system, versioning is usually a pretty big deal. It's the only way to determine what version of that library, product or system you're looking at. Before an organization settles on a versioning strategy, ma...

April 23, 2015

Bringing the power of PowerShell to your build scripts

5 minute read

If you look back at the last couple of years, you’ll notice an increasing attention for best practices that should make us more professional software developers. We design our classes using Test Driven Development, we review our code in pairs, and we apply all kinds of architectural principles su...

March 22, 2015

psake

Bringing the power of PowerShell to your build scripts

5 minute read

If you look back at the last couple of years, you’ll notice an increasing attention for best practices that should make us more professional software developers. We design our classes using Test Driven Development, we review our code in pairs, and we apply all kinds of architectural principles su...

March 22, 2015

qcon

Key takeaways from QCon New York 2017: The Soft Stuff

6 minute read

This year, for the third time since I joined Aviva Solutions, I attended the New York edition of the famous QCon conference organized by InfoQ. As always, this was a very inspiring week with topics on large-scale distributed architecture, microservices, security, APIs, organizational culture and ...

July 18, 2017

Key takeaways from QCon New York 2017: The Tech Stuff

8 minute read

This year, for the third time since I joined Aviva Solutions, I attended the New York edition of the famous QCon conference organized by InfoQ. As always, this was a very inspiring week with topics on large-scale distributed architecture, microservices, security, APIs, organizational culture and ...

July 10, 2017

Scaling a growing organization by reorganizing the teams

4 minute read

During this year's QCon conference held in New York, I attended a full-day workshop on the scalability challenges a growing organization faces, hosted by Randy Shoup. In my previous two posts I discussed a model to understand the needs of an organization in its different life phases, as well as a...

July 25, 2016

Scaling a growing organization by rearchitecting the monolith

5 minute read

During this year's QCon conference held in New York, I attended a full-day workshop on the scalability challenges a growing organization faces, hosted by Randy Shoup. In my previous post, I elaborated on Randy's classification system to illustrate the phases of a growing organization and how that...

July 17, 2016

Understanding a growing organization and the effect on technology

4 minute read

The characteristics of a growing organizationDuring this year's QCon conference held in New York, I attended a full-day workshop on the scalability challenges a growing organization faces, hosted by Randy Shoup. Randy explained us how every start-up goes through several phases, each with a differ...

July 11, 2016

Microservices: The State of the Union

4 minute read

After attending a full-day track with multiple sessions and open-spaces on microservices at QCon New York, it is clear that this technique took flight since I first heard about that at the same conference in 2014. A lot of companies made the jump to solve their technical and organizational scalin...

June 23, 2016

How to optimize your culture for learning, growth and collaboration

3 minute read

At the first day of QCon New York, I attended several talks and open-spaces that had some relation with culture, be it about improving the efficiency of developers, handling disagreement in respectful way, and creating an environment that embraces the learning experience. For instance, one of th...

June 14, 2016

ravendb

A least recently used cache that you can use without worrying

5 minute read

At the beginning of this year, I reported on my endeavors to use RavenDB as a projection store for an event sourced system. One of the things I tried to speed up RavenDB's projection speed was to use the Least Recently Used cache developed by Brian Agnes a couple of years ago. This cache gave us ...

February 11, 2016

retrospective

The Good of Event Sourcing - Projections

5 minute read

It was in 2009 in Utrecht, The Netherlands, when I first learned about Event Sourcing and the Command Query Responsibility Segregation (CQRS) patterns at a training Greg Young gave there. I remembered to be awed by the scalability and architectural simplicity those styles provided. However, I als...

February 11, 2017

scalability

Scaling a growing organization by reorganizing the teams

4 minute read

During this year's QCon conference held in New York, I attended a full-day workshop on the scalability challenges a growing organization faces, hosted by Randy Shoup. In my previous two posts I discussed a model to understand the needs of an organization in its different life phases, as well as a...

July 25, 2016

Scaling a growing organization by rearchitecting the monolith

5 minute read

During this year's QCon conference held in New York, I attended a full-day workshop on the scalability challenges a growing organization faces, hosted by Randy Shoup. In my previous post, I elaborated on Randy's classification system to illustrate the phases of a growing organization and how that...

July 17, 2016

Understanding a growing organization and the effect on technology

4 minute read

The characteristics of a growing organizationDuring this year's QCon conference held in New York, I attended a full-day workshop on the scalability challenges a growing organization faces, hosted by Randy Shoup. Randy explained us how every start-up goes through several phases, each with a differ...

July 11, 2016

semantic versioning

False positives and semantic versioning

3 minute read

As part of stabilizing an upcoming release, I always dog food a beta package against the 12000 unit tests in one of our bigger projects. In the early days, that would surface all kinds of edge cases I never thought of. In every single case, the first thing I would do is to add a new unit test to ...

June 24, 2015

team

The Red Hot Developer - A model for removing distractions from your teams

4 minute read

When your project, product or component gets sufficiently big that it has a large impact on the rest of the organization, you’ll automatically get faced with lots of internal and external distractions. Other teams might want to get that pull request merged as soon as possible, all kinds of questi...

March 23, 2018

Key takeaways from QCon New York 2017: The Soft Stuff

6 minute read

This year, for the third time since I joined Aviva Solutions, I attended the New York edition of the famous QCon conference organized by InfoQ. As always, this was a very inspiring week with topics on large-scale distributed architecture, microservices, security, APIs, organizational culture and ...

July 18, 2017

Scaling a growing organization by reorganizing the teams

4 minute read

During this year's QCon conference held in New York, I attended a full-day workshop on the scalability challenges a growing organization faces, hosted by Randy Shoup. In my previous two posts I discussed a model to understand the needs of an organization in its different life phases, as well as a...

July 25, 2016

How to optimize your culture for learning, growth and collaboration

3 minute read

At the first day of QCon New York, I attended several talks and open-spaces that had some relation with culture, be it about improving the efficiency of developers, handling disagreement in respectful way, and creating an environment that embraces the learning experience. For instance, one of th...

June 14, 2016

A Git collaboration workflow that provides feedback early and fast

4 minute read

At Aviva Solutions, we’ve been using Git for a little of over two years now and I can wholeheartedly say that after having worked with TFS for years, we'll never go back… ever. But with any new technology, practice or methodology, you need to go through several cycles before you find a way that w...

June 13, 2016

Why software innovation is not a free pass for doing whatever you want

3 minute read

Somebody on Twitter recently posed the question whether innovation in software and agile development can co-exist or not. To remove any misinterpretation - something quite common for Twitter discussion - I asked him to clarify what he meant with the word 'innovation'. In short, any kind of softwa...

April 3, 2016

How we document stuff

4 minute read

A recurring topic in every software project I've been involved with is what to document, when to do that, and where to store it. So it wasn't a big surprise that at a recent event, somebody asked me how we track and communicate design decisions. I initially pointed him to an article I wrote in Fe...

June 21, 2015

Dude, you can’t solve all the problems by yourself

2 minute read

I think that the gist of this post should be pretty clear. Unfortunately I've fallen in that same trap myself many times. So often, I had to refrain myself from pulling somebody's keyboard from under their hands, just because I thought I could fix the problem at hand myself much faster. But with ...

May 28, 2015

The subtleties of developer commitment

2 minute read

In a recent post, I concluded that I have a strong tendency towards tactical architecture. From that perspective, I try to avoid big-design-upfront. I have a built-in allergy for rebuilding stuff that is already out there. I would never consider building my own message bus or event sourcing frame...

May 16, 2015

Getting your teams to communicate effectively

5 minute read

Lets be honest here. For a very long time, if I had to choose between an averagely skilled but well-spoken developer and a very skilled and experienced introvert, I would probably choose the first. And yes, I do realize that these are two extremes and that most people have characteristics of both...

April 1, 2015

Slack? An even better cross-team collaboration tool?

2 minute read

Two weeks ago, I talked about Flowdock, an online tool to aggregate multiple sources into a single environment where agile teams can work together. I also promised to look at an alternative service named Slack. When we introduced Flowdock, somewhere in November 2013, Slack was still in its very e...

January 26, 2015

You don’t know what you don’t know

3 minute read

More or less since the start of my assignment at my current client, four years ago, we have had some form of a cross-team stand-up at 10:00 every day (often named Scrum-of-Scrums). But now that we have around 10 teams, we started to notice some issues lately. People joined too late or didn't even...

January 18, 2015

teamcity

A beacon of light in the shadow of failing builds

3 minute read

As long as I can remember, I've been using an automatic build system to regularly verify the quality of the code based I've been working on. First using Team Foundation Server, but since a year or so, Jetbrains' Team City. In my current project we use continuous integration builds for running the...

February 26, 2015

test driven development

The three mental modes of working with unit tests

4 minute read

The other day, while pairing up on some unit test, I started to realize that I generally have three modes of looking at my unit tests. The Writing Mode While writing, I mostly focus on the mechanics of getting the test to pass. By then, I usually have a mental model and a particular scenario in ...

November 6, 2016

threading

The curious case of a deadlock in Autofac

2 minute read

It has been more than two years since we switched from Microsoft Unity to Autofac and we haven't regretted this a single day. Not only is the resolution performance much better than Unity, but it’s the feature set, in particular the relation types, that makes a world of difference. In terms of co...

January 14, 2015

unit testing

The three mental modes of working with unit tests

4 minute read

The other day, while pairing up on some unit test, I started to realize that I generally have three modes of looking at my unit tests. The Writing Mode While writing, I mostly focus on the mechanics of getting the test to pass. By then, I usually have a mental model and a particular scenario in ...

November 6, 2016

user stories

Why software innovation is not a free pass for doing whatever you want

3 minute read

Somebody on Twitter recently posed the question whether innovation in software and agile development can co-exist or not. To remove any misinterpretation - something quite common for Twitter discussion - I asked him to clarify what he meant with the word 'innovation'. In short, any kind of softwa...

April 3, 2016

A story about User Stories; Where do you start and what about the planning?

7 minute read

In this multi-part post, I’m going to share my personal experiences while working with user stories for gathering, tracking and planning requirements. It currently consists out of three parts:<ul><li>What are they and why do you need them? </li><li>Who writes them and how...

February 5, 2011

A story about User Stories; What are they and why do you need them?

7 minute read

In this multi-part post, I’m going to share my personal experiences while working with user stories for gathering, tracking and planning requirements. <ul><li>What are they and why do you need them? </li><li>Who writes them and how do you control scope? </li><li&...

January 18, 2011

versioning

False positives and semantic versioning

3 minute read

As part of stabilizing an upcoming release, I always dog food a beta package against the 12000 unit tests in one of our bigger projects. In the early days, that would surface all kinds of edge cases I never thought of. In every single case, the first thing I would do is to add a new unit test to ...

June 24, 2015