I ran across this a few days ago. APress is offering some free books in PDF format. They are somewhat older titles. I’m still developing in VB6 at work, and two of the titles look like they might be of interest to me. I’ve downloaded Programming VB .NET: A Guide For Experienced Programmers and COM and .NET Interoperability. There doesn’t appear to be a direct link to any of the books.
I have no idea when I will get a chance to read these. I’ve still got last month’s Golf Digest to read and next on my list is a book my wife got me for my birthday, Seeing Data, by Rebecca Riordan. I just recently finished the other book I got for my birthday, David West’s Object Thinking.
I’m getting a little off track here, but I think it will be very interesting to see how I might be able to link together the central themes of these two books. In his book, West discusses two areas that by their very nature present an impedance matching problem with object-oriented design and development — GUIs and databases. Of course, when you write business software, these are the two areas that are the most important to the business. Without good data, there is no point in having the computer keep track of data. Without a good UI, the users are going to resist the system, even if it provides all the information they need. Without a good design, you have fragile systems that become more and more expensive to maintain.
Of course, I just described 90% of the business systems that are in use today. 😉
I’m no expert in any of these design disciplines. I don’t have a degree in computer science. I haven’t taken classes on OOAD, datbase design, and the like. But I really enjoy reading about these kinds of topics. Each time I’m making a change in the database that has to be copied to many other locations because we have business logic peppered throughout the database, I dream that I might soon be able to implement many of the ideas in Martin Fowler’s book.
It’s probably a pipe dream, but I am constantly thinking about ways that I would implement our existing design as objects in VB.NET rather than procedural code that is mixed between our VB6 forms and the database. I can be driving in the car, watching the Cavs on TV, or reading the newspaper, and a new idea pops into my head about how I could apply a concept from something I’ve recently read. I wonder how many other developers can’t help thinking about their projects at all hours of the day? Am I just like all other developers?