OSDN Git Service

WinGui:
authorsr55 <sr55@b64f7644-9d1e-0410-96f1-a4d463321fa5>
Sat, 23 Oct 2010 21:14:08 +0000 (21:14 +0000)
committersr55 <sr55@b64f7644-9d1e-0410-96f1-a4d463321fa5>
Sat, 23 Oct 2010 21:14:08 +0000 (21:14 +0000)
- Bring in Caliburn 1.1 and Windsor / Service Locator. (For a later release)

git-svn-id: svn://localhost/HandBrake/trunk@3624 b64f7644-9d1e-0410-96f1-a4d463321fa5

22 files changed:
win/C#/HandBrakeCS.csproj
win/C#/Installer/Installer.nsi
win/C#/Installer/MakeNightly.nsi.tmpl
win/C#/Program.cs
win/C#/app.config
win/C#/libraries/caliburn/Autofac.dll [new file with mode: 0644]
win/C#/libraries/caliburn/Caliburn.Autofac.dll [new file with mode: 0644]
win/C#/libraries/caliburn/Caliburn.Castle.dll [new file with mode: 0644]
win/C#/libraries/caliburn/Caliburn.Core.dll [new file with mode: 0644]
win/C#/libraries/caliburn/Caliburn.ModelFramework.dll [new file with mode: 0644]
win/C#/libraries/caliburn/Caliburn.PresentationFramework.dll [new file with mode: 0644]
win/C#/libraries/caliburn/Castle.Core.dll [new file with mode: 0644]
win/C#/libraries/caliburn/Castle.DynamicProxy2.dll [new file with mode: 0644]
win/C#/libraries/caliburn/Castle.MicroKernel.dll [new file with mode: 0644]
win/C#/libraries/caliburn/Castle.Windsor.dll [new file with mode: 0644]
win/C#/libraries/caliburn/Changes.txt [new file with mode: 0644]
win/C#/libraries/caliburn/Common.Logging.dll [new file with mode: 0644]
win/C#/libraries/caliburn/License.txt [new file with mode: 0644]
win/C#/libraries/caliburn/Microsoft.Practices.ServiceLocation.dll [new file with mode: 0644]
win/C#/libraries/caliburn/Readme.txt [new file with mode: 0644]
win/C#/libraries/caliburn/System.ComponentModel.Composition.dll [new file with mode: 0644]
win/C#/libraries/caliburn/Thanks.txt [new file with mode: 0644]

index 407c465..0c220e0 100644 (file)
     <Optimize>true</Optimize>\r
   </PropertyGroup>\r
   <ItemGroup>\r
+    <Reference Include="Caliburn.Castle, Version=1.1.0.49753, Culture=neutral, PublicKeyToken=8e5891231f2ed21f, processorArchitecture=MSIL">\r
+      <SpecificVersion>False</SpecificVersion>\r
+      <HintPath>libraries\caliburn\Caliburn.Castle.dll</HintPath>\r
+    </Reference>\r
+    <Reference Include="Caliburn.Core, Version=1.1.0.49753, Culture=neutral, PublicKeyToken=8e5891231f2ed21f, processorArchitecture=MSIL">\r
+      <SpecificVersion>False</SpecificVersion>\r
+      <HintPath>libraries\caliburn\Caliburn.Core.dll</HintPath>\r
+    </Reference>\r
+    <Reference Include="Castle.Core, Version=1.2.0.0, Culture=neutral, PublicKeyToken=407dd0808d44fbdc, processorArchitecture=MSIL">\r
+      <SpecificVersion>False</SpecificVersion>\r
+      <HintPath>libraries\caliburn\Castle.Core.dll</HintPath>\r
+    </Reference>\r
+    <Reference Include="Castle.MicroKernel, Version=2.1.0.0, Culture=neutral, PublicKeyToken=407dd0808d44fbdc, processorArchitecture=MSIL">\r
+      <SpecificVersion>False</SpecificVersion>\r
+      <HintPath>libraries\caliburn\Castle.MicroKernel.dll</HintPath>\r
+    </Reference>\r
+    <Reference Include="Castle.Windsor, Version=2.1.0.0, Culture=neutral, PublicKeyToken=407dd0808d44fbdc, processorArchitecture=MSIL">\r
+      <SpecificVersion>False</SpecificVersion>\r
+      <HintPath>libraries\caliburn\Castle.Windsor.dll</HintPath>\r
+    </Reference>\r
     <Reference Include="Growl.Connector, Version=2.0.0.0, Culture=neutral, PublicKeyToken=980c2339411be384, processorArchitecture=x86">\r
       <SpecificVersion>False</SpecificVersion>\r
       <HintPath>libraries\Growl.Connector.dll</HintPath>\r
       <HintPath>libraries\Growl.CoreLibrary.dll</HintPath>\r
       <Private>True</Private>\r
     </Reference>\r
