Porting desktop apps to web apps. Solutions?

Hi all,

We have a couple of huge desktop applications, written in Clarion 6.3 legacy. One application has been converted to C10 (almost). The applications have been developed and maintained for over 20 years. These days, we notice a lot of competition of providers with online web applications.

For our Windows applications we advise our prospects/customers to use TSplus, but we notice they prefer an online web solution. They don’t want to invest in a TSplus pc and maintain updates etc. They want a full online web solution.

We use H5 (and have used NetTalk) for a couple of small applications, but still a Windows environment is necessary to run the AppBroker or NetTalk server. We don’t like the AnyScreen solution, because it isn’t web (look and feel).

How do you handle this situation? (the migration from Windows to Web) Which tools are there to easy migrate Clarion application to fully web applications?

Best regards
Jeffrey

HI Jeff,
I don’t know of any easy solutions to go from Windows to Web and probably these should not exist. The web is a totally different beast. Some folks have gone to other development platforms. However, if you want to leverage your Clarion stuff I suggest you consider Net Talk. It has a steep learning curve but once you have it, you can roll out robust apps fairly quickly. Just my 2 cents.
Ron

1 Like

The only easy solution is anyscreen, but you’ve ruled that out.
As Ron says Nettalk webserver is a good solution, but that’s basically redeveloping the application. Do note that you lose some abilities when you go full webby, you’re bound by the browser and the way it interacts with web pages. You lose an amount of control.

Another alternative that a couple of people have taken is to host a TSPLUS server yourself. That gives you the web access, but also maintains the superior abilities of the win32 program.

1 Like

To create a “full web” application you need a “full web” development tool - these days that means something like Angular, Ionic, Flutter, React etc, etc.

If you want a huge Windows app accessible anywhere then there is TSPlus, Nettalk or Anyscreen.

You posted a pretty nifty javascript admin system recently, so I get the impression that you’re not completely in the dark about any of this? :smiley:

PS: I believe (probably misunderstood?) that H5 was intended to be a React generator? I’m really sorry that it never reached that stage, if there ever was ever that possibility.

Web applications are intrinsically different to desktop applications in the way they work. For starters desktop is one-user-per-exe-instance whereas web is many-users-per-desktop-instance.

You basically have 2 directions here. The first is a “present the desktop in a browser” approach. This uses a hit of middleware (AppBroker or similar) which translates the desktop interface into HTML, while necessarily maintaining a running instance of the exe per user. This is the approach taken by AnyScreen, H5 and so on. It is really fast to do since the desktop app remains as-is.

The second approach is to redesign the app from scratch, as a multi-user exe, using a template set specifically designed to generate a web interface. This is the approach i took with NetTalk because I wanted that native web feel, along with the scalability that comes with 1 exe serving thousands of users at the same time.

Because NetTalk is a fully-fledged, multi-threaded web server generating HTML against a CSS and JavaScript code-base, it’s the same as any web app written in any language.

In terms of the JavaScript, its not using React as the client-side framework (React being the flavor of the month at the moment) but it has its own framework which is stable and integrated to the server. It’s also extendable (which is why i can add more to it along the way.)

Building a NetTalk app is a steep learning curve. The web is a different country and they do things differenly there. There is a lot to learn about the platform and the tool at the same time. It’s only worth going this route if your app offers you a return. If you’re building “next 10 years of income” etc. It’s a significant investment not a quick fix.

On the upside you can reuse a lot of existing code. Reports can be used “as is” (with the addition of an extension template.) Browses and forms are redone (although more quickly in NetTalk than on the Desktop.)

It runs on a Windows Server - usually a hosted Virtual Public Server (aka VPS) on Amazon, Azure et al. We even host a couple in-office, and of course users can run it on-premesis (which a lot do.)

It can talk to any data source Clarion talks to. It uses the dictionary and any File Driver just like a desktop program. So it works fine with TPS, SQL, whatever.

Make no mistake - its a serious investment in time (and money - its not cheap) - but the end result is a completely native web app capable of doing anything the web can do.

I am of course biased, but its the solution I recommend for Clarion programmers looking to get serious about the web.

1 Like

These days, apart from interacting with some local hardware, you pretty much have as much control of the interface as you like.
The addition of ajax (back in 2005) and websockets (in around 2015 or so) not to mention JavaScript, means you can do pretty much anything.

Sans some local hardware and the local file system.

I have migrated my Clarion programs to AnyScreen. We selected buttons to make it feel like a normal web app. I’m having problems with how themes and CSS are applied in AnyScreen. There is little information and sample application how to use CSS in AnyScreen. I cannot login to the User Group for more tips. For newer applications, NetTalk is great. A lot of sample applications are available and implementing REST services is easy. You can design a solution where AnyScreen is a backend and NetTalk apps as frontend.

Hi, I am somehow in your similar situation. Difference is sw is sql based. I decided to move completely to blazor. I tried to generate interest with fellow clarioneers as described here Clarion to something new , but I am not anymore willing to do it for lack of interest.
Advantage of blazor is:

  • C#
  • I can with the same blazor components run web site and compile desktop app

There are some problems of course.
If you are interested I can find one hour to explain the advantages and disadvantages. Free of charge. Over the years I was helped by the community and I tried to help back, back then when I was full time Clarion developer.
By the name you might be from Netherlands. I am not Dutch but I am currently living in Haarlem.
Br
Nenad

I am definitely an advocate of Nettalk. I have worked with Nettalk Web Server for many years and will never make a desktop app again.
It is so much faster to develop apps in Nettalk. As soon as I understood how the session queue worked (and admittedly - it took a while) I develop much faster today than when I worked with Desktop apps.
Menus, browses and forms are lightning fast to work with. Many of the things I have missed in developing desktops I have got with Nettalk.
Right now I am completing a large production, sales, purchasing and employee management system lifted from C6 to Nettalk. And the customer loves it.
And not to forget the possibility of creating APIs. Super easy.
However, I miss some templates that have a slightly more modern touch. I know I can make them myself via CSS, but my creative skills are not quite up to what I would like.

1 Like

Thank you all for your ideas! I have to think about this during the holidays, not easy.

Best regards
Jeffrey

Nettalk is a “full web” development tool

Hello
Is nettalk limited by the number of users

I am considering 800 users in future solution

Ultimately everything has limits, but the number of users is not really an important factor.

What’s more important is the number of similtaneous requests. And the speed of the hardware, database and network.

On low end hardware its easily coping with a million hits a day. We also have servers with thousands of active users.

So 800 users? That should be no problem at all - indeed 8000 users would likely be no problem. But of course it’ll vary from program to program and so on.

It doesnt start an instance “per user” - typically the resource consumption per user is no more than a few k of ram.

The server itself is more concerned with number of requests per second. 800 users, making a request every 10 seconds (24 hours a day) translates into about 80 requests per second, which is nothing. Thats not going to stress even pretty low-end hardware.

1 Like

By experience, NetTalk should handle that fairly easy. What makes NetTalk webserver a bit heavy are the reports (in our case off course).

1 Like

Oops! Yes I should have put Nettalk into the “full web” category of development alternatives, with the added advantages as Bruce mentioned.

This reassures me to migrate my client server insurance application to NETTALK

Regards

with css is easy create any desing like this