You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
@@ -16,22 +16,26 @@ A Model-View-Update (MVU) pattern implementation for Blazor.
16
16
17
17
---
18
18
19
-
## 📝 Table of Contents
20
-
21
-
*[Introduction](#-introduction)
22
-
*[Motivation](#-motivation)
23
-
*[Features](#-features)
24
-
*[Roadmap](#️-roadmap)
25
-
*[Installation](#-installation)
26
-
*[Usage](#-usage)
27
-
*[Running the Tests](#-running-the-tests)
28
-
*[Contributing](#-contributing)
29
-
*[License](#-license)
30
-
*[Contact](#-contact)
31
-
*[Acknowledgements](#-acknowledgements)
32
-
*[Contributors](#-contributors)
33
-
34
-
## 📖 Introduction
19
+
## Table of Contents
20
+
21
+
*[Introduction](#introduction)
22
+
*[The Problem](#the-problem)
23
+
*[The Solution](#the-solution)
24
+
*[Features](#features)
25
+
*[Tech Stack](#tech-stack)
26
+
*[Roadmap](#roadmap)
27
+
*[Installation](#installation)
28
+
*[Usage](#usage)
29
+
*[Architecture](#architecture)
30
+
*[Project Structure](#project-structure)
31
+
*[Running the Tests](#running-the-tests)
32
+
*[Stats](#stats)
33
+
*[Contributing](#contributing)
34
+
*[License](#license)
35
+
*[Contact](#contact)
36
+
*[Acknowledgements](#acknowledgements)
37
+
38
+
## Introduction
35
39
36
40
**BlazorMVU** is a library that implements the Model-View-Update (MVU) pattern for Blazor. It provides a structured way to organize your Blazor components and manage their state, making your code more understandable and easier to maintain.
37
41
@@ -40,19 +44,19 @@ A Model-View-Update (MVU) pattern implementation for Blazor.
40
44
Demo: This Blazor project is deployed on [GitHub Pages](https://atypical-consulting.github.io/BlazorMVU/)
41
45
42
46
43
-
## 💡 Motivation
47
+
## The Problem
44
48
45
49
The Elm architecture, or Model-View-Update (MVU), is a simple yet powerful pattern for structuring applications. It has gained popularity due to its simplicity, maintainability, and robustness. However, despite its advantages, the Elm architecture has not been widely adopted in the Blazor community.
46
50
47
-
Blazor, as a framework, is flexible and allows for various design patterns to be implemented, including MVU. However, there hasn't been a straightforward way to implement the Elm architecture in Blazor - until now.
51
+
Blazor, as a framework, is flexible and allows for various design patterns to be implemented, including MVU. However, there hasn't been a straightforward way to implement the Elm architecture in Blazor — leaving developers to manage complex component state with ad-hoc patterns that are hard to test and reason about.
48
52
49
-
The motivation behind BlazorMvu is to bring the benefits of the Elm architecture to the Blazor community. By providing a library that implements the MVU pattern, we aim to make it easier for developers to structure their Blazor applications in a way that is easy to understand, maintain, and test.
53
+
## The Solution
50
54
51
-
We believe that the Elm architecture can greatly improve the developer experience when building Blazor applications. By reducing the complexity associated with state management and UI updates, developers can focus more on the business logic of their applications, leading to more robust and reliable software.
55
+
**BlazorMVU** brings the benefits of the Elm architecture to the Blazor community. By providing a library that implements the MVU pattern, we make it easier for developers to structure their Blazor applications in a way that is easy to understand, maintain, and test.
52
56
53
-
We hope that BlazorMvu will serve as a valuable tool for the Blazor community and contribute to the growth and maturity of Blazor as a framework for building web applications.
57
+
By reducing the complexity associated with state management and UI updates, developers can focus more on the business logic of their applications, leading to more robust and reliable software.
54
58
55
-
## 📌 Features
59
+
## Features
56
60
57
61
### Core Features
58
62
***MVU Pattern Implementation** - Full Model-View-Update architecture for Blazor
@@ -89,7 +93,17 @@ We hope that BlazorMvu will serve as a valuable tool for the Blazor community an
89
93
* Unit tests using BUnit and xUnit v3
90
94
* Shouldly assertions
91
95
92
-
## 🗺️ Roadmap
96
+
## Tech Stack
97
+
98
+
| Layer | Technology |
99
+
|-------|-----------|
100
+
| Runtime | .NET 9.0 (SDK 10.0) |
101
+
| UI Framework | Blazor (Razor Components) |
102
+
| Language | C# 12 |
103
+
| Testing | xUnit v3 + bUnit + Shouldly |
104
+
| Build | Nuke Build |
105
+
106
+
## Roadmap
93
107
94
108
BlazorMVU is actively maintained and targeting **.NET 10** (already running on SDK 10.0.x). Upcoming improvements:
95
109
@@ -99,13 +113,13 @@ BlazorMVU is actively maintained and targeting **.NET 10** (already running on S
99
113
-**Blazor United** — Full support for Blazor Web App (SSR + interactive) hybrid rendering modes
100
114
-**Performance Benchmarks** — BenchmarkDotNet suite comparing MVU vs standard Blazor component patterns
101
115
102
-
> 💡 **Want to contribute?** Pick any roadmap item and open a PR. See [CONTRIBUTING.md](./CONTRIBUTING.md) for guidelines.
116
+
> **Want to contribute?** Pick any roadmap item and open a PR. See [CONTRIBUTING.md](./CONTRIBUTING.md) for guidelines.
│ │ ├── Components/ # Example MVU components (Counter, Todo, etc.)
314
+
│ │ ├── Pages/ # Demo pages
315
+
│ │ └── wwwroot/ # Static assets
316
+
│ └── BlazorMVU.Tests/ # Unit tests (xUnit v3 + bUnit)
317
+
├── build/ # Nuke build scripts
318
+
├── assets/ # Documentation images
319
+
└── BlazorMVU.sln # Solution file
320
+
```
321
+
322
+
## Running the Tests
251
323
252
324
Tests are located in the `BlazorMvu.Tests project`. You can run them using the .NET Core CLI:
253
325
254
326
```bash
255
327
dotnet test
256
328
```
257
329
258
-
## 🤝 Contributing
330
+
## Contributing
259
331
260
332
Contributions are welcome! Please read the [CONTRIBUTION GUIDELINES](https://github.com/Atypical-Consulting/BlazorMVU/blob/main/CONTRIBUTING.md) first.
261
333
262
-
## 📜 License
334
+
## License
263
335
264
336
This project is licensed under the terms of the MIT license. If you use this library in your project, please consider adding a link to this repository in your project's README.
265
337
266
338
This project is maintained by [Atypical Consulting](https://www.atypical.consulting/). If you need help with this project, please contact us from this repository by opening an issue.
267
339
268
-
## 📬 Contact
340
+
## Contact
269
341
270
342
You can contact us by opening an issue on this repository.
0 commit comments