New Dexie Features #51
magiccodingman
started this conversation in
Ideas
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
Just spitting out some ideas, but I think the project is nearly ready for some new features that'd make things nicer. I've been planning on refactoring the expression builder for quite some time. I hate how I built it and I can do significantly better. While refactoring, I also can add many more capabilities. Not just with expressions, but I intend to build a top tier expression builder that will allow us to easily and dynamically utilize dexie JS in ways not currently being done. It's some really fun techniques I've learned from my company blazor platform I built over the years. And I can bring that knowledge here I think if I can transfer the concept.
But, I effectively think I can build a 1 for 1 expression builder from C# to dexie. Especially after this new serializer refactor was dropped. But we should discuss what capabilities we want. Because I could make complex joins for example. Or even allow alternative based methods of LINQ like:
The new system would be quite the refactor, so we'd have a world of possibilities. But complex joins, new features like Select, and much more. I think I could get to that this year because I now have more and more upcoming projects that could utilize Dexie JS in Blazor, so that helps incentivize me ;)
I'm even thinking of features like, "ToList() to execute instead of "ToExecute()" for example. And allowed imports of custom Dexie.JS on startup. Also I think I can bring to life a similar concept of database first migrations in C# to this project. The DbMigrations has always been a desired feature but never supported. I see how to do that properly now and I can make that a reality too.
So if there's any ideas or Wishlist items. This would be a good place to discuss.
More Ideas so far:
1.) Pre memory overload buffering for bulk additions or handling. I've done this in the past, but you can detect in Blazor when the memory is going near browser limits. So you can stream that into IndexDB as you're building lists dynamically to prevent memory overload and break chunks of your list into IndexDB before memory explosions.
2.) Better streamed LINQ capabilities. User should be able to utilize better deferred execution and stream responses that're too large to prevent WASM memory limits. Effectively help create safe memory use with mass data flow.
Beta Was this translation helpful? Give feedback.
All reactions