Endjin - Home

endjin blogs

Think Smarter

Dev4Good July 2011

by Howard van Rooijen

Ethical Foundations When we founded endjin, Matthew, Lloyd and I spent a lot of time thinking about the type of company we wanted to create; one recurring theme was that in our personal time we each did a significant amount of work for “good causes” and we derived a huge amount of joy and satisfaction […]

A few weeks ago Geoffrey Smith, the Sharp Architecture Development Lead and I were invited onto .NET Rocks! to be interviewed about the Sharp Architecture project. After we talked about Sharp Architecture – the conversation lead on to other open source projects I’ve been involved with such as Templify and StyleCop for ReSharper. You can listen to the […]

Quiet day on Monday…

by Matthew Adams

Anyone who follows me on Twitter will know that I love food. Cooking it, eating it, thinking about it… That industry has an above-average number of incredibly driven, creative, focused individuals who have a passion for what they do; the flair to do it; and, above all, the willingness to pass on that experience to […]

Category: Culture 4 Comments

StyleCop and StyleCop for ReSharper have merged

by Howard van Rooijen

In 2008 Microsoft released Source Analysis a tool to help solve the thorny problem of coding standards in C# projects, soon afterwards they re-launched it using it’s original internal Microsoft name, StyleCop (to avoid confusion with the TFS Code Analysis tools), along with an SDK that allowed the community to extend the product. In May […]

On Apprenticeships…

by Howard van Rooijen

I’ve always been surprised by the number of people within the technology sector, in particular the software development industry who don’t have a  traditional computer science background. Some of the most talented software developers I’ve worked with have university backgrounds in chemistry, astrophysics,  geography, marine biology, just not Computer Science, and two of the most […]

Category: Culture 11 Comments

Where do my Visual States come from in Blend?

by Matthew Adams

This blog was prompted by a question from fellow endjineer and all-round genius, Ian Griffiths. He wanted to know how Expression Blend managed to find the Visual States exposed by the standard controls, and how you might, therefore, do the same job in your own code. (If you want to read up a bit about […]

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 […]