Just Released! Enterprise Library 3.0 – April 2007

Yes, it's finally here. The patterns & practices team is pleased to announce the official release of Enterprise Library 3.0 - April 2007 for the .NET Framework 2.0 and 3.0.  

Highlights of this Release

If you've been keeping up with the Community Technology Preview releases, there shouldn't be anything too surprising in the final release, although the overall quality should be much higher. All of the major new features have already been described on this blog or in other places, but here is a quick summary of the most significant changes:

  • Validation Application Block. Allows you to centrally define validation rules using configuration or attributes, and easily validate data from anywhere in your application, including deep integration with Windows Forms, ASP.NET and WCF.

  • Policy Injection Application Block. Provides a powerful approach for separating cross-cutting concerns from business logic using declarative policies that are attached at runtime to methods on your objects.

  • Application Block Software Factory. Dramatically simplifies the process of building application blocks and providers through the magic of guidance automation.

  • Visual Studio-integrated Configuration Editor. Edit Enterprise Library configuration files directly within Visual Studio.

  • Environmental Overrides. Use the configuration tool to specify configuration settings that are common or different across multiple environments, and merge this information into configuration files to be deployed with your applications.

  • WCF Integration. Easily integrate the Logging, Exception Handling and Validation Application Blocks into service interfaces built using Windows Communication Foundation.

  • Pre-compiled, strong-named binaries. No need to compile and strong name the code unless you want to manage and evolve the code yourself.

This isn't a complete list, and we've made a number of other minor changes that are described in the documentation. But the good news is that, despite all of the improvements in this release, there are no breaking changes in the core APIs and upgrading existing Enterprise Library 2.0 applications should just be a matter of replacing the DLLs and updating the version numbers in the configuration files.

Credit where it's due

One of the cool things about my job is that I get to play a very public role both during development and after the release of our deliverables. Sometimes this creates the impression that I'm responsible for more than I really am. In reality we have a very talented and dedicated team who are generally too busy working to spend much time in the spotlight. I want to take this opportunity to thank everyone in the team for all of the hard work to make this such a great release:

  • Our Development team: Fernando Simonazzi, Chris Tavares, Olaf Conijn, Adrian Alonso and John Socha-Leialoha

  • Our Test team: Hanz Zhang, Mani Krishnaswami, Sateesh Venkata Surya Nadupalli, Terrence Cyril Joseph Anthuvan, Carlos Farre, Eric Blanchet, Meenakshi Krishnamoorthi, Abhinav Bana, Nalini S and Sharadda Arora

  • Our Documentation team: Roberta Leibovitz, William French, Alex Homer, RoAnn Corbisier and Tina Burden McGrayne

  • Our Program Manager, William Loeffler and Architect, Edward Jezierski

Thanks also to everyone, too numerous to mention here, who provided additional management, reviews, advice and guidance during this project. A particularly special thanks to Dave Hayden for his great work in creating tutorials and supporting the community during the development of this release.

Finally, Enterprise Library 3.0 was of course built on the legacy of several previous releases of Enterprise Library, original p&p application blocks and Avanade's ACA.NET. So thanks to everybody who worked on these earlier deliverables, as Enterprise Library would not be a success if it wasn't for the high quality of these earlier codebases.

And thanks to you too!

As I hope you've noticed, the patterns & practices team is completely dependent on architects and developers in the "real world" to guide us on what we should build, what works well and what doesn't work well. This release of Enterprise Library is a prime example of this, with your input playing a huge role from setting the initial direction to identifying minor issues. Thanks to everyone who played a part in the process, whether it was completing the original prioritization survey, participating in our CodePlex community or providing direct feedback to our team. We really appreciate your support, and we look forward to your continued involvement for our future releases.

