Udostępnij za pośrednictwem


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.

System.Configuration
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

  • Anonymous
    August 01, 2005
    Declareth Lord Densmore the third.

  • Anonymous
    August 01, 2005
    Declareth Lord Densmore the Third.

  • Anonymous
    August 01, 2005
    Where does microsoft get the graphics for the diagrams in Patterns. Do they ship with Viso or is Microsoft holding out :)

  • Anonymous
    August 06, 2005
    While I was taking a (hopefully deserved) break in Alaska last week, Scott has splilled a bunch of the...

  • Anonymous
    August 07, 2005
    One question. How painful is it going to be moving June 2005 code and configurations to 2.0?

  • Anonymous
    August 07, 2005
    One question. How painful is it going to be moving June 2005 code and configurations to 2.0?

  • Anonymous
    August 07, 2005
    One question. How painful is it going to be moving June 2005 code and configurations to 2.0?

  • Anonymous
    August 08, 2005
    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.

  • Anonymous
    August 08, 2005
    Here is an idea - how about Enterprise Library for VB.Net!!

  • Anonymous
    August 08, 2005
    Being Scott Densmore : Enterprise Library 2.0 Cometh
    I know everyone has been waiting patiently for...

  • Anonymous
    August 10, 2005
    Dependency Injection is a bit overhyped
    Check out http://wagnerblog.com/index.php?p=441

  • Anonymous
    August 11, 2005
    you have mentioned that you are doing something similar to Spring. can you detail the scope. Is it a replacement of Spring.net

  • Anonymous
    August 15, 2005
    Love the music now playing.

  • Anonymous
    August 15, 2005
    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?

  • Anonymous
    August 16, 2005
    The comment has been removed

  • Anonymous
    August 16, 2005

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

  • Anonymous
    August 16, 2005
    Scott Densmore discusses some of the new features in the upcoming release of Enterprise Library 2.0 and...

  • Anonymous
    August 16, 2005
    Scott Densmore discusses some of the new features in the upcoming release of Enterprise Library 2.0 and...

  • Anonymous
    August 22, 2005
    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 ?

  • Anonymous
    April 14, 2006
    I was reading about the forthcoming release of EnterpriseLibrary 2.0 here,when I saw a link to another...

  • Anonymous
    August 04, 2006
    Want to download this entry as a document, check out my writely link.
    A quick overview of the tools...

  • Anonymous
    October 17, 2006
    Settings for libraries in .Net fwk 2.0

  • Anonymous
    April 29, 2008
    PingBack from http://ezinefrontpageblog.info/being-scott-densmore-enterprise-library-20-cometh/

  • Anonymous
    June 09, 2009
    PingBack from http://weakbladder.info/story.php?id=5247

  • Anonymous
    June 13, 2009
    PingBack from http://thestoragebench.info/story.php?id=5926