Re: Finally which ORM tool?
- From: "Frans Bouma [C# MVP]" <perseus.usenetNOSPAM@xxxxxxxxx>
- Date: Tue, 09 Oct 2007 01:52:28 -0700
Wiktor Zychla [C# MVP] wrote:
Do you want to elaborate a bit why you didn't like LLBLGen Pro for
example? (If you've researched it of course). If you want you can
mail me directly. We're always looking into improving our work so
if you have some feedback for us, it would be awesome, thanks in
advance for your time! :)
Frans,
although I did not spend much time with LLBLGen, I remember it as one
of "persistance aware" (or heavy weight) frameworks in a Fowler sense
by which I mean the dependence on automatically generated classes
containing a lot of code required by the mapping engine. xpo is much
more "light weight" because you can persist your objects with almost
no additional requirements from your business objects.
that's indeed true, we're not a POCO framework. The idea behind that
is that in the end, you'll end up with entity classes which are rich
with code we already provide for you, so leaving it out in the first
place will not gain you anything in the end (in general). Also do we
assume that the abstract entity model is used to create a relational
model first, which is then reverse engineered to an abstract entity
model in our designer. Poco frameworks tend to project (the relational
model is a projection of the abstract entity model onto a relational
database) the abstract entity model onto classes which are then reverse
engineered towards a relational database if it doesn't exist. It's
basicly the same thing: you end up with 2 projections of the same
abstract entity model: one in the database and one in the classes and a
mapping in between to make sure both represent the same thing :)
I do not think that the amount of support you need to put into your
business objects has any influence on the framework productivity (and
thus I do not dislike llblgen) but as a purist I prefer these light
weight frameworks (built on "persistance ignorance" paradigm). once
I've spent 4 months on developing such heavyweight framework for
internal purposes and while it is succesfully used in several
applications, I do not think I am completely happy with such approach.
Sure, if you're more pleased with a POCO style approach, you should
pick that. After all: you should pick the tools which match your way of
thinking and way of working. For example this also means that if people
want to think in tables, SQL and sets of data, an o/r mapper in general
will be a rough ride.
Just for my curiosity - do you support the three-layer engine in
which the data is transmitted to the application server (while the
application thinks it talks to the database server) and the actual
database server is hidden behind the application server? I've just
looked at the webpage and didn't find any explicit reference to such
feature. if yes, how you deal with transactions in such scenario?
We don't provide such a feature because it wouldn't be that useful for
normal SOA oriented development anyway: services in general aren't used
as a tier, but as a separate vertical application stack, so you send
messages to it and it returns with the results. Therefore we simply
support webservices (through compact XML) and remoting (through a
custom very fast and compact binary formatter) and if the developer
needs a service on top of that, e.g. transactions, s/he can use the
WS-E* extensions to perform transactions over webservices, though in
general it's best practise to see services as separate applications you
communicate with because they fulfill a task for you, instead of seeing
them as a tier.
The downside of having a service as a tier in your application is that
it's a serious bottleneck in your application: it's not really scalable
as network overhead, serialization/deserialization etc. can really hurt
the performance and scalability of the application, something which is
solved by the message-based approach of soa services. :)
FB
--
------------------------------------------------------------------------
Lead developer of LLBLGen Pro, the productive O/R mapper for .NET
LLBLGen Pro website: http://www.llblgen.com
My .NET blog: http://weblogs.asp.net/fbouma
Microsoft MVP (C#)
------------------------------------------------------------------------
.
- Follow-Ups:
- Re: Finally which ORM tool?
- From: Wiktor Zychla [C# MVP]
- Re: Finally which ORM tool?
- References:
- Finally which ORM tool?
- From: AliRezaGoogle
- Re: Finally which ORM tool?
- From: Wiktor Zychla [C# MVP]
- Re: Finally which ORM tool?
- From: Frans Bouma [C# MVP]
- Re: Finally which ORM tool?
- From: Wiktor Zychla [C# MVP]
- Finally which ORM tool?
- Prev by Date: Can't connect to SQL database with VS .NET - object reference error
- Next by Date: Re: Future of C#
- Previous by thread: Re: Finally which ORM tool?
- Next by thread: Re: Finally which ORM tool?
- Index(es):
Relevant Pages
|