I’ve been a bit stuck on the genealogy project, for a couple of reasons. First, I’ve been spending a fair amount of time watching the olympics, which hasn’t left much time for coding fun. Second, I’ve only been playing a bit with a domain model, and domain driven design just doesn’t quite feel right for this project. It’s probably my lack of experience with the paradigm, but it seems more applicable to complex business models (lots of interactions and state changes) than it does to a single-user data repository. I don’t regret spending time with it, as I’ve learned a lot, but I think I need to try a new tack.
Yesterday, I attended the Minneapolis Silverlight User Group meeting, which reinforced the fact that WPF is very cool, and I should probably try to use it for this project. I played around a bit last night with Family.Show, which is a very cool, glitzy app, but it doesn’t even allow entry of sources. (It’s a WPF reference app, and in that it succeeds very well, but it’s a long way from a full-blown genealogy app, and they readily admit that.)
My new approach is going to be to get something working, include plenty of unit tests, refactor mercilessly, and try to do the simplest thing. I’m curious to see where that will take me. The first thing I’m going to implement is the ability to store 1880 US Federal census records. I know I want to use SQLite, so I’ll be using that out of the gate. I’ll likely wind up using NHibernate as well, but I’m going to hold off adding it until I get something working (I’ve never used it, and I’ve got enough new things to learn).
I’ve only begun to explore WPF, so I’m sure the first incarnation will be ugly, smelly code, but hopefully I can refactor it into something decent. In the very first iteration, I’m not even going to try to maintain a clean separation of concerns; I’m just going to hit the database directly, which will make writing unit tests nearly impossible. That will be one of the first things I’ll need to fix.
Initially, the app may look and feel a bit like a WPF version of Clooz, but before I get too far, I’ll want to start hooking the evidence to the conclusions to fully realize the design I laid out in my previous post.
Leave a Reply