Endjin - Home

endjin blogs

Think Smarter

Endjin–Looking back on 2010

by Matthew Adams

Everyone is legally obliged to produce some kind of retrospective post at the end of the year. This is mine. I’ve done it in the form of a few “Top 3”s. Top 3 Dev Tools for 2011 1) The JetBrains tools. I’d used R# before, but combined with StyleCop for R#, TeamCity and DotCover, it […]

Category: Culture 2 Comments

Large productivity gains can be made by adopting a “Convention over Configuration” (CoC) approach when designing new solution architectures. To harness the full power of the Convention over Configuration approach, the development team must take a holistic approach by examining the ceremony required at every stage within the Software Development Life Cycle. In a previous […]


In the previous instalment, we built out a model for component composition by convention, and showed how this could be implemented over MEF and/or Castle Windsor. Other IOC containers exist, though, and it would be nice if we could abstract over the container, and plug in different implementations depending on our needs and preferences. Seems […]


A Step by Step Guide to MongoDB for .NET Developers

by Howard van Rooijen

I originally published this post on my personal blog but decided to revisit it and update it with a few things I’ve learnt in the following months. During DDD8 I attended Neil Robbins “Hello Document Database” talk, where he demo’d how to get started with CouchDB. Although I have heard a lot about the NoSQL […]


A Step by Step Guide to Hosting YouTrack in IIS 7

by Howard van Rooijen

At endjin, we host our development infrastructure on Sleek Network’s Virtual Private Servers, this provides us with a great mix of  reliability, power and flexibility. Because we believe in working smarter, not harder, our Issue and Bug Tracker of choice is JetBrain’s YouTrack. This is our second Step by Step Guide, which follows on from […]


A Step by Step Guide to Hosting TeamCity in IIS 7

by Howard van Rooijen

At endjin, we host our development infrastructure on Sleek Network’s Virtual Private Servers, this provides us with a great mix of  reliability, power and flexibility. Because we believe in working smarter, not harder, our Continuous Integration Server of choice is JetBrain’s TeamCity. We’ve believe that the combination of a virtualised development environment and a mature […]


Layering your API

by Matthew Adams

In the previous post, we looked at a nice RX-implementation of an INPC subscriber by Richard Szalay, and added a couple more methods so that it could be used by a non-RX-aware developer in a very simple manner. In the comments, RIchard pointed out that if you want to start to take advantage of other […]

Category: Culture 1 Comment

RX and INotifyPropertyChanged

by Matthew Adams

Richard Szalay has a great blog post which allows you to use the Reactive Extensions IObservable pattern to subscribe to INotifyPropertyChanged implementers. However, the syntax is still a little bit clumsy. By adding a few extra helpers to the class we can go from this: To this Here’s my slightly modified code. Why should you […]

Category: Culture 3 Comments

Silverlight CommandManager

by Matthew Adams

As WPF and Silverlight developers, one of the most powerful tools in our utility belt is command binding. A quick dive into WPF WPF has a fairly full-featured command infrastructure, including a rather useful type called the CommandManager, which ensures that our controls are correctly enabled and disabled as the Command to which they are […]

Category: Culture 8 Comments

Combining MEF With Castle.Windsor For Low-Ceremony Component Composition Last time, we looked at a method we could use to componentize feature registration. This time, we’re going to go on and look at a means of generalizing this, and a nifty pattern you can use with C# generics to help us out. Generalization One of the […]


The inimitable Ian Griffiths left a great comment on my last post – saying that: You seem to be implying that the LINQ query was being evaluated each time round in “the outer foreach”. But I don’t think that’s right. A foreach loop evaluates its collection expression just once at the start of the loop. […]

Category: Culture

A Short Tale of a Deceptively Slow LINQ Expression

by Howard van Rooijen

With any good iterative development process – the first step is to get something working: solve the problem in as simple a fashion as possible, then refactor. Part of the refactoring consideration should be an initial performance monitoring spike to see which parts of your codebase are running slow. Once I had the initial prototype […]

Category: Culture 1 Comment

Combining MEF With Castle.Windsor For Low-Ceremony Component Composition Componentizing registration In the last post, we’d got down into the detail of the Windsor container’s conventional registration model. Before we move on, let’s wind back up to the top of the stack and remind ourselves of the key objective. We want to componentize our software – […]


Combining MEF With Castle.Windsor For Low-Ceremony Component Composition Registration by convention In the last part of this series, we looked at the basic features of Castle.Windsor, and saw how we can register types explicitly in the container. Rather than having to explicitly register everything, we’d like somehow just to know what we want to install […]


Combining MEF With Castle.Windsor For Low-Ceremony Component Composition Last time, we looked at MEF and what it brings the to party. (The answer was a very powerful composition solution.) This time, we’re going to contrast that with the facilities offered by Castle.Windsor. Part of the solution — Castle.Windsor Windsor takes as its primary focus the […]


Introducing Templify

by Howard van Rooijen

[Note: Templify 0.7.0.25 is now available] In my last post I talked about the philosophy of “Work Smarter, Not Harder”; it’s a very simple mantra that can be described in three simple steps: Do, Recognise, Codify. This philosophy is at the very core of what we do at endjin so we decided to share the […]


Combining MEF With Castle.Windsor For Low-Ceremony Component Composition In the last part of this series, we looked at the scope of the component discovery and composition problem. This time, we’re going to look at MEF and see what it brings to the table. Part of the solution — MEF MEF is principally trying to solve […]


Combining MEF With Castle.Windsor For Low-Ceremony Component Composition Introduction This is the first post in the endjin series on developing a loosely-coupled, ReSTful application architecture for .NET. Here’s a rough synopsis of the series. Component discovery and composition Part 1: Fundamentals Interlude 1 — Using conventions in your solution structure Component discovery and composition Part […]


Work Smarter, Not Harder

by Howard van Rooijen

The simplest definition of my mantra of  “work smarter, not harder” is: Using your intellect, skills, established patterns, tools and a fundamental understanding of the problem space to create an elegant solution, instead of a purely brute force approach. So many people jump straight into trying to solve a problem without actually trying to understand […]

Category: Culture 2 Comments

1 12 13 14