Release Notes - Catel - Version 4.0.0 - HTML format

Technical task

  • [CTL-379] - Cannot comment or update issues after creation

Bug

  • [CTL-324] - Catel async await command in ShowDialog - Deadlock
  • [CTL-327] - ListCollectionView not supported in ChangeNotificationWrapper
  • [CTL-329] - VisualStateManager doesn't change state in WP8 in UserControl
  • [CTL-330] - ViewModel gets unloaded before View
  • [CTL-331] - Validation errors
  • [CTL-332] - StackoverflowException after upgrade to Catel 3.9
  • [CTL-335] - Minus sign not working in Catel:NumericTextBox Is NegativeAllowed="True"
  • [CTL-336] - TextBox behavior not accepting minus sign
  • [CTL-338] - ViewModelManager gets double instance when it is injected before any ViewModel is used
  • [CTL-339] - Serialization problem with protected properties
  • [CTL-341] - Stackoverflow Exception while configuring Service Locator Container.
  • [CTL-345] - Catel.Fody.ExposeAttribute malfunction ?
  • [CTL-346] - WP8: NavigationContext in ViewModel is empty
  • [CTL-347] - WP8: View is empty after Deactivation/Activation
  • [CTL-349] - Validation errors, reopen
  • [CTL-351] - CommandManager throws NullReferenceException on KeyDown
  • [CTL-355] - LanguageBindings do not refresh after changing PreferredCulture in DbLanguageService
  • [CTL-356] - (Multi)ValueConverter should return DependencyProperty.UnsetValue
  • [CTL-357] - NavigationContext is empty in Silverlight
  • [CTL-361] - XmlSerialization of ICollection<IInterface>
  • [CTL-363] - Serialize ModelBase in SerializationManager when IsSerializable is false
  • [CTL-364] - DbContextExtensions.GetEntitySet throws InvalidCastException in EF6
  • [CTL-366] - Exception raised by Catel.Core when using ICollectionView
  • [CTL-368] - XmlSerializer does not correctly serialize ICollection<AbstractClass>
  • [CTL-369] - Catel should ignore resetting of LeanAndMeanModel during serialization
  • [CTL-371] - HideValidationResults must also hide HasErrors and HasWarnings
  • [CTL-373] - Catel performance
  • [CTL-375] - ViewModelBase as DesignInstance
  • [CTL-376] - CancelViewModel raise System.InvalidOperationException
  • [CTL-377] - Validation Summary doesn't go away when record removed from collection
  • [CTL-378] - Catel PleaseWaitHelper doesn't work in WinForms
  • [CTL-380] - EventToCommand stopped working after upgrading from 3.8.1 to 3.9
  • [CTL-381] - LanguageService.GetResourceManager() method retrieves wrong assembly and therefor cannot find resource
  • [CTL-384] - WarningAndErrorValidator should hide ValidationAdorner
  • [CTL-385] - XmlAttribute values are not respected without explicit name
  • [CTL-386] - CollectionView Property throws Exception
  • [CTL-395] - IValidationSummary property is null and this prevents command execution in case there are no errors
  • [CTL-396] - ConfigurationService in .NET doesn't save modified settings
  • [CTL-399] - Missing strong signing on Catel.Fody.Attributes
  • [CTL-405] - NPE when initializing TextBox with AutoCompletionBehavior
  • [CTL-407] - LIstBox SelectedEntry loosing its binding.
  • [CTL-408] - Catel instantiating multiple viewmodels
  • [CTL-418] - ConsoleLogListener doesn't reset colors after logging
  • [CTL-420] - Catel.MVVM.IAuthenticationProvider not registered after port from Catel 3.9 to 4.0 beta
  • [CTL-421] - UserControl doesn't refresh on DataContextChanged when used as data template
  • [CTL-422] - ViewLoadedManager does not release strong reference to views
  • [CTL-424] - CompilerGenerated attribute not available in WP 8.1 (RT)
  • [CTL-425] - Model "editing" management appears to be in the wrong order
  • [CTL-429] - Call to StyleHelper.CreateStyleForwardersForDefaultStyles(); leads to exception
  • [CTL-431] - Catel.ReSharper gives 404 when installing via plugin manager
  • [CTL-433] - WindowBehavior and InfoBarMessageControl can't find System.Core version 2.0.5.0
  • [CTL-437] - Possible deadlock in ServiceLocator.ResolveType
  • [CTL-439] - Catch up of property validation validates the same propery multiple times
  • [CTL-441] - Behaviors lost when switching tabs of AvalonDock
  • [CTL-443] - PleaseWaitService Displays "Please wait" instead of the message
  • [CTL-447] - TabControl LoadItems="AllOnStartup" not working
  • [CTL-448] - GetExeConfiguration infinite Loop
  • [CTL-450] - TabControl breaking change from 3.9 to 4.0
  • [CTL-462] - Memory Leaks using Languange Binding
  • [CTL-463] - Its not possible to register a CustomViewModelFactory
  • [CTL-464] - UIVisualizerService does not work in latest builds
  • [CTL-465] - DebugLogListener SL throws InvalidOperationException on disabled html bridge
  • [CTL-467] - Async MessageService does not show MessageBox (Task gets never started)
  • [CTL-471] - Viewmodel are closed at startup and build again
  • [CTL-472] - Catel.Fody Sequence contains no elements error
  • [CTL-475] - ServiceLocatorRegistrationAttribute doesn't work under .net 4.0 framework
  • [CTL-476] - Exception in BootstrapperBase.RunWithSplashScreen<>()
  • [CTL-477] - catel:LanguageBinding Display Default in Designtime
  • [CTL-478] - InfoBarMessageControl does not respect Horizontal/Vertical- (Content)Alignment
  • [CTL-480] - Memory Leaks in Catel.WeakEventListener
  • [CTL-482] - LanguagService not searching for Parent
  • [CTL-487] - TypeHelper doesn't always return the right typename / assemblyname
  • [CTL-491] - SplashScreenService must be changed due to changes/improvements to the UIVisualizerService
  • [CTL-492] - SplashScreenService Exception
  • [CTL-494] - Close Window
  • [CTL-495] - redundant code in OnViewModelClosed
  • [CTL-496] - <catel:UserControlBehavior does not work with UserControl
  • [CTL-504] - Catel.Fody GenerateXmlSchema and WeaveProperties Bug
  • [CTL-510] - Cannot implement IServiceLocator
  • [CTL-512] - Closing a window via CloseViewModel in the view model does not work
  • [CTL-514] - Property of a ViewModel is shared across instances
  • [CTL-517] - NullReferenceException in TraceOutputControl
  • [CTL-519] - Reference errors. Microsoft.Bcl
  • [CTL-521] - EntityRepositoryBase throws InvalidOperationException
  • [CTL-522] - On exception within constructor of type created with TypeFacotry, information about lines with exception is lost
  • [CTL-527] - ModelAttribute.SupportIEditableObject has no effect
  • [CTL-529] - ViewModel should invalidate Command and CanExecute when child view model property changes
  • [CTL-532] - Project will not build with latest Prism and EF6 extensions
  • [CTL-533] - ViewModel construction problem
  • [CTL-534] - Get ViewModel data after ShowDialog
  • [CTL-536] - Problem with EventToCommand
  • [CTL-539] - Unhandled exception PropertyNotRegisteredException thrown with using ViewModelToModel with property rename when set model to null
  • [CTL-543] - App crash on startup with CLR Assert Failure - mscorlib recursive resource lookup bug ReflectionTypeLoad_LoadFailed
  • [CTL-547] - ViewModel does not close when using UIVisualiser.Show()
  • [CTL-548] - LanguageBinding not working on Devexpress.LayoutControl with HeaderTemplate
  • [CTL-581] - Does not start OnStartup
  • [CTL-585] - Microsoft.Xaml.Interactivity not found
  • [CTL-586] - Use of undefined keyword value 1 for event TaskScheduled.
  • [CTL-607] - Silverlight: Operation not permitted Exception

