Radical Documentation
View on GitHub
release-1
release-1
  • Home
  • Presentation
    • AbstractViewModel
    • Conventions
      • Bootstrap Conventions
      • Runtime Conventions
      • Conventions override
    • Commands and DelegateCommand
    • IViewResolver
      • Default view behaviors
      • view life cycle events
        • Callback expectations
        • notify messages
    • Message broker MVVM built-in messages
    • Application boot process demystified
      • Application shutdown
      • Singleton applications
    • AbstractMementoViewModel
      • Simple ViewModel graphs
      • Collections and complex ViewModel graphs
    • Validation and Validation Services
  • UI Composition
    • UI Composition
      • Region content lifecycle
      • TabControl region
      • Create a custom region
  • Concepts
    • Inversion of Control
      • Castle Windsor
      • Autofac
      • Unity (v2 & v3)
      • Puzzle Container
    • Entities
      • Property System
    • Messaging and Message Broker
      • POCO messages
      • Standalone message handlers
    • Observers
      • PropertyObserver
      • MementoObserver
      • BrokerObserver
  • Memento
    • Change Tracking Service
      • MementoEntity and MementoEntityCollection
      • Handling change tracking:
        • Simple model
        • Collections
        • Complex objects graph
      • Atomic operations
      • Change Tracking Service API
      • Property Metadata for the ChangeTrackingService
      • Handling collection sync
  • Behaviors
    • DataGrid Behaviors
    • Password
    • Generic routed event handler to command behavior
    • Overlay adorner
      • Busy status manager
    • TextBox behaviors:
      • Command
      • Auto select
      • DisableUndoManager
  • Markup Extensions
    • Editor binding
    • Auto Command binding
  • How to
    • Get the view of a given view model
    • Bi-directional communication between different windows/views
    • Handle the busy status during async/long running operations
    • Implement a customer improvement program
    • Manage focus
    • Create a splash screen
    • Access view model after view is closed
    • Intercept ViewModels before it's used
Powered by GitBook
On this page
  1. Concepts

Inversion of Control

PreviousCreate a custom regionNextCastle Windsor

Last updated 5 years ago

Presentation toolkit is completely based on Inversion of Control and Dependency Injection principles but does not force the end user to use any predefined IoC toolkit.

Using a IoC framework is not a requirement at all although some default services implementation relies on the IServiceProvider interface (that exists in the .net framework since v1).

Using a IoC framework is, on the other hand, highly suggested since that the benefit and simplification introduced in the application management greatly overlaps the learning curve of the introduction of the IoC container.

We currently provide out-of-the-box 2 different implementation for 2 different IoC containers:

  • : the package gives you, without any effort, all the infrastructure required to build MVVM applications based on Windsor as IoC container;

  • : at the time of this writing there are no IoC containers that supports WinRT (for Windows 8 store apps) so we decided to provide our own IoC container to get, in store apps, the same support that “desktop” IoC containers gives to desktop apps;

  • : the Nuget packages and gives you, without any effort, all the infrastructure required to build MVVM applications based on Unity as IoC container;

  • : the Nuget package gives you, without any effort, all the infrastructure required to build MVVM applications based on Autofac as IoC container;

Radical
Castle Windsor
Nuget
Radical.Windows.Presentation.CastleWindsor
Puzzle Container
Unity v2 and Unity v3
Radical.Windows.Presentation.Unity2
Radical.Windows.Presentation.Unity3
Autofac
Radical.Windows.Presentation.Autofac