I'm writing an app for BlackBerry OS 4.7 and would greatly benefit from having a lightweight relational database such as SQLite that my application can use to store data locally on the device. SQLite is coming out with 5.0, which is still in beta.
Can anyone recommend any other alternatives that permit commercial use?
Additional information:
- Concurrent access not required
- Transactions not required
Thanks in advance :-)
If you're building your app in java you could consider hsqldb (hsqldb.org), since you can run it embedded in your application.
Related
I am currently developing a native iOS (from 8.0 in swift) application for a customer of my company. One of his requirements is that the mobile application have to connect directly to a remote oracle database (11g 2.0.3). Yes, I know this is a really really bad idea and we should not do that, but our customer explicitly wants this and doesn't want any additional infrastructure.
So please don't advise me to do this over an approriate web service.
I already seeked through the Internet several times to find a suitable solution. There appears to be a ODBC driver ODBCRouter, but as far as I could see, this driver is really really really outdated and won't be fit in my project. Even the native web services introduced in oracle 11g do not appear to be a viable solution for our customer.
We also have experience in Xamarin but even there seems to be no solution for my problem. I tried to install the Official Oracle ODP.NET Managed Driver NuGet package, but that doesn't work because of the iOS target.
I would be most pleased if anyone has an idea and can help me :)
I am just starting to study and develop Mac OSX applications, and I'd like to design an app that uses a database.
I'm not opposed to something like MySQL, but I'm looking for something that can be single user and can be stored directly on the device so internet access is not required. I'd prefer not to resort to writing/reading from a file either.
The closest I've come to find is SQLite, which I am familiar with in Android development, but my question is: is that what most OSX developers use?
I am trying to pose this question in a way that is not opinion-driven, as I know there are countless DBMS out there. Is there one that leads the pack as far as being used with OSX?
Higher Abstractions:
Core Data is available on iOS and OSX.
Realm is a popular alternative to Core Data. Some of the features include:
Fast
Memory efficient
Its safe and easy to use across multiple threads (core data can be tricky here).
Like Core Data it uses the Active Record pattern, where persistence methods are defined on the model objects themselves (unlike the DAO pattern, which uses a separate interface).
Lower Abstractions:
FMDB is a nice Objective-C API that sits over the pure C API to sqlite.
I have a strong background in .Net and some Python. After years of PC work, my primary (only) machine at home is a Mac.
I have an idea for an iOS (and Android) app that would be a total labor-of-love, there is basically no monetization possible with it, but I still want to do it. What is the most cost effective way to deploy an app, with Xamarin and only using a Mac?
I will need a database to power the app. I know that I can use MS Azure for a pretty low cost but I know that Xamarin licensing for the SQL Data library is a total budget killer. I know that I could expose web services, but that would require writing the web services with .NET and I want to do this project exclusively on a Mac.
So what are the database options? Can I hook Xamarin directly to MySQL? Can someone please provide sample code for connecting from Xamarin to MySQL? What are some of the better MySQL only providers? I wouldn't need a web host, just DB.
Are there any other potential costs/licenses that I'm overlooking?
You never want to expose your database directly to a mobile client. You always want to have some sort of service brokering your db requests to the outside world.
If your client is simple enough that it will fit under the app size limit, you can use Xamarin's free tier. Otherwise you can use the Indie tier. You should not need the business tier. If this is something that might be a workable open source project, I believe you might be able to ask Xamarin to donate a license.
You will also need an Apple developer license, $99/year, for deployment.
You can use MSSQL, Azure, MySQL, etc to power the server side db. You can write webservices with ASP.NET, PHP, Ruby, etc - there is no reason the server side has to be .NET unless that is what works best for you. You can run a VM on the Mac and run VS2013 Express for ASP.NET, or do it directly from the Mac with Xamarin Studio (not sure exactly what level of support there is for this under Mono, but it is doable). Most of the other options can be written natively in OS X.
Other than the Mac hardware, the only other absolute expense is $99 for the Apple Developer account.
For web services on a Mac with C#, look into v3 branch of ServiceStack. There is also ServiceStack.OrmLite which is a database client (MySQL, SQLite, SQL Server etc), it has a SQLite implementation which will run on the local machine (mobile) with Xamarin.iOS & Xamarin.Android.
I found a lot of similar questions out there but none that really answered specifically some of the questions I have. I will be working on an iPhone app shortly that will be accessing data from a database server running windows sql server. I'm not sure what language would be best do write the API in. I prefer Ruby on Rails, but I've read that there are hurdles setting it up with sql server. We could do the API in .net, but I've heard that setting up JSON is a bit of a pain.
What do you suggest? And if I'm doing this the wrong way, let me know the best way. I'm sure most of this is just up to personal preference but I'd love some input.
I dont have much idea about building a JSON api in .NET, but if you are planning to use rails there are couple of options to connect to a SQL Server database from Rails.
a) Use JRuby and a jdbc driver like jTDS . I do want to mention that JRuby is a tad slow when running specs as bootstrapping the rails environment every time takes longer compared to MRI. (this experience based on working in a project couple of years ago, so please try it on your own).
b) Use the MRI ruby with tiny_tds
I am thinking about using SQLite
It is a self-contained, server less, zero-configuration, transactional SQL database engine and is open source.
Will I gain anything by using Blackfish instead of SQLight ?
Why not Firebird?
http://www.firebirdsql.org
http://www.firebirdfaq.org
"...Firebird is a relational database offering many ANSI SQL standard features that runs on Linux, Windows, and a variety of Unix platforms. Firebird offers excellent concurrency, high performance, and powerful language support for stored procedures and triggers. It has been used in production systems, under a variety of names, since 1981...."
Stick with FOSS (Free Open Source Software).
Both SQLite and Firebird are excellent choices. Both fill your requirements. Both are very reliable, zero-configuration and support transactions.
Without knowing enough about your intended use, Firebird would be my first choice because it makes possible to migrate to a Client Server deployment with close to zero effort and it has a very robust set of features. It is all about the options.
IMHO Blackfish is not a god choice - "Blackfish SQL runs on both the .NET framework and on the Java platform." - enough said.
Use SQLite.
Much smaller, less overhead, no licensing issues etc.
Laslty, only you can decide which one will do everything you need a db system to do. Which one has all of the features you need to support?
John
I will vote for Sqlite first, because it's compact, lite and fast, but depend on your application you may go with other choices like Firebird or PostgreSql.
for example Sqlite has limitation to one writer at the same time, it may not be problem for most of desktop applications that used by one user, but it will not scale for more uses in future.
you can go with FireBird embedded as solution which will be act like Sqlite, then move to firebird server when you need more users.
In other side BlackFish database, will force you to install .Net framework on your client's machines, which is something isn't good IMO, specially if you need to distribute your application on Internet, beside it will require license when it scale for more than developer edition.
Another thing to consider is how are you going to access your data. If you are using DBX4 for instance, it is very easy to change what database you are looking at. In which case I would suggest trying both (plus any others that people highly recommend you try). On the other hand if you are using the the Interbase or ADO data access components then your ability to change is somewhat more limited.