Freigeben über


Enterprise Library v3: The Plan

Thanks again to everyone who shared their ideas and priorities for the next release of Enterprise Library in the posts and surveys we ran earlier. We went through all of the responses, and also considered a bunch of additional factors such as technical complexity, maturity of the domain, and alignment with other deliverables and products. We used all of this data to put together a plan for what we believe we can - and should - deliver to make everyone as happy as possible (Microsoft is such a Utopian place :-)

In p&p, there are a few major milestones that each team needs to pass in every project. The first of this is called the Vision/Scope milestone. This is where we put a stake in the ground about what we plan to deliver and why. We need to impress our management team enough to give us resources (meaning people and dollars) to let us move forward on the project until the next milestone, which is called M0. (Unlike other teams in Microsoft, we generally don't have other "M" milestones, like M1 or M2. I've suggested we call our milestone just "M", but for some reason nobody jumped at my idea :-). At M0, we need to have a much more detailed plan describing what we will deliver by when, and what it will cost. At this milestone, if all goes well, we are given the resources to complete the project.

The other day we got through the Vision/Scope milestone for Enterprise Library "v3" (note we haven't worked out exactly what we'll call it yet). This means we are now able to start development, so you can expect to see a bit more activity (and eventually some early code drops) on the Enterprise Library Community site. Since we are not yet at M0, we can't promise anything yet - but I'd be happy to tell you what we're planning as of now.

If you're familiar with the agile development processes we (try to) follow in p&p, you'll know that features are prioritized and put into a backlog, which we'll work through until we run out of time, money or sanity. We don't know how much we'll get through now (which is true for any project - and anyone who pretends to know is lying :-), but having a prioritized list and ensuring the product is always in a shippable state allows us to ship as much value as possible within the constraints of our project. We also have a "minimal credible release" line, which is the list of features which we believe we need to ship before anyone will find the new release worthwhile.

As at our Vision/Scope milestone, the minimal credible list line includes the following features:

  • Medium Trust support
  • Manageability extensions for configuration (WMI, Group Policy)
  • Simple Strong-naming
  • Mini-Factory for building your own blocks and providers
  • Validation Application Block
  • Exception Handling: WCF integration (exception shielding / fault mapping)
  • Logging: WCF pipeline integration
  • AuthZ: WCF Pipeline integration

Once we get through this list, we have prioritized a backlog of additional features. Currently this list looks like this (most important at the top):

  • Config Tool: Embedded in the Visual Studio IDE 
  • DAAB: SQL Everywhere support
  • DAAB: Richer transactions support
  • Docs: More code samples
  • Docs: Detailed documentation for ObjectBuilder
  • DAAB: Batch support
  • Config Tool: Edit AppSettings and other .NET settings
  • Config Tool: Environmental Overrides
  • Config Tool: Encryption Support
  • Config Tool: Improved type loading behavior when assemblies can't be found
  • Logging: Rolling flat file TraceListener
  • Logging: Local or UTC timestamps in formatted log messages
  • Logging: Reflected property tokens
  • Ability to create custom production installs
  • Ability to create custom developer installs
  • Exception Handling: Localization of exception messages
  • DAAB: ODP.NET provider support

There are a few more things to say about this list. First, you may notice that the list isn't in exactly the same order as the results from the prioritization survey - and that some highly requested features aren't on the list at all. Most obviously, none of the new application blocks that were requested have made the cut other than a Validation Application Block. This is for a few reasons. We looked very closely at the Workflow and Business Rules areas, and we felt that with Windows Workflow Foundation coming out very soon, it was too early for us to know exactly what additional value we could provide on top of the new platform capabilities. That said, the results from the survey have demonstated how important this scenario is to so many of you, and we have already started researching this space in more detail to consider how and when we can provide additional guidance (which may be in a future release of Enterprise Library, or may be in some other form). Some of the other requested blocks did not have so much technical uncertainty, however the amount of effort required to build new blocks would mean that if we bit off too many of these, we would not be able to implement a critical mass of the other requested features. So for now the plan is to focus on the most important block that we believe we can be successful with now (Validation), and to address as many of the other non-new-block features as possible.

