Skip to content

Commit

Permalink
Update UI framework research
Browse files Browse the repository at this point in the history
  • Loading branch information
daniel-lerch committed Jul 11, 2024
1 parent 24e21be commit f472b68
Showing 1 changed file with 40 additions and 24 deletions.
64 changes: 40 additions & 24 deletions docs/architecture.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,31 +2,47 @@

## UI Framework

Vocup was originally built with Windows Forms which does not meet today's requirements anymore.
After a major modernization of the WinForms codebase in 2018 I did not find a suitable replacement for the UI framework.

Now in 2024 many frameworks have made significant progress.
Avalonia and Uno Platform are the most promising frameworks with their unique strengths and weaknesses.

In the end I decided to go with **Avalonia** because of its simpler architecture
and more widespread adoption, namely Git Credential Manager, Icons8 Lunacy, Plastic SCM, and dotTrace.

### Considered frameworks

#### Windows Forms
➕ Easy to use
➖ No data binding
➖ Not styleable
➖ Limited to Windows
See this [amazing article](https://github.com/robloo/PublicDocs/blob/master/XAMLFrameworkComparison.md)
by robloo for an in-depth comparison of Avalonia, Uno Platform, and .NET MAUI.

#### Avalonia
➕ Cross platform
➕ Clean API
➖ Not mature
➖ No mobile apps

#### Blazor Hybrid
➕ Runs everywhere
➕ Partial modernization
➖ Complex interop with component libraries
➖ Data binding is buggy

#### WinUI 3
➕ Recommended by Microsoft
➖ Experimental
➖ No unified API for UWP and Win32
➖ No mobile apps

#### WPF
https://wpfui.lepo.co/
➕ Cross platform
➕ Partial modernization
➕ Adapted by at least some major apps
➖ Only a UI framework
➖ No native webview

#### Uno Platform
➕ Cross platform
➕ Windows Community Toolkit compatibility
➕ Native rendering of primitive controls
➖ No significant adopters
➖ Complex architecture

#### .NET MAUI
➕ Native look and feel
➖ No Linux support
➖ No browser support
➖ No significant adopters

#### Blazor
➕ Cross platform
➕ Partial modernization
➖ Complex interop with component libraries
➖ Data binding is buggy

### Not considered
- WinUI 3
- WPF
- Windows Forms

0 comments on commit f472b68

Please sign in to comment.