blazor-wasm-maui-winforms-wpf-template
Blazor.IndexedDB.Framework
blazor-wasm-maui-winforms-wpf-template | Blazor.IndexedDB.Framework | |
---|---|---|
3 | 2 | |
25 | 67 | |
- | - | |
0.0 | 0.5 | |
over 2 years ago | over 3 years ago | |
C# | C# | |
MIT License | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
blazor-wasm-maui-winforms-wpf-template
-
Making a Blazor app run on Web browser, Windows, Linux, Android, iOS and macOS
Next I decided to make a Windows desktop version using WebView. I also made a template https://github.com/Jinjinov/blazor-wasm-maui-winforms-wpf-template that is now somewhat obsolete. The biggest problem is loading the data from IndexedDB before the app starts. Blazor WASM allows you to use JsInterop right from the moment you register your services in dependency injection, so you can access IndexedDB immediately, load the user settings and then start the app. WebView doesn't allow you to use JsInterop before Blazor is initialized. This means that if the user chooses a dark UI theme and you save that choice in IndexedDB, the app will load with the default light UI theme, you will read the IndexedDB on the first render and then apply the dark UI theme. The app will flicker for a second.
-
I made a Blazor app that runs on 6 platforms
I made a template for a cross platform Blazor project: https://github.com/Jinjinov/blazor-wasm-maui-winforms-wpf-template But it is a bit outdated now.
- Minimal Blazor template with WASM, MAUI, WinForms and WPF
Blazor.IndexedDB.Framework
-
Making a Blazor app run on Web browser, Windows, Linux, Android, iOS and macOS
Blazor WASM was the first, original version. I wanted an app that can work offline, so I decided to save user data in IndexedDB. My first choice for an IndexedDB NuGet was https://github.com/Reshiru/Blazor.IndexedDB.Framework because it was recommended by Steve Sanderson in https://blog.stevensanderson.com/2019/08/03/blazor-indexeddb/ - and it was the worst mistake in the whole project. The NuGet loads all the data from IndexedDB into memory every time you open a connection. That made the app unusably slow after one year of use. I made a few improvements in my own version https://github.com/Jinjinov/IndexedDB.Blazor but I never solved the loading problem. I decided to rewrite the whole project from scratch, using the much better IndexedDB NuGet https://github.com/amuste/DnetIndexedDb . The original project is available at https://github.com/Jinjinov/TheLastTime and as a PWA https://old.ididit.today/ as a lesson on what mistakes to avoid.
-
How to store client side data in a Blazor WASM app in 2021?
https://github.com/Reshiru/Blazor.IndexedDB.Framework - 67 stars - 1 contributor - last commit on Jan 26, 2021 - uses https://github.com/wtulloch/Blazor.IndexedDB - archived
What are some alternatives?
MudBlazor - Blazor Component Library based on Material design. The goal is to do more with Blazor, utilizing CSS and keeping Javascript to a bare minimum. [Moved to: https://github.com/MudBlazor/MudBlazor]
DnetIndexedDb - Blazor Library for IndexedDB DOM API
LiveCharts2 - Simple, flexible, interactive & powerful charts, maps and gauges for .Net, LiveCharts2 can now practically run everywhere Maui, Uno Platform, Blazor-wasm, WPF, WinForms, Xamarin, Avalonia, WinUI, UWP.
LocalStorage - A library to provide access to local storage in Blazor applications
TheLastTime - C# .NET 5 Blazor WebAssembly Progressive Web Application that tracks when was the last time you did something
Entity Framework - EF Core is a modern object-database mapper for .NET. It supports LINQ queries, change tracking, updates, and schema migrations.
MudBlazor - Blazor Component Library based on Material design with an emphasis on ease of use. Mainly written in C# with Javascript kept to a bare minimum it empowers .NET developers to easily debug it if needed.
HITS.LIB.Sqlite - A data access layer for Sqlite using Microsoft.Data.Sqlite.Core.
awesome-blazor-browser - A Blazor WebAssembly app for browsing the "Awesome Blazor" resources.
Blazor.IndexedDB - A Blazor library for accessing IndexedDB
EdgeSharp - Build .NET Win32/WinForms/WPF WebView2 HTML5 Desktop Apps
IndexedDB.Blazor - A Blazor library for accessing IndexedDB