Programming Practices

Legacy Projects, Technical Debt and NDepend

Legacy systems are commonplace, but it's difficult to come up with anything concrete to justify the expense of an update to someone with an eye on their bottom line. Thankfully, the folks at NDepend have now built technical debt computation on top of their code analysis tools, giving you a much easier way to have these sorts of discussions. Here's a real-world example.

Mapper vs Mapper: The Performance Plot Thickens

The last mapper performance blog (for a while, at least), including updated versions of AgileMapper, AutoMapper and Mapster, and discussion of some performance nuances.

Mapper vs Mapper: Performance Revisited

I recently wrote a blog on the performance of various object-object mappers, but it turns out my tests weren't quite fair and equal at that point. Having updated the relevant mapper classes and re-measured, here are my results.

.NET Standard and Testing Partially Trusted Code

Because libraries written for .NET Standard can run on multiple platforms – with more to come in the future – it's worth considering how or if they run in partially trusted environments. Having implemented support in both ReadableExpressions and AgileMapper - here's pointers on how.

Mapper vs Mapper: Performance

The first in a series of posts comparing a subset of the available mappers. This blog is on that favourite thing we're not supposed to obsess too much about (in programming) - performance.

AgileMapper: a zero-configuration, highly configurable, transparent, id-aware object mapper

Regular readers of my blog (maybe even both of you) will have seen sporadic references to ‘my pet mapper project’. It’s now – finally! – in a beta stage I’m happy to talk about.

Interview Trivia Questions

There is a style of technical interview question which I think is more or less pointless. Here's some examples, with what I think is a question worth asking instead.

Finding a Balance: Code 'Complexity'

On any project, there's a tension between writing code everyone finds easily accessible, and using more [relatively] modern techniques which make code more terse and expressive. Here's some thoughts on addressing that tension.

Extending WatiN 2: Wait for JQuery document.ready() Functions to Complete

WatiN's DomContainer.WaitForComplete() method pauses test execution until the DOM has finished loading, but if your page has functions registered with JQuery's ready() function, you'll probably want to wait for those to finish executing before testing it. Here's a WatiN extension method which pauses test execution until that happens.

No More NCrunch For Me

NCrunch is a Visual Studio add-in which runs your tests while you work so you know if you've broken anything, as well as providing coverage indicators in the IDE and coverage metrics on demand. It recently went commercial, and time is running out for the free version I've been using for the last couple of months. From my experiences using NCrunch I'm going to let it expire, and go about my business without it. Here's why.

Full Programming Practices Archive