views:

127

answers:

5

I have a large set of classic ASP pages to convert. I will be running a Mac OS X server 1.5.7. I can choose anything I want, within reason, but I am stuck between Ruby on Rails or the full J2EE stack and an ORM.

My main concern is the databases I have to hit and what each framework/stack is made to do. I became concerned after actually building some things in RoR. I don't know why, probably just lack of experience with it, but it doesn't "feel" like it's right. I can certainly ignore the feeling and move forward with the absence of any evidence to the contrary.

I have to hit the following existing databases which will not be converted to anything else:

Oracle Ingres Sql Server MySQL maybe something else

Which framework/technology stack is better for this Intranet application?

Thank you for any help.

EDIT: I don't know if this matters but I hit all the databases and bring them back together. It's not one database one page. I query them all and bring back in a page(s).

EDIT: I have limited experience with both RoR and J2EE but must choose one of them or something else.

EDIT: Forgot to mention I have set up Jruby on Rails, not just ruby on rails.

EDIT: From a comment below (thanks) I have this:

Is it a web service taking in xml and passing it back out? - it is possible but not right now

Is it a form based ticket entry application? - part of it will have that type of need

Is it a simple CRUD? - part of it

What do users do with it? - Essentially it is many different types of web pages. I have one section that is an entire application in and of itself crud. Another part is pulling data back from many different database sources. I have different users with different needs. I was looking for a solution to them all. I could have several differnet languages and frameworks if I wanted - which is what I have now on a Microsoft server, but I was looking for one consistent way of doing things. It's a big consolidation but I don't want to buy something websphere to do it.

How does it interact with the database? - not sure what to say, jdbc, crud, or just read, it varies based up on the need of a particular web page

How many users use the application? - probably 1000 but it may grow. If I move some of it to an Internet app that part can have thousands.

+3  A: 

In my limited experience, RoR works much better when you allow it to create the necessary database schemas. On that point alone I would recommend using J2EE and Hibernate (or something similar) as you will be less frustrated trying to integrate with the legacy database tables.

You also mentioned that you lack experience with RoR - do you have experience with J2EE and any of the persistence frameworks (like Hibernate)? I would definitely try to stick with what you know unless the time constraints of the project encompasses a "learning budget" for you to ramp up on a new language and framework.

Andrew Hare
+6  A: 

Frankly, that's simply not enough information to go on. I'd be asking questions like:

Are there any "legacy" database schemas to support? Sounds like there could be. If so, ORMs can get painfully difficult to work with whereas SQL can be a snap. That's a point in favour of Java.

What existing skills do you have in Java or RoR? If there is experience more in one over the other go with that. It greatly mitigates risk.

Other than that, you say nothing about the kind of application, its characteristics, the requirements and so forth so you really can't say one way or the other.

If you do go Java, go Spring more than "classic" J2EE (ie EJB). Spring remoting, Spring Web Services and so on beat the hell out of EJB (even 3.0) for simplicity and ease of use. If you want a SQL-centric persistence layer, take a look at Ibatis. In fact, here's a Spring and Ibatis Tutorial.

If you do favour the more object model flavour of persistence layer, go either Hibernate or EclipseLink. Both work well with Spring.

As for application server I highly recommend Glassfish (v2 or v3).

cletus
A: 

I don't think there is a "better" solution. I think it depends on your skill level with each Ruby and Java. If you, and your team, are better at Java then go with Java. Unless time and money are no object, then maybe you want to learn Ruby (or visa versa, I just picked one).

You want to be able to create a stable, maintainable web server. So you need to evaluate which one will be the easiest to develop, easiest to maintain and the most stable for your environment. I don't think that, properly developed mind you, one is actually "better" than the other for a standard intranet web page. It really depends on what the web page / web service is supposed to do.

Maybe if you told us more about what the web site actually does we could give better answers.

amischiefr
What kind of stuff would I need to tell to help? I'm not sure how to answer this.
johnny
How about: What kind of "web" server is this? Is it a web service taking in xml and passing it back out? Is it a form based ticket entry application? Is it a simple CRUD? What do users do with it? How does it interact with the database? How many users use the application?
amischiefr
I added this information.
johnny
A: 

What about Groovy and Grails? You can get the best of both worlds...

fortran
How is this different from using jruby on rails?
johnny
I haven't experience with that, I was just remembering what some friends that are more into web development told me about their experiences with web frameworks ^_^
fortran
A: 

If you are building into a large legacy stack (and it sounds like you are). You may find that the Java world will help you abstract away the pain behind some common interfaces. From my, also limited experience, with ROR it won't natively play well with other models.

Jeremy French
this is exactly what I was beginning to feel and thus my question. thanks.
johnny