Tom Hollander's (old) blog

Now blogging at

Just Released! Enterprise Library 3.0 - December 2006 CTP

Just Released! Enterprise Library 3.0 - December 2006 CTP

  • Comments 38

If you'd planned to spend the Christmas holidays drinking beer, watching cricket and eating way too much (or whatever it is that you normally do at this time of the year in your part of the world), I've got some bad news for you. We've just released the first Community Technology Preview release of Enterprise Library 3.0, so you may well want to spend a good chunk of the holidays geeking out with the new release. To coincide with this release, we've also launched a shiny new CodePlex site that replaces the somewhat rusty GotDotNet that we've used for our community for the past few years. The GDN site will stay there for now so you can view old forum posts, but it's been switched to read-only mode and the CodePlex site is now the place to be.

The CTP doesn't have a lot of documentation, but there is a reasonably detailed Release Notes document explaining what's new. Here's a quick summary of what you can expect:


  • Source Code installer
  • Partial Trust Support
  • Strong-Named Binary Assemblies

Validation Application Block

  • Core validation API
  • Minimal Validator Library
  • Attaching validators to objects via attributes
  • Attaching validators to objects via configuration
  • Not included yet (but in the works): Configuration tool support, complete validator library, integration with ASP.NET, Windows Forms, WCF etc.

Data Access Application Block

  • SQL Server Compact Edition Support
  • New Database.UpdateDatabase overload with updateBatchSize parameter

Configuration Tool

  • Visual Studio IDE integration
  • AppSettings support
  • Encryption support

Application Block Software Factory

  • Templates and recipes for creating application blocks and provider libraries
  • Preliminary documentation

Strong Naming Guidance Package

  • Recipes to assist in strong-naming and updating [InternalsVisibleTo] across multiple projects

Keep in mind that this is a CTP which means there are going to be things that don't work properly and things that we haven't had time to complete yet - so while we'd love you to play with the CTP and give us feedback, we strongly recommend against using it in production applications. We expect to have more, (hopefully) even better CTPs coming out in the new year before the final release.

If there's anything you want to see us fix or change before then, please provide feedback on the CodePlex forum or use the Issue Tracker tool.

