Automated acceptance testing with Cucumber for .NET and JAVA

One of the biggest problems in software development is communication. Although we have a lot of technology at hand, the more complex a project is, the harder it is to communicate efficiently. In order to improve the interaction between clients, project managers, analysts and developers, a definition of the requirements is needed.Another important part is […] Read More...

Flexible and expressive unit tests with the builder pattern

Unit tests become more valuable if they are expressive and flexible. A good unit test should not only test your code, but also document it. Creating expressive and flexible unit tests is not always easy however. The reason of this is that there’s an inherit discrepancy between the goals of the client of your code […] Read More...

A brief comparison of fundamental AOP techniques

In my previous post “Why choose DI Interception over Aspect Oriented Programming?” I explained my preference for DI interception over AOP. I received a lot of comments on this (especially on reddit) which pointed out some errors. In this article I want to reiterate these points and provide a better explanation. I considered adapting the […] Read More...

Why choose DI interception over aspect oriented programming?

Note: I have posted a follow-up post with some corrections to this post, thanks to some comments made on Reddit: A brief comparison of AOP techniques Let me start with saying that in this post I will explain why I think Dependency Injection is a better way to solve cross cutting concerns than AOP. I […] Read More...

The N-layer myth and basic Dependency Injection

Dividing an application in N layers is considered a standard and a best practice. It is often thought that this automatically creates a decoupled application. However, just creating layers doesn’t make your code loosely coupled. A typical N-layer application Let’s take a simple layered application: 1. A typical N-layer architecture In the above image you […] Read More...

Javascript Namespaces and Modules

Namespaces In most programming languages we know the concept of namespaces (or packages). Namespaces allow us to group code and help us to avoid name-collisions. In c# for example you have this declaration namespace MyNameSpace { public class MyClass { } } If you want to use MyClass, you need to do explicitly say in […] Read More...

Javascript hoisting explained

Often I see problems arise when people try to tackle Javascript. Taking a certain behavior for granted can get them frustrated. Javascript has little differences but they can cause unexpected results if not taken into account. One of those differences is the  way it handles scope. What is javascript hoisting? In Javascript, you can have […] Read More...

Must-have NuGet packages

NuGet is awesome! There are so many packages though that it’s very difficult to know which ones are useful and which can be missed. Therefore I have created a list of the NuGet packages that I find most useful when developing for Windows Phone and Windows 8. So here you go: JSON.NET Although JSON serialization […] Read More...

Portable class libraries or source code sharing?

Earlier I wrote a blog post on a specific method to implement code sharing between Windows Store and Windows Phone applications. In this post I want to zoom out a little bit and look at the different techniques available and explain what the differences and advantages are. That way you can employ these techniques in […] Read More...

Tombstoning made easy in Windows Phone MVVM

Tombstoning your application data in Windows Phone can be tricky when you are using the MVVM pattern. In order to save your data you have to do it between the NavigatedTo and NavigatedFrom events of the page. In your ViewModel you don’t have access to these events. So in order to do that you need […] Read More...