Dreamine.Interfaces Ver.1.0.3
Loading...
Searching...
No Matches
Dreamine.MVVM.Interfaces

Introduction

Dreamine.MVVM.Interfaces defines the core interface contracts used across the Dreamine MVVM framework. It provides the minimal abstraction layer required for modular composition, loose coupling, and dependency-safe collaboration between higher-level packages.

This module does not provide concrete runtime behavior. Instead, it establishes the shared contracts that allow Dreamine modules such as Locators, Behaviors, Navigation, and Events to communicate without direct implementation dependencies.

Main Components

  • IViewModelResolver: Resolves ViewModel instances
  • INavigator: Defines a minimal navigation contract
  • IEventBase: Base abstraction for event messaging systems
  • Shared infrastructure contracts used by upper Dreamine modules

Key Features

  • Loose Coupling: Higher-level modules depend on contracts, not implementations
  • Architectural Boundaries: Encourages clean separation between modules
  • Replaceable Components: Allows infrastructure implementations to be swapped more easily
  • Test-Friendly Design: Supports mocking and isolated verification through interfaces
  • Framework Contract Layer: Provides the common abstraction base for the Dreamine MVVM ecosystem

Usage Example

// Resolve a ViewModel through an abstraction
var viewModel = resolver.Resolve(typeof(MainViewModel));
// Navigate through a contract-based navigator
navigator.Navigate(viewModel);

Design Goals

Dreamine.MVVM.Interfaces is designed around the following principles:

  • high-level modules depend on abstractions
  • direct implementation references should be minimized
  • architectural boundaries must remain explicit
  • contracts should remain minimal and stable
  • testability and replacement should be preserved

Package Role in Dreamine MVVM

All higher-level packages rely on these shared contracts to avoid direct coupling with concrete implementations.

Related Modules

Dreamine.MVVM.Interfaces is typically used together with:

  • Dreamine.MVVM.Core
  • Dreamine.MVVM.Locators
  • Dreamine.MVVM.ViewModels
  • Dreamine.MVVM.Wpf
  • Dreamine.MVVM.Behaviors

Requirements

  • .NET: net8.0
  • No UI dependencies

Version History

Date Version Author Description
2025-05-26 1.0.0 Jang Minsu Initial commit for Dreamine.MVVM.Interfaces
2025-05-26 1.0.1 Jang Minsu Started versioning from 1.0.1 due to existing NuGet.org lock on 1.0.0
2025-05-26 1.0.2 Jang Minsu Updated package metadata for Dreamine.MVVM.Interfaces
2025-06-01 1.0.3 Jang Minsu Added ViewModel auto-binding support and Navigator/Region-related interface expansion
2026-03-09 1.0.3 Jang Minsu Initialized documentation structure
2026-03-15 1.0.3 Jang Minsu Cleaned up unused using directives and minor source maintenance

License

MIT License

Contact

Organization: Dreamine