Sunday, March 12, 2006
Posted on Sunday, March 12, 2006 1:13:08 PM (Mountain Daylight Time, UTC-06:00)  Comments [0] | 
Categories: .NET | General | Software
When I started writing software, like many other GIS developers, I was working in a vacuum. I was the only VB developer in our shop, and I knew few other developers. If I had a problem, I had to hope I could find a solution in a book, or just solve it myself. Narry a mentor to be found.

Times have changed, and the internet now provides a wealth of "How-To" type information for developers. What's still difficult to find are discussions which review the "pros & cons" of a set of options - kind of "best practices" tempered by reality. These are the sort of discussion that you would have with a mentor, and from which you take away more than simply a solution - you gain knowledge. Happily, I find that there are some blogs that can fill this role.

Just this afternoon, I ran across a bunch of posts which exemplified this. I found some serious discussions about some topics I'd been working with this last week - Object Relational Mapping in .NET, and the choice between using dynamic SQL, or Stored Procedures in a data access layer.

Ward Beeker's blog on Code Generation has a post linking to a post by Clemens Vasters (of dasBlog, and now Microsoft). Having spent the week working in relative isolation looking at O/RM options, and finding most of them either overly complex or unable to map 1-to-M tables into contained collections in a parent class, it was nice to see that other much more distinguished developers are also somewhat skeptical of the promise or O/RM. Anyhow, both the post and the comments were very enlightening.

Once I had decided on how to actually generate my classes from the data model (I chose to use RapTier because it uses a very light weight model, which does not rely on other code - unlike NHibernate or the MS Ent Data Access block), I still had to decide if I should use stored procedures or dynamic SQL to communicate with the database. Again - I found a bunch of postings on both sides of the issue.
What's really cool is that in reading the posts, I got insights that only come from people who have tried a lot of options, and have summarized their results. From reading these, I think I'm going to go with the Dynamic SQL. I'm doing this for the simple reason that if there is a need to change the model, there is only one code change to make.

It is my hope that I can provide similar help and insights on GIS development to the people who read my postings on ArcDeveloper.net or this blog.

Comments are closed.