Steven Rockart did a great little post on using Windsor Interception to add logging to your code without polluting the code with actual log methods.
There are definitely not enough posts like this that explain the true value of Windsor.. nice post Steven!
I had gotten to the point in my iBatis efforts where I was starting to look at how iBatis deals with referenced objects. So a simple example is an Order with a Customer. Now assume that your customer was a complex enough object that you wanted to keep it cached and use your cached version. The timing itself was a bit funny because it was at this point that an email arrived from the iBatis user email list. Someone else had this exact same question. Well not really the exact same question. He had found out that iBatis doesn’t do any sort of caching. They consider that outside of their realm. We’ve discussed a few possible solutions (none of which I like that much) and even have one suggestion we look into NHibernate.
I still believe that iBatis has a definite use in providing an easy to use mapping layer. I just need to put some thought into the best way to provide some caching ability.
Well it took a bit of reading and a little bit of work but I have successfully gotten the iBatis Quick Start working. There was actually quite a few things I had to do to get it working. Some of them were things that were missing from the guide and others might just be me not understanding better/quicker ways to do things using iBatis.
I’ve contacted the person who wrote it to see about having my notes rolled into the actual guide. I was going to try to post my changes here but I’m having a problem posting some of it so I’ll have to do it later once I have a minute to figure out what I’m doing wrong.
With those problems aside I do have to say I’m quite impressed with how easy it was to get a list of entities returned from the system. It is definitely a much different experience then NHibernate is. Next up is to get the rest of basic CRUD functionality working.
Having written a fairly massive mapper layer for the last project I was on I decided it was time to look into this ORM thing I’ve been hearing so much about. The first thing I looked at was NHibernate and while I found that it was a really cool solution I’ve also heard it’s not the best solution when you are being required to use stored procedures. I’m not going to get into the whole stored procedures vs direct sql debate because at the end of the day some decisions are made for us. We sometimes find ourselves inheriting a big collection of stored procs we need to map from.
It was at this point that I started to hear about a product called iBatis. I’ve been told that if you have to deal with stored procedures and want a nice simple mapper that iBatis is your man. So I’ve decided to start taking a look into it. And my plan is to post information as I go along so that maybe someone else who is just starting to take a look at this product can gain from my experience.
So the first step has been to download the two seperate projects (DataAccess and DataMapper) and their respective documents. Now time to start doing some reading and playing..
I ran into a situation over the last few days where I’ve been having trouble implementing some functionality. It’s a fairly complex story I’m trying to complete (we use a modified Scrum process) and I’ve been banging my head against it. It got to the point where I’ve been a bit put off with it but at the end of the day it has to get done.
So today I decided to change my plan a bit. I grabbed a bunch of other smaller stories that are on the board and started on them. I was able to knock off quite a few of them and it improved my mood a lot. Now I feel that I’m ready to go back to the first story and get it completed.
I’ve done this before when I find myself getting bogged down. Taking a break and trying something different is always a good mood improver. And usually I find that when I go back to the original task my perspective has changed enough that I can find a good solution easier then if I had kept at it. Just make sure you give yourself enough time to complete the original task.
I’ve been having some trouble focusing my education efforts. And so I’ve come up with the idea of doing a look back at education efforts for the past month. And then looking at what I plan on doing in the next month. I think this will help me focus and correct the ship when it starts to get adrift. So with that explanation out of the way…
- Started reading Applying UML and Patterns (which required I put the Object Design book on hold)
- Put learning Ruby on hold so I can apply myself more towards design patterns and OO analysis & design.
- Switched to waking up at 5:30 AM. This allows me to take a one hour morning walk each day. Definitely something I can’t live without now that I’m back into the habit.
- Finish the Applying UML and Patterns book.
- Start working through the patterns in GoF book. Work through 2-3 patterns by creating multiple implementations.
- Complete a small application which uses my current understanding of things.
- Resume reading Object Design book.
Eric Sink recently commented on the book debate that’s started up.
Part of me agrees with Eric Sink. It is definitely in a developers best interest to have a deep understanding of what they are doing. But I’m also in the camp that thinks that software development has gotten so complex that I personally cannot afford to be a generalist. I need to be able to balance my family time, my work time and my education time. This means that I need to be a bit more focused on what I am learning. When it comes to something like building a Solid Core I will take the time and effort it requires to gain a deep understanding.
But WPF is not something that at this point I feel that I need to grok. That doesn’t mean I don’t want to play with it, and hopefully use it in a project. But for now my needs are going to be more a long the lines of “How do I use it to accomplish what I want” and based on what I’ve heard Unleashed is going to be a better fit for that need. In the future if/when I need to “grok” it I’ll look at my options at that point. Maybe the Petzold book will meet my needs. Maybe I’ll need to attend a course or maybe both.
So in the end I guess I’m just a fence sitter who sees a need for both types of books depending on the situation. I’m guess it’s a good thing that there are smart people out there writing both types of books.