.Net, ORM, and OpenEdge

Posted by johnallengreen on 12-Nov-2010 12:56

This is a question I already posted on PEG. I received a few "me too" replies, and one helpful offline reply. I'd like to see if there are any PSDN readers with comments.

I'm starting a new .Net (WPF) GUI front end for a legacy OpenEdge application. This will be my third .Net+OE project. I've done one with WinForms, and one with WPF, both using AppServer and DataSets. These are pure .Net clients, without prowin32.

I'm not satisfied with DataSets, and I think for this next (bigger) project, we should be using a library like Entity Framework or NHibernate.

One motivation is developer productivity, but the architecture question that's been driving me nuts is:

How to architect things so that different forms are sharing data? Three different forms would most easily and naturally be built with three different datasets:
     - browse open sales orders
     - view/edit one sales order
     - edit customer master details

.Net (WinForms or WPF) is very nice in that if two forms are views on the same data, changes in one form will be reflected right away in the other. But of course there's no such magic if the two forms are using two different datasets.

An ORM tool like Entity Framework or NHibernate would help me with this. Their cache systems are designed to ensure that any one entity has only one instance within a session.

There are a dozen or more ORM tools for .Net, but I don't see any that support OpenEdge. My preference would be Entity Framework 4, but for it I would need an ADO.NET Data Provider. The only one I've found with support for OpenEdge is OpenLink (in a roundabout sort of way).

Of course the real kicker here is that Progress|DataDirect is an ADO.NET Data Provider for Oracle, DB2, Sybase, and MS SQL Server.

Any thoughts or recommendations?

All Replies

This thread is closed