Benefits of Web as Webservice vs. Desktop with Serversocket

I’m developing server version of my database app. The main database is Valentina. As a server this works fine. In the local version I’m using a SQLite database as index for a text field because text searching in Valentina is so slow. Valentina takes about 10 times longer than FTS search in SQLite. If I want to use this in the server version of my app then I need some sort of extra component.

I had a look at the Webservices webinar done by Paul LeFebre (spelling?). This looks doable. But do I really need Xojo Web? Wouldn’t a garden variety desktop app with a serversocket work, too? If yes, what would be the benefit of using on or the other solution?

Xojo Web is conceived to execute on a server with no GUI. A desktop app requires a GUI, which is seldom available on web servers. Apart from that, all depends of what you really need.

@Michel Bujardet : hadn’t thought about the GUI part. Not sure if this is relevant at the moment.

What I’m doing with SQLite is very simple:

1)Add data: Sub WriteToSQLite(theRecID as Integer, MessageBody as String = “”)
2)Delete data: Sub DeleteFromSQLite(theRecIDs() as Integer)
3)Find data: Function FindString(SearchString as String) As String()
4) Reindex complete database: Sub Reindex(deleteFile as Boolean)

At the moment I’m planning this for small workgroups. Data is added in batches. The app isn’t used daily (or should be).

On a LAN, you definitely can do with a desktop app.

The best reason for doing a web-version, is not having to build runtimes for all different types of OS’s.

I’ve started now with a document/project control system for a network of undertakers. I have a lot of PDF’s to generate or email, + signatures for all of them… So I use iPads / iPhone for signatures, and computers for the input.

All done with a lot of server-side cursors from Valentina.
I use SQL selects only for listing.

I tend to use the server-side cursors more and more now for updating of records…

i.e. I write to the server-side cursor for each textfield I leaveFocus on. No problem at all. Works nicely.

I even store my background/templates for all my PDF inside a table in valentina.

Logos and signatures as well.

@Beatrix Willius: One big benefit of using a Web service / API, and routing all of your database access through it, is that if you ever decide to develop a mobile app, or provide an API for your solution (for use by customers, partners, etc), then most of the work involved will already be done. You’ll have a single, consistent interface to the database - and only one set of code to manage as the database and/or business logic changes.

This “API-first” approach is something I’ve been doing for about a year now. It has helped to expedite development, and in some cases, land projects.

@Tim Dietrich + @ Helge Tjelta: thanks for your comments. My SQLite database is a hack. Hopefully, at some point in time Valentina will get fast indexes. When I do a web version of my software I’ll use the Valentina REST api. So at the moment I’ll go the desktop route which doesn’t seem too complicated.