blazor-wasm-maui-winforms-wpf-template
DnetIndexedDb
blazor-wasm-maui-winforms-wpf-template | DnetIndexedDb | |
---|---|---|
3 | 3 | |
25 | 99 | |
- | - | |
0.0 | 0.0 | |
over 2 years ago | over 1 year ago | |
C# | JavaScript | |
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
DnetIndexedDb
-
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/amuste/DnetIndexedDb - 62 stars - 5 contributors - last commit on Jun 25, 2021
-
Blazor Client With Offline Database Sqlite
I created and 6 offline first WASM apps that are in production use now and quite complex. They all use this Library. I designed my own Sync System around it using .Net Core API CRUD but they have a fully supported Signal R WASM Client now also if you want to try it for yours. https://github.com/amuste/DnetIndexedDb/blob/master/README.md
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]
Blazor.IndexedDB.Framework - A framework for blazor which acts as an interface to IndexedDB
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.
BlazorDB - Use IndexedDB in Blazor WebAssembly (WASM)
TheLastTime - C# .NET 5 Blazor WebAssembly Progressive Web Application that tracks when was the last time you did something
Blazor.IndexedDB - A Blazor library for accessing IndexedDB
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.
LocalStorage - A library to provide access to local storage in Blazor applications
awesome-blazor-browser - A Blazor WebAssembly app for browsing the "Awesome Blazor" resources.
Ididit - C# .NET 7 Blazor habit tracker application. Works on Web, Windows, Linux, Android, iOS and macOS.
EdgeSharp - Build .NET Win32/WinForms/WPF WebView2 HTML5 Desktop Apps
CarChecker - A sample Blazor WebAssembly application that includes authentication, in-browser data storage, offline support, localization, responsive layouts, and more. For a video walkthrough, see this link: