April 2010 - Posts
About 1,5 years after v4.1 a new version of the Enterprise Libary has been released by the Microsoft Patterns and Practices team.
For those who aren’t familiar with Enterprise Library:
“Microsoft Enterprise Library is a collection of reusable application blocks designed to assist software developers with common enterprise development challenges. This release includes: Caching Application Block, Cryptography Application Block, Data Access Application Block, Exception Handling Application Block, Logging Application Block, Policy Injection Application Block, Security Application Block, Validation Application Block, and Unity Application Block.”
This major release of Enterprise Library contains many compelling new features and updates that will make developers more productive. These include:
- Major architectural refactoring that provides improved testability and maintainability through full support of the dependency injection style of development
- Dependency injection container independence (Unity ships with Enterprise Library, but you can replace it with a container of your choice)
- Programmatic configuration support, including a fluent configuration interface and an XSD schema to enable IntelliSense
- Redesign of the configuration tool to provide:
- A more usable and intuitive look and feel
- Extensibility improvements through meta-data driven configuration visualizations that replace the requirement to write design time code
- A wizard framework that can help to simplify complex configuration tasks
- Data accessors for more intuitive processing of data query results
- Asynchronous data access support
- Honoring validation attributes between Validation Application Block and DataAnnotations
- Integration with Windows Presentation Foundation (WPF) validation mechanisms
- Support for complex configuration scenarios, including additive merge from multiple configuration sources and hierarchical merge
- Optimized cache scavenging
- Better performance when logging
- A reduction of the number of assemblies
- Support for the .NET 4.0 Framework and integration with Microsoft Visual Studio 2010
- Improvements to Unity
Like bullet point 12 promises: after installation you’ll find there are 27 assemblies in the bin folder, where v4.1 of Enterprise Library contains 45 assemblies.
The assemblies are versioned 5.0.414.0 where v4.1 was versioned 184.108.40.206. Could it be that the starting point of this version was 220.127.116.11 and the daily build made it untill 414?
One other thing that I noticed is the new configuration tool. Like with many new things I guess I have to get to know it before I can really tell. My first impression is that it isn’t as intuitive as it was with v4.1 but we’ll see.
Version 5.0 can be downloaded here.
If you’re familiar with Enterprise Library then you’ll notice a new color scheme (more orange, that must be inspired by Dutch influences ;-) ) used in this version. If double click “Enterprise Library 5.0.msi”, you’ll pass the following screens.
Installation is finished, at this point you’ll have an entry in your programs menu. You can install the sources as well if you move on.
After this batch file finishes, the Enterprise Library is fully installed.
This is a short note to myself because it took me some time to get this to work. There are several resources on the internet describing what to do to get this to work, but I found out not everything works as expected.
My scenario: build a WCF service, accessible from the internet by a non-WCF client. The client has an AD account which should be used to authenticate the user.
My approach: implement a WCF service using basicHTTPBinding, specify the correct settings in the web.config and that’s it.
The bindings settings in the web.config looked like this:
When I deployed this service to IIS and changed the authentication in the virtual directory from “Anonymous” to “Windows” authentication, I ran into this error:
Security settings for this service require 'Anonymous' Authentication but it is not enabled for the IIS application that hosts this service
The first thing I do with such an error is throw it into Google. A lot of results showed up, mostly regarding wsHttpBinding. However I also found a ‘recipe’ for my issue: http://rickgaribay.net/archive/2007/04/04/recipe-wcf-basichttpbinding-with-windows-authentication.aspx
It looked like a 100% match for my problem, but still I couldn’t get it to work. Also a lot of comments to the post showed other people experience the same. There are a ton of blog posts like this.
I found directions regarding:
- using “aspNetCompatibilityEnabled”
- removing the mex endpoint
- allow anonymous authentication to just the svc file
Then I started searching what exactly was causing this error. I found out that my mex endpoint was causing it, because it uses the mexHttpBinding which isn’t marked secure like my other binding (via ‘BindingConfiguration’). So this endpoint requires ‘Anonymous’ authentication, just like the error specifies.
Finally I found the solution it this blogpost (and also some others): http://www.slickit.ca/2009/02/wcf-using-iis-and-windows.html
The solution is easy, just apply the same binding to the mex endpoint and your good to go.
The BizTalk Software Factory for BizTalk Server 2006 (R2) has been released a while ago and back then only version 4 of the BizTalk Deployment Framework was available.
My current client is very enthusiastic about the BizTalk Software Factory and asked me to upgrade the BSF to version 5 of the deployment framework. While this is still officially in beta, it is a very useful and stable release.
So v1.7 of the BSF was born which supports more recent versions of the tools it uses.
The tools and versions that are supported by v1.7 of the BSF are:
Also some minor bug fixes were done and refactoring of the code took place.
You can get v1.7 here. Please contact me if you find a bug or with a feature request.
So the BizTalk Software Factory comes in two flavors:
- v1.7 for BizTalk Server 2006 (R2)
- v2.1 for BizTalk Server 2009