Does anyone already used db4o OO database manager in a mobile project using Xamarin Monodroid and/or MonoTouch?
Is it even possible? (It seems that db4o uses Reflection.Emit(), which could be a problem)
Thanks for your comments on this.
If you plan on your app taking to a database directly, you might be better off to setup a web service (for security reasons you don't want your database accessible over a public ip address).
If you are going to work with a local database within the app to store data, use SQLite and sqlite-net.
Related
I have a project I am working on which will be open source. The project records data from all over. People can look at the instructions on a website, build the prototype, and the prototype will contribute its data to a giant database.
data.sparkfun.com/ is perfect for this, except for a major problem. In order to push data, you need to put the Private Key in the code (docs). This will also allow anybody with the code (which will be everybody looking at my project because it is open source) to edit, modify, and delete data from the database because they have the Private Key.
Is there any alternative to data.sparkfun for free so that I can achieve this? I am using NodeJS as the main language for my project.
EDIT: I also do not have a server to host my own database on. I also would need a hosting service (which is why data.sparkfun is so close to what I need).
I think something like this project http://docs.dat-data.com/ could work. It is built with Node. Its not necessarily perfect because its a bit more oriented towards files than a database, but you may be able to adapt it to your application. It uses cryptography and versioning for security.
I found something called Firebase which is hosted by Google. It has a full suite of databases, filesystems, and a way to identify users. You need an API Key for posting and retrieving data, but it is not meant to be private. It also allows you to set rules to disallow editing and deleting data, unless you own the database.
It supports iOS apps, Android Apps, and Web Apps (easy to integrate with NodeJS). The free version has some limitations, but enough for most hobbyists.
We have an app written in Objective C. It uses CoreData, RestKit, about 10 viewcontrollers.
We would like to migrate it to Xamarin (so we can target Android and Windows).
I was hoping there was a way to bind the current code to a Xamarin solution and kind of rewrite features step by step within Xamarin (eg: replacing a viewcontroller at a time, and at the end replacing RestKit+CoreData, by SQLite + ServiceStack).
I am aware of the binding to Objective C option that they provide, however, it doesn't look to be the appropriate fit for this (way too complex, probably easier to rewrite the app from scratch).
Is there a way to migrate our current project to Xamarin so we can convert? or do we start from scratch?
Thanks.
Options:
Migrate full project - no;
Automatically create binding for libraries, rewrite business-code, UI-code - yes;
Rewrite from scratch using .Net/Mono classes - yes.
If code size is relatively small, you should rewrite the whole app. Moreover, thus you could have a chance to separate business-logic from UI code and tools libraries (RestKit, CoreData). In perspective, that code will be more reliable and cross-platformish.
This tool can help. It does Obj-c to C# translation (some manual cleanup required):
Automagical
Quite probably, a re-write, from scratch. One thing to keep in mind, if your back-end is .net.. and you are using DTO's.. like with AutoMapper from Entity Framework objects.. you'll be able to re-use those DTO objects on your mobile side with Xamarin. If you are using OData, I'm not sure if this is still a problem, but Xamarin studio wasn't generating OData service clients. So you had to generate them in Visual Studio, then take the generated client code and throw them into your Mobile projects.
sqllite-net is awesome. I've never had any problems with it.
https://github.com/praeclarum/sqlite-net
I currently have a project, with DTO Objects from an Azure WCF service, that I push directly down into SQLLite objects on IOS and Android with Xamarin. I use RestSharp, rather than Service Stack. I should probably go learn the difference.
If you are looking to use SQLCipher from the Component store, to encrypt your sqllite db locally on your device (Good advice to do so), you should be aware that there is an issue in android.. going to 2.2 or 2.3 with SQLCipher. Works for ICS and above though, if I remember right.
Just be careful on your security implementation for allowing clients to connect. I want to say.. don't take too much advice.. and don't take too little either. : )
Hi im developing a todo/reminder app for both Windows 8 (RT) and Windows Phone 8.
I want to enable the user to sync their todo-items between these two.
I know there is a roaming application data storage for Windows 8, but is it possible to access it from the phone?
Another idea i had was creating an xml file and uploading it to skydrive, but then i would have no push functionality :(
And there is also Azure which seems to be the most complicated solution..
What way is the best to choose?
Thanks for your help
You can use Live SDK (SkyDrive) and Windows Azure Mobile Services to accomplish this. The Live SDK will allow you to upload and retrieve items from SkyDrive and you can use mobile services for push notifications. Here is an example of what you want to do.
I know that the thread is a bit old, but it still pops up in search results. So, here's the answer.
I had exactly the same problem. So, I have developed a small library which does exactly that - synchronizing the data between Windows Phone and Windows Azure. Code is on GitHub and here is a nicely packed NuGet package. You could easily port it to WinRT and use SQLite as local data storage.
API is very simple. You just call methods to do CRUD operations and when you are done, you call SynchronizeAsync to synchronize data with WAMS. The synchronization goes both ways. In case of conflict, the latest copy gets the preference.
In the meantime Windows Phone 8.1 is released and it changes the answer to your question - today there are universal apps and they share the same roaming storage on both Phone and regular Windows.
You're going to want to use Mobile Services (www.windowsazure.com/mobile) for this scenario. After you login at manage.windowsazure.com, grab the WinStore C# SDK and WP8 SDK. You're going to need to point both to the same SQL db and Mobile Service. Of course, if you need blob or table storage as well, that's supported. You'd just access those through scripts under the DATA tab.
To check out a production app that's already doing this, I'd point your to Slot Machine by the SeeSharpGuys.
Win Store: http://apps.microsoft.com/windows/en-US/app/slot-machine/7c60012a-00bd-4cae-a402-a9885ec11ea1
WP8: http://www.windowsphone.com/en-us/store/app/slot-machine-mobile/9fa24191-d08d-4073-8098-740975e41946
I am having trouble finding a NoSQL databases that officially support MonoTouch via a local DB on the device. If their are, could someone provide a list of them here.
According to http://nosql-database.org/ there's siaqodb. Note that others might support MonoTouch without being mentioned in that site.
Edit: a few more clicks shows that HSS Database (from the same list) also supports MonoTouch.
You might also want to look at which ones support iOS (e.g. with Objective C) and see if bindings are available (or write your own).
Take a look on Couchbase Lite xamarin's component
RavenDB supports an embedded mode, and can run on Mono using the "Munin" storage engine option.
Although, there has been talk in the user group lately about dropping Munin, and it's not usually recommended for production, so it may not be a viable option.
I've not heard of someone using it with MonoTouch specifically, but there are some running it on Mono. If you try it, please update comments here with your findings. Thanks.
A bit late, but still relevant:
I'm the author of MarcelloDB, and I just released version 0.3.0 on nuget.
MarcelloDB is a document DB, built specifically for mobile apps (light-weight, low memory usage) and supports Xamarin Android and iOS as well as the windows platform.
I still have some features I want to add before reaching v1, but the file format and existing api are allready quite stable.
I am planning to develop an app which will use a database.
This database will need to be synchronized accross multiple devices.
I need something like iCloud + CoreData but able to work also from Android and Windows
Do you know if this magical thing exists?
Thanks
if it's ok that you need to be connected (no fully offline mode) - StackMob can be of help to you.
their iOS SDK even provide CoreData interfaces, and if you don't like them - you have REST APIs
Also may be you should look at:
- Simperium (no Android SDK, only REST APIs,)
- Parse.com