Inline:

--- Craig Andera <[EMAIL PROTECTED]> wrote:
> > This is really one of the best lists for .Net, thanks
> > everyone for all the usefull tips I've been reading the last
> > few days. But I've a question about this one. If we don't
> > need distributed transactions, even if you have just one SQL
> > Server database, and we choose not to use COM+ services how
> > can we solve the problem of needing to span one transaction
> > across multiple method calls (different classes/methods)?
>
> Don't do this. Your performance and scalability will not be good.
> Transactions=locks. Multiple methods=multiple roundtrips to the
> database=longer transaction=contention=bad scaling characteristics. This
> is an outcome of the speed of light, which is not really in our control.
> At least, not mine.

Agreed.
To original posting:
With a roll-your-own .Net system you have better control over roundtrips whilst still 
keeping code
structure.  True, you might have to do a bit more coding than ServicedComponents, but 
you can get
a structured code base and scalability.  In COM+ there's more of a trade off between 
the two.

> > We'll end up with no business layer at all.

What do you mean by business layer?  You can still implement a layer of components 
that do your
business transactions, which I would encourage for large or complex systems.  So it is 
still a
layered architecture.  It's just that they don't need to be COM+ components.

> This discussion has raged since the advent of COM+. If you ask me, Tim
> Ewald has totally addressed this in his book, which is an absolute
> must-read for anyone thinking about writing transactional systems.

Absolutely.

It is worth thinking hard about the applicability of OO to scalable systems.  
Traditional OO
implementation idioms need to be thought through before they are applied to highly 
scalable
systems (assuming that is what is required), because frankly a lot of them don't work.

Relational systems are at the heart of developing highly scalable systems.  It does 
mean that code
and data to some extent are separated, and encapsulation is lost to a degree, but that 
is what is
required if you want to squeeze out every last drop of performance.

This is not to say OO analysis can not take place - I still use OOA to design this 
kind of system.
 It just means that there is more of an indirect mapping between analysis and the 
implementation
model.

.Net gives you the chance to structure your code better than traditional ASP, COM, 
COM+.

Peter Foreman


__________________________________________________
Do You Yahoo!?
LAUNCH - Your Yahoo! Music Experience
http://launch.yahoo.com

You can read messages from the Advanced DOTNET archive, unsubscribe from Advanced 
DOTNET, or
subscribe to other DevelopMentor lists at http://discuss.develop.com.

Reply via email to