The other very important thing to understand is that the feature list above is not final. Throughout the project we expect to learn a lot more about your priorities and our ability to deliver, and we will reprioritize the list accordingly - and I'll be sure to keep you informed as we do this. But for now I'm very excited that we have our initial list and can start work, and very confident that you'll continue to let us know if we're headed down the right track.

Comments

  • Anonymous
    September 26, 2006
    After getting through the Vision and Scope for the next release of Enterprise Library v3, the Patterns...

  • Anonymous
    September 26, 2006
    What is the timeline for Entlib v3? Will it be released before Visual Studio "Orcas". The reason I'm asking is to know if there are any plans for DAAB improvements for LINQ and ADO.Net Entity Framework.
    Keep up the great job!

  • Anonymous
    September 26, 2006
    As SQL Server Everywhere is on the list does that mean you will have a Click Once version that doesn't need admin rights on the desktop?

  • Anonymous
    September 26, 2006
    От patterns & practices подготвят нова версия на Enterprice Library. Няколко интересни...

  • Anonymous
    September 26, 2006
    Good news :D Initial plan for Enteprise Library v3 (9/26/2006 9:15:31 PM) You've told us what you want,

  • Anonymous
    September 26, 2006
    Good news :D Initial plan for Enteprise Library v3 (9/26/2006 9:15:31 PM) You've told us what you want,

  • Anonymous
    September 26, 2006
    Simple request - please version the event source names that Enterprise Library uses so we can manage installation / unistallation of EL2 and EL3 cleanly.

  • Anonymous
    September 26, 2006
    beautiful stuff

  • Anonymous
    September 26, 2006
    The comment has been removed

  • Anonymous
    September 26, 2006
    Оригинальное сообщение: http://blogs.msdn.com/tomholl/archive/2006/09/26/773213.

  • Anonymous
    September 26, 2006
    Where, THE HECK, is Key Management??!! How about providing some ENTERPRISE VALUE!!??

    Medium Trust support - Bogus
    Manageability extensions for configuration (WMI, Group Policy) - Questionable
    Simple Strong-naming - ??
    Mini-Factory for building your own blocks and providers - Bogus
    Validation Application Block - TOTALLY BOGUS
    Exception Handling: WCF integration (exception shielding / fault mapping) - OK
    Logging: WCF pipeline integration - OK
    AuthZ: WCF Pipeline integration - OK

  • Anonymous
    September 27, 2006
    Back in June, the Microsoft patterns & practices team began soliciting feedback for what features...

  • Anonymous
    September 27, 2006
    The comment has been removed

  • Anonymous
    September 27, 2006
    The Patterns and Practices group at MSDN have released their initial plans for Enterprise Library v3.In

  • Anonymous
    September 27, 2006
    I could be writing from total ignorance, but I was unable to find a way to do Asyncrounous Database calls in the EntLib?

    Is that true? If so, is that being addressed?

  • Anonymous
    September 27, 2006
    Creates an exception handling policy for Enterprise Library that replaces an .net exception with a fault contract exception.

  • Anonymous
    September 27, 2006
    The comment has been removed

  • Anonymous
    September 27, 2006
    The comment has been removed

  • Anonymous
    September 27, 2006
    PingBack from http://ejadib.wordpress.com/2006/09/27/enterprise-library-30-the-plan/

  • Anonymous
    September 27, 2006
    Enterprise Library Plan

  • Anonymous
    September 27, 2006
    Wow, you folks are sensitive! I didn't think that was too agressive. Look, I am steeped in the EL, and I have had to use it in ways that most folks won't use it (for example: disparate configuration sources for the same application), and I also work for a true enterprise level software company. Medium trust is an issue that comes from the hosted environment - this is NOT an Enterprise concern. A Validation block is NOT a pressing concern for the Enterprise. Mini-Factory - Why? That is what ObjectBuilder is for. Thus my responses . . . anything WCF = good. Key Management is a HUGE Enterprise level concern and getting an Enterprise level solution is a 6 figure proposition.

    Look, comments are for commenting. I didn't curse, and I didn't personally assault anyone. I value GREATLY the EL and what it does, but this is a disappointment. Calling a disappointment "bogus" is hardly strong language or disrespectful.

  • Anonymous
    September 27, 2006
    great Job!! Best Wishes...

  • Anonymous
    September 27, 2006
    The comment has been removed

  • Anonymous
    September 27, 2006
    Different Chris but I find the mini-factory useful.  Making it easier to plug my own blocks into the configuration subsystem is valuable, even at an enterprise level.  Although I tend to have similar thoughts about validation.  It belongs in the Smart Client Software factory or the Web Client Software factory, not EntLib.

  • Anonymous
    September 27, 2006
    Se ve muy interesante el alcance identificado para la nueva versión de Enterprise Library. Se piensa

  • Anonymous
    September 27, 2006
    What happens to EntLib now that the new kid on the block (ADO.Net Entity Framework) is strolling into town?

  • Anonymous
    September 27, 2006
    Chris (not that "different" Kinsman guy), you have to understand that enterprise key management is hard to do right. There is a reason why many solututions today are very expensive. Many are also hardware based. EL plugs into these solutions just fine, so if that level of key management is needed, EL definitely supports it.

  • Anonymous
    September 27, 2006
    RE: Medium trust is an issue that comes from the hosted environment

    Not always. Haven’t you heard of principal of least privileges before? In many enterprise environments this is a requirement (actually I would expect that in most enterprises it is the norm but i digress) especially when they deal with financial and sensitive data. This is especially true with the large insurance and broker transaction systems I've worked on.

  • Anonymous
    September 27, 2006
    Enterprise Library 3.0の拡張プランについての情報です。リリース次期は、わかりませんが楽しみですね。http://blogs.msdn.com/tomholl/archive/2006/09/26/773213.aspx ...

  • Anonymous
    September 27, 2006
    The list above sounds like Avanade's ACA.NET 4.1 (EL plus batch and validation), Avanade's Visual Studio Integration Pack, and Olaf's extensions (AppSettings and other .NET settings, environment overrides).  Nice to see that what we have already been using for months is going to become standard in EL.

    Still no mention of a MySQL provider, you got SQL and Oracle, why not MySQL?  Oh wait, Microsoft cannot support open source, my bad.  Not like it is difficult.  Oh well, I have my own.

  • Anonymous
    September 27, 2006
    Those clamoring for MySql support (above) should realize that EntLib already supports any OleDb compliant data provider.

  • Anonymous
    September 27, 2006
    Yeah,The Enerprise Library V2 is very good.

  • Anonymous
    September 27, 2006
    very good!

  • Anonymous
    September 27, 2006
      別誤會了,只是 Plan 而已,但是也很讓人興奮了 只是 看到 每個人對需求 投票的結果  Medium Trust support  Manageability extensions for...

  • Anonymous
    September 27, 2006
    Please, please, please make sure I can drop in my own logging provider (Trace is useless and the one in the Enterprise library is poorly concieved) -- let me plug in log4net even if I have to write an adapter class/factory.

    I second key management -- most of the rest of the stuff I don't care about at all.

    Better yet, how about you forget about half-baked "enterprise" libraries and give us a real app server/container?

  • Anonymous
    September 28, 2006
    The comment has been removed

  • Anonymous
    September 28, 2006
    O primeiro draft da nova versão da Enterprise Library foi anunciado estes dias pelo Tom Hollander.
    Tenho...

  • Anonymous
    September 28, 2006
    Keys to what? Heck I'm not even sure what a key management block would do let alone what to use it for.

    But seriously, I like the list as is just fine.

    Seems like some persons have a very narrow view of what "Enterprise" means.  To me an Enterprise is is any business big enough to be past a single domain.

    I work on Enterprise apps almost exclusively in a highly secure environment ...
    web browser bad, smart client good ;-)
    ... so I value the Validation Block and the WCF items the most.  Dealing with exception handling and logging across remoting has been a bear and EntLib has made it better but I'm still looking for more.

  • Anonymous
    September 28, 2006
    Tom Hollander habla en su blog de los resultados obtenidos una vez finalizada la encuesta ¿Qué

  • Anonymous
    October 01, 2006
    Tom Hollander's blog にて Enterprise Library v3: The Plan という投稿がされています。早くもv3の構想があがってきていたんですね。 ざっとサポートしたい機能一覧を見てみると、

  • Anonymous
    October 05, 2006
    Hello, Caching application block is the most used block in our app. But we need support for SQL Everywhere in order to implement offline functionality. SQL Express has to big footprint and accesing a lot of files is out of the question. Is this going to happen? Thank you!

  • Anonymous
    October 05, 2006
    Hi Loreaca - We are currently planning on adding support for SQL Everywhere in the DAAB, and since the Caching Application Block uses the DAAB for the database backing store, your scenario should be supported. Tom

  • Anonymous
    October 05, 2006
    Ok. We are all set, after a phase of feedback and polls here it comes the new features of the EntLib.

  • Anonymous
    October 05, 2006
    Basically I don't think the enterprise library has been got successful. I use its data access app block long ago and found that it only works well with DataSet and DataTable. Most of developers are not aware of the importance of strong type and custom class. Things will become better only after shipping of LINQ. So lots of code can be quickly developed but with is hard to maintain.

  • Anonymous
    October 06, 2006
    Ask a shallow question, do you have guideline for use of enterprise library in a dll? in my case, I want to use it in an office addin. Thanks.

  • Anonymous
    October 09, 2006
    The third session was given by Tom Hollander talking about what's coming in Enterprise Library...

  • Anonymous
    October 12, 2006
    Adding fire to the flame: I don't see how removing the Business Rules Block, the most highly recommended new feature, which you dangled in front of the community during the survey and decided to take it away. What makes you think WWF will alleviate the business rules aspect of enterprise apps.  It's hard enough getting approval to use 3rd party tools, which is why it would be perfect if EntLib decided to manage this block.  It would go hand in hand with the Validation Block, it only makes sense. I am dissapointed.

  • Anonymous
    October 12, 2006
    Hi Robert - We're not at all sure that WF will solve all of these problems - but at this time, we're not sure that it won't either (or more likely, it won't solve all of the problems but we don't yet understand the nature of the "gap"). So I'm sorry if this looked like "dangling and taking away" - actually the request for this block came entirely from the community, and I wanted to make sure we gave it the attention and visibility it deserved. As I mentioned, we aren't ignoring the opportunity - we just don't think we can be successful with it in the upcoming release of Enterprise Library. Tom

  • Anonymous
    October 18, 2006
    EL3 needs prewritten OracleMembershipProvider, DB2MembershipProvider, MySqlMembershipProvider, GenericMembershipProvider, etc., to give us a real choice beyond SQL Server 2005 Express to hold our ASP.Net users and roles database (aspnetdb).  If I'm forced to keep my application tables in Oracle or DB2, then why can't EL3 simplify creating and maintaining the necessary aspnetdb database in some other RDBMS other than SQL Server?

  • Anonymous
    October 28, 2006
    I'd like to see the possibility, to dispatch messages on severity to different listeners. Example: I'm using 3 listeners for logging:

  1. "Debug output" listener logs all messages from error to verbose so I can follow the flow of the programs.
  2. "Event Log" listener logs all errors and warnings of the local programs.
  3. "Database" listener shall log mainly errors of all programs on all systems belonging to the software system. Different programs or services are using different categories - one category per program/service. So it's easy to restrict logging to particular sources without modifying the categories. Maybe similiar like this:  <categorySources>    <add         name="Playout Player Category"         switchValue="All">      <listeners>        <add name="Event Log Destination" switchValue="error+warning"/>        <add name="Debug Output Destination" switchValue="all"/>        <add name="Database Destination" switchValue="error"/>      </listeners>    </add>
  • Anonymous
    October 28, 2006
    EntLib Config tool: To keep configuration files readable, I usally keep sections in separate files, e.g connection strings, logging and exception handling configurations and others more. Currently, when I use the configuration tool, it can read my configuration fine - but when I save it after modifications have been done, it writes all configuration data in one file instead of keeping the original file structure.

  • Anonymous
    November 06, 2006
    I'd also like to see EntLib move off GotDotNet to CodePlex and MSDN Forums.  The forum move alone would be appreciated as the GDN ones are so limited in posting.

  • Anonymous
    November 08, 2006
    I would love to see a "Data Object" application block.  This would be an instance and collection class that wraps data that would normally be persisted in a table. Capabilities:

  1.  Multiple data provider support (database, XML, etc.)
  2.  Ability to save, update, delete (propogate thru to data provider)
  3.  Ability to maintain prior state of properties in memory.  i.e. when Data.Value1 is updated, Data.Value1X maintains the last persisted value
  4.  Upon update ability to save prior state to data provider .... etc