Mythetech.Framework
Interactive Examples
Check out the Storybook for interactive component demos.
What is Mythetech.Framework?
Mythetech.Framework is a collection of reusable Blazor components, infrastructure services, and platform abstractions that extend MudBlazor functionality. It provides everything you need to build cross-platform desktop and web applications.
Key Features
- Custom Components — Extend MudBlazor with additional UI components
- MessageBus — In-memory publish-subscribe and request-response messaging
- Plugin Framework — Dynamic extensibility with component discovery
- Settings Framework — UI editor discovery and persistence
- MCP Integration — Expose application functionality as AI-callable tools
- Cross-Platform — Support for desktop (via Hermes/Photino) and WebAssembly
Architecture
┌─────────────────────────────────────────────────────────────────────┐
│ Host Application │
├─────────────────────────────────────────────────────────────────────┤
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ ┌────────────┐ │
│ │ MudBlazor │ │ MessageBus │ │ Plugins │ │ MCP │ │
│ │ Components │ │ Pub/Sub │ │ Framework │ │ Tools │ │
│ └─────────────┘ └─────────────┘ └─────────────┘ └────────────┘ │
├─────────────────────────────────────────────────────────────────────┤
│ Platform Abstractions │
│ ┌─────────────────────────────────────────────────────────────┐ │
│ │ ILinkOpenService │ IFileOperations │ IPluginStorage │ │
│ └─────────────────────────────────────────────────────────────┘ │
├─────────────────────────────────────────────────────────────────────┤
│ Platform Implementations │
│ ┌────────────────────┐ ┌────────────────────────────┐ │
│ │ Desktop (Hermes) │ │ WebAssembly │ │
│ │ - LiteDB Storage │ │ - localStorage Storage │ │
│ │ - File Dialogs │ │ - WASM File Access │ │
│ └────────────────────┘ └────────────────────────────┘ │
└─────────────────────────────────────────────────────────────────────┘Installation
bash
# Core framework
dotnet add package Mythetech.Framework
# Desktop-specific (optional)
dotnet add package Mythetech.Framework.Desktop
# WebAssembly-specific (optional)
dotnet add package Mythetech.Framework.WebAssemblyQuick Start
csharp
// Program.cs
using Mythetech.Framework;
var builder = WebApplication.CreateBuilder(args);
// Add MudBlazor and Framework services
builder.Services.AddMudServices();
builder.Services.AddMessageBus();
builder.Services.AddPluginFramework();
builder.Services.AddMcp(options =>
{
options.ServerName = "MyApp";
options.ServerVersion = "1.0.0";
});
var app = builder.Build();
// Initialize services
app.Services.UseMessageBus();
app.Services.UseMcp();
await app.Services.UsePluginsAsync("plugins");
app.Run();Documentation
Infrastructure
- MessageBus — Decoupled messaging between components
- Plugins — Dynamic extensibility system
- MCP — AI tool exposure framework
Reference
- Storybook — Interactive component demos
- Platform Differences — Desktop vs WebAssembly
Platform Support
| Feature | Desktop | WebAssembly |
|---|---|---|
| UI Components | ✅ | ✅ |
| MessageBus | ✅ | ✅ |
| Plugins (Dynamic Load) | ✅ | ❌ |
| Plugins (Static Ref) | ✅ | ✅ |
| MCP Tools | ✅ | ✅ |
| MCP stdio Transport | ✅ | ❌ |
| Persistent Storage | LiteDB | localStorage |
| File Dialogs | ✅ | Via WASM API |
Source Code
Visit the Framework GitHub Repository for source code and contributions.
