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.