[This asset has been temporarily removed from the asset store to solve issues related with a 3rd-party library when building for mobile. I’m sorry for any inconvenience this may have caused you.]
What is EasyDatabase?
EasyDatabase is a multi-platform .NET library that provides a simple and easy way to create and manage local databases on your projects, using classes as tables and properties as columns.
EasyDatabase was created with a set of goals in mind:
Provide a clean, effortless and multi-platform API with
Write Once, Run Anywhere (WORA) functionality featuring
Automated processes everywhere it can
What it does
Converts classes into SQL tables
Builds SQL queries from LINQ or equivalent methods
Transactional operations
Provides both sync and async operations
Defines relationships between tables
Optional automatic updates
How easy is it?
Define relationships and constraints with attributes and use simple methods to access the database.
Take a look at the documentation to see how it works and what else it has to offer.
Where do I find it?
You can find EasyDatabase in the asset store here.
This asset is still under development. New features are planned and some bugs might need fixing. Please help me make it better by submitting any problem or suggestion you might have to the issue tracker.
If you’re able to test on any platform that is still untested, I would appreciate any feedback you can give me, wether it works or not.
This asset looks amazing and looks to solve with ease several data storage issues I’ve experienced in a few projects. I do see that PSM / Vita is omitted from your list of platforms on the Asset Store page, are you able to comment further on the possible usage for this platform?
I’ve been looking for an answer to you but, unfortunately, I couldn’t find a definitive one.
The only thing that could prevent EasyDatabase from working would be the SQLite database on which it relies. I’ve found some people saying it works, others saying it probably doesn’t.
According to Wikipedia, the PS Vita OS is “based on FreeBSD and NetBSD”. Both of them are listed here as systems that include SQLite, so I’d say there’s a good possibility that it works.
I have no knowledge about building for this platform but I haven’t found anything else that could be a game-stopper. Assuming that SQLite database works, if the console accepts a full .NET 3.5 library and Unity can compile with the full .NET 2.0 compatibility level (the subset is currently not supported), I can’t see why it shouldn’t work. Having said that, I cannot guarantee that it works and will keep it out of the supported platforms list until positive confirmation.
I will keep looking for an answer and will download the Unity version with the Vita module to try to build the example with it and see if something shows up.
Meanwhile, if you have some information that might help, feel free to leave it here.
Adding to my previous answer, I’ve downloaded the Unity PSM version and found some incompatibilities related to JSON. I’ve fixed it (see below) and I managed to successfully build a PSM project. Unfortunately, I don’t own a Vita and have no way of testing whether it works or not.
Improvements
Seeing as JSON was creating incompatibilities with PSM and, from what I found, could also be incompatible with iOS, I decided to ditch it entirely. I was only using JSON to serialize objects to strings and vice-versa, so I wrote my own serializer that still creates JSON-formatted strings but in a much simpler way. This brought two big improvements:
The EasyDatabase.dll file size was reduced by almost 500Kb;
EasyDatabase is now compatible with the .NET 2.0 subset
These changes will be on the first update that I’ll submit in the next couple of days.
Thank you for taking the time to look into PSM support, and the time spent adding in these improvements. I’m glad to read you were able to reduce the file size of the library and offer support for the .NET 2.0 subset. You can count yourself another customer within short order!
Thank you!
I’m just running a few more tests to make sure my new serializer is up to the challenge. I expect to submit the update tomorrow but I’ll let you know when I do.
The new update has been submitted and should go live during this week. It brings the two changes I’ve talked about before: reduced file size and .NET 2.0 subset compatibility.
JSON Serializer
I’ve replaced the JSON serializer with a custom serializer focused on (de)serializing (from)to string. This is used to store objects in a string column instead of having a dedicated table. It’s very useful to store collections or objects to which you don’t have source code access and couldn’t therefore create a table.
Most of the strings generated are valid JSON objects but for the sake of functionality and simplicity, there are a few cases where it might not be compatible. For example, JSON only accepts dictionaries with string keys but EasyDatabase accepts any object as key. Consequently, the string generated by EasyDatabase is not a valid JSON string. This is only important if you want to use the strings generated by EasyDatabase elsewhere. If you want to provide EasyDatabase with a JSON string, it should be able to handle it correctly.
The serializer supports any value and single object but there are a few limitations to which collections it accepts. If you want to use a collection that is not supported let me know and I’ll add it in as soon as possible.
Currently, the following collections are supported:
I also took the chance to make it compatible with older versions to support a wide range of Unity versions. You can now enjoy EasyDatabase if you use Unity 3.5.0 or higher.
You can find EasyDatabase in the asset store here.
Hi rcalt2vt, not at this point. This project is still in development and, apart from any bugs that might still be found, I want to add a few more features in the future. Only then, when it’s complete, would I possibly release it with source code.
May I ask why would you want the source code? Is there any feature/improvement you’d like to have?
Working at a studio, what tends to happen is a bug or feature is needed and management doesn’t like hearing: “We sent in the bug/feature request and waiting to hear back.”
Hello jfarias, and congratulations for your nice job.
As soon as you’ll add Windows Phone/Store support, I’m automatically going to click the “Buy” button.
Please don’t stop developing it, and keep up the good work.
Hi Corum, I’m sorry for the late response. I must have missed the notification.
Unfortunately, the framework that connects WP/Store apps with the SQLite database is in its early stages and lacks some features. On top of that, I’ll need to convert the current project from .net3.5 to .net4.5/Universal App.
I’m sorry, but you shouldn’t expect this to happen anytime soon.
Hi NoEnd, thank you for buying this asset and I’m sorry if the docs aren’t enough. Could you tell me what, exactly, isn’t sufficient? Is it the setup, the API, … ?
If you have a specific question, feel free to ask.