Starting with V2 radical Framework supports only .NET Core 3, the
Radical package targets
netstandard2.0 and the
Radical.Windows package targets
netcoreapp3.0. WPF .NET Framework (what is generally referred as full framework) projects are not supported.
Radical.Windows.Presentation package has been merged into
Radical.Windows and by default the default IoC container provided by
Microsoft.Extensions.DependencyInjection will be used. V2.0.0 supports external DI/IoC containers via generic host support.
New XML namespaces have been defined, the following is the list of the new namespaces:
The existing XML namespaces, starting with
http://schemas.topics.it/wpf/radical/*, can still be used but should be considered as obsolete and will be removed in V3.
IMessage interface has been removed, message broker supports only POCO messages in V2.
AddPropertyMapping has been renamed to
XML namespace definition
http://schemas.topics.it/wpf/radical/windows/presentation/regions changed to
XML namespace definition
http://schemas.topics.it/wpf/radical/windows/presentation/behaviors changed to
Fact has been removed.
AutoCommandBinding supports boolean properties and regular property changed notifications.
RadicalWpfApplication type has been removed. If a
DoEvents-like implementation is really needed original code can be copy/pasted from GitHub commits history.
EntityValidationService<T> has been removed in favor of
ApplicationBootstrapper has been obsoleted in favor of the new
AddRadicalApplication<TMainView>() extension method.
All virtual members are now sealed.
It will be removed in v3.
GetValidationService() has been removed from
AbstractMementoViewModel. Use the new protected
ValidationService property to set the current validation service instance.
Radical.Windows.Presentation namespace has been merged into
Topics namespace prefix has been dropped, the new root namesapce is
WpfDispatcher type has been made internal.
The AutoComplete behavior has been removed. To replace it, a sample demonstrating how to integrate with a third-party library is available in the autocomplete sample folder.
External IoC containers are supported via generic host support.
Custom IoC registrations require the creation of a dependency installer.
Services override is not supported anymore. In 1.x it was possible to override an existing radical default service by registering a custom one in the IoC container of choice. The feature wil be reintroduced in a future minor release along with support for external IoC containers
Create a new .NET Core 3 WPF project with the same name of the project you want to migrate
Replace the .NET Framework
csproj file with the file of the project created at step 1 (the .NET Core project automatically adds all the files found in the current folder of the project, no manual changes are needed)
AssemblyInfo.cs contains information that need to be migrated:
AssemblyInfo.old.cs to the root of the project
AssemblyInfo.cs from the project created on step 1 to the root project folder
If needed copy information from
AssemblyInfo.cs and delete
Add all the NuGet references a
PackageReference to the new project:
Take note of the NuGet references from the
Add the needed references from NuGet
"Find and Replace":
using Topics.Radical ->
Look at all the obsolete warnings and adjust code as necessary