Recent

Author Topic: First information and advice  (Read 1459 times)

DarkCorner

  • Newbie
  • Posts: 4
First information and advice
« on: July 23, 2024, 09:01:34 am »
I am still at an early level, designing software that will integrate with an ERP.
I am familiar with Borland Pascal Object, but I worked with it a lifetime ago.
I am pointing to FPC with Lazarus because it is multi-platform.
Development will be done with others.

In general, these are the characteristics.

Server A: It will be a Windows server and ERP development is being carried out by another team. At the moment we do not know how it will be implemented. Probably with DB in SQLServer or DB2.
Our software will only go to use Databases.

Server B: This is our server that will manage its DBs. We are deciding whether it will be on Windows or on Debian/Ubuntu and whether the DBs will therefore be SQLServer or MariaDB. It is this Server B that accesses the DBs on Server A.

Clients: Realistically it will be about 20 Windows 11 clients, but we are not setting ourselves numerical limits, nor on Linux platforms. There will then be a “mobile” version.

At this embryonic stage we are wondering:
  • what types of DBs we can access;
  • how clients will need to access Server B;
  • where to find documentation on how to develop the interface to DB.
  • where to find documentation on how to develop the network section.

Finally, mostly we are still discussing what kind of architecture to provide.

Hypothesis A
Clients to DB: Clients will directly access the DB engine (SQLServer or MariaDB) on Server B. Therefore, the functionality for blocking records during a single client process will have to be provided.
Clients do not interact with the software on Server B, which therefore only synchronizes DBs with those on Server A.

Hypothesis B
Clients to Server B: Clients access Server B, which therefore will have to both synchronize DBs with those on Server A and handle requests from clients to their own DBs.

Hypothesis C
Web access: clients access Server B via the Web using a browser. Server B therefore will have to both synchronize DBs with those on Server A and handle requests from clients to its DBs via the Web.

Hypothesis D
A mix of solutions B and C.

Our major concerns are for software updates and security.

When I was developing with Borland I used to get reports of new versions and just had to recompile the sources. Also there were not the security problems that there are today.

I give an example with an application software that I now run on Joomla (I am aware that it is another very different thing).
I have one protection on the network firewall, a second on the server, and a third (Web Application Firewall) in Joomla.
I get updates directly from Debian and from Joomla. I rarely have to download them from the vendor and even then I just have to install them.

With an application developed with FPC how are updates handled?
Can I send patches or the whole application compiled again?

And how do I handle security?
Both in terms of access to the application (e.g., with 2FA) and security issues at the source level or third-party libraries.

Many thanks in advance for the suggestions.

== Additional note.
I initially wrote FPL instead of FPC. I'm sorry.
« Last Edit: July 24, 2024, 09:07:13 am by DarkCorner »

Handoko

  • Hero Member
  • *****
  • Posts: 5376
  • My goal: build my own game engine using Lazarus
Re: First information and advice
« Reply #1 on: July 24, 2024, 04:25:13 am »
Hello DarkCorner,
Welcome to the forum.

I am pointing to FPL with Lazarus because it is multi-platform.

You mentioned FPL several times, did you mean Functional Programming Language? If yes, then as far as I know Pascal/Lazarus is not a Functional Programming Language.
https://en.wikipedia.org/wiki/List_of_programming_languages_by_type#Functional_languages

If you meant Fluency Programming Language, then no, it is not Pascal.
https://fpl.fluencysecurity.com/docs/intro/

Our major concerns are for software updates and security.

When I was developing with Borland I used to get reports of new versions and just had to recompile the sources.

Updating software developed using Lazarus is similar too. You just need to download/install the newer releases and recompile your sources. Unfortunately we do not get reports when newer versions are available, you have to regularly check the Announcement sub forums (Lazarus, Free Pascal, Third Parties):
https://forum.lazarus.freepascal.org/index.php

... how are updates handled?
Can I send patches or the whole application compiled again?

Usually you have to recompile all the sources and give the compiled binaries to your users. But if you developing the software by separating it into several mini modules, compile them into libraries and loading them in runtime, you may just recompile the changed modules and give users the updated libraries only. This is an advanced topic, not recommended if you don't know how and what you're doing.

I ever saw programs that have feature to be updated using internet connection. It will download, make necessaries changes on the computer and restart the program. Sure, you can build such program using Lazarus too.

I am still at an early level, designing software that will integrate with an ERP.

This link maybe useful for you:
https://wiki.freepascal.org/Portal:Databases

dseligo

  • Hero Member
  • *****
  • Posts: 1408
Re: First information and advice
« Reply #2 on: July 24, 2024, 05:48:29 am »
You mentioned FPL several times, did you mean Functional Programming Language?

Maybe he meant Free Pascal Language? :)

DarkCorner

  • Newbie
  • Posts: 4
Re: First information and advice
« Reply #3 on: July 24, 2024, 09:05:10 am »
You mentioned FPL several times, did you mean Functional Programming Language?

Maybe he meant Free Pascal Language? :)

I'm sorry. FPL = Free Pascal Language.
I should have written FPC.
I correct the initial post.

DarkCorner

  • Newbie
  • Posts: 4
Re: First information and advice
« Reply #4 on: July 26, 2024, 10:04:29 am »
I looked at the CVEs (https://www.cvedetails.com/) for Lazarus, FCP and Delphi and I feel reassured.
In any case I was hoping there were libraries to apply patches or updates.

In my post I also asked for suggestions on which architectural hypotheses you would recommend.

In the meantime I am documenting myself on the libraries to refer to.
I found this list:
https://github.com/Fr0sT-Brutal/awesome-pascal

Are there others? Do you have any libraries to recommend?

I am also starting to design the structure of the apps, but I will open a separate post.

Thaddy

  • Hero Member
  • *****
  • Posts: 16168
  • Censorship about opinions does not belong here.
Re: First information and advice
« Reply #5 on: July 26, 2024, 10:49:21 am »
If I smell bad code it usually is bad code and that includes my own code.

DarkCorner

  • Newbie
  • Posts: 4
Re: First information and advice
« Reply #6 on: July 29, 2024, 08:38:02 am »
WHAT are you missing?...

In my opening post I proposed 3 different architectural hypotheses plus a fourth that uses two.
When, years ago, I created projects of this type I used architectures as described in hypothesis B.
Version A was unthinkable and C was not contemplated given that the Internet was not yet widely used.

Today, much later, I was asking which one to prefer and related advice.

 

TinyPortal © 2005-2018