Home > .NET > System.Transactions in the MS .NET Framework version 2.0 System.Transactions in the MS .NET Framework version 2.0 Eugenia Loli 2005-04-07 .NET 16 Comments This document describes how System.Transactions can be used for transactional applications in the .NET Framework version 2.0. About The Author Eugenia Loli Ex-programmer, ex-editor in chief at OSNews.com, now a visual artist/filmmaker. Follow me on Twitter @EugeniaLoli 16 Comments 2005-04-07 1:50 am It’s just an exe file??? 2005-04-07 3:55 am It’s a DOC file, that comes compacted on the exe. They probably release this way, so that you have to accept the eula before having access to the file.. Weird micrsoft stuff.. 2005-04-07 8:24 am They’re distributed as .exe so they can be signed and verified. 2005-04-07 8:39 am maybe they don’t want the mono guys to implement transactions :p 2005-04-07 9:26 am Let me just say, I’m a c++ programmer, of 5 years experience. I’ve read through the document (within the installer) and I must say, that document was very difficult to fully understand. Please, if another c# programmer can step forward and tell me how this systems.transactions helps you be more productive, I’d appriciate that. Otherwise this, in my opinion is a fine example of Microsoft’s “fire and motion” strategy towards third party developers. Basically Microsoft are all like “Compete with us? Ha ha, they’ll have to keep up with our complex and unnecessary API shifts. Bwahahaha!”. Here’s a snip out of the document, perhaps its out of context and a bit unfair, but does this following paragraph come across as lucid in meaning?; “The interesting questions are what happens when a transactional serviced component creates a TransactionScope object, or when a transactional scope creates serviced components. If the TransactionScope object executes in an Enterprise Services transactional context, should it use the Enterprise Services transaction as the ambient transaction? Which Enterprise Services context should the TransactionScope object use? What issues arise from such mix-and-match scenarios? The Enterprise Services transaction programming model is coupled to the object lifecycle and state management, and combining that with transactional scopes that are not even object-based may lead to some complicated side effects.” Complicated side effects, yo dang right. I was under the impression that HLLs are supposed to make software development faster and easier to do. Just my 0.02 2005-04-07 9:40 am your post is a dead child Inferno too not a flame but .. I have no idea what you are talking about What, exactly, is inferno code? Please could you provided a URL. Better still, an explaination of what you are trying to say. Thanks. 2005-04-07 10:50 am The major advantage of this (new) transactional model is that it unifies the programming model. As the document states, you now have a set of classes (a namespace) which can solve a few problems when dealing with transactions. New model allows to: 1) plan your code (expecially any modification) in a standard, unified way. So you can switch from a simple transaction model (Obj->DB, for example), to a different and more complex model (Obj->Obj->DB or Obj->DB<-Obj) without dealing with such complexity for transaction itself. 2) be sure that your code will use best and fastest way to deal with resources allowed by transaction complexity. Same code can switch from a best performance LTM to complex OleTX automagically when it detects that it’s needed. However, same code can switch back to LTM for maximum performance when it detects that no OleTX is needed. 3) extend your code by “plugging-in” new durable resources (as document calls them) without the need to major modifications to transaction handling part of your application (while, of course, you need to modify its business logic). It looks an ehacement and productivity boost to me 😉 2005-04-07 10:51 am Complicated side effects, yo dang right.. +1 For instance, falling asleep as you read that crap 2005-04-07 11:41 am Yeah, fair enough, sounds alright. I don’t program transactions so I proly won’t use this. Thanks for explaining that. 2005-04-07 11:50 am Java and .NET are designed to be complex and overengineered on purpose. Corporations make money off complexity, confused users and support services. You want a higher level language with little fuss, use Python or Ruby. You want corporate manure, assorted BS and needless complexity, you have “enterprise-ready” Java and .NET. 2005-04-07 12:09 pm In defense of Mr. Softy, the whole idea of distributed, threaded, multi-core computing is non-trivial. As in C++, where they famously realized one morning that the template system forms a Turing-complete language in its own right, the web-service computing model dumps a fresh load of complexity on the computing model. Give the software industry another three rounds, and something shall have shaken out. 2005-04-07 12:24 pm Who is Mr. Softy? First off I’d like to rebutt by saying in no python or ruby examples and tutorial have I ever found myself stumped for understanding what was being explained. -But thats just me. Secondly, distributed, threaded and multi-core computing is in the early stages of emerging as a set of tools and libraries fortaking advantage of it. There is nothing about these concepts that can’t be achieved with interface abstraction through libraries. -The template system was to allow maintaince of super large projects, high level langauges are for for exactly that sort of thing, but I simply don’t see Java or c# for that matter mitigating any of this complexity you speak of. 2005-04-07 1:05 pm Here is the “system.transactions” movie! http://msdn.microsoft.com/msdntv/episode.aspx?xml=episodes/en/20050… 2005-04-07 2:00 pm Woo, its like a flash/movie tutorial but only useless. Ok to be fair, at least he’s prepared to come on camera and explain it. However what he explains is that ‘transactions’ ensure that database transactions are effectively atomic, that is, they entirely do happen or entirely don’t. So as to leave the database in a usable state. I still think its too complicated to do what he’s saying. 2005-04-07 3:24 pm Cam: First off I’d like to rebutt by saying in no python or ruby examples and tutorial have I ever found myself stumped for understanding what was being explained. -But thats just me. Don’t worry if you don’t understand what the document is about since prerequisites for understanding it completely include: * knowledge of .net 1.0 enterprise services * knowledge of pre-dotnet COM+ distributed transaction coordinator Putting this document on Osnews seems a bit random. What is being explained is rather simple actually and yes we know simple things can lead to complex scenarios, but that is no excuse for so many people posting here getting all bent out of shape and angry over something so banal. http://en.wikipedia.org/wiki/Database_transaction 2005-04-07 5:47 pm thanks.