I used to use Xojo for Linux. Wrote a few apps for machine shops. I picked up another software dev contract to knock out a piece of software that in simple terms is an invoice management system that is customizable by the company.
Needs to access a db. SQLite is fine. Must be multi user, different computers on the same network, multi user database access also.
I was thinking Web since its multi user, multi PC…but then I can do it in Windows and have an executable on each system.
Web probably makes the most sense. I would start there given your brief description of the app. If it’s a basic customer-invoice-service or product then a web app makes a lot of sense.
That will make it easy for you to implement, easy to update, etc. And if you don’t want to hassle with the security and such of deployment, check out Xojo Cloud.
Depends: is it for point of sales in real time…or for account invoicing day by day ?
I would ask the shop owner, how critical would it be if there is an internet acces interuption for lets say 4 hours in all shops ?
How much potential sales could be “lost” during that amount of time ?
The Web version will need internet to keep working, it might be much easier to “distribute” and it should run instantly everywhere with the right browsers…Supa Cool !!!
But…
On the other hand the Desktop “networked version” as some Pros…
*(A real standalone station could be for a worker that is not even linked to a network…or to the internet)
The Desktop version “can” be able to operate even during an internet interruption if it can work against its own local downloaded “copy” of the company shared DB like a catalog, stock, or client list…etc… so interruption is not “too much of a problem”
So, probably Not your solution for a real time “ticket booking” app (unless you can assign a number of ticket to each Shop).
So it might be good enough for a Large stock item sales. like car parts, etc… Local DB would need to syncronize once the internet connection “comes back” and MEANWHILE, everybody keeps working…and managers are happy with your work.
Its much heavier to set up for that goal but…All shop’s operators wont be trying to reach the Computer guys when a failure occurs…and you can keep fishing with your mates on this beautifull Saturday morning…
(talking from past experiences )
I’m very new to Xojo but according to another user on the Forum with a similar case, its just the same with a bit less features on the Web Version, *Somehow he recomended Postgresql in place of Mysql. if that’s the DB you were thinking of…
Yes, the APIs are very similar whether it’s desktop or web (and even mobile soon). Obviously there will be some things that are unique to each project type but overall they are very similar.
Are you intending to use the Desktop version and have each computer access the SAME database on a common machine on the network? If so, I’d strongly suggest you consider something other than SQLite. SQLite is great for single user access, but is not designed for multi-user access. SQLite has a page discussing appropriate use cases here.
On the other hand, Stack Overflow suggests the main problem is with concurrent updates. It suggests that reads are not an issue, and even writes may not be a problem provided the apps can tolerate small delays while the database is locked for writing by another user. For example see here.)
@Douglas_Handy I was going to setup a test case for that since it was another concern of mine. I’ll use MySQL then. I’ll need to get the full desktop version.
Wait! SQLite is not appropriate for multi-user access on the network if you go the Desktop route. Web would be OK because you only have one app talking to the database. If you go Desktop, then consider PostgreSQL. I would stay away from mySQL because of licencing for commercial applications.
You can have an app on your server that is the only one that connects to the SQlite database and deals with any requests (eg queues tham). Pretty much what CubeSQL is doing.
option 1/ No Sqlite on user workstation… shared postgresql for everyone.
Pro :
( )
option 2/ Sqlite on user workstation…plus…shared postgresql for everyone.
(Having sqlite with some table copied in each station will avoid as many queries through network…)
…and sinces several users comment on MySQL posing problem with the Xojo App, I’d consider that one as a last option.
)
Would be interested in getting to know your Test results…and any tool you’d be using to simulate a multi user acces to a Server DB.
Be aware you could run into scaling issues with the SQlite / Xojo Web because it’s a single core system and I think SQLite uses file I/O which forces others to wait. You will have to see how many users at once for light work this setup can handle at once - maybe twenty? For multiple instates of Xojo Web apps running on different cores accessing the same database you should consider postgresql similar to how you would with concurrent multiuser desktops.