im in the middle of evaluating what technology i’m going to use or my next project, which will hopefully be the seed of a startup..at this stage its a 2 horse race..
rails vs asp.net mvc..
i’ve recently started working on a rails site and have really enjoyed the ruby langauge, i’ve had 8 years working with c# and also java… and i can say that when the penny drops with dynamic languages u really feel more productive with so much less code and verbosity..
but now i have a dilema… alot of what i like and have learned in my time on c#, stuff like persistence ignorance, domain driven design etc i’ve found harder to transfer to rails.. and i really think this project will have a non trivial domain. i like the idea of ActiveRecord, but not the implementation…
for example, with an active record model you dont declare the properties in the class, rather it reads them from the database, but at the same time u validate in the class.. which to me is confusing, why not just declare them there, and then do sometihng like why’s automigrations using the class definition..
but i think they’ll sort this stuff out for rails 3.o, datamapper for example uses this. but i found myself that with rails you’re best sticking to the rails way and so i didnt try and stray too far..
dont get me wrong i’m like rails alot, especially things like plugin architecture.. there’s a pluggin for everything… honestly
when i look back i think it was a bit of frustration with asp.net (which is still the case when it comes to web forms) drove me to rails.. it still amazes me to this day that i can get a site up and running with little or no config, compared to the endless xml i had encontered before… but these days with mvc being much more open, more testable, and with stuff like c# 3 & 4 moving the langage forward, generics, lamda’s, fluent interfaces, and convention of configuration catching on i think the gap has narrowed…
also with IronRuby on the way i think i’ll be able to continue to utilize ruby in the mvc world.
cucumber & rspec are unrivalled IMO for testing, i think cucmber will be a serious model to follow (even though its an evolution itself) but hopefully using these tools will become common place in .net soon…
rails has kicked the development world in the ass.. and maybe because it wasnt some commerical tool fronted by a company. i’m not 100% decided yet..
but at the moment my heart say rails but my head says asp.net mvc…