Giter Site home page Giter Site logo

typedpersistence's People

Contributors

nicoviii avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar

typedpersistence's Issues

Generate documentation

For now the library can only be used by me or anyone who has the nerves to have a look at the source code.
It would be cool if a documentation could be generated automatically and e.g. published on GitHub Pages.

For that I need a tool that is capable of transforming F# comments into HTML and a way to host that docu website. (Have a look at GitHub Pages)

(see NicoVIII/GogApi#3)

Check upgrade to LiteDB v5

I use LiteDB.FSharp which is not yet ready for LiteDB v5.
I personally do not have the skills to implement such a big update, so I wanted to have a look at LiteDB v5 and see if TypedPersistence could use it directly.

Implement CodeGen

Atm especially for reading I heavily rely on reflection.
This is a slow approach and not ideal for production use.

My idea was to additionally offer CodeGen functionality, which replaces reflection by generating code without reflection for specific types.

This would be a more performant approach, but I guess something like FAKE would be needed to include the type code and execute F# code to generate the code.

Allow fallback types

If an application changes types, which are stored in a db, this would cause errors.

My personal approach would be this:

  1. Copy type and rename copy: (Something like oldnamev1 e.g. SettingsV1)
  2. Try to load new Settings: If error, try to load SettingsV1 and "migrate" the old version.

The problem with this approach is, that (as far as I know) the name of the type corresponds to the used key in the db. If I change the type name, I can now load the old record anymore.

I have to provide a way to go around that somehow...

Think about implementing multiple backends

I switched the backend twice now.
At first I used CouchbaseLite, then I used LiteDB and now I switched to simple json files.

It would be cool to separate the main abstraction (with versioning and stuff) and the backend and then be able to write multiple backends, so that you can use LiteDB OR json OR SQLlite or whatever backend would be suitable.

Implement automatic Nuget release

For now the pipeline creates the Github Release and builds the nuget packages but it doesn't release on nuget. This is manual work.

This should change. Could be another chance for an upstream MR in Waypoint.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.