Enjoy - and have a Merry Christmas!

  • Tom and team,

    Congratulations on achieving the next level. I look forward to digging in to it!

  • Tom,

    Congratulations, I like Validation AB very much.

    Thanks for nice Christmas gift!

  • So the new Enterprise Library is out via various sites. The main one to check out is the CodePlex...

  • I would love to see a real-world best practices domain-driven application that ties in all the application blocks into one nice package.

  • Any chance of seeing an Batch Scheduling application block in the near future?  The base implementation could be built on top of the SQL Server Job Agent API's or the windows scheduler.

  • The Enterprise Library 3.0 CTP is of significant use to developers even if you don't plan to write code

  • I'd like to see a minor improvement to the Configuration tool (which by itself is a wonderful idea).  As it's presently written, it depends on living in the same directory as the EntLib assemblies, OR on having these assy's in GAC;  it expecially needs any dependent application assemblies (for custom extensions to EntLib) to be in either of these locations.  

    The Config Tool exe should be uncoupled from these directory restrictions.  I especially don't want to junk up the EntLib bin directory or GAC with application assemblies.

    A very minor complaint about an otherwise fantastic boon to .NET development.

  • Thanks Kirk. This isn't actually as simple to fix as you might expect - however the good news is that this is indeed on our list of things to look at in v3. Hopefully it will make it into the next CTP.

  • Nepravidelný občasník lehce komentovaných linků ze světa vývoje v .NETu... Tentokrát shrnutí zajímavých

  • Love all the features but one thing that I find disappointing is that the config files, especially for web sites, become a mix of "dev" (ex. logging categories) and "user" settings (ex. logging email address), as well as being huge and unbearable in a text editor.

    Here are some suggestions:

    - support file links to externalize configuration (you know, via attributes such as configSource="settings.config"). Oh, and keep said links when saving.

    - build a configuration editor that can edit all of the config file comfortably. Use the new .net 2.0 ConfigSection and attributes to dynamically build a validating UI...

    - Take hints from AzMan editor, there is a Developer mode and a "user" (admin) mode. Add a mechanism to give "target" configuration for different groups (won't say "permission" because obviously one can still edit the file with notepad...

    Anyways, it may not be in your scope to build a complete configuration editor, but damn it'd be cool... Besides, you opened this can of worms by automatically replacing my default .config handling in Visual Studio from Xml to your Ent Lib config editor, giving me the expectation that it should be able to edit the whole config file... ;)

  • There are many errors in this entlib 3.0 ctp

    1. Microsoft.Practices.RecipeFramework.Extensions.dll missing where it can be downloaded at

    2. error when trying to create new project "

    Microsoft.Practices.RecipeFramework.ValueProviderException: An exception occurred during the binding of reference or execution of recipe CreateApplicationBlock. Error was: Failed to load value providers..

    You can remove the reference to this recipe through the Guidance Package Manager. ---> System.TypeLoadException: Microsoft.Practices.RecipeFramework.Extensions.ValueProviders.VisualStudio.ProjectByPathExpressionProvider, Microsoft.Practices.RecipeFramework.Extensions ---> System.IO.FileNotFoundException: Couldn't find assembly Microsoft.Practices.RecipeFramework.Extensions.

      at Microsoft.Practices.Common.Services.TypeResolutionService.GetAssembly(AssemblyName assemblyName, Boolean throwOnError)

      at Microsoft.Practices.Common.Services.TypeResolutionService.GetType(String typeName, Boolean throwOnError, Boolean ignoreCase)

      --- End of inner exception stack trace ---

      at Microsoft.Practices.Common.Services.TypeResolutionService.GetType(String typeName, Boolean throwOnError, Boolean ignoreCase)

      at Microsoft.Practices.Common.Services.TypeResolutionService.GetType(String typeName, Boolean throwOnError, Boolean ignoreCase)

      at Microsoft.Practices.Common.Services.AliasResolutionService.GetType(String typeName, Boolean throwOnError, Boolean ignoreCase)

      at Microsoft.Practices.Common.Services.TypeResolutionService.GetType(String typeName, Boolean throwOnError)

      at Microsoft.Practices.RecipeFramework.Recipe.GetInstance[T](ITypeResolutionService resolution, String concreteType)

      at Microsoft.Practices.RecipeFramework.Recipe.LoadProviders(ITypeResolutionService resolution)

      --- End of inner exception stack trace ---

      at Microsoft.Practices.RecipeFramework.Recipe.LoadProviders(ITypeResolutionService resolution)

      at Microsoft.Practices.RecipeFramework.Recipe.Execute(Boolean allowSuspend)

      at Microsoft.Practices.RecipeFramework.GuidancePackage.Execute(String recipe, IAssetReference reference, IDictionary arguments)

      at Microsoft.Practices.RecipeFramework.GuidancePackage.ExecuteFromTemplate(String recipe, IDictionary arguments)

      at Microsoft.Practices.RecipeFramework.VisualStudio.Templates.UnfoldTemplate.ExecuteRecipe(Boolean executeActions)

      at Microsoft.Practices.RecipeFramework.VisualStudio.Templates.UnfoldTemplate.RunStarted(Object automationObject, Dictionary`2 replacementsDictionary, WizardRunKind runKind, Object[] customParams)"

  • fred13: The 2 errors you reported appear to be related. However we haven't managed to reproduce this; the Microsoft.Practices.RecipeFramework.Extensions.dll should be installed to the Application Block Software Factory folder. Did you choose any non-default options in the installer or do anything else unusual? Has anyone else seen this issue?

    BTW, that particular DLL is called the GAX Extensions Library (or GEL for short), and we just launched a dedicated CodePlex site ( where you can get this and updated versions from.



  • Since I'm very eager to start including the Validation Application Block in my own apps, I have written a tutorial on how to use it on my blog. You can read it here:

Page 2 of 3 (38 items) 123