#1 2020-02-03 09:58:04

slapshot
Member
Registered: 2020-01-21
Posts: 17

Advices to build C/S application

Hello, I'm trying to learn mORMot framework to build C/S application. Before to dig into source code and your wonderful help handbook I would like to ask if it is possible to accomplish what I will like to do:

1. Build a Linux server NoSql database application (will be a remote internet server)
2. Fat clients (mainly Windows) to manage all aspects of the application, of course with security user level access. So, reporting, view, browsing grids ecc..
3. Web browser to access some areas of the application
4. Phone app to to access some functions, such as shift management, list of dates, etc..

Of course, to simplify all these things wink, I will have to code with FPC and Lazarus. I cannot find anymore my old copy of Delphi 7 Pro and the email I used to register in Borland (at that time) is lost. Embarcadero seems to be unreachable.

Thanks in advance.

Offline

#2 2020-02-03 11:01:20

ab
Administrator
From: France
Registered: 2010-06-21
Posts: 14,238
Website

Re: Advices to build C/S application

1. Define public SOA services via interfaces, using FPC - you may use either plain HTTP REST or WebSockets, if you want to have some server->client notifications using callbacks
2. Consume the SOA interfaces on the client side, using FPC/LCL
3. Create MVC Mustache-based web server
4. Also Mustache-based web server, but with a progressive CSS theme for proper mobile rendering
All those are detailed in the documentation. Just read the corresponding chapters.

I don't know what you call "NoSQL" in your context. SynMongoDB is supported - but I would use it not for the main data, but as replicated archival of the information.
I would not use a hand-made NoSQL engine, but use a ORM SQLite3 backend for the server. It will be very fast, no maintenance, with premium support with SOA interfaces (via JSON or TDocVariantData variants). Even if a simple NoSQL seem good enough at start, the power of SQL would ease maintenance and evolution for sure.
You may take a look at TSQLRestServerFullMemory for a very simple in-memory NoSQL engine on server side, storing information in a TObjectList, with proper binary serialization on disk.

For production, on the Linux server, put nginx as reverse-proxy front end, to easily support HTTPS e.g. via Let'sEncrypt.

Ensure you use the FPC revision we currently fully support, e.g. using FpcUpDeluxe and the proper SVN numbers stated in the documentation.

Offline

Board footer

Powered by FluxBB