Enterprise Library 3.0 is Released...

Topics: Web Client Software Factory
Apr 6, 2007 at 9:30 PM
Very cool...

Enterprise Library 3.0 Released - Download It Now!




David Hayden
Microsoft MVP C#
Apr 10, 2007 at 2:37 AM
Check out Blaine's blog post about this, entitled Voting early and often results in a planned point release of WCSF with EntLib 3.0
Apr 10, 2007 at 3:25 PM
Were you guys planning to release the new point release sometime this week or does it require more effort than that? Just trying to get an estimate as to when we will see it. I don't necessarily need a hard date.




David Hayden
Microsoft MVP C#
Apr 10, 2007 at 5:45 PM

As I stated in my blog, the team is currently working on Smart Client Software Factory. We plan to release WCSF 1.1 by the first half of May. If we can get it out earlier, we will.

That being said, you can use EntLib 3.0 with WCSF today by changing the references to the new EntLib 3.0 binaries. David, given that you can use EntLib 3.0 with WCSF today, what is the impact to you of the point release coming out in May vs this week or next?

Apr 10, 2007 at 6:37 PM
First half of May? I totally missed that in the blog post.

The impact is that I cannot get it to work with just a reference to new assemblies. Is it really that easy?

When I just reference new assemblies as implied in your comments I get the following error:

Could not load file or assembly 'Microsoft.Practices.EnterpriseLibrary.Security, Version=, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)

When I load the Web.config file using the new Visual Studio-Integrated Configuration Editor it doesn't load any of the normal Enterprise Library Nodes.

When I try to run the Add View(with presenter) Recipe I get the following error:

Microsoft.Practices.RecipeFramework.ValueProviderException: An exception occurred during the binding of reference or execution of recipe CreateView. Error was: An error happened while calling the value provider or evaluating the default value of argument ModuleInfos.. 
You can remove the reference to this recipe through the Guidance Package Manager. ---> System.ArgumentException: Value Microsoft.Practices.CompositeWeb.Configuration.DependantModuleInfo[] specified for argument ModuleInfos can't be converted to the argument type Microsoft.Practices.CompositeWeb.Configuration.DependantModuleInfo[].
   at Microsoft.Practices.RecipeFramework.Services.DictionaryService.SetValue(Object key, Object value)
   at Microsoft.Practices.RecipeFramework.Recipe.CallProviders(IDictionary providers, IDictionaryService readonlyArguments, IDictionaryService arguments, Boolean isBefore)
   --- End of inner exception stack trace ---
   at Microsoft.Practices.RecipeFramework.Recipe.CallProviders(IDictionary providers, IDictionaryService readonlyArguments, IDictionaryService arguments, Boolean isBefore)
   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.Execute(IAssetReference reference)
   at Microsoft.Practices.RecipeFramework.RecipeReference.OnExecute()
   at Microsoft.Practices.RecipeFramework.AssetReference.Execute()
   at Microsoft.Practices.RecipeFramework.VisualStudio.RecipeMenuCommand.OnExec()
   at Microsoft.Practices.RecipeFramework.VisualStudio.AssetMenuCommand.Invoke()

Personally, I had to re-compile the WCSF Blocks with new EntLib 3.0 references and re-create a totally new web.config. And, because the Location of Application Block Assemblies Dialog Box doesn't work as mentioned here:

GP Dialog Doesn't Work: Location of Required Application Block Assemblies

I need to work out a solution for automating the movement of EntLib 3.0 assemblies without causing problems with the registered GP that works with EntLib 2.0.

But obviously I am making this way more difficult than it really is and could use the step-by-step process you are using that just references new assemblies. That will save me a ton of work.




David Hayden
Microsoft MVP C#
Apr 10, 2007 at 6:49 PM
This is very helpful Dave. As far as I know, we did not see these issues when we run the smoke test. I will have the sustaining engineering team look into the issues and reply back.

Apr 11, 2007 at 2:45 AM
Firstly, above post clearly explains the initial issue I was having when upgrading to Ent Lib 3 (thanks), message about the security assembly version incorrect.
So I followed your instructions and recompiled the source code for composite web Ent Lib and updated reference to new Ent Lib 3, compiled with no errors.

