I absolutely love the the goodness which is SubSonic 2.0.3 (2.0.4 on it's way). It's basically a way of automating most of your mundane day to day Database tasks (CRUD - Create, Read, Update, Delete) by using it in a form of native objects.
NxsFINExpense ExpenseClaim = new NxsFINExpense();
ExpenseClaim.Amount = Convert.ToDecimal( dtbleResult.Rows );
ExpenseClaim.Description = dtbleResult.Rows.ToString();
ExpenseClaim.ReceiptDate = Convert.ToDateTime(dtbleResult.Rows);
Basically there is a table in my Database called "nxsFIN_Expenses" and each of the properties found on the ExpenseClaim Class is in fact a field within the table (respective type setting also associated via Convert casting).
The part that I love the most is "ExpenseClaim.Save()" which pretty much kills all efforts to writing the "INSERT INTO" bloated SQL Query. This is the kind of magic I've come to embrace inside the .NET community in that, basically everyone's just as lazy as me and would prefer to focus on hard-logic instead of basic CRUD's for example.
I have to say, in the my old Coldfusion circle's we really didn't have anything this automated. I think the closest I've seen probably is "Model-Glue: Unity" Framework apparently when I last spoke to Sean about it, he stated it cained Ruby-on-Rails (Sean's wise and if he says it did, well I'll assume it did!).
Combine SubSonic with Visual Studio 2008, SQL Express and overall I have a nice warm fuzzy glowing feeling about my progress so far. Whom knows, with this ExpenseClaim .NET application I'm writing I may even get my expenses lodged in-time from here on out.
All thanks to SubSonic's productivity gains (did I oversell that?)
Points to note:
Next.. bolting on the Silverlight GUI.