Comments (73)
  1. Olaf says:

    += thanks to Tom as well!

  2. Enterprise Library 3.0 is released . You get a whole bunch of really awesome enhancements in this new

  3. TSHAK says:

    Download on MSDN! Read more about this release from Tom Hollander

  4. La release d’avril est dans les bacs ! Destinée au framework 2.0 et 3.0 elle offre au menu : Validation

  5. Good news, Enterprise Library 3.0 has just shipped! This new release of Enterprise Library includes (bold

  6. KEYSS says:

    that’s great

  7. Bashmohandes says:

    Enterprise Library 3.0 Released

  8. Tom Hollander gives word that the official release of Enterprise Library 3.0 is now available ! This

  9. B# .NET Blog says:

    Just to let you guys know … It has been released; it being Enterprise Library 3.0 . More information

  10. Rajiv Das says:

    Downloaded and will be using it in the app, I am builing currently.

  11. Sam Gentile says:

    I have spent a lot of time through the night and some today to try to get my personal blog in order after

  12. It’s here! Enterprise Library 3.0 – April 2007 Finally after a long wait, so download and install boys

  13. Нещодавно я вже писав що нового Enterprise Library 3.0, тому не буду повторюватись. Скачати можна тут

  14. Yes, it’s finally here. The patterns & practices team is pleased to announce the official release

  15. Fantastic news…congrats to the team!

  16. Gill Cleeren says:

    Great news! COngratulations on your release!

  17. HienNM says:

    Greatfull thanks to the team!

    I’ve learned much from the first version of EntLib

  18. djagnow says:

    Tom, thanks for all the hard work that the patterns & practices team has put into the Enterprise Library.  I’ve been using the application blocks since the pre-Enterprise Library era, and they have made a lot of things easier and more flexible.

    I’ve only just downloaded Enterprise Library 3.0 and started through the documentation.  I do have some questions about the precompiled binaries.  It looks like the MSI installs the binaries in C:Program FilesMicrosoft Enterprise Library 3.0 – April 2007Bin, but it doesn’t register them in the GAC.  If I use these binaries, should I assume that I need to create my own setup package to install them, register them in the GAC, install the instrumentation, and provide a shortcut to the configuration console?  It would be nice to see this covered explicitly in the "Deploying the Enterprise Library" section of the help.  Also, the Versioning subtopic still states that "The Enterprise Library installation package does not include compiled assemblies for the application blocks."  This statement is happily no longer true.  🙂

    Thanks again for all the hard work!

    Dan Jagnow

  19. Congrats again! I always look forward to news from P&P.

  20. Hi Dan –

    Sorry that the documentation on deployment is a little stale. There isn’t one "right" way of deploying EntLib with your applications – this is the main reason we don’t include an installer that does what you suggest. Different applications may want to use private copies or GAC’ed copies, they may or may not want instrumentation turned on, and they may use only a subset of the assemblies.

    If you do want to deploy and register a single shared copy of EntLib to your server, it should be relatively straightforward to build an MSI that installs the assemblies you need into the GAC and runs the installers in the assemblies.


  21. The Enterprise Library 3.0 was finally released to the web today and available for download. One of the

  22. Loser-X says:

    Most excellent. I have looked at Enterprise Library in the past, but never quite found a suitable project

  23. For all the fans of EntLib (like me), wait no more. The Enterprise Library 3.0 is released !. Read Entlib

  24. Yazan's Blog says:

    Enterprise library is finally out. Tom Hollander posts. Can’t wait to get my hands on the policy injection…

  25. I hope you’re enjoying the new release of Enterprise Library ! One of the more interesting inclusions

  26. Frybaby says:

    Hey Tom,

    I’m a long time user of EntLib, and have implemented 2.0 for several clients. What is the best way for me to get a handle on the stuff that is net new in the existing blocks for 3.0? I figure the default is to puruse the docs and public interfaces, but I was wondering if this information is consolidated anywhere. I’m looking forward to looking at Policy Injection. I’ve used Spring.net in the past to do that kind of thing, and an EntLib version will be fun to explore.

    Thanks for all the work….

  27. Hi Frybaby –

    There are some "what’s new" topics in the docs and on the MSDN pages (which should be up later today). But the easiest way to get up to speed on the changes is probably to view the webcast (http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032331979&culture=en-US) and download the accompanying slide deck (http://download.microsoft.com/download/b/2/2/b22eb038-fa47-4f5e-ac70-5e17d8db55aa/Enterprise%20Library%203.0%20-%20Whats%20New.ppt)


  28. I’ve been a huge fan of the Enterprise Library since its start as the Application Blocks. And now version

  29. I lived in Chicago for 15 years and we had a saying when it came time to vote for public officials –

  30. Dondy has made the post , but since it's that time again when a "core" library is shipped,

  31. Paul says:

    I downloaded and install EL 3.0, opened Visual Studio 2005 Professional, opened EnterpriseLibrary.NUnit.sln, ran the Strong Name Guidance Package, and then tried to compile and got hundreds of errors.  Am I missing something?

  32. SamD says:

    I have downloaded and isnatlled the application. I hear of talk of documentation BUT Icannot find much of any documentaion.

    The documenation link takes me to a page where it talks generally about the Library (Benefits, Goals, Audience Requirements, System Requirements)

    Am I missing something?  Is there any documentation on how to use these.

    Where do I find it?

  33. The Enterprise Library 3.0 was finally released to the web today and available for download. One of the

  34. SamD – yes there’s loads of documentation included. Click the "Enterprise Library Documentation" link from the Start Menu folder.


  35. The P&P team has finished the third major release of the enterprise library. See Tom’s post for more

  36. Julius Ganns says:

    It includes the Policy Injection AB and other very useful new versions. Have a look at Tom Hollander’s

  37. Julius Ganns says:

    Native support for AOP in the CLR is one of the things I would really appreciate – but you did a really great job, also by not "excluding" weavers and other AOP projects! Thanks a lot!

  38. See Tom Hollander’s post . You can download the "Enterprise Library 3.0" from here (requires registration).

  39. Dal team P&P la versione finale della Enterprise Library v3.0 . L’ annuncio direttamente da Tom Hollander

  40. Great work done guys.

    Keep it up.

  41. EntLib 3.0 just dropped . Go get the bits here . For more details, see Tom Hollander’s most excellent

  42. Niraj says:

    Hello Tom,

         I am trying a POC with ADO.NET Entity Framework & Validation Application Block. But it doesn’t seem to work. I hope Validation Application Block does work with ADO.NET EF generated classes. Please update.

  43. Well, I am back after some holidays and it is nice to encounter some important developments happened.

  44. Tom Hollander has announced that Enterprise Library 3.0 is available . I know the team worked hard on

  45. bobcalco says:

    What about the partial trust issue that required a patch of the EntLib 2.0? Will 3.0 also "degrade elegantly" depending on code access security out of the box.. or should I await a patch of 3.0 before I recommend 3.0 to my developers?

  46. Yes, the partial trust patch that we released for EntLib 2.0 has been rolled into EntLib 3.0, so you can run under partial trust provided you don’t use any features that require a higher trust level.


  47. Processos e Agile Ivar Jacobson publicou um artigo com sérias críticas aos processos que dominam o desenvolvimento

  48. Tom Hollander's announced the release of Enterprise Library 3.0 which is available for download .

  49. Michael Baumgaertner says:


    one question regarding the symbol files (pdb) for the precompiled binaries of this release.

    Since it’s quite interesting for us to have matching pdb for troubleshooting purposes and still being able to use the precompiled and signed(!) binaries, is there a symbol server or a download location for the appropriate pdbs for this release?

    Thanks & best regards


  50. Lorenzo Jimenez says:

    Hi. Is there a tutorial of how to this library.


  51. Alex Fishkin says:


    I just installed Enterpise Library but the documentation link is broken.  When I click on Enterprise Library Documentation link the Document Explorer opens with the following error: No topics could be located that were relevant to the F1 request.  I see the documentation files on my disk in Module Retargetable Folder, but I have no way to view them without properly registering them with the Document expolorer.  Could you post the proper registration file?

    Thank you.

  52. Frank says:

    Thanks to Tom and your great team for this release! We users really owe you guys a lot…

    Any plan for hands-on labs wrt the new blocks and WCF integration in the near future?

    thanks again!

  53. Nik says:

    I have the same problem Alex.  Tom, will you be releasing a CHM/PDF version of the docs as well?  I like to drop a usable version of the docs in with my project’s source code so other developers can read them upon checkout – without having to install anything special.

  54. Alex Fishkin says:

    I was able to fix the documentation link problem by opening the Document Explorer with the following link:

    "/helpcol ms-help://ms.EntLib.2007Apr /LaunchFKeywordTopic CachingQS1"

    I got this link from one of the QuickStart samples.  I still think this problem needs to be solved at the installer level with the patch.

  55. Michael – We’re working on making the PDBs for the strong-named binaries available – I’ll post details once we’ve finalized this.

    Lorenzo and Frank – We’ll be rolling out more tutorials in the form of webcasts and videos over the coming months – check out http://www.codeplex.com/entlib/Wiki/View.aspx?title=Videos for the first couple.

    Alex and Nik – I’m not sure what the issue is here – the doc link from the start menu works fine for me. Is dexplore.exe installed somewhere different to what the shortcut expected? In any case the CHMs are available for separate download at http://www.codeplex.com/entlib/Release/ProjectReleases.aspx?ReleaseId=2899


  56. Neal Rushforth says:

    Just playing with the VAB and have come across a problem with the Property Comparison Validator.

    In the Validation QuickStart I added the following validator to the FirstName property in the configuration file

     <validator operator="Equal" propertyToCompare="LastName" negated="true" messageTemplate="First Name cannot be Same as last Name"

      type="Microsoft.Practices.EnterpriseLibrary.Validation.Validators.PropertyComparisonValidator, Microsoft.Practices.EnterpriseLibrary.Validation, Version=, Culture=neutral, PublicKeyToken=null"

      name="Property Comparison Validator" />

    A simple test to check that FirstName and LastName cannot be the same. (I know it could happen but it was just a simple test)

    Anyway I changed the Ruleset to use RuleSetB and clicked Validate. All ran well. I tried different values in First and Last Name and it worked as it should.

    The problem came when I checked the ‘Enable Winforms-Integrated Validation’. It presented me with the error.

    System.NullReferenceException was unhandled

     Message="Object reference not set to an instance of an object."



          at Microsoft.Practices.EnterpriseLibrary.Validation.Integration.WinForms.ValidationProvider.GetExistingValidatedControlItem(String sourcePropertyName) in C:EntLib3SrcApp BlocksSrcValidationIntegrationWinFormsValidationProvider.cs:line 244

          at Microsoft.Practices.EnterpriseLibrary.Validation.Integration.WinForms.PropertyMappedControlValueAccess.GetValue(Object source, Object& value, String& valueAccessFailureMessage) in C:EntLib3SrcApp BlocksSrcValidationIntegrationWinFormsPropertyMappedControlValueAccess.cs:line 46

          at Microsoft.Practices.EnterpriseLibrary.Validation.Validators.ValueAccessComparisonValidator.DoValidate(Object objectToValidate, Object currentTarget, String key, ValidationResults validationResults) in C:EntLib3SrcApp BlocksSrcValidationValidatorsValueAccessComparisonValidator.cs:line 115

          at Microsoft.Practices.EnterpriseLibrary.Validation.Validators.AndCompositeValidator.DoValidate(Object objectToValidate, Object currentTarget, String key, ValidationResults validationResults) in C:EntLib3SrcApp BlocksSrcValidationValidatorsAndCompositeValidator.cs:line 57

          at Microsoft.Practices.EnterpriseLibrary.Validation.Validators.ValueAccessValidator.DoValidate(Object objectToValidate, Object currentTarget, String key, ValidationResults validationResults) in C:EntLib3SrcApp BlocksSrcValidationValidatorsValueAccessValidator.cs:line 72

          at Microsoft.Practices.EnterpriseLibrary.Validation.Validator.Validate(Object target) in C:EntLib3SrcApp BlocksSrcValidationValidator.cs:line 53

          at Microsoft.Practices.EnterpriseLibrary.Validation.Integration.WinForms.ValidationProvider.PerformValidation(ValidatedControlItem validatedControlItem) in C:EntLib3SrcApp BlocksSrcValidationIntegrationWinFormsValidationProvider.cs:line 163

          at Microsoft.Practices.EnterpriseLibrary.Validation.Integration.WinForms.ValidatedControlItem.OnValidating(Object source, CancelEventArgs e) in C:EntLib3SrcApp BlocksSrcValidationIntegrationWinFormsValidatedControlItem.cs:line 54

          at System.ComponentModel.CancelEventHandler.Invoke(Object sender, CancelEventArgs e)

          at System.Windows.Forms.Control.OnValidating(CancelEventArgs e)

          at System.Windows.Forms.Control.PerformControlValidation(Boolean bulkValidation)

          at System.Windows.Forms.Control.PerformContainerValidation(ValidationConstraints validationConstraints)

          at System.Windows.Forms.Control.PerformContainerValidation(ValidationConstraints validationConstraints)

          at System.Windows.Forms.ContainerControl.ValidateChildren(ValidationConstraints validationConstraints)

          at System.Windows.Forms.Form.ValidateChildren(ValidationConstraints validationConstraints)

          at System.Windows.Forms.Form.ValidateChildren()

          at ValidationQuickStart.MainForm.customerRuleSetCombo_TextChanged(Object sender, EventArgs e) in C:EntLib3SrcQuick StartsValidationCSValidationQuickStartMainForm.cs:line 117

          at System.Windows.Forms.Control.OnTextChanged(EventArgs e)

          at System.Windows.Forms.ComboBox.OnTextChanged(EventArgs e)

          at System.Windows.Forms.Control.set_Text(String value)

          at System.Windows.Forms.ComboBox.set_Text(String value)

          at System.Windows.Forms.ComboBox.UpdateText()

          at System.Windows.Forms.ComboBox.WmReflectCommand(Message& m)

          at System.Windows.Forms.ComboBox.WndProc(Message& m)

          at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)

          at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)

          at System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

          at System.Windows.Forms.UnsafeNativeMethods.SendMessage(HandleRef hWnd, Int32 msg, IntPtr wParam, IntPtr lParam)

          at System.Windows.Forms.Control.SendMessage(Int32 msg, IntPtr wparam, IntPtr lparam)

          at System.Windows.Forms.Control.ReflectMessageInternal(IntPtr hWnd, Message& m)

          at System.Windows.Forms.Control.WmCommand(Message& m)

          at System.Windows.Forms.Control.WndProc(Message& m)

          at System.Windows.Forms.ScrollableControl.WndProc(Message& m)

          at System.Windows.Forms.ContainerControl.WndProc(Message& m)

          at System.Windows.Forms.Form.WndProc(Message& m)

          at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)

          at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)

          at System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

          at System.Windows.Forms.UnsafeNativeMethods.CallWindowProc(IntPtr wndProc, IntPtr hWnd, Int32 msg, IntPtr wParam, IntPtr lParam)

          at System.Windows.Forms.NativeWindow.DefWndProc(Message& m)

          at System.Windows.Forms.Control.DefWndProc(Message& m)

          at System.Windows.Forms.Control.WmCommand(Message& m)

          at System.Windows.Forms.Control.WndProc(Message& m)

          at System.Windows.Forms.ComboBox.WndProc(Message& m)

          at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)

          at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)

          at System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

          at System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg)

          at System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(Int32 dwComponentID, Int32 reason, Int32 pvLoopData)

          at System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)

          at System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)

          at System.Windows.Forms.Application.Run(Form mainForm)

          at ValidationQuickStart.Program.Main() in C:EntLib3SrcQuick StartsValidationCSValidationQuickStartProgram.cs:line 28

          at System.AppDomain.nExecuteAssembly(Assembly assembly, String[] args)

          at System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)

          at Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()

          at System.Threading.ThreadHelper.ThreadStart_Context(Object state)

          at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)

          at System.Threading.ThreadHelper.ThreadStart()

    Any ideas on how to get round this, as we were looking to use the VAB in a WinForms application we are currently developing.

    Also when editing the config, I noticed that the messageTemplate would be lost for a Property Comparison Validator. If I manually added it to the config it would be okay, but if I used the editor it would lose the value.

  57. Nik says:

    Thanks Tom!

    I was also to fix my problem with the fix provided by Alex.  The installer setup the shortcut as follows:

    "C:Program FilesCommon FilesMicrosoft SharedHelp 8dexplore.exe"  /helpcol ms-help://MS.VSCC.v80/MS.VSIPCC.v80/ms.EntLib.2007Apr /LaunchFKeywordTopic EnterpriseLibrary2007Apr.Introduction /filter "Enterprise Library 3.0 – April 2007" (dexplore does exist in that path.)

    I have changed it to:

    "C:Program FilesCommon FilesMicrosoft SharedHelp 8dexplore.exe"  /helpcol ms-help://ms.EntLib.2007Apr /LaunchFKeywordTopic CachingQS1

    Either way, I prefer the CHM for the reasons mentioned earlier, so thanks again!

  58. Thanks for the detail Nik. The shortcut we use in the installer does work most of the time, but if the other syntax is more reliable we can switch to that in the future. BTW I expect that the only thing you need to change is the ms-help:// URL – the filters and the launch topics should be fine.


  59. El Bruno says:

    Buenas hoy se cumplen 2 años, desde que comencé a escribir un blog. Primero fue en my MSN Live Spaces

  60. El Bruno says:

    Buenas hoy se cumplen 2 años, desde que comencé a escribir un blog. Primero fue en my MSN Live Spaces

  61. El Bruno says:

    Buenas hoy se cumplen 2 años, desde que comencé a escribir un blog. Primero fue en my MSN Live Spaces

  62. scott d says:

    Thanks for 3.0!

    One thing i noticed the qucikstarts have "unrecognized version" in explorer and refuse to open in vs 2005 sp1. Comparing them to my existing solution files, I added a line break at the beginning of the files and all was well.



  63. Tiendq says:

    += thanks to Tom 🙂

  64. With the recent release of Enterprise Library 3 , the new Policy Injection Application Block is introduced.

  65. With the recent release of Enterprise Library 3 , the new Policy Injection Application Block is introduced.

  66. Jason says:


    I’ve seen this happen twice now, has anyone else?  Basically, sometimes the EL3 config editor will just remove sections from the app/web.config file for no apparent reason, they just disappear both in the GUI and in the config file.

    Is it just me?

  67. Hi Jason –

    I’ve never seen this, but of course we’d want to fix this if it turned out to be an issue with the tool. Do you have any additional details you could mail me, such as how you were using the tool and what sections were apparently removed?



  68. Manel says:

    Regarding the documentation problem (which I also experienced):

    I tried Tom’s suggestion. The following link will open up the documentation, on the EntLib introduction page (not the Caching QuickStart) and with contents filtering for EntLib Apr 2007.

    C:Program FilesCommon FilesMicrosoft SharedHelp 8dexplore.exe"  /helpcol ms-help://MS.VSCC.v80/MS.VSIPCC.v80/ms.EntLib.2007Apr /LaunchFKeywordTopic EnterpriseLibrary2007Apr.Introduction /filter "Enterprise Library 3.0 – April 2007"



  69. shunsuk says:



    "conneciton" -> "connection"

  70. Yuki says:

    Tom’s reply in this thread mentioned that the partial trust patch for EntLib 2.0 has been rolled into EntLib 3.0, so you can run under partial trust provided you don’t use any features that require a higher trust level.  Can you provide a list of "features that require higher trust level" in Entlib 3.0?  thanks

  71. RS.NET says:


    Before this release (like many others), I had been using EntLib 2.0 in my applications (mainly the DAAB). I had been waiting eagerly for support of "lightweight" transactions (TransactionScope) in the DAAB and thankfully its there now.

    However I’ve got another issue now. It is clear that, by avoiding DTC, all of my transactional activities in applications have got faster but at the same time all non-transactional calls have a slower response time (by a small fraction though).

    Looking at the code in Database.cs, it looks that the call to Transaction.Current is the real culprit for this.

    I had been thinking of modifying the DatabaseFactory.CreateDatabase to set something like a private boolean member in the created Database object (to indicate if its running under a transaction by checking Transaction.Current only once) and telling my developers to always initialize the Database object for transactional activities inside the TransactionScope’s using block (that is already the case mostly but isn’t a rule though).

    However I was just wondering (and hence wanted to check) if the Enterprise Library team have already tried other options and have already done the best of all.



  72. Microsoft released the latest version of the Enterprise Library, version 3.0 last week: http://blogs

Comments are closed.

Skip to main content