+    <Reference Include="Microsoft.Practices.ServiceLocation, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">\r
+      <SpecificVersion>False</SpecificVersion>\r
+      <HintPath>libraries\caliburn\Microsoft.Practices.ServiceLocation.dll</HintPath>\r
+    </Reference>\r
     <Reference Include="PresentationCore">\r
       <RequiredTargetFramework>3.0</RequiredTargetFramework>\r
     </Reference>\r
index 0ed1600..48b8c4a 100644 (file)
@@ -139,6 +139,13 @@ Section "Handbrake" SEC01
   File "Microsoft.WindowsAPICodePack.Shell.dll"\r
   File "Microsoft.WindowsAPICodePack.dll"\r
 \r
+  File "Caliburn.Castle.dll"\r
+  File "Caliburn.Core.dll"\r
+  File "Castle.Core.dll"\r
+  File "Castle.DynamicProxy2.dll"\r
+  File "Castle.MicroKernel.dll"\r
+  File "Castle.Windsor.dll"\r
+\r
   SetOutPath "$INSTDIR\doc"\r
   SetOverwrite ifnewer\r
   File "doc\AUTHORS"\r
@@ -189,6 +196,14 @@ Section Uninstall
   Delete "$INSTDIR\HandBrake.Framework.dll"\r
   Delete "$INSTDIR\Microsoft.WindowsAPICodePack.Shell.dll"\r
   Delete "$INSTDIR\Microsoft.WindowsAPICodePack.dll"\r
+\r
+  Delete "$INSTDIR\Caliburn.Castle.dll"\r
+  Delete "$INSTDIR\Caliburn.Core.dll"\r
+  Delete "$INSTDIR\Castle.Core.dll"\r
+  Delete "$INSTDIR\Castle.DynamicProxy2.dll"\r
+  Delete "$INSTDIR\Castle.MicroKernel.dll"\r
+  Delete "$INSTDIR\Castle.Windsor.dll"\r
+\r
   Delete "$INSTDIR\doc\AUTHORS"\r
   Delete "$INSTDIR\doc\COPYING"\r
   Delete "$INSTDIR\doc\CREDITS"\r
index a22c45a..9aceb63 100644 (file)
@@ -137,6 +137,13 @@ Section "Handbrake" SEC01
   File "Microsoft.WindowsAPICodePack.Shell.dll"\r
   File "Microsoft.WindowsAPICodePack.dll"\r
 \r
+  File "Caliburn.Castle.dll"\r
+  File "Caliburn.Core.dll"\r
+  File "Castle.Core.dll"\r
+  File "Castle.DynamicProxy2.dll"\r
+  File "Castle.MicroKernel.dll"\r
+  File "Castle.Windsor.dll"\r
+\r
   ; Copy the standard doc set into the doc folder\r
   SetOutPath "$INSTDIR\doc"\r
   SetOverwrite ifnewer\r
@@ -189,6 +196,14 @@ Section Uninstall
   Delete "$INSTDIR\HandBrake.Framework.dll"\r
   Delete "$INSTDIR\Microsoft.WindowsAPICodePack.Shell.dll"\r
   Delete "$INSTDIR\Microsoft.WindowsAPICodePack.dll"\r
+\r
+  Delete "$INSTDIR\Caliburn.Castle.dll"\r
+  Delete "$INSTDIR\Caliburn.Core.dll"\r
+  Delete "$INSTDIR\Castle.Core.dll"\r
+  Delete "$INSTDIR\Castle.DynamicProxy2.dll"\r
+  Delete "$INSTDIR\Castle.MicroKernel.dll"\r
+  Delete "$INSTDIR\Castle.Windsor.dll"\r
+\r
   Delete "$INSTDIR\doc\AUTHORS"\r
   Delete "$INSTDIR\doc\COPYING"\r
   Delete "$INSTDIR\doc\CREDITS"\r
