Hi Tony,

Within ADO.NET there is a concept called a Strongly Typed DataSet, which, if 
your Managed Provider supports the correct interfaces, Microsoft will 
auto-generate for you from a regular DataSet (which as you note is not strongly 
typed).  The resulting Strongly Typed DataSet is a strongly typed business 
object, which will reject passing a String to a Date type, for instance, and 
will reject it at compile-time, not run-time.  Wrap it with a simple DAL and 
you get a very powerful business object that can support a wide variety of 
clients.  The DAL allows you to customize your accessors and expose data 
directly or through SOAP or RESTful Web Services.

In order to support Silverlight, which does not support the System.Data 
assembly due to browser sandbox restrictions, we auto-generate classes for 
Silverlight, which can be used in other places, too, but we have found that the 
Strongly Typed DataSet and DAL are a very powerful combination, and where 
useable are more than adequate.

-----Original Message-----
From: u2-users-boun...@listserver.u2ug.org 
[mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Tony Gravagno
Sent: December-21-11 7:43 PM
To: u2-users@listserver.u2ug.org
Subject: Re: [U2] Is there any ORM's for Universe. NHibernate, Entity Framework 

Robert, sincere apologies, and thanks for the correction.

To avoid misunderstandings, there is a huge difference between a DataSet and a 
strongly typed business object.  They are sometimes used alternatively but 
there are times when one or the other is absolutely required.  If ORM was as 
simple as returning a dataset we wouldn't have a need for ORM frameworks like 
NHibernate, CSLA, or commercial offerings like the Telerik OpenAccess ORM.

Here is one excellent Q&A on the topic:

[Another obligatory AD tag here I guess]

The word "proprietary" may prompt some discussion: Every framework does what it 
does in a unique fashion, that's what differentiates it from others.  In this 
regard, all commercial and FOSS frameworks are "proprietary".  But I did 
mention that the source which mv.NET generates is completely open, as are the 
templates that it uses.  The generated classes are all "partial"
which means you can modify the generated code.  But preferred and better, 
partial stub classes are also generated which allow developers to hook into 
functionality at many key points.
Generate the base classes as many times as you want and never lose your mods.  
In the context of the request for an ORM, people actually do want to generate 
DLLs which are proprietary to their own application.  There's nothing wrong 
with that, that's the goal, and that's exactly what mv.NET helps VARs to 
generate.  I position this as a feature.

In addition to Solution Objects and the code generator component, mv.NET also 
includes the Adapter Objects library which renders collections of items as a 
strongly-typed DataSet, with Tables, Rows, Columns, etc.  UO.NET has similar 
functionality.  All this, yes, and much much more, are included in the same 
reasonably priced offering.

Now, mv.NET does Not have any functionality related to Java.  If you need to 
deploy over *nix or you're creating JARs for existing Java clients, then I 
highly recommend investigation of FusionWare's offerings as a valuable superset 
of UOJ.

As an independent developer, my position in this game of tool sales is 
different from others.  I sell specific software packages because I like them - 
I don't like them because I sell them.  I won't sell software or services to a 
company if I know there's a better solution for a specific need.  So I 
recommend that anyone interested in connectivity above and beyond UO should 
look at all of the options.  If it turns out that someone likes the same tools 
I like, great, the commission earns me a cup of coffee for my time.  If not, I 
hope to benefit by learning why people made other choices.  It's all about 
solutions, not tools - or should be anyway.


> From: Robert Houben
> [AD]
> Actually, there is another alternative.  FusionWare's Managed Provider
> allows you to create a strongly typed dataset, and you can use this to
> create a Data Access Layer.  The strongly typed dataset is actually a
> Microsoft DataSet object, not a proprietary object of any sort.  To
> see more, view any of the "Nothin' but .NET" series at
> http://www.youtube.com/fusionwareint
> We also provide similar functionality for Java environments through
> our Java Data Adapter.

> [/AD]

U2-Users mailing list
U2-Users mailing list

Reply via email to