However, when I added the new reference to ‘Shell’ Module project within WCSF I get compile errors:
Error 1 The type 'Microsoft.Practices.CompositeWeb.Interfaces.IAuthorizationService' is defined in an assembly that is not referenced. You must add a reference to assembly 'Microsoft.Practices.CompositeWeb, Version=, Culture=neutral, PublicKeyToken=null'.
Error 2 The type 'Microsoft.Practices.CompositeWeb.EnterpriseLibrary.Services.EnterpriseLibraryAuthorizationService' must be convertible to 'Microsoft.Practices.CompositeWeb.Interfaces.IAuthorizationService' in order to use it as parameter 'TService' in the generic type or method 'Microsoft.Practices.CompositeWeb.Interfaces.IServiceCollection.AddNew<TService,TRegisterAs>()'

The Errors don’t make sense as I am sure the correct references are added (error1), also to back it up the new version of composite web Ent Lib complied with no errors (error 2) so API call to the interface hasn't changed.

Any suggestions
Sonny M
Apr 11, 2007 at 5:35 PM

I believe I received that errors once, too, while trying to figure out if I had to recompile all the WCSF Application Blocks or just the one that interfaced with Enterprise Library. Turns out you need to include them all.

I have it working and you can download a sample project and the files I am working with as mentioned in the following thread:


Hopefully it will help.




David Hayden
Microsoft MVP C#
Apr 11, 2007 at 11:58 PM

Thanks for the sample.

However, I’ve run into a another issues as my solution is also referencing pageflow.enterprise.libarary which has a dependency on ent lib 2 (daab). I’ve managed to resolve it by recompiling the assemblies so that they are using ent lib 3.
Solution compiles with no probs, yeah.
Our WCSF solution is now using ent lib 3, workflow and page flow assemblies.

Sonny M
Apr 12, 2007 at 12:59 AM
Great point. I forgot about the Page Flow Application Block. I haven't been using it since there is a known problem with the designer crashing, which I had continually experienced myself.

I will look at that over the weekend and add it to the zip file.

Good to hear you got it working.




David Hayden
Microsoft MVP C#
Apr 20, 2007 at 7:34 PM
You'll have to forgive my noob-ness, but Google found me this page as I was trying to figure out why my project compiles but won't run. I upgraded from the Feb 2007 release of EntLib 3 to the April release yesterday, and now I get that exact same runtime error that Dave posted above. I did a strict reference update in my project, and now any time the Security AB comes into scope I get that error.

Thanks in advance,

Apr 20, 2007 at 9:18 PM
You really shouldn't be having the problem so don't blame yourself for being here and asking the question.

I predicted these problems months ago and started the WCSF and Enterprise Library 3.0 discussions
way in advance in both the Enterprise Library and WCSF Forums to try to avoid the issue. The WCSF Team
dropped the ball in my opinion even though I realize they have priorities around the Smart Client stuff
and no doubt have internal goals to meet for which we are not aware. I just wish they had two teams - one
for Web Client and one for Smart Client.

As you are probably aware, your problem is due to either your web.config or WCSF-specific assemblies referencing
2.0.1 assemblies that ship with the WCSF. It's a pain, but I am only able to get around the problem by recompiling
the WCSF assemblies against the EntLib 3.0 assemblies as well as modifying the Web.config file. I recommend doing
this yourself, but I have some files you can download that may help and are working well for me in development:


I have a post that talks about Ent Lib 3.0 and WCSF Integration and goes off on a little bit of a rant :) I no doubt
pick on the WCSF Team too much on this subject but I put in a lot of time to avoid this problem.

Enterprise Library 3.0 and WCSF Sample Download - Can't Wait for WCSF Team

It may give you some insight on how to work around the problem.




David Hayden
Microsoft MVP C#
Apr 20, 2007 at 9:50 PM
I fixed my problem by reverting to the Feb release. We haven't had any stability issues so
we'll just roll live with that version if we have to. I'm not up on what WCSF even is, let
alone actually using it. We only use the Data, Security, and Caching application blocks
but try to keep up on what's latest and greatest anyway.

I'll take a look at it next week. It's almost 5 on a Friday and my stuff works now, so I'm
not about to go breaking it again. ;)

Apr 23, 2007 at 2:30 PM
We are very aware now that using EntLib 3.0 with WCSF is not just a matter of referencing the new assemblies, as we have already been working on the WCSF 1.1 release for some days now :)
Thanks to David who is already providing a download for the community as you all wait for the official release.
We are working hard to come out with the 1.1 release as soon as we can. The reason this is taking longer than a few days, is that the release will contain more things than just the support for EntLib 3.0.
Thanks to the community for all the valuable feedback.
We will keep you updated.

Julián Domínguez