ORM techniques for legacy databases

One of the reasons folks typically go with a hand-rolled ORM (i.e., using ADO.NET by hand) is the assumption that ORMs don’t work well with legacy databases or databases designed in isolation from any sort of object model used to … Continue reading 

Posted in Architecture, NHibernate, SQL | 22 Comments

Don’t write your own ORM

In my last post, I talked about various kinds of patterns of ORMs and how to choose an ORM strategy. From the comments and tweets I got, it seems like some folks still think that their only ORM choices are: … Continue reading 

Posted in Architecture | 35 Comments

Choosing an ORM strategy

One of the mistakes I see people make (and have made myself) is assuming that you must choose exactly one ORM strategy for an entire database/application/system. It’s simply not the case. You can (and should) tailor your ORM strategy to … Continue reading 

Posted in Architecture | 32 Comments

Troubleshooting SQL index performance on varchar columns

Doing a deployment last night, I ran into an issue around indexing performance around SQL columns of type varchar. Varchar is the ANSI version of character data – storing as 8-bits, while nvarchar is Unicode, storing as 16 bits. For … Continue reading 

Posted in Architecture | 12 Comments

Our Post-Agile World

It’s been a looooong time since I’ve posted anything about Agile, and today I sat down to try and figure out why. It’s not that I don’t care about the values in the Agile Manifesto, nor that I’ve gone completely … Continue reading 

Posted in Agile | 7 Comments

Eventual consistency, CQRS and interaction design

Gabriel Schenker’s excellent series of posts on “How we got rid of the database” offers a great insight on the benefits of a CQRS/ES application. One of the problems often seen with designing user interfaces that introduce eventual consistency into … Continue reading 

Posted in CQRS, Domain-Driven Design | 12 Comments

Using posh-git and posh-hg together

I use both Git and Mercurial for projects, as well as Powershell as a console for both. Both source control systems have awesome plugins in posh-git and posh-hg that provide nice statuses, tab expansions and so on. However, they don’t … Continue reading 

Posted in git, Mercurial | 3 Comments

NDC 2012 presentations posted

Slides and code are up for my talks at NDC 2012: Building External DSLs Crafting Wicked Domain Models NDC also recorded the talks, so when those get released I’ll update this post with the videos as well. Videos below! Watch … Continue reading 

Posted in Presentations | 5 Comments

Mixing async and sync in distributed systems

One of the more difficult transitions when moving from a synchronous UI to an inherently async/CQRS-based UI is the burden of figuring out what to do with all these synchronous operations. Especially when dealing with existing systems, users that expect … Continue reading 

Posted in Domain-Driven Design | 4 Comments

Limits of performance optimization

Back in college, where I was an Electrical Engineering undergrad, I had an especially difficult professor for my microcontrollers course. In this course, we would hand-roll assembly language instructions and upload them to the 68HC12 testing board. (Side-note, I never, … Continue reading 

Posted in Architecture | 5 Comments