New Feature

  • [CTL-304] - Add CatelR# support for R#8.1
  • [CTL-358] - Add support for XmlRoot in serialization routine
  • [CTL-387] - AutoComplete service and behavior
  • [CTL-505] - Allow to stamp LogEntries with date time
  • [CTL-508] - Add SeqLogListener
  • [CTL-509] - Add EventLogListener
  • [CTL-572] - Global Application Shortcut Keys

Task

  • [CTL-9] - Implement IMessageService for WinRT
  • [CTL-12] - .net 4.5 async methods
  • [CTL-17] - Create a getting started section in the docs
  • [CTL-290] - Create IUICompositionService
  • [CTL-309] - Move services to Catel.Services namespace
  • [CTL-323] - ApiCop to ensure correct usage of the API during development
  • [CTL-325] - Update description of all nuget packages
  • [CTL-328] - Investigate Xamarin support of Catel.MVVM
  • [CTL-360] - LanguageBinding does not work in Designer
  • [CTL-372] - IModelEditor interface which allows public SetValue / GetValue
  • [CTL-389] - Support MVC 5 (5.1.1) and update MVC 4 to 4.0.30506
  • [CTL-390] - Updated CSLA to 4.5.501
  • [CTL-391] - Update FluentValidation to 5.1.0.0
  • [CTL-392] - Update Entity Framework to 6.1.0
  • [CTL-393] - Automatically load themes when DataWindow / Control is used
  • [CTL-404] - Documentation not changed from EntityFramework5 extension.
  • [CTL-406] - Support Windows Phone 8.1
  • [CTL-411] - Allow source linking as alternative to symbolsource.org
  • [CTL-419] - Change license to MIT
  • [CTL-446] - Create InteractivityManager to allow events when behaviors are created
  • [CTL-449] - Convert all methods in the IMessageService to async
  • [CTL-451] - Convert IUIVisualizerService to async implementation
  • [CTL-457] - Bring back support for PCL for the core
  • [CTL-458] - Remove usage of ICloneable
  • [CTL-459] - Add AutoScroll behavior
  • [CTL-460] - Improve TraceOutputControl so it uses Catel logging system
  • [CTL-484] - Use NUnit for unit tests
  • [CTL-485] - Create RollingInMemoryLogListener to be able to query the latest log messages
  • [CTL-486] - Add time to logging events
  • [CTL-488] - Convert IViewModel interface to support full async
  • [CTL-489] - Allow property unregistration via ModelBase.UnregisterProperty
  • [CTL-511] - Add PlatformToBooleanConverter to know which platform is being used
  • [CTL-515] - Implement validation members explicitly on ModelBase so clean up most rarely used members
  • [CTL-523] - The GetTypeFactory() method cannot be found
  • [CTL-552] - Create catel:Window that derives from DataWindow with a customized features

