Yes, it's finally here. The patterns & practices team is pleased to announce the official release of Enterprise Library 3.0 - April 2007 for the .NET Framework 2.0 and 3.0.
If you've been keeping up with the Community Technology Preview releases, there shouldn't be anything too surprising in the final release, although the overall quality should be much higher. All of the major new features have already been described on this blog or in other places, but here is a quick summary of the most significant changes:
This isn't a complete list, and we've made a number of other minor changes that are described in the documentation. But the good news is that, despite all of the improvements in this release, there are no breaking changes in the core APIs and upgrading existing Enterprise Library 2.0 applications should just be a matter of replacing the DLLs and updating the version numbers in the configuration files.
One of the cool things about my job is that I get to play a very public role both during development and after the release of our deliverables. Sometimes this creates the impression that I'm responsible for more than I really am. In reality we have a very talented and dedicated team who are generally too busy working to spend much time in the spotlight. I want to take this opportunity to thank everyone in the team for all of the hard work to make this such a great release:
Thanks also to everyone, too numerous to mention here, who provided additional management, reviews, advice and guidance during this project. A particularly special thanks to Dave Hayden for his great work in creating tutorials and supporting the community during the development of this release.
Finally, Enterprise Library 3.0 was of course built on the legacy of several previous releases of Enterprise Library, original p&p application blocks and Avanade's ACA.NET. So thanks to everybody who worked on these earlier deliverables, as Enterprise Library would not be a success if it wasn't for the high quality of these earlier codebases.
As I hope you've noticed, the patterns & practices team is completely dependent on architects and developers in the "real world" to guide us on what we should build, what works well and what doesn't work well. This release of Enterprise Library is a prime example of this, with your input playing a huge role from setting the initial direction to identifying minor issues. Thanks to everyone who played a part in the process, whether it was completing the original prioritization survey, participating in our CodePlex community or providing direct feedback to our team. We really appreciate your support, and we look forward to your continued involvement for our future releases.
What about the partial trust issue that required a patch of the EntLib 2.0? Will 3.0 also "degrade elegantly" depending on code access security out of the box.. or should I await a patch of 3.0 before I recommend 3.0 to my developers?
Yes, the partial trust patch that we released for EntLib 2.0 has been rolled into EntLib 3.0, so you can run under partial trust provided you don't use any features that require a higher trust level.
Processos e Agile Ivar Jacobson publicou um artigo com sérias críticas aos processos que dominam o desenvolvimento
Tom Hollander's announced the release of Enterprise Library 3.0 which is available for download .
one question regarding the symbol files (pdb) for the precompiled binaries of this release.
Since it's quite interesting for us to have matching pdb for troubleshooting purposes and still being able to use the precompiled and signed(!) binaries, is there a symbol server or a download location for the appropriate pdbs for this release?
Thanks & best regards
Hi. Is there a tutorial of how to this library.
I just installed Enterpise Library but the documentation link is broken. When I click on Enterprise Library Documentation link the Document Explorer opens with the following error: No topics could be located that were relevant to the F1 request. I see the documentation files on my disk in Module Retargetable Folder, but I have no way to view them without properly registering them with the Document expolorer. Could you post the proper registration file?
Thanks to Tom and your great team for this release! We users really owe you guys a lot...
Any plan for hands-on labs wrt the new blocks and WCF integration in the near future?
I have the same problem Alex. Tom, will you be releasing a CHM/PDF version of the docs as well? I like to drop a usable version of the docs in with my project's source code so other developers can read them upon checkout - without having to install anything special.
I was able to fix the documentation link problem by opening the Document Explorer with the following link:
"/helpcol ms-help://ms.EntLib.2007Apr /LaunchFKeywordTopic CachingQS1"
I got this link from one of the QuickStart samples. I still think this problem needs to be solved at the installer level with the patch.
Michael - We're working on making the PDBs for the strong-named binaries available - I'll post details once we've finalized this.
Lorenzo and Frank - We'll be rolling out more tutorials in the form of webcasts and videos over the coming months - check out http://www.codeplex.com/entlib/Wiki/View.aspx?title=Videos for the first couple.
Alex and Nik - I'm not sure what the issue is here - the doc link from the start menu works fine for me. Is dexplore.exe installed somewhere different to what the shortcut expected? In any case the CHMs are available for separate download at http://www.codeplex.com/entlib/Release/ProjectReleases.aspx?ReleaseId=2899
Just playing with the VAB and have come across a problem with the Property Comparison Validator.
In the Validation QuickStart I added the following validator to the FirstName property in the configuration file
<validator operator="Equal" propertyToCompare="LastName" negated="true" messageTemplate="First Name cannot be Same as last Name"
type="Microsoft.Practices.EnterpriseLibrary.Validation.Validators.PropertyComparisonValidator, Microsoft.Practices.EnterpriseLibrary.Validation, Version=188.8.131.52, Culture=neutral, PublicKeyToken=null"
name="Property Comparison Validator" />
A simple test to check that FirstName and LastName cannot be the same. (I know it could happen but it was just a simple test)
Anyway I changed the Ruleset to use RuleSetB and clicked Validate. All ran well. I tried different values in First and Last Name and it worked as it should.
The problem came when I checked the 'Enable Winforms-Integrated Validation'. It presented me with the error.
System.NullReferenceException was unhandled
Message="Object reference not set to an instance of an object."
at Microsoft.Practices.EnterpriseLibrary.Validation.Integration.WinForms.ValidationProvider.GetExistingValidatedControlItem(String sourcePropertyName) in C:\EntLib3Src\App Blocks\Src\Validation\Integration\WinForms\ValidationProvider.cs:line 244
at Microsoft.Practices.EnterpriseLibrary.Validation.Integration.WinForms.PropertyMappedControlValueAccess.GetValue(Object source, Object& value, String& valueAccessFailureMessage) in C:\EntLib3Src\App Blocks\Src\Validation\Integration\WinForms\PropertyMappedControlValueAccess.cs:line 46
at Microsoft.Practices.EnterpriseLibrary.Validation.Validators.ValueAccessComparisonValidator.DoValidate(Object objectToValidate, Object currentTarget, String key, ValidationResults validationResults) in C:\EntLib3Src\App Blocks\Src\Validation\Validators\ValueAccessComparisonValidator.cs:line 115
at Microsoft.Practices.EnterpriseLibrary.Validation.Validators.AndCompositeValidator.DoValidate(Object objectToValidate, Object currentTarget, String key, ValidationResults validationResults) in C:\EntLib3Src\App Blocks\Src\Validation\Validators\AndCompositeValidator.cs:line 57
at Microsoft.Practices.EnterpriseLibrary.Validation.Validators.ValueAccessValidator.DoValidate(Object objectToValidate, Object currentTarget, String key, ValidationResults validationResults) in C:\EntLib3Src\App Blocks\Src\Validation\Validators\ValueAccessValidator.cs:line 72
at Microsoft.Practices.EnterpriseLibrary.Validation.Validator.Validate(Object target) in C:\EntLib3Src\App Blocks\Src\Validation\Validator.cs:line 53
at Microsoft.Practices.EnterpriseLibrary.Validation.Integration.WinForms.ValidationProvider.PerformValidation(ValidatedControlItem validatedControlItem) in C:\EntLib3Src\App Blocks\Src\Validation\Integration\WinForms\ValidationProvider.cs:line 163
at Microsoft.Practices.EnterpriseLibrary.Validation.Integration.WinForms.ValidatedControlItem.OnValidating(Object source, CancelEventArgs e) in C:\EntLib3Src\App Blocks\Src\Validation\Integration\WinForms\ValidatedControlItem.cs:line 54
at System.ComponentModel.CancelEventHandler.Invoke(Object sender, CancelEventArgs e)
at System.Windows.Forms.Control.OnValidating(CancelEventArgs e)
at System.Windows.Forms.Control.PerformControlValidation(Boolean bulkValidation)
at System.Windows.Forms.Control.PerformContainerValidation(ValidationConstraints validationConstraints)
at System.Windows.Forms.ContainerControl.ValidateChildren(ValidationConstraints validationConstraints)
at System.Windows.Forms.Form.ValidateChildren(ValidationConstraints validationConstraints)
at ValidationQuickStart.MainForm.customerRuleSetCombo_TextChanged(Object sender, EventArgs e) in C:\EntLib3Src\Quick Starts\Validation\CS\ValidationQuickStart\MainForm.cs:line 117
at System.Windows.Forms.Control.OnTextChanged(EventArgs e)
at System.Windows.Forms.ComboBox.OnTextChanged(EventArgs e)
at System.Windows.Forms.Control.set_Text(String value)
at System.Windows.Forms.ComboBox.set_Text(String value)
at System.Windows.Forms.ComboBox.WmReflectCommand(Message& m)
at System.Windows.Forms.ComboBox.WndProc(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
at System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
at System.Windows.Forms.UnsafeNativeMethods.SendMessage(HandleRef hWnd, Int32 msg, IntPtr wParam, IntPtr lParam)
at System.Windows.Forms.Control.SendMessage(Int32 msg, IntPtr wparam, IntPtr lparam)
at System.Windows.Forms.Control.ReflectMessageInternal(IntPtr hWnd, Message& m)
at System.Windows.Forms.Control.WmCommand(Message& m)
at System.Windows.Forms.Control.WndProc(Message& m)
at System.Windows.Forms.ScrollableControl.WndProc(Message& m)
at System.Windows.Forms.ContainerControl.WndProc(Message& m)
at System.Windows.Forms.Form.WndProc(Message& m)
at System.Windows.Forms.UnsafeNativeMethods.CallWindowProc(IntPtr wndProc, IntPtr hWnd, Int32 msg, IntPtr wParam, IntPtr lParam)
at System.Windows.Forms.NativeWindow.DefWndProc(Message& m)
at System.Windows.Forms.Control.DefWndProc(Message& m)
at System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg)
at System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(Int32 dwComponentID, Int32 reason, Int32 pvLoopData)
at System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
at System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
at System.Windows.Forms.Application.Run(Form mainForm)
at ValidationQuickStart.Program.Main() in C:\EntLib3Src\Quick Starts\Validation\CS\ValidationQuickStart\Program.cs:line 28
at System.AppDomain.nExecuteAssembly(Assembly assembly, String args)
at System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String args)
at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
Any ideas on how to get round this, as we were looking to use the VAB in a WinForms application we are currently developing.
Also when editing the config, I noticed that the messageTemplate would be lost for a Property Comparison Validator. If I manually added it to the config it would be okay, but if I used the editor it would lose the value.
I was also to fix my problem with the fix provided by Alex. The installer setup the shortcut as follows:
"C:\Program Files\Common Files\Microsoft Shared\Help 8\dexplore.exe" /helpcol ms-help://MS.VSCC.v80/MS.VSIPCC.v80/ms.EntLib.2007Apr /LaunchFKeywordTopic EnterpriseLibrary2007Apr.Introduction /filter "Enterprise Library 3.0 - April 2007" (dexplore does exist in that path.)
I have changed it to:
"C:\Program Files\Common Files\Microsoft Shared\Help 8\dexplore.exe" /helpcol ms-help://ms.EntLib.2007Apr /LaunchFKeywordTopic CachingQS1
Either way, I prefer the CHM for the reasons mentioned earlier, so thanks again!
Thanks for the detail Nik. The shortcut we use in the installer does work most of the time, but if the other syntax is more reliable we can switch to that in the future. BTW I expect that the only thing you need to change is the ms-help:// URL - the filters and the launch topics should be fine.
Buenas hoy se cumplen 2 años, desde que comencé a escribir un blog. Primero fue en my MSN Live Spaces