Kenneth Truyers
user

Kenneth Truyers

.NET developer at Appyparking, Pluralsight Author and Microsoft MVP


Tagpatterns
Featured

.NET asp.net c# patterns

Vertical slices in ASP.NET MVC

Posted on .

Why? In ASP.NET MVC, applications are divided into horizontal layers, which is reflected in the project structure: Controllers Views Models Scripts Style It’s a good idea to divide you application into logical parts. While the idea of horizontal slices might l…

Featured

best practices patterns simplicity

Simple code: a sample app

Posted on .

In my last few posts I have hammered a lot on simplicity in software. In my first post (Simplicity in software) I explained what the difference is between easy and simple code (or hard and complex code). On the basis that introducing frameworks and libraries i…

Featured

best practices patterns simplicity

Using partial application for dependency injection

Posted on .

In my post on how to simplify code by using composition instead of an AOP-framework I showed a way of substituting attribute based programming with a more composable paradigm. The result of that transformation will be my starting point for today’s post. For re…

Featured

best practices patterns simplicity

How to use Pure DI

Posted on .

In my previous posts I talked about how you can decrease dependency on external libraries and frameworks while making your code simpler (not easier, simpler). In this post I want to continue on the same thread and show some of the benefits of Pure DI (as oppos…

Featured

.NET best practices patterns simplicity

How to ditch your ORM

Posted on .

In my previous post on how to simplify code by using composition I talked about how we can reduce complexity by removing an AOP-framework (or annotations-based programming). In this post I want to continue on the same line and talk about how we can reduce comp…

Featured

.NET AOP best practices dependency injection patterns simplicity

Simplify code by using composition

Posted on .

In my post about software simplicity I talked about how we introduce complexity in software without realizing it. In this post I want to discuss a pattern that allows you to get rid of the complexity introduced by using annotations or aspect oriented concepts.…

Featured

best practices dependency injection development patterns simplicity

Simplicity in software: what you see is not what you get

Posted on .

As software developers we put a lot of focus on simplicity. And rightly so, because making code readable and understandable keeps it from becoming a maintenance nightmare. Simplicity is often confused though with how many lines of code there are. When you use…

Featured

Acceptance Testing development patterns

Rapid agile testing: pair testing

Posted on .

When doing some bug fixing recently I, more or less accidently, stumbled upon a really easy and useful technique to quickly test and fix an application. Since then, I have applied the technique a few times and the results are really astonishing. Since I found…

Featured

AOP best practices dependency injection patterns unit testing

A brief comparison of fundamental AOP techniques

Posted on .

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 reit…

Featured

best practices development javascript patterns

Javascript Namespaces and Modules

Posted on .

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 {…

Featured

best practices development javascript patterns

Javascript hoisting explained

Posted on .

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…