Hi there,
Don’t think that there is anything in the rails space that will give you
printable web reports quickly. As time to market is your priority, then
you should probably leverage what you have.
You can then migrate away from .Net without the pressure.
To my way of thinking, there is not a lot of difference between
communications between 2 Rails apps, a Rails app & a .Net app, or any
other system.
You agree upon an interface, send messages back & forth, & there you go.
It should not matter what lies behind the interfaces.
For example, your rails app could query your .Net app for graphing data,
then render the view, with Google charts providing the graphs. Just two
services at the end of an interface.
Keep in mind that using external services will add additional time to
Rails servicing a request; this will have scaling implications.
It’s been a year now since I used ASP.Net, but here are some Rails &
.Net ramblings…
From a business point of .Net lowers the risk of project because it:
- has a large pool of developers
- has been proven to support large commercial applications
- has the backing of a major corporation whom you can have reasonable
confidence will still be around in 5 years.
These are all good things & it looks like a rational decision to
recommend .Net. Particularly if your not involved in Rails as closely as
most people on this list would be.
My feelings on .net
- C# & VB.NET are a right bitch to programme in compared to ruby -
so.much.code.to.do.simple.things. Yes, there is intellisense in Visual
Studio… things would be close to impossible without it.
- .Net is a mammoth framework. There are so many libraries. Even after
coding for a year, I still spent almost 50% of my time reading
documentation. Socket programming is a complete nightmare.
- Visual Studio produces rubbish html view code. If IE is your only
target browser, then you can get away with it. But your designers will
probably use mac’s & keep asking you why their lovely design now looks
pants; oh dear… more css tweaks. Its amazing how much time disappears
this way.
- executes quite fast and is really stable, as long you have not done
something really, really stupid.
- has well proven upgrade paths.
- you have to make a concerted effort to do things in an agile way [BDD,
code testing, etc], its just not as natural as rails & there is no MVC
[coming in ASP.Net 3.5, but even that looks like hard work]. Although we
intended to do some automated code testing, due to rapidly approaching
deadlines we skipped this bit; leading the first few weeks of release
being plagued by lots of bugs.
- is easy to recruit for
Having said all this… you won’t go wrong going 100% .Net. Your job is
safe.
My feelings on Rails
- after the 2-3 month learning curve, I was 3-4 times more productive -
not just not looking at documentation - ruby is just faster to get
things done.
- Ruby is optimised for programming rather than computer performance.
- is easier to produce well tested code [the MVC nature of rails really
does make Agile processes easier to implement].
- is not difficult to host & scale, just different & I think involves
much less brain power than scaling out .Net. The framework is just one
small part of the whole. Look at www.joyent.com & www.engineyard.com for
examples of how to do things.
- If anyone says to you that they have heard “Rails does not scale” you
immediately know that they have not done any independent research, put
very little intellectual effort into this thought, and have probably put
just as much intellectual effort into everything else that they say.
Treat their advice with caution.
- can happily talk to legacy databases - its just a bit more work
- does not need visual studio [w00t…!!] I use Netbeans on Vista &
Ubuntu.
- Major vendors, Sun, Oracle, IBM, & Microsoft all have projects to
bring ruby & rails into their product suite.
- resourcing is a problem; there are some really dodgy contractors &
companies who say they do Rails out there trading on their names [yes…
I mean you… you know who you are]. Reference check - more than once.
- I think its fair to say that 2 very good rails guys [they all seem to
be guys with longish hair, goatees and very pale skin…why is that?]
will build you a web app at about the same speed as 4-5 average .Net
guys [I know its a horrible and unfair comparison] - but my point is you
should think of it as a higher cost per resource, but each resource will
give you much higher value. Problem will come when you need to resource
your team permanently & you may have to recruit & train.
A great symbol of the differences between managing .Net & Java, and
Rails developers is the kind of conversations you have. With .Net, &
Java, it tends to be very technical, what’s the best way to structure
this, what is affected with this change, which library should we
use…etc. With Rails developers almost 100% of the time talking about
business logic.
Rails is great for building and maintaining SEO friendly web apps. It
works really well. And if your programmers are good, you will get to
market faster than .net & Java with equivalent resources. To me these
are the reasons to choose rails.
In a corporate environment, It still seems slightly irrational to
recommend Rails. The management challenges are definitely higher;
resourcing, convincing risk adverse management, then continually
defending your choice from interested parties.
I think that was more for me than for you… I feel better now.