Enterprise Library 2.0 Cometh

I know everyone has been waiting patiently for us to give some information on V2. Well here is my first post on what we are doing in V2.  We have been really working hard to get the core of Enterprise Library working with Whidbey. We have finally got an approach that is aligned with the platform.  This is the major theme for V2 : align with the platform. 

In the spirit of transparency I want to walk you where we have been, where we are at and where we are going.  Also, we are really pushing to get a preview out really soon (hopefully mid August). 

Where we have been?
.NET 2.0 introduced a whole new System.Configuration subsystem.  It is really cool!  This is very close to what we did in Enterprise Library V1.  We spent a lot of time researching how to integrate this into Enterprise Library with the least amount of pain and produce a greater amount of decoupling of configuration from the rest of the blocks.

In EntLib V1 we had a very heavy use of configuration in all the blocks.  You had to know a lot about configuration if you wanted to dive into the guts and solve some of the edge cases. In this version we wanted to reduce that dependency. This is where Dependency Injection comes in (more on that later).  If you a good look at a DI implementation go check out CAB.

I don’t want to try and explain all of the features in System.Configuration, but I do want to point out how we are using it, the similarities with EntLib V1,  and the changes you can expect. 

System.Configuration has introduced the concept of strongly typed objects .  This is very close to what we accomplished with the XmlSerializer.  Now what is even cooler is they have validations for each property at runtime!  They have the built in ability to protect sections with a specific encryption providers (although key management is somewhere we can help out).  They also have built in support for external storage (only through files).  I will talk about how we are going to support others through the side door .

Dependency Injection
There has been a lot of buzz in the community around dependency injection.  One of the popular frameworks is Spring.  We are doing something similar that will allow you to declaritivly inject your configuration data and other objects into your provider through constructor injections and factories.  We are looking into something similar as in CAB to support setter injection and an event broker.

Where are we now?
We have learn to leverage System.Configuration into our existing blocks.  We will not have as consistent approach as we did last time because of changes in the platform.  Most of our Security Block will need to support the Provider Model found in ASP.NET.  The Data block will become more of a thin shim over ADO.NET 2.0 (your welcome TSHAK). [More on these things later]. 

When we started we had a heck of a problem figuring out how to support polymorphic collection of objects, but through some smart folks and persistence, we have done it. This lets us support the add, remove, clear idiom for collections and integrates well with the current configuration system. This means that we support the hierarchy of config files that we did not in 1.0 . 

We have also developed a mini-spring like framework that we are currently evolving to support separating configuration from the main block logic.  We don’t really want the provider to know about configuration . 

We are also reworking instrumentation so that you can develop LUA and also support pure xcopy.

Where are we going?
We are moving ahead with all the blocks and converting them to align to the platform (get the theme ?  ).   We have worked out the hardest parts (config, DI, instrumentation) and now we are moving on to the design time experience. We are really trying to make that easier!  We will support the developer and operator scenario with the external tool and Visual Studio integration.  We hope to leverage CAB to do this.

I know this has been a brief summary, but as we are close to shipping a preview, I will focus more and more on these topics individual with samples etc.  We can’t wait to get your feedback (even though we have to be ready to go for November 7th).

BTW we have a couple of new additions to the Team : Fernando Simonazzi (who will get a blog), Jonathan Wanagel (who will get a blog) and Lenny Fenster (the guy writing the book for 1.0).  We will all be blogging and helping you guys out real soon.  We will try and get a place on the workspace to discuss these things.

Now playing: King Crimson - Three of a Perfect Pair

Comments (30)

  1. TSHAK says:

    Declareth Lord Densmore the third.

  2. TSHAK says:

    Declareth Lord Densmore the Third.

  3. William newsom says:

    Where does microsoft get the graphics for the diagrams in Patterns. Do they ship with Viso or is Microsoft holding out 🙂

  4. While I was taking a (hopefully deserved) break in Alaska last week, Scott has splilled a bunch of the…

  5. Bil Simser says:

    One question. How painful is it going to be moving June 2005 code and configurations to 2.0?

  6. Bil Simser says:

    One question. How painful is it going to be moving June 2005 code and configurations to 2.0?

  7. Bil Simser says:

    One question. How painful is it going to be moving June 2005 code and configurations to 2.0?

  8. Michael Lacy says:

    2 suggestions:

    1. Find a way to prevent the developer from accessing and viewing, logging, emailing, etc. the connection string in code.

    2. Provide a mechanism for the Data Access block that automatically creates the insert, update, and delete statements like VS.Net currently provides.

  9. Eric says:

    Here is an idea – how about Enterprise Library for VB.Net!!

  10. Link Blog says:

    Being Scott Densmore : Enterprise Library 2.0 Cometh

    I know everyone has been waiting patiently for…

  11. Dependency Injection is a bit overhyped

    Check out http://wagnerblog.com/index.php?p=441

  12. Siv says:

    you have mentioned that you are doing something similar to Spring. can you detail the scope. Is it a replacement of Spring.net

  13. John Askew says:

    Love the music now playing.

  14. Renatas says:

    If you develop something similar to Spring, that means that it will be able to do many things just via configuration files. Will it be possible to have generic machine.config level configuration and app level configuration?

  15. Amit says:

    Great! Looking forward to the new release. You haven’t mentioned anything about BLOB support. I hope it’s built in unlike the current version where I had to hack the library code, something I was very unwilling to do but had to nevertheless.

  16. Fernando’s server is giving him problem so I am posting it here for everyone to enjoy .


  17. John Papa says:

    Scott Densmore discusses some of the new features in the upcoming release of Enterprise Library 2.0 and…

  18. John Papa says:

    Scott Densmore discusses some of the new features in the upcoming release of Enterprise Library 2.0 and…

  19. Nitin Kapoor says:

    I am going to use Enterprise library

    when i add exception handling block and save the config settings it gives me following error: "Error Loading the XML file …"

    has anyone faced this problem is it the Right forum to ask this ?

  20. I was reading about the forthcoming release of EnterpriseLibrary 2.0 here,when I saw a link to another…

  21. Want to download this entry as a document, check out my writely link.

    A quick overview of the tools…

  22. Settings for libraries in .Net fwk 2.0

Skip to main content