It seems that lately I have seen some of my fellow .Net programmers fall to the dark side. Namely they have gone from the compiled world of c# to a slightly more hip Ruby on Rails(RoR) world at least for their web development projects. I enjoy learning new technologies and languages and at first thought that they just were tired of using C# by time they got home and were learning something new in their after hours programming. If I hadn't have had a new baby at home I might have tried to learn Ruby on Rails as most of my co-workers at my previous job gave it rave reviews.
What I find odd is that when my co-workers put their Ruby on Rails hats on they loved this idea of "Convention over Configuration" but when it came to coding in C# they wouldn't trust an ORM or some other time saving convention. They preferred to write their own custom Data Access Layer, they preferred to write their own membership provider. Now I understand that there were usually good reasons for these decisions but they each came with a large hit on the development timeline.
Along comes SubSonic
I at first didn't understand why most of the other developers loved RoR as I didn't take the time to learn it but a while back someone introduced me to SubSonic (which steals most of its ideas from RoR). I was shocked at how quick I could build a web application. In a couple of seconds I could add a developer admin page for all of my tables. With little to no work I could handle the paging of a grid. If I wanted to change my database schema I could make the change once and have it reflected in my code. It was like my little tool belt that just kept giving. It even had handy functions for checking if a string was a valid Email or Credit Card. When I started using JSON I was enthralled to find out that it could convert my objects to JSON (this was back before ASP.NET 3.5 when it was built in).
We need more than just an ORM
For a good productivity/convention belt we need more than just an orm and we need the different pieces to play together nicely. The productivity tool kit needs to make use of jQuery and some of its key plug-ins used for displaying and paging data as well as form validation on the client side. It needs to tie the ORM to the User Management piece and it needs to have a default UI for Data Base manipulation. The tool belt needs to work with little to no configuration. Too often I have had to read someone's blog about how to make X and Y play nice. I know that I am asking for a lot but we have to build a lot of productivity saving tools and we need to have a life and play with our kids after work too. Maybe I am just dreaming but it seems that more of our Open Source tools could converge and make our lives a little easier and happier.
.Net still has the advantage
Now I know that some people have switched to RoR for its productivity but I would argue that .Net still has the advantage. .Net has a much larger selection of Reporting tools, PDF manipulation libraries, Bar Coding tools, etc etc. Hey and to top it off C#/.Net is so much cooler than Ruby that it can even interpret Ruby (and many other dynamic languages).