NuGet Package Distribution

NuGet Package Distribution

NuGet Package Distribution

The Matrix Middleware Framework’s WPF components are distributed via NuGet to facilitate easy integration into .NET applications.

Package Structure

Matrix.WPF/
├── lib/
│   ├── net6.0-windows/
│   │   ├── Matrix.WPF.dll
│   │   └── Matrix.WPF.xml
│   └── net7.0-windows/
│       ├── Matrix.WPF.dll
│       └── Matrix.WPF.xml
├── content/
│   └── Themes/
│       └── Generic.xaml
└── tools/
    └── install.ps1

Package Configuration

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <PackageId>Matrix.WPF</PackageId>
    <Version>1.0.0</Version>
    <Authors>Matrix Team</Authors>
    <Description>WPF components for the Matrix Middleware Framework</Description>
    <TargetFrameworks>net6.0-windows;net7.0-windows</TargetFrameworks>
    <UseWPF>true</UseWPF>
    <GenerateDocumentationFile>true</GenerateDocumentationFile>
  </PropertyGroup>
  
  <ItemGroup>
    <None Include="content/**" Pack="true" PackagePath="content" />
    <None Include="tools/**" Pack="true" PackagePath="tools" />
  </ItemGroup>
</Project>

Installation

Install-Package Matrix.WPF

Usage in Projects

<!-- App.xaml -->
<Application.Resources>
    <ResourceDictionary>
        <ResourceDictionary.MergedDictionaries>
            <ResourceDictionary Source="pack://application:,,,/Matrix.WPF;component/Themes/Generic.xaml"/>
        </ResourceDictionary.MergedDictionaries>
    </ResourceDictionary>
</Application.Resources>

Components Included

  1. Layout Panels

    • TreePanel
    • HeapPanel
    • GraphPanel
  2. Controls

    • TaskComponent
    • NodeComponent
    • ConnectionComponent
  3. Attached Properties

    • RoutingProperties
    • GeometryProperties
    • MetadataProperties

Dependencies

  • .NET 6.0/7.0 Windows Desktop Runtime
  • WPF Framework

Best Practices

  1. Version Management

    • Follow semantic versioning
    • Maintain backwards compatibility
    • Document breaking changes
  2. Documentation

    • Include XML documentation
    • Provide usage examples
    • Document dependencies
  3. Distribution

    • Use CI/CD for package publishing
    • Sign packages for security
    • Include source link support