I had a conversation with another RB developer this morning that stuck in my head after I said it. We were talking about how Web Edition has come a long way since it first came out. I did a commercial project using one of the first public releases and it was, how shall I say, really rough around the edges.
Anyway, my comment was that at times I felt as if coming from the Real Studio desktop side really hindered my learning of Web Edition. There are just some things you do in Real Studio desktop apps, like using Window constructors, that are just not possible with Web Edition. Sometimes closing a WebPage immediately after showing another one isn’t a great idea whereas on the desktop side you don’t even have to think about it.
It takes a while to wrap your mind around the difference between a desktop app and a web app. The desktop is easy. It executes locally and gets data locally (there are exceptions of course) but it’s all really quick and it’s designed to interact with the local operating system. When you want to delve even further into the OS you could always use Declares.
That isn’t how Web Edition works. When you first start using Web Edition you think it’s on the local machine (it is) so you get this false sense of security about how fast it is. It’s not until you put it on your web server, which might be half way across the planet, that you realize that there are latency issues to deal with and that changes to the UI get pushed down to your browser.
It only looks like your app is running on your local machine. In fact every event (that’s used) gets sent to the web server for your app to process. So this means that if you implemented the MouseMove event every time your mouse moves a message gets sent to the server for processing. It is very easy to get too many things in the pipeline for your app to respond correctly. As a good friend of my once said, “You can only piss so much pixie dust down a straw” meaning that the data pipeline (the internet) is only so fast at moving data and it will pass it as fast as it can and no faster than that. Quite philosophical, no?
The fact that your ‘windows’ are really running in the browser is also hard to wrap your mind around if you’re coming from the desktop side. And frankly when you’re debugging your Web Edition app you really should be running it in multiple browsers just to make sure it acts the same in each one. Not all browsers are created equal. And, just to make life a little harder, test them in different operating systems. It’s really not much different, at that point, with desktop development.
If you are planning on using Web Edition and you’ve been using Real Studio desktop plan on some extra time. It’s not THAT much different, but where it IS different will throw you for a loop. There is a learning curve but with a little patience you’ll overcome it.
Then there are differences in web servers. Which Linux version? Do you have 32 bit compatibility libraries installed? What version of Windows IIS Server or Apache? Debugging installation issues is, in my opinion, a huge problem since there there is no “step 1 – try this, step 2 – look at this” sort of solution and it seems that every server is just a bit different.
What parts of Web Edition have you struggled to figure out in comparison to desktop apps?