Improvement

  • [CTL-326] - Do not validate non-public properties via data annotations
  • [CTL-333] - IExceptionService.ProcessAsync for NET40
  • [CTL-334] - ViewModelBase should respect SuspendValidation
  • [CTL-337] - Allow UserControlLogic to be used on ContentControl in WPF
  • [CTL-340] - LogManager IsCatelEnabled
  • [CTL-342] - DebugLogListener SL also write message to System.Diagnostics.Debug
  • [CTL-343] - Improve logging performance
  • [CTL-344] - Rename Environment to CatelEnvironment
  • [CTL-348] - Make timer period of automatic checking for expired items settable
  • [CTL-350] - TypeCache initialize perfomance
  • [CTL-352] - Allow Actions to be registered on the CommandManager
  • [CTL-353] - Add generic overloads for UIVisualizerService.Show and ShowDialog
  • [CTL-354] - Introduce UnloadBehavior to UserControl
  • [CTL-359] - Improve performance on DependencyObjectExtensions.FindLogicalOrVisualAncestor
  • [CTL-362] - Cache result of GetSerializableMembers in SerializerBase
  • [CTL-365] - Allow printing of views that are hidden without focus with ViewExportService
  • [CTL-367] - Add LogExtensions.LogProductInfo and LogExtensions.LogDeviceInfo
  • [CTL-370] - Add colors to ConsoleLogListener
  • [CTL-374] - SplashScreenService exception handling
  • [CTL-382] - Improve performance of StyleHelper
  • [CTL-383] - Support COM objects in TypeFactory
  • [CTL-388] - Allow customization of assembly used for logging
  • [CTL-397] - Invalidate CommandManagerBindings when command is registered
  • [CTL-400] - Don't handle errors in CommandManager when designer is attached
  • [CTL-402] - Trymethods for IDependencyResolver and IServiceLocator
  • [CTL-410] - Add SingleUnloadOthers to TabControl so only a single view model lives in a tabcontrol
  • [CTL-413] - Make Clone virtual
  • [CTL-416] - BindingHelper.cs contains wrong condition
  • [CTL-426] - DataWindow should automatically use application icon if no icon specified
  • [CTL-430] - Improve InfoBarMessageControl to allow easy styling in a DataWindow
  • [CTL-432] - ApiCop missing in Catel.Core assembly
  • [CTL-436] - Add generic ICatelCommand
  • [CTL-440] - Support nested view models (parent / child relations) when views are in ContentPresenter
  • [CTL-444] - Remove Activator.CreateInstance from TypeFactory
  • [CTL-445] - Support command parameters with application-wide commands
  • [CTL-452] - Make it simple to use Catel on 3rd party controls
  • [CTL-453] - Remove CommandManager code from Command
  • [CTL-454] - Remove the RemoveInstance methods from the IServiceLocator interface
  • [CTL-456] - Allow DoubleClickToCommand timeout specific and default to 500ms
  • [CTL-461] - Change default value of CompositeCommand.AllowPartialExecution to false
  • [CTL-466] - Catel and Microsoft Fakes does not work because of reflection on explicit interface properties
  • [CTL-468] - Weave LogManager.GetCurrentClassLogger() into LogManager.GetLogger(typeof(classname))
  • [CTL-469] - Add async methods to the ICacheStorage
  • [CTL-470] - Naming conventions should not strip multiple postfixes
  • [CTL-473] - Improve the way loaded views are handled
  • [CTL-479] - Make IDataErrorInfo/IDataWarningInfo methods customizable in ModelBase
  • [CTL-481] - Share lock for ServiceLocator / TypeFactory / DependencyResolver
  • [CTL-483] - UIVisualizerService improvements
  • [CTL-490] - Remove parameters from BehaviorBase.OnAssociatedObjectLoaded
  • [CTL-497] - Support FrameworkContentElement just as FrameworkElement in Catel LanguageBinding
  • [CTL-499] - Support obfuscation of LogManager calls
  • [CTL-502] - Entity Framework - Create DynamicProxies from context
  • [CTL-506] - BatchLogListenerBase.WriteBatch should be async
  • [CTL-507] - Use FastViewPropertySelector as default for major performance boost
  • [CTL-513] - FileLogListener should create directory if it doesn't exist
  • [CTL-518] - Make Initialize Model notification
  • [CTL-524] - Allow dynamic configuration for NET implementation of IConfigurationService
  • [CTL-526] - Weave Argument.IsNotNull(() => value) to Argument.IsNotNull("value", value)
  • [CTL-530] - Improve TypeCache so it can return array types

The text area below allows the project release notes to be copied to another document.