Fog Creek Software
Discussion Board




J2EE/JAVA Framework

It was decided we will be converting over from a cobol/cics/mq/html to a J2EE/JAVA environment.  Does anyone have suggestions for a framework,  best practices, development environment, etc.? 

I want to compare what we are getting from vendors, to educate myself and to know if we have been sold a bill of goods.  I know this is asking a lot, but anything would be helpful.

Phil
Friday, September 19, 2003

Spring - http://www.springframework.org/ - I've been building a couple of systems using it recently and I like it a lot.

Walter Rumsby
Friday, September 19, 2003

The Jakarta Project creates and maintains open source solutions on the Java platform for distribution to the public at no charge.

http://jakarta.apache.org

Evgeny Gesin /Javadesk/
Saturday, September 20, 2003

Take a serious look at Resin (http://www.caucho.com/) for an app server that keeps up with the latest servlet/jsp specs, and has most of the J2EE stuff locked up as well.  It's dirt cheap, extremely fast, and very stable.  It's exactly the sort of good product that a couple guys who know what they're doing can produce without a lot of fuss.

As for an IDE, Eclipse is very good (http://www.eclipse.org).

Justin Johnson
Saturday, September 20, 2003

I'm surprised this is not a busier topic. Who's your vendor?

If it's Oracle, Oracle's J2EE server is a branch of Orion - http://www.orionserver.com - they have evolved in different directions, but they basically take the same approach. Oracle's offering also comes with a lot of extras and so its pricetag is fairly reasonable ($US 5000). If you want similar performance, don't need the extra features and want to save a few dollars consider Orion. Oracle's Java IDE, JDeveloper, is awful, horrible, slow, unintuitive. You DO NOT need to use it to develop for their application server and it definitely will not make you more productive (relative to other IDEs).

If your vendor is IBM then you're probably paying too much money. If you're just developing web applications (no EJBs) then WebSphere is just wrapping up Tomcat - http://jakarta.apache.org/tomcat - which is free, but not a particularly stellar performer (then again it might be adequate for your needs). If you're using WebSphere Application Studio Developer then you might as well download Eclipse - http://www.eclipse.org/ - because WSAD is Eclipse with a few plug-ins preinstalled.

If your vendor is ATG then you're working with a different kind of beast, I don't know much about it, but I don't think it is a J2EE server per se (i.e. it's a Java application server, but I'm not sure that it complies to the J2EE spec, I could be wrong but I have the idea that it's rather idiosyncratic).

If your vendor is BEA then your using the app server that many many people use, but remember that because of the J2EE spec you can (with the aid of a tool like XDoclet - http://xdoclet.sourceforge.net/ ) achieve a fair amount of portability between servers and you don't need to be locked into one vendor's toolset.

If your vendor's Macromedia I was under the impression that JRun is being discontinued, and that CFMX will run on any J2EE server as a bunch of taglibs.

If your vendor is Sun I don't know much about iPlanet, but I would assume it's faithful to the spec.

If your vendor's JBoss then you're not paying money for the installation/download but documentation maybe a bit hard to find (my very brief experience).

I'm seeing a few companies with the following setup right now: IDE - IDEA or Eclipse running on Linux or Windows; J2EE server - JBoss running on Linux; RDBMS - PostgreSQL or Oracle running on Linux; framework - Struts ( http://jakarta.apache.org/struts ). Personally I'm running IDEA, Orion, PostgreSQL and Spring all on Mac OS X and I'm quite happy with that setup.

There's a growing interest in persistence mechanisms like Hibernate - http://www.hibernate.org - and JDO - http://www.jdocentral.com - which aim to simplify access to data stores. This area is gaining interest because entity beans have underwhelmed many people with their complexity - if you're being pushed into developing an entity EJB implementation make sure that you definitely need to use entity EJB, see http://www.softwarereality.com/programming/ejb/index.jsp for more on why EJB might not be the best approach.

Also, I cannot recommend Rod Johnson's "Expert J2EE Design and Development" book - http://www.wrox.com/books/0764543857.shtml - enough, check out the reviews on Amazon.com (I believe it's something like 18 reviews pretty much all giving the book 5/5 with much fawning). Johnson is also the principal author of the Spring framework and he (convincingly) discusses why he thinks the framework is superior to Struts, Maverick, WebWork, etc.

Remember Java gives you lots of options which can be both a strength and a weakness. There are a large number of open-source and commercial implementations of the various specifications and you are free to choose any of a number of products for each part of your solution (i.e. IDE, J2EE server, RDBMS, etc). A final note, IDEA - http://www.intellij.com/ -*IS* the best IDE ever written so you should definitely equip your team with licenses to get the most out of your coding.

Walter Rumsby
Saturday, September 20, 2003

"If your vendor is ATG then you're working with a different kind of beast, I don't know much about it, but I don't think it is a J2EE server per se (i.e. it's a Java application server, but I'm not sure that it complies to the J2EE spec, I could be wrong but I have the idea that it's rather idiosyncratic)."

ATG Dynamo is trash - don't use it!!!!!! They support J2EE & JSP now but they used to have these crappy JHTML pages which used their own tags that no one else uses!!!!

Go with BEA Weblogic & Eclipse.......

GenXer
Saturday, September 20, 2003

I work on J2EE software development tools for a living, working on plug-ins for various IDEs and and a standalone tool for testing/debugging EJBs (google for "ensemble systems" if you' want to know more), so this question is right up my alley.

I second the earlier vote for IDEA as the best IDE, although others swear by Eclipse, so you might want to look into that too. That said, NetBeans and JBuilder are quite reasonable choices. I've always been a fan of letting the developers choose whatever they're most comfortable with (with the provisio that everyone one uses the same Ant script to do builds).

I encourage you to use XDoclet - you can incorporate it into your Ant build and save yourself a lot of work. It is also helps you avoid getting ocked into one IDE or EJB container. Mind you, in practice, portability between container vendors is often a moot point since most shops don't need to port between containers - but if you can get the portability for free, then why not take advantage of it?

Definitely take the time to read some authoritive books on the topic of J2EE and architecture of enterprise applications. I've heard a lot of good things about  Rod Johnson's book - it's on  my "must read" list. Martin Fowler's book ("Patterns of Enterprise Application Architecture") is also on that list.

Obviously I can't name vendors whose offerings I'm not a big fan of - all I can say here is, make sure you talk with people who have made extensive use of a variety of vendor's products in real production systems.

One small tip I'll add: You might want to consider making load testing part of your daily build/regression testing suite. It's much easier to fix this kind of design flaw early in the piece.

burninator
Monday, September 22, 2003

Use Design Pattern (j2ee design patterns) or you'll hurt. Well, you'll hurt anyways because with j2ee even the smalest mistake is expensive.

Check Floyd Marinescu's book on DP - an ok book, but I find it hard to read.

Dino
Monday, September 22, 2003

*  Recent Topics

*  Fog Creek Home