Today we organized a programming contest at the office of IT-eye. Some months ago i delivered a guest lecture for the Hogeschool van Amsterdam (HvA). During a full day the students learned about JDeveloper, EJB3, and ADF Faces. Today these students competed in a programming contest. They were joined by other students of the HvA which used Visual Studio, vb.net, and SQL-server.
The goal of the contest was to create an application to handle the administration of a general practitioner, ie. register patients, appointments, etc. It was a long and hot day. We are currently experiencing temperatures over 30 degrees celcius. Despite this, the students were working hard, and all managed to implement quite some functionality. In the end, a student using JDeveloper with ADF won the contest, which is quite an accomplishment considering he had used JDeveloper for only one day.
So where’s the difference between .Net and ADF? The .net guys didn’t use an ORM framework, they were hand programming most of the SQL and converting the data to hand programmed domain model objects. The students using JDeveloper were able to generate most of the EJB model. ADF also allows you to quickly add validations to entity bean properties, just by declaring them. Another difference i noticed was that the .Net people had to hand write sql code to be able to create a pageable data table, and again, this is something that is automatically handled by ADF Faces.
Anyway, a fun day, which showed everyone that both .net and java have become quite productive, even with quite novice users.

June 14th, 2006 at 08:10:03
That’s a nice result
I wonder why the .NET people didn’t use a ORM framework, of course there are some availible for .NET too. Also I wonder how much experience the students have with .NET. Anyway it seems that the learningcurve for being productive with Java/Jdev/ADF is lower than I expected.
June 14th, 2006 at 17:22:04
I gues the .net students didn’t use an orm framework because they are taught .net using the default tools in visual studio. I’m not familiar enough with visual studio, but i assume that by default visual studio doesn’t come with an orm framework.
June 15th, 2006 at 13:08:11
I’d really like to see both sets of code, partciularly the .Net example as it’s an issue we are grappling with at present. Any chance of getting hold of it? Links, etc?
Thanks
June 15th, 2006 at 22:33:44
As far as I know, many .NET developers use the DataSet. The DataSet object represents a cache of data, with database-like structures such as tables, columns, relationships, and constraints and it is always disconnected from the datasource. It is certainly not an ORM tool.
So you’d still have to write your own sql statements to populate it and does not provide any database paging functionality like ADF-BC does.
June 16th, 2006 at 05:39:24
There are lots of great O/RM tools available to the .Net community: just none from Microsoft. Since most new developers only know the Microsoft tools and have seen the Microsoft demos, they assume that is the way to develop apps. However, as you speak to more senior .Net developers, you will see them relying very heavily on code-generated data access layers or O/RM tools depending on the preference of the given developer.
June 16th, 2006 at 22:54:44
> However, as you speak to more senior .Net developers, you will see them relying very heavily on code- generated data access layers or O/RM tools depending on the preference of the given developer.
I spent 2 months building an ORM in c# because my bosses let me. (Someone with more experience in ORMs than I had would have said “that doesn’t make sense, we can buy one much better for much cheaper”. And they would’ve been right. )
I’ve never used java’s ORM – I happened to start down the DOS and gwbasic, quickbasic, vb, c# route and am still there, so I use c#. I’m sure I’d love java and its surrounding tools were I to switch.
BTW – just my opinion, but I hate Datasets. Or, to be more specific, I hate the way I see some people use them. If I see a Dataset being passed from the data layer to the UI layer and back, I kind of shutter, and then I try to figure out who to shot over it. Datasets should only be used by one object to construct an instance of another object. And even that usage is unnecessary and in bad taste, IMHO.