Radical Presentation 1.x to Radical 2.x for .NET Core
Last updated
Last updated
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.
The 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 .
New XML namespaces have been defined, the following is the list of the new namespaces:
http://schemas.radicalframework.com/windows/behaviors
http://schemas.radicalframework.com/windows/input
http://schemas.radicalframework.com/windows
http://schemas.radicalframework.com/windows/converters
http://schemas.radicalframework.com/windows/controls
http://schemas.radicalframework.com/windows/effects
http://schemas.radicalframework.com/windows/markup
http://schemas.radicalframework.com/windows/regions
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
supportThe IMessage
interface has been removed, message broker supports only POCO messages in V2.
IEntityView
custom propertiesEntity view AddPropertyMapping
has been renamed to AddCustomProperty
, RemovePropertyMapping
to RemoveCustomProperty
, and IsPropertyMappingDefined
to IsCustomPropertyDefined
XML namespace definition http://schemas.topics.it/wpf/radical/windows/presentation/regions
changed to http://schemas.topics.it/wpf/radical/windows/regions
.
XML namespace definition http://schemas.topics.it/wpf/radical/windows/presentation/behaviors
changed to http://schemas.topics.it/wpf/radical/windows/behaviors
.
EntityValidationService<T>
has been removed in favor of DataAnnotationValidationService<T>
.
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 AbstractViewModel
and AbstractMementoViewModel
. Use the new protected ValidationService
property to set the current validation service instance.
Radical.Windows.Presentation
namespace has been merged into Radical.Windows
.
the Topics
namespace prefix has been dropped, the new root namesapce is Radical
.
WpfDispatcher
type has been made internal.
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)
Create appsettings.json
and copy the needed settings from app.config
Delete app.config
If AssemblyInfo.cs
contains information that need to be migrated:
Rename AssemblyInfo.cs
to AssemblyInfo.old.cs
Copy AssemblyInfo.old.cs
to the root of the project
Delete the Properties
folder
Copy AssemblyInfo.cs
from the project created on step 1 to the root project folder
If needed copy information from AssemblyInfo.old.cs
to AssemblyInfo.cs
and delete AssemblyInfo.old.cs
Add all the NuGet references a PackageReference
to the new project:
Take note of the NuGet references from the packages.config
file
Add the needed references from NuGet
Delete packages.config
file
"Find and Replace":
using Topics.Radical
-> using Radical
using Radical.Windows.Presentation.ComponentModel
-> using Radical.Windows.ComponentModel
using Radical.Windows.Presentation.Messaging
-> using Radical.Windows.Messaging
http://schemas.topics.it/wpf/radical/
-> http://schemas.radicalframework.com/
http://schemas.microsoft.com/expression/2010/interactivity
-> http://schemas.microsoft.com/xaml/behaviors
Broadcast(new CloseViewRequest(this))
-> Broadcast(this, new CloseViewRequest(this))
"Find and Remove"
http://schemas.radicalframework.com/windows/presentation/behaviors
(behaviors are now in http://schemas.radicalframework.com/windows/behaviors
)
using Radical.Windows.Presentation.Boot;
Look at all the obsolete warnings and adjust code as necessary
The type Fact
has been removed. supports boolean properties and regular property changed notifications.
The RadicalWpfApplication
type has been removed. If a DoEvents
-like implementation is really needed original code can be copy/pasted from .
Application configuration was previously part of the ApplicationBootstrapper
class. Configuration options have been moved to the BootstrapConfiguration
class. To customize the Radical application behavior through the BootstrapConfiguration
class use the following AddRadicalApplication
overload: AddRadicalApplication( config => { ... })
. For more information refer to the section.
The AutoComplete behavior has been removed. To replace it, a sample demonstrating how to integrate with a third-party library is available in the .
are supported via generic host support.
Custom IoC registrations require the creation of a .