Thursday, April 14, 2005

About 11:50 PM last night, my wireless router decided to give up the ghost.  I thought I was just having connectivity problems with my ISP, so I went on to bed.  When I got up this morning, there was still no Internet.  So, I went to the closet to restart my router.  My cable modem, firewall and Vonage adapter all appeared to be in a happy state.  However, my wireless router was lit up like a Christmas tree, and none of the lights were blinking.  All the lights were on, including the LAN ports where nothing is plugged in.  So, I powered it off and back on... same result.  Looks like I'm in the market for a new router.

The new Netgear RangeMax looks interesting.

Thursday, April 14, 2005 9:09:00 AM (Central Standard Time, UTC-06:00)  #    Disclaimer  |  Comments [0]  | 
 Sunday, April 10, 2005
I spent some time this weekend setting up MySQL and think that I now have it ready for public consumption (for my hosting customers, of course).  I'm running version 4.1.  Version 5.0 (now in Beta, version 5.0.3), is planned to support views, stored procedures, and cursors.
Sunday, April 10, 2005 12:39:00 PM (Central Standard Time, UTC-06:00)  #    Disclaimer  |  Comments [0]  | 
 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]  | 
 Monday, February 28, 2005

Paul Wilson has released his UI Mapper.

A UI Mapper is a library and set of controls that allows your UI to be dynamically created at run-time, loaded from your business entity objects, as well as to persist the UI changes back to your entities. It also allows you to use your own DAL, Framework (like CSLA), or O/R Mapper (like NHibernate, LLBLGen Pro, WilsonORMapper) to transparently load and persist your business entity objects to a relational database.

The UI Mapper supports both Web and Windows applications, and ships with several UI Mapper-aware controls.  The UI Mapper allows you to create your own controls, or wrap 3rd-party controls.  I commend Paul for not only developing and releasing this product to the public, but also creating a flexible framework that allows you to plug in your own components and your own data access layer, including other O/R mappers.

http://weblogs.asp.net/pwilson/archive/2005/02/28/382090.aspx

http://www.uimapper.net/

Monday, February 28, 2005 10:53:00 PM (Central Standard Time, UTC-06:00)  #    Disclaimer  |  Comments [0]  |