Just talking out aloud here, but I’m trying to get my head around the design of an app I’m thinking of writing.
I want platform independence, easy deployment, minimal downtime, database back-end, secure user access.
So I’m thinking a browser-based app gets me platform independence, thin client, no local installation needed, cloud-hosted get me ease of deployment and minimal downtime(?), SQLite seems the way to go with DB, don’t need to support huge number of transactions. Security via the web page/login, etc.?
So a Xojo Web App (WE) that uses SQLite from a cloud service?
Any thoughts/suggestions/warnings are very welcome.
Well, at this stage I don’t really know, but most likely (mainly) Windows, but possibly MAC and even the odd Tablet here or there.
I thought a browser app would simplify the whole thing?
I like the idea of the initial install being performed in the ‘cloud’ and then subsequent updates could happen without the need to send out program updates to individual users. Users would just hit a URL and have the latest version/functionality.
My 2 cents is - yes web app as you are basing your data in the “cloud”, sqlite probably not. Don’t get me wrong I use it heaps, but even with WAL it feels like a single user database. On Windows you would expect MSSQL server to be the answer and that works well so long as you can live with the limitations of MS Native client. My preference is mySQL (but only because I know it), PostgreSQL is probably the best answer due to its licensing.
The MSSQL server native client works extremely well unless you want to use Prepared SQL statements to protect your data from SQL Injection attacks in which case it turns into a lump of steaming bovine fertilizer!
We’ve used SQLite for a number of web applications. You didn’t say how many concurrent users you think you’d have but unless you’re doing a ton of database operations you should be fine for a few dozen.
Since most Xojo database code is database agnostic if you find the SQLite can’t handle it you can always move to a database server (mySQL, Postgresql, ODBC, SQL Server, etc). I would go for the simple, easy approach first and then if you find yourself having issues upgrade to the database server. You have a lot to learn going from novice to having a fully functioning web app.
If you’re looking for some help in learning Xojo we have about 65 hours of Xojo training video available to subscribers including two start to finish desktop apps and one start to finish web app. Details at http://xojo.bkeeney.com/XojoTraining/
Have a look at Valentina Server. It’s reasonably priced. There is a built in REST API which I think it totally clever. The documentation is awful, though. See http://valentina-db.com/en/ .
Yes, it works well this is the way I have taken all my development. I would use SQLDatabaseMBS as your backend so you can start with SQLite, but later offer the other databases without having to duplicate any SQL code. Avoid non-cross-platform items such as BOOLEAN data types and use INTEGER instead.
Xojo uses one CPU only, so use Helper apps where possible, or jump to other Xojo apps to share the load. Xojo will let you use the same code on macOS, winOS and linuxOS, but keep winOS as 32-bit and linuxOS as 64-bit for maximum compatibility and minimum headaches.