Mythetech.Framework.WebAssembly 0.15.0

dotnet add package Mythetech.Framework.WebAssembly --version 0.15.0
                    
NuGet\Install-Package Mythetech.Framework.WebAssembly -Version 0.15.0
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Mythetech.Framework.WebAssembly" Version="0.15.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Mythetech.Framework.WebAssembly" Version="0.15.0" />
                    
Directory.Packages.props
<PackageReference Include="Mythetech.Framework.WebAssembly" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Mythetech.Framework.WebAssembly --version 0.15.0
                    
#r "nuget: Mythetech.Framework.WebAssembly, 0.15.0"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Mythetech.Framework.WebAssembly@0.15.0
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Mythetech.Framework.WebAssembly&version=0.15.0
                    
Install as a Cake Addin
#tool nuget:?package=Mythetech.Framework.WebAssembly&version=0.15.0
                    
Install as a Cake Tool

PR Tests Deploy Component Storybook

NuGet Version NuGet Version NuGet Version NuGet Version

    ______                                             __  
   / ____/________ _____ ___  ___ _      ______  _____/ /__
  / /_  / ___/ __ `/ __ `__ \/ _ \ | /| / / __ \/ ___/ //_/
 / __/ / /  / /_/ / / / / / /  __/ |/ |/ / /_/ / /  / ,<   
/_/   /_/   \__,_/_/ /_/ /_/\___/|__/|__/\____/_/  /_/|_|  
                                                           

Mythetech.Framework

A collection of reusable Blazor components and abstractions to help build cross platform rich application experiences for desktop and web in blazor.

Overview

This repository contains a set of custom Blazor components that extend the functionality of MudBlazor, providing a consistent and reusable component library for Mythetech applications. The components are designed to be modular, maintainable, and follow best practices for Blazor development.

The repository also contains abstractions for functionality to work generically with blazor applications acknowledging the behavior for some interactions is broadly different across runtime environments, like desktop in a webview versus natively in WebAssembly in the browser.

Storybook Demo

The component library leverages BlazingStory to create a visual storybook of components shipped in the library, with wrappings to provide product-themed previews and light/dark toggles.

The WebAssembly story book is hosted on github pages here: https://mythetech.github.io/Mythetech.Framework/

Features

  • Custom components to either deliver a unique experience or style
  • Built on top of MudBlazor for consistent styling, behavior, and theming system
  • CSS utility classes that work with existing MudBlazor variables
  • In-memory message bus for decoupled communication
  • Settings framework with auto-discovery and persistence
  • Extensible plugin system with storage and state management
  • AI generator integration for LLM-powered features
  • Desktop support via Hermes (recommended) or Photino
  • .NET 10.0 support
  • Comprehensive test coverage

Project Structure

  • Mythetech.Framework/ - Main component library
    • Components/ - Custom Blazor components
    • Infrastructure/ - Supporting infrastructure code and abstractions
  • Mythetech.Framework.Desktop/ - Desktop application specific implementations (Hermes and Photino hosts)
  • Mythetech.Framework.WebAssembly/ - WebAssembly specific implementations
  • Mythetech.Framework.AI.Generator/ - AI generator integration for LLM-powered features
  • Mythetech.Framework.Storybook/ - Component documentation and showcase
  • Mythetech.Framework.Test/ - Unit tests for components
  • samples/ - Sample applications demonstrating framework usage

Requirements

  • .NET 10.0 SDK
  • Editor of choice (Rider, Visual Studio 2022+, or VS Code with C# Dev Kit)

Getting Started

  1. Clone the repository
  2. Restore NuGet packages and build:
dotnet build

Usage

To use these components in your Blazor application:

  1. Add a reference to the Mythetech.Framework project
  2. Add the following to your _Imports.razor:
@using Mythetech.Framework
  1. Register the services in your Program.cs:

The component library provides a lightweight message bus for commands/events

builder.Services.AddMessageBus();

...

app.Services.UseMessageBus(typeof(Program).Assembly, typeof(IConsumer<>).Assembly);

The library has additional packages to provide concrete implementations for the underlying hosting architecture so generic components and concepts can work across discrete runtimes.

With desktop (Hermes, recommended):

builder.Services.AddDesktopServices(DesktopHost.Hermes);

...

HermesBlazorApp app = appBuilder.Build();
app.RegisterHermesProvider();

With desktop (Photino):

builder.Services.AddDesktopServices(DesktopHost.Photino);

...

PhotinoBlazorApp app = appBuilder.Build();
app.RegisterProvider(app.Services);

Development

Running Tests

dotnet test

Storybook

The project includes a Storybook implementation for component documentation and testing.

dotnet run --project Mythetech.Framework.Storybook

Contributing

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Submit a pull request

Credits

  1. MudBlazor
  2. CodeBeams MudExtensions
  3. Hermes

License

This project is licensed under the terms included in the LICENSE file.

Support

For support, please open an issue in the GitHub repository.

Product Compatible and additional computed target framework versions.
.NET net10.0 is compatible.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
0.15.0 32 4/24/2026
0.15.0-preview.12 29 4/24/2026
0.14.0 41 4/23/2026
0.14.0-preview.9 44 4/22/2026
0.14.0-preview.8 37 4/22/2026
0.13.4 107 4/17/2026
0.13.0 118 4/9/2026
0.13.0-preview.7 43 4/9/2026
0.12.0 114 4/4/2026
0.12.0-preview.6 45 4/9/2026
0.12.0-preview.5 42 4/8/2026
0.12.0-preview.4 54 4/4/2026
0.11.1 111 2/28/2026
0.11.1-preview.3 52 2/27/2026
0.11.0 114 2/3/2026
0.11.0-preview.2 58 2/3/2026
0.10.0 116 1/31/2026
0.9.1 104 1/29/2026
0.9.0 61 1/28/2026
0.8.0 77 1/21/2026
Loading failed

See CHANGELOG.md for release notes