Stylet/CHANGELOG.txt

248 lines
8.4 KiB
Plaintext

Stylet Changelog
================
v1.1.15
-------
- Fix re-entrancy issue in the EventAggregator, if you publish events from within an event handler
- Improve Stylet.Start package
v1.1.14
-------
- Fix bug where ViewManager wouldn't search multiple assemblies for Views
- ViewManager searches the assembly containing the ViewModel by default
- Throw (by default) if StyletIoC's ToAllImplementations() doesn't find any implementations
- Fix typo DesignMode sample
v1.1.13
-------
- Catch possible failure inside IconToBitmapSourceConverter
- Fix access modifier on BootstrapperBase.Launch
v1.1.12
-------
- Dispose the RootViewModel on application shutdown (if it's `IDisposable`)
- Rework how `ViewManager` configuration is handled: makes it easier to add a custom ViewManager subclass
- Fix Samples projects
v1.1.11
-------
- Allow an Initial Activate after a Close
v1.1.10
-------
- Fix `Stylet.Start`
v1.1.9
------
- Add a `Stylet.Start` NuGet package, which creates a skeleton project
- Fix samples
v1.1.8
------
- Fix bug where Actions could complain that no suitable method was found, when using `s:View.ActionTarget`
- Remove the Initial screen state. Screens are started on Deactivated
- Allow the ViewManager to be configured, including supporting Views and ViewModels in different namespaces and customizing the 'View' and 'ViewModel' suffixes
- Actions try harder to find a suitable ViewModel, in the case of things like KeyBindings and ContextMenus
- StyletIoC: Allow multiple services to be bound to the same registration (useful for having a single singleton instance used for two interfaces, for example)
v1.1.7
------
- Fix issue where OnInitialActivate may not be invoked if Screen was deactivated before being activated
- Action s:Action to be instantiated with zero parameters
- Make Stylet more modular by removing dependency on Application.Current from WindowManager, and View.ViewManager static property
v1.1.6
------
- s:Action supports a wider range of events (including KeyDown)
- Display a clearer message if the user tries to display a Window using s:View.Model
v1.1.5
------
- Improve memory usage in StyletIoC
- Avoid potential small memory leak in MessageBoxView
- Improve Stylet.Samples.Validation
v1.1.4
------
- Add support for DepencencyPropertyChangedEventHandler to Actions
- Add OnStateChanged hook to Screen
- Re-arrange ViewManager slightly to make it easier to override
- Make the MessageBox display properly with multi-line content and an icon
- WindowManager stes window title if it's the same as the window name (which is the default, set by the VS template)
- Add InverseInstance to BoolToVisibilityConverter
v1.1.3
------
- Fix issue where actions may not fire. Rare case caused by fix from v1.1.2.
v1.1.2
------
- Avoid potential memory leak caused CommandAction and EventAction using DependencyPropertyDescriptor.AddValueChanged
- StyletIoC registers IContainer with the builder by default
v1.1.1
------
- WindowManager.ShowWindow/ShowDialog won't create a new View for the ViewModel if one is already attached
- Add DisposeChildren to IConductor
- Improve error message when WindowManager.ShowWindow/ShowDialog is used to show something that isn't a Window
- Minor semantic fixes and code coverage improvements
v1.1.0
------
- Backwards-incompatible changes to Bootstrapper: Configure is now called *after* ConfigureIoC, OnStart came before ConfigureIoC, and OnLaunch now happens after Launch
- Screen now uses a property enum-based state machine to manage state. IActivate, IDeactivate and IClose have all been rolled into IScreenState
- Fix incorrect use of WeakEventManager in ScreenExtensions: ConductWith won't have been working properly
- Set WindowStartupLocation to CenterOwner if the user hasn't set it themselves
- WindowManager does not set the Title binding (to DisplayName) if it's been set by the user
- Actions throw on execute if ActionTarget hasn't changed from the default. This catches an edge-case where Actions are used inside something like a ContextMenu which breaks the visual tree
-
v1.0.7
------
- Expand IViewManager to add other useful stuff, which ViewManager did anyway
- Conductors now optionally dispose their children, and the WindowManager never does. This is to handle ViewModels which are displayed multiple times e.g. as dialogs
- Conductors now ensure new children are either activated or deactivated. This is to handle child ViewModels which may have been closed previously
- Make BootstrapperBase non-generic, instead having an abstract RootViewModel property. This makes it more flexible.
- Handle null/empty property name in ValidatingModelBase.ValidatePropertyAsync
v1.0.6
------
- Actions can handle attached events
v1.0.5
------
- Code analysis improvements (StyleCop and ReSharper)
- Work around error when showing multiple dialogs after main window has been closed
- Actions unwrap TargetInvocationException, showing the user the actual exception and stack trace
- Accept any (reasonable) event signature for event Actions, not just RoutedEventHandler
- Bootstrapper disposes its container on exit
v1.0.4
------
- Allow IModelValidator to return an IEnumerable<string> rather than a string[]
- Fix up BindableCollection to be thread-safe
- View name resolution is now a bit smarter
- Add design time support
- Add design time sample
- Add sample bootstrapper which does not use an IoC container
- Execute.OnXXX is synchronous by default in unit tests and design time: Execute.TestExecuteSynchronously has been removed
v1.0.3
------
- Remove LambdaComparer and LambdaEqualityComparer - they don't really have a place in a UI framework
- Have different default PropertyChanged and CollectionChanged dispatchers
v1.0.2
------
- Move back to separate arguments for ShowMessageBox - this is more consistent with MessageBox.Show
- ViewManager now accepts an IViewManagerConfig (implemented by BootstrapperBase), which simplifies the IoC container setup
- Add an overridable CanClose() method to screen (called by the CanCloseAsync version by default). This means screens don't have to deal with tasks if they're fully synchronous
v1.0.1
------
- Remove the IoC static service locator. It's no longer needed internally, and I don't want to encourage such bad behaviour. You can write your own easily if you need - see the docs
- Remove the static AssemblySource class, instead using a collection stored on the Bootstrapper
- Add Bootstrappers projects, with sample bootstrappers for a range of IoC containers
- Remove extension methods on IContainer, instead putting them in the interface. This means people don't have to have 'using StyletIoC' in order to see the methods they want to use
v1.0.0
------
- Logging improvements
- ViewManager improvements
- Revamp how the bootloader is added to the Application - it's a lot cleaner now
- Conductors will dispose their children if they're IDisposable
- StyletIoC updates: automatic Func registrations, refactoring, bug fixes, instance binding
v0.9.11
-------
- Add Execute.PostToUIThreadAsync
- Rename ILogger and LogManager to not conflict in projects also using NLog
v0.9.10
-------
- Add the concept of Channels to the EventAggregator
- Remove the WeakEventManager (as it was too complex), and replace with an easier to use (but less powerful) implementation
- Simplify IViewManager
- Add logging to important parts of Stylet
- Fix bug where Actions could throw exceptions when they shouldn't
v0.9.9
------
- Fix bug where Stylet would launch before resources were loaded
v0.9.8
------
- Fix bug with symbols package
v0.9.7
------
- Add ValidatingModelBase
- Increase code coverage to > 99%
- Add MessageBox implementation
- Generate XML documentation
- Misc tweaks and fixes
v0.9.6
------
- Fix bug when starting the bootloader
v0.9.5
------
- Add StyletConductorItemsControl style, for using an ItemsControl with a Conductor<T>.Collection.AllActive
- Make Execute.OnUIThread synchronous, and add BeginOnUIThread (asynchronous)
- Rename conductors. It's now Conductor<T>.Collection.xxx not Conductor<T>.Collections.xxx
v0.9.4
------
- Fix BindableCollection issues
- ActionExtension has configurable behaviour if target/action are null/not found
- ActionExtension works with things like Hyperlinks
- Misc tweaks and fixes
v0.9.3
------
- Fix bootstrapper issues
v0.9.2
------
- Remove debugging from install.ps1 which shouldn't have been there.
v0.9.1
------
Initial release