index 24d1507..e702265 100644 (file)
@@ -10,11 +10,19 @@ namespace Handbrake
     using System.IO;\r
     using System.Windows.Forms;\r
 \r
+    using Caliburn.Castle;\r
+\r
+    using Castle.Core.Resource;\r
+    using Castle.Windsor;\r
+    using Castle.Windsor.Configuration.Interpreters;\r
+\r
     using HandBrake.ApplicationServices;\r
 \r
     using Handbrake.Presets;\r
     using Handbrake.Properties;\r
 \r
+    using Microsoft.Practices.ServiceLocation;\r
+\r
     /// <summary>\r
     /// HandBrake Starts Here\r
     /// </summary>\r
@@ -29,6 +37,9 @@ namespace Handbrake
         [STAThread]\r
         public static void Main(string[] args)\r
         {\r
+            WindsorContainer container = new WindsorContainer(new XmlInterpreter(new ConfigResource("castle")));\r
+            ServiceLocator.SetLocatorProvider(() => new WindsorAdapter(container));\r
+\r
             InstanceId = Process.GetProcessesByName("HandBrake").Length;\r
 \r
             // Handle any unhandled exceptions\r
index 48080a8..313c90e 100644 (file)
@@ -2,10 +2,13 @@
 \r
 <configuration>\r
   <configSections>\r
+    <section name="castle" type="Castle.Windsor.Configuration.AppDomain.CastleSectionHandler, Castle.Windsor" />\r
+    \r
     <sectionGroup name="userSettings" type="System.Configuration.UserSettingsGroup, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">\r
       <section name="Handbrake.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false" />\r
     </sectionGroup>\r
   </configSections>\r
+  \r
   <userSettings>\r
     <Handbrake.Properties.Settings>\r
       <setting name="processPriority" serializeAs="String">\r
       </setting>\r
     </Handbrake.Properties.Settings>\r
   </userSettings>\r
+  \r
   <startup />\r
+  \r
+  <castle>\r
+    <components>\r
+      <component id="IErrorService"\r
+                 service="HandBrake.Framework.Services.Interfaces.IErrorService, HandBrake.Framework"\r
+                 type="HandBrake.Framework.Services.ErrorService, HandBrake.Framework"/>\r
+    </components>\r
+  </castle>\r
+  \r
 </configuration>
\ No newline at end of file
diff --git a/win/C#/libraries/caliburn/Autofac.dll b/win/C#/libraries/caliburn/Autofac.dll
new file mode 100644 (file)
index 0000000..da76a57
Binary files /dev/null and b/win/C#/libraries/caliburn/Autofac.dll differ
diff --git a/win/C#/libraries/caliburn/Caliburn.Autofac.dll b/win/C#/libraries/caliburn/Caliburn.Autofac.dll
new file mode 100644 (file)
index 0000000..b8742e5
Binary files /dev/null and b/win/C#/libraries/caliburn/Caliburn.Autofac.dll differ
diff --git a/win/C#/libraries/caliburn/Caliburn.Castle.dll b/win/C#/libraries/caliburn/Caliburn.Castle.dll
new file mode 100644 (file)
index 0000000..d10426b
Binary files /dev/null and b/win/C#/libraries/caliburn/Caliburn.Castle.dll differ
diff --git a/win/C#/libraries/caliburn/Caliburn.Core.dll b/win/C#/libraries/caliburn/Caliburn.Core.dll
new file mode 100644 (file)
index 0000000..5fbeda0
Binary files /dev/null and b/win/C#/libraries/caliburn/Caliburn.Core.dll differ
diff --git a/win/C#/libraries/caliburn/Caliburn.ModelFramework.dll b/win/C#/libraries/caliburn/Caliburn.ModelFramework.dll
new file mode 100644 (file)
index 0000000..06faccb
Binary files /dev/null and b/win/C#/libraries/caliburn/Caliburn.ModelFramework.dll differ
diff --git a/win/C#/libraries/caliburn/Caliburn.PresentationFramework.dll b/win/C#/libraries/caliburn/Caliburn.PresentationFramework.dll
new file mode 100644 (file)
index 0000000..ea95243
Binary files /dev/null and b/win/C#/libraries/caliburn/Caliburn.PresentationFramework.dll differ
diff --git a/win/C#/libraries/caliburn/Castle.Core.dll b/win/C#/libraries/caliburn/Castle.Core.dll
new file mode 100644 (file)
index 0000000..b4a8093
Binary files /dev/null and b/win/C#/libraries/caliburn/Castle.Core.dll differ
diff --git a/win/C#/libraries/caliburn/Castle.DynamicProxy2.dll b/win/C#/libraries/caliburn/Castle.DynamicProxy2.dll
new file mode 100644 (file)
index 0000000..763a617
Binary files /dev/null and b/win/C#/libraries/caliburn/Castle.DynamicProxy2.dll differ
diff --git a/win/C#/libraries/caliburn/Castle.MicroKernel.dll b/win/C#/libraries/caliburn/Castle.MicroKernel.dll
new file mode 100644 (file)
index 0000000..35df07a
Binary files /dev/null and b/win/C#/libraries/caliburn/Castle.MicroKernel.dll differ
diff --git a/win/C#/libraries/caliburn/Castle.Windsor.dll b/win/C#/libraries/caliburn/Castle.Windsor.dll
new file mode 100644 (file)
index 0000000..480a4b5
Binary files /dev/null and b/win/C#/libraries/caliburn/Castle.Windsor.dll differ
diff --git a/win/C#/libraries/caliburn/Changes.txt b/win/C#/libraries/caliburn/Changes.txt
new file mode 100644 (file)
index 0000000..cf97d93
--- /dev/null
@@ -0,0 +1,166 @@
+V1.1 Release\r
+-Fixed an issue in the WPF version of InteractionNode.\r
+-Fixed an event invocation order issue and a parameter update issue related to routed messages.\r
+-Updated Spring.NET to version 1.3.0.\r
+-Made DefaultWindowManager more friendly to WPF's NavigationWindow.\r
+-Fixed a bug with non-modal window shutdown in DefaultWindowManager.\r
+-Fixed a core bug in custom attribute discovery.\r
+-Enabled routed messages to declare default handlers.  Now ActionMessage declares a default handler for its DataContext.  This solves several Menu routing issues.\r
+-Fixed the apparently completely broken MEF adapter.\r
+-Greatly improved the flexibility of the DefaultViewStrategy.\r
+-Fixed a bug in the WPF DispatcherImpelmentation.\r
+-Fixed a bug in PresenterManager and MultiPresenterManager which caused screen changes to the same screen.\r
+-Enabled view chaching for Silverlight.\r
+-Fixed some bugs in the LOB samples.\r
+-Added Hyperlink/HyerlinkButton element defaults.\r
+-Update StructureMap to version 2.6.1.\r
+-Updated Windsor to version 2.1.1.\r
+-Added official support for .NET 4.0.\r
+-Fixed a bug in MultiPresenterManager for .NET 4.0.\r
+-Updated to MEF Preview 9.\r
+-Applied a patch from Adam Connelly to add AddRange to BindableCollection and IObservableCollection.\r
+-Update Ninject to official 2.0 release.\r
+-Fixed a bug in the Disable IAvailabilityEffect which was preventing it from handling ContentElements in WPF correctly.\r
+-Fixed a bug in the AvailabilityEffectConverter related to resolving custom effects from the container.\r
+-Enabled actions to search for handlers by routing through TemplatedParents in WPF.\r
+-Fixed a bug with expression tree method calls in .NET 4.0.\r
+-Enabled the dispatcher's default DispatcherPriority to be configured.\r
+-Applied a patch by varely to fix binding validation against properties with underscores in their name.\r
+-Updated Prism to the October 2009 release.\r
+-Updated the AutofacAdapter to support AutoFac 2.0.\r
+-Changed IsolatedStorageStateManager to use GetUserStoreForDomain for WPF and GetUserStoreForApplication for Silverlight. The method which gets the storage file is now overridable as well.\r
+-Changed Presenters to raise lifecycle events after initialization/activation/etc are complete.\r
+-Ensured that PresenterManagers do not call initialize/activate when CurrentPresenter is set unless they themselves are initialized/activated.\r
+-Fixed a bug with WPF Parameter instances raising value changes after being removed from the tree.\r
+-Fixed bugs in PropertyPathMonitor\r
+-Fixed a bug in the Autofac adapter related to singleton registration.\r
+-Enabled strong-named bulds of but only for .NET 4.0 and SL4.\r
+-Fixed a memory leak related to the DependenciesAttribute.\r
+-Fixed a bug in DefaultViewLocator.MakeInterface related to generic types.\r
+-Updated Unity to the latest version.\r
+-Updated Prism to the latest version.\r
+-Fixed a bug in the MessageBinder.\r
+-Fixed a bug in the contact manager sample.\r
+\r
+V1.1 Release Candidate\r
+-Added pre-initialization hooks to CaliburnApplication via Marco Amendola's patch.\r
+-Redesign of IThreadPool.  AsynchronousAction will now pass itself as state when enqueing the background task.\r
+-Closed ticket #4672 by making PropertyChangedBase.PropertyChanged virtual.\r
+-Applied jagregory's patch to add single key gestures to WPF and Caliburn.\r
+-Applied marcoamendola's patch for enabling property path syntax with Preview and Dependency attributes. So you can now do things like [Dependencies("Model.IsValid")].\r
+-Applied marcoamendola's patch enabling type hinting for polymorphic databinding in Caliburn.Testability.\r
+-Applied etobi's patch to greatly improve Caliburn's parameter parsing in ActionMessages and CommandMessages. See http://caliburn.codeplex.com/WorkItem/View.aspx?WorkItemId=4644 for an explanation.\r
+-Closed ticket #4826. DefaultWindowManager now sets WindowStartupLocation to CenterOwner for UserControls hosted in windows. Title was enhanced to databind to IPresenter.DisplayName if model implements this interface.\r
+-Closed ticket #4833. Fixed an issue with ViewMetadata and invalid Windows in DefaultViewStrategy.\r
+-Fixed a bug with DefaultWindowManager which caused errors when creating main windows from a user control.\r
+-Improved the flexibility of the DefaultViewStrategy. It no longer requires separate namespaces for ViewModels/Views.\r
+-Closed ticket #4865. Fixed a bug in MultiPresenterManager which affects multiple presenter shutdown.\r
+-Applied sedovav's fix to the Spring adapter.\r
+-Enhanced DefaultViewStrategy's exception to report searched for types when view location fails.\r
+-Applied cheesus' recommendations to add unwire capability to IEventHandler.\r
+-Improved PresenterManager and MultiPresenterManager such that all changes to CurrentPresenter go through ChangeCurrentPresenterCore.\r
+-Bug fixes and improvements to DependenciesAttribute, PreviewAttribute, DependencyObserver and PropertyPathMonitory.\r
+-Added strongly-typed property change notification to PropertyChangedBase.\r
+-Fixed a bug in the SimpleContainer related to generic component registration.\r
+-Added ILifecycleNotifier.AttemptingShutdown which gets fired before the CanShutdownCore method on PresenterBase is called. \r
+-Fixed a bug in AsnychronousAction related to IPreExecute, BlocksInteraction and AffectsTriggers.\r
+-Added IWindowManager and DefaultWindowManager for SL3 and SL4.\r
+-Fixed a few bugs in property change testing.\r
+-Fixed a bug in the MEFAdapter.\r
+-Fixed a bug in the design-time support for Availability Effects in the AvailabilityEffectConverter.\r
+-Updated to Castle Windsor 2.1, Dynamic Proxy 2.2. Added official Windsor support for Silverlight 3.0 and 4.0\r
+-Fixed a minor bug in View Contexts.\r
+-Enabled WPF Action parameters to bind to default event/property by specifying only an element name as the arg.\r
+-Added the Silverlight Navigation Sample to How Tos.\r
+-Created three different build-*.cmd for the major build scenarios.\r
+\r
+V1 RTW\r
+-The DefaultBinder will now throw on type activation failure.\r
+-Made a change to the implementation of PresentationFrameworkModule.IsInDesignMode.\r
+-Removed Silverlight Windsor support because it apparently never worked.\r
+-Fixed some inconsistencies between the implementations of IStateManager by transforming various implementation methods into extension methods and adding a missing concept.\r
+-Fixed an inconsistency in the Open extension method. Added an extension point to the DefaultViewStrategy that will make it easier to work with proxied models.\r
+-A minor change to allow custom "rewriting" of the type that the DefaultBinder inspects. This will help with proxy scenarios. Just override GetModelType and return the underlying type. The same is true for DefaultViewStrategy. For the ActionFactory, override SelectMethods.\r
+-Fixed bugs in the View.Context and View.Strategy attached properties.\r
+-Fixed a bug in the AttachedEventTriggerParser.cs. We no longer query against dynamic assemblies.\r
+-Fixed a bug in the DefaultWindowManager. Fixed some compile errors in the LOB samples that resulted from some recent API fixes.\r
+-Added an IContainer interface which is a combination of IServiceLocator and IConfigurator. Implemented this on all the Adapters and registered this interface will all underlying containers. Fixed some bugs in the container adapter implementations.\r
+-Added an interface, IExtendedPresenter, which represents all presenter related capabilities. It is implemented by PresenterBase.\r
+-Fixed a major inconsistency with the IDispatcher and Execute APIs.\r
+-Added an extension point to MultiPresenter and MultiPresenterManager to allow a subclass to alter the default partial shutdown behavior.\r
+-Added the ability for a module to execute custom code just after framework startup by using the AfterStart method. Fixed some API inconsistencies in modules\r
+-Added a CancelResult exception which can be thrown or passed from an IResult in order to stop the enumeration of multiple results. This exception will not be bubbled up.\r
+-Added Prism integration!!!\r
+-Added WPF and Silverlight samples demonstrating how to configure Prism with Caliburn!!\r
+-Fixed a problem with the build file.\r
+-Fixed a bug in the way the MessageParserBase was parsing parameters.\r
+-Fixed a bug in the DefaultBinder which caused convention binding of IPresenter properties to fail if the property was readonly.\r
+-Made some improvements to AttachedEventTriggerParser.\r
+-Fixed the NinjectAdapter and the StructureMapAdapter.\r
+-Fixed databinding conventions in data templates for items controls.\r
+-Fixed a compilation error in the BackgroundProcessing how to.\r
+-Renamed DependencyHelper to DependencyObserver and made it a publicly available component. \r
+-Fixed some bugs with Dependent Actions, where triggers were being re-evaluated even when their own dependencies had not changed. \r
+-Enabled PreviewAttribute to work with Methods AND Properties. So you can now have a Save action and a CanSave *Property* which is hooked up. If you follow this naming convention, the filter will be added automatically. Finally, used the new DependencyObserver to allow Preview properties to be re-evaluated when a PropertyChange notification is raised for the preview property. As always, this works for Actions and Commands.\r
+-Made an improvement to AttachedEventTriggerParser so that it only investigates types which inherit from DependencyObject for events.\r
+-Enabled View.Context to flow through to the ItemTemplate of an ItemsControl when using convention bindings.\r
+-Made Caliburn/Prism integration even smoother.\r
+-Made more methods of DefaultBinder protected virtual.\r
+-Fixed a bug in the LOB sample. \r
+-Made some minor improvements to IExtendedPresenter.\r
+-Fixed a bug in AttachedEventTriggerParser. It now searches DependencyObject descendants *and* static classes for events.\r
+-Fixed more problems with the SpringAdapter. Discovered some issues with the MEFAdapter. Added container unit tests to cover additional scenarios.\r
+-Update MEF to Preview 8\r
+-Update to the latest build of Ninject 2.\r
+\r
+V1 RC3\r
+-Updated the StructureMap.dll to version 2.5.3.\r
+-Made a slight alteration to CoreConfiguration that makes it more friendly when run in a unit test.\r
+-Added an AutofacAdapter for .NET 3.5, Silverlight 2.0 and Silverlight 3.0.\r
+-Fixed bugs in the DefaultWindowManager.\r
+-Added IPresenterNode which allows presenters to be hooked up with a reference to their parent. All implementors of IPresenterHost now wire themselves when opening children and unwire themselves during a shutdown.\r
+-Created the IBinder interface. This replaces the functionality that was in the extension method AttachTo. This interface is meant to provide a pluggable way to change the behavior of Model/View wire-up.\r
+-Updated DefaultBinder to allow for convention-based action wire-up.\r
+-Fixed a bug in auto-registration with CommandAttribute.\r
+-Fixed several bugs with CaliburnApplication\r
+-Fixed a bug where certain module scenarios would cause the PresentationFrameworkModule to be configured twice.\r
+-Fixed some inconsistencies in the DefaultWindowManager and CaliburnApplication.silverlight.cs.\r
+-Removed a pesky attribute in the WPF ContactManager's .config file that was causing bugs for some people.\r
+-Removed Message.Attach2nd, Message.Attach3rd and Message.Attach4th. You can now attach an arbitrary number of messages with Message.Attach by separating each message with a semicolon. This caused a breaking change to the IParser implementation, but it is unlikely that will affect many people.\r
+-Fixed some bugs in Parameter.silverlight.cs related to event defaults for elements that are bound.\r
+-Improved the BackgroundProcessing sample.\r
+-Fixed some bugs in parsing of parameters for messages. There were certain scenarios where the parser could not differentiate between string literals and references to control.  To pass literals as a message parameter (short syntax only), you must surround it with single quotes.\r
+-Added AttachedEventTriggerParser. We can all now use attached event triggers in the short syntax. Usage is as follows: cal:Message.Attach="[AttachedEvent ButtonBase.Click] = [Action MyAction]" The caveat is that we cannot map namespaces from xaml into the parser. To work around this problem, we search through all AppDomain assemblies by default. If you would like to optimize this, simply inherit from AttachedEventTriggerParser and override GetSearchableAssemblies. Then register your ITriggerParser with IParser under the name "AttachedEvent"\r
+-Enabled the DefaultViewStrategy to handle custom contexts without the need of a ViewStrategyAttribute. If a context is the DefaultViewStrategy will treat the view name as a folder name by adding an "s" and search that folder for views with the context as their name.\r
+-Fixed various bugs in DefaultViewStrategy.\r
+-Fixed various bugs in AsynchronousAction and in the BackgroundProcessing sample.\r
+-Updated MEF to Preview 7.\r
+-Changed IMessageBinder.BindOutcome to IMessageBinder.CreateResult.\r
+-Enabled the DefaultBinder to look for properties named with the pattern Can + Action and wire up the IsEnabled property automatically.\r
+-Fixed the signatures of extension methods for IWindowManager.\r
+-Fixed a bug in binding validation that occurs when properties are overridden on a bound type.\r
+-Provided a way for a presenter to pass a dialog result to the view on close.\r
+-Made some improvements to exception messages in the case of parameter count mismatch during invocation.\r
+-Updated Caliburn's build to work with Silverlight 3.0.40818.0 service release.\r
+-Extended the IDispatcher to allow async UI invocation.\r
+\r
+V1 RC2\r
+-Added the official xmlns for caliburn: http://www.caliburnproject.org\r
+-Added a Completed event to IResult (renamed from IExecutableResult)\r
+-Renamed CompositeResult to SequentialResult\r
+-Added a Starting event to IBackgroundTask.\r
+-The filter interfaces have been renamed IPreExecuteFilter -> IPreProcessor, IPostExecuteFilter -> IPostProcessor, IRescueFilter -> IRescue, IInstanceAwareFilter -> IHandlerAware. Also, IMethodBinder was renamed to IMessageBinder and IMessageSupportingMethodBinding was renamed to IRoutedMessageWithOutcome (which caused a change in the IResult interface). The property ReturnPath on ActionMessage was renamed to OutcomePath.\r
+-Enabled Unity, Castle, Ninject and MEF Adapters for Silverlight.\r
+-Improvements to DefaultViewStrategy\r
+-Added parameter and results of message to be bound to Resources.\r
+-Enabled parameter special files to be "dotted" on. ie: $eventArgs.My.Property\r
+-Additional attached properties are necessary: Attach, Attach2nd, Attach3rd and Attach4th\r
+-IPresenterHost's Presenters is now an instance of IObservableCollection<IPresenter>\r
+-Introduced IAssemblySource as a way for any component to be made aware of inspectable assemblies.\r
+-Reworked ComponentInfo\r
+-Added the IWindowManager service for WPF. This enables a model-centric mechanism for showing dialogs and non-modal windows.\r
+-Added the IViewAware interface which can be implemented by a model/presenter if it wishes to be aware of its view.\r
+-Updated the build to compile for .NET 3.5, Silverlight 2.0 and Silverlight 3.0\r
+-Updated all samples so that they has both SL2 and SL3 projects.\r
+-Many more small features and API improvements...\r
+-Fixed tons of bugs...
\ No newline at end of file
diff --git a/win/C#/libraries/caliburn/Common.Logging.dll b/win/C#/libraries/caliburn/Common.Logging.dll
new file mode 100644 (file)
index 0000000..d7a8f15
Binary files /dev/null and b/win/C#/libraries/caliburn/Common.Logging.dll differ
diff --git a/win/C#/libraries/caliburn/License.txt b/win/C#/libraries/caliburn/License.txt
new file mode 100644 (file)
index 0000000..687850b
--- /dev/null
@@ -0,0 +1,21 @@
+The MIT License\r
+\r
+Copyright (c) 2008 Blue Spire Consulting, Inc.\r
+\r
+Permission is hereby granted, free of charge, to any person obtaining a copy\r
+of this software and associated documentation files (the "Software"), to deal\r
+in the Software without restriction, including without limitation the rights\r
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\r
+copies of the Software, and to permit persons to whom the Software is\r
+furnished to do so, subject to the following conditions:\r
+\r
+The above copyright notice and this permission notice shall be included in\r
+all copies or substantial portions of the Software.\r
+\r
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\r
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\r
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\r
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\r
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\r
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\r
+THE SOFTWARE.
\ No newline at end of file
diff --git a/win/C#/libraries/caliburn/Microsoft.Practices.ServiceLocation.dll b/win/C#/libraries/caliburn/Microsoft.Practices.ServiceLocation.dll
new file mode 100644 (file)
index 0000000..3f88954
Binary files /dev/null and b/win/C#/libraries/caliburn/Microsoft.Practices.ServiceLocation.dll differ
diff --git a/win/C#/libraries/caliburn/Readme.txt b/win/C#/libraries/caliburn/Readme.txt
new file mode 100644 (file)
index 0000000..396ebbb
--- /dev/null
@@ -0,0 +1,25 @@
+Caliburn\r
+\r
+Running one of the build commands (build-*.cmd) will execute the NAnt build script in a the chosen configuration.  \r
+\r
+Throughout the solution you will see files with the extensions .silverlight.cs or .wpf.cs which indicate major platform differences.  \r
+Elsewhere I have used various ammounts of conditional compilation as necessary.\r
+\r
+Adapters for popular DI frameworks I have included are:\r
+Caliburn.Castle\r
+Caliburn.Spring\r
+Caliburn.StructureMap\r
+Caliburn.Unity\r
+Caliburn.Ninject\r
+Caliburn.Autofac\r
+Caliburn.MEF (technically not a DI framework)\r
+\r
+Using a DI container is not necessary, as Caliburn has a simple built-in container it uses by default.\r
+\r
+If you are using Prism, have a look at Caliburn.Prism.\r
+Unit tests for Caliburn's features can be found in Tests.Caliburn.\r
+\r
+Please see the samples folder for examples of how to use the most prominent features of Caliburn.  \r
+There are identical samples for both WPF and Silverlight.  You can also find some how to's and larger examples there.  \r
+\r
+I hope this helps you in your development of applications for WPF and Silverlight.  Enjoy!
\ No newline at end of file
diff --git a/win/C#/libraries/caliburn/System.ComponentModel.Composition.dll b/win/C#/libraries/caliburn/System.ComponentModel.Composition.dll
new file mode 100644 (file)
index 0000000..bbbae1e
Binary files /dev/null and b/win/C#/libraries/caliburn/System.ComponentModel.Composition.dll differ
diff --git a/win/C#/libraries/caliburn/Thanks.txt b/win/C#/libraries/caliburn/Thanks.txt
new file mode 100644 (file)
index 0000000..7f71907
--- /dev/null
@@ -0,0 +1,20 @@
+Many thanks to all those whose code, blogs etc. inspired me or helped to solve some of the difficult problems.  \r
+Special thanks to (in no particular order):\r
+\r
+Contributors\r
+Marco Amendola - http://marcoamendola.wordpress.com/\r
+Ryan Rauh - http://rauhski.blogspot.com\r
+Michael Davis - n/a\r
+Chistopher Bennage - http://devlicio.us/blogs/christopher_bennage/default.aspx\r
+Ayende Rahien - http://www.ayende.com\r
+\r
+Inspiration\r
+Kevin Moore - http://j832.com/BagOTricks/\r
+Nick Guerrera - http://blogs.msdn.com/nicholg/archive/2006/06/04/617466.aspx\r
+Jeremy Miller - http://codebetter.com/blogs/jeremy.miller/archive/2007/07/25/the-build-your-own-cab-series-table-of-contents.aspx\r
+John Gossman - http://blogs.msdn.com/johngossman/archive/2005/10/08/478683.aspx\r
+Dan Crevier - http://blogs.msdn.com/dancre/archive/tags/DM-V-VM/default.aspx\r
+Brownie Points - http://mbrownchicago.spaces.live.com/Blog/cns!2221DC39E0C749A4!596.entry\r
+Kevin Hoffman - http://dotnetaddict.dotnetdevelopersjournal.com/read/poster/87984.htm\r
+\r
+I hope you find this framework useful or inspiring for solving the problems in your own work.
\ No newline at end of file