Wednesday, March 30, 2005

The ORMapper has been updated again today.

 The following important new feature is why this is a major update:
 
 * Added IsolatedContext Property to Create New Isolated ObjectSpace
 * Use IsolatedContext to Isolate all Tracking/Caching to that Instance
 
 Then there are these important bug-fixes as well that were rolled in:
 
 * Fixed Delete with Lazy-Loaded Many-To-Many removing Related Objects
 * Fixed StartTracking clearing any pre-existing Relations on Objects

Whenever Paul Wilson comes out with a new release, he updates releated questions/issues in the ORMapper Forum.  This can give you a better idea of how those changes apply or may benefit your own project.

Wednesday, March 30, 2005 10:16:00 AM (Central Standard Time, UTC-06:00)  #    Disclaimer  |  Comments [0]  | 
 Tuesday, March 29, 2005

A colleague recently asked my advice along the subject of requirements gathering.  Because I have such high regard for my own opinion, I've decided to share with you an excerpt of my incredible insight into the software development industry.

Most of all, you just need to use common sense to make sure you understand to the best of your ability what the problem/need is, what the desired outcome should be, and then design a solution to get you there.  Invariably, all the analysis in the world won’t raise all the right questions.  Some questions won’t become obvious until you actually start working on the solution.  Now that I think about, agile (eXtreme Programming) methodology, taken to the ...uh ...eXtreme, is basically the approach of “I’ll get started on what I think might maybe sorta be the solution now, knowing that I’m going to uncover questions/issues that may require me to completely throw away what I’ve done thus far and start over.”  Somewhere in the middle is the sweet spot between analysis paralysis and willy-nilly cowboy coding.  Personally, I kinda like the coding with wild abandon methodology.

In that single stroke of genius, I believe I stumbled upon the next software revolution.  Not just agile development... but Wild Abandon Development.  WAD.  I can see it now...  The books:  "Teach Yourself WAD in 24 Seconds" and "WAD Unleashed!"  WAD will soon become the next big industry buzzword.  Be the first to use it at your office and scoff triumphantly when your co-workers look puzzled.  Testimonials!  "Yeah, our project was going down the tubes until we applied WAD."  Oh, and the speaking engagements!  Adoring fans will call me ... 

"The Father of WAD"

Tuesday, March 29, 2005 4:24:00 PM (Central Standard Time, UTC-06:00)  #    Disclaimer  |  Comments [1]  | 

I've been playing around with Paul Wilson's ORMapper (an Object-Relational Mapping tool) for quite some time.  I’m currently working on a project that uses the ORMapper, and I think I’m nearly sold on using it full-time.  This is awesome stuff, and hope you will take the time to check it out. 

As you may have already discovered, you can use CodeSmith to automatically generate most of your basic stored procedures and data access layer.  However, the ORMapper gives you enormous power over your data with very little effort.  Filtering, sorting, paging, recursive saving entire object graphs (parent + children + children-children, etc.), transactional support, updating only the entities/columns that have changed, and the list goes on.  To do all of this with stored procedures alone would result in a vast number of procedures to handle every scenario for every table.

Objects can be retrieved in lazy-load fashion, meaning they aren't retrieved from the database until they are needed.  Loaded objects are typically cached internally for faster access.  You can change database providers (MS SQL, Oracle, OleDb, ODBC, MySQL, PostgreSQL, and so on) for the ORMapper by simply updating your web.config/app.config.  You don't lose ad-hoc control over your database.  You can still retrieve DataSets in a database-agnostic way with the help of the built-in QueryHelper.  If you still need to use stored procedures for some tasks, the ORMapper provides support for that, too.

I’ve been using Paul Welter’s CodeSmith templates to generate entity classes that use the ORMapper.  These entity classes are very easy to work with and provide methods for common DB tasks, such as saving, retrieving, creating, deleting and filtering objects.  I highly recommend that you use these templates as your starting point with the ORMapper.

My experience with the ORMapper hasn't been entirely rosy.  It's taken some time to get myself in the right "mindset" with regards to how I approach my data access layer.  I've also encountered a few growing pains where I wasn't using the ORMapper correctly.  As Paul Wilson will readily admit, the documentation for the ORMapper is lacking, to say the least.  However, Paul does a fantastic job of answering questions posted to his ORMapper Forum.

Performance and security are valid concerns.  There has been a lot of debate over the use of O/R mappers, some reaching near "religious" intensity.  I'm not going to rehash the pros/cons here, but I believe that an application developed using an O/R mapper can be made just as secure and perform just as well as an application that uses an all-stored-procedures (or whatever architecture du jour) approach.

Overall, Paul Wilson's ORMapper is a very smart and remarkable tool.  It may not have as many features as some of the other O/R mapping tools available for .NET, but at just $50, it is an incredible value.  There's also something to be said about Paul's objective to keep it simple.  As Paul puts it, it "just works."

Additional reading:

 

Tuesday, March 29, 2005 11:40:00 AM (Central Standard Time, UTC-06:00)  #    Disclaimer  |  Comments [1]  | 
 Friday, March 25, 2005
Paul Wilson has released the latest version of his ORMapper.  Check the release notes for fixes and improvements.
Friday, March 25, 2005 1:40:00 PM (Central Standard Time, UTC-06:00)  #    Disclaimer  |  Comments [0]  | 
 Thursday, March 24, 2005

My good friend Josh Evitt has started a new blog at www.TheGuitarBlog.com.  It's been my experience that there is a high correlation of people who are software developers (or are really "into" computers) and are also musicians.  Especially guitarists.

Crank it to 11, Josh!

Thursday, March 24, 2005 12:08:00 PM (Central Standard Time, UTC-06:00)  #    Disclaimer  |  Comments [3]  | 
 Monday, March 07, 2005
Mike Gunderloy of Larkware "Daily Grind" fame has written a positive review of Paul Wilson's UIMapper.  If you don't already subscribe to the Daily Grind, you should.  Now.
Monday, March 07, 2005 10:40:00 AM (Central Standard Time, UTC-06:00)  #    Disclaimer  |  Comments [0]  |