If you are just starting the development of your first web app you may be wondering if you need to get a Xojo Cloud server right away. In most cases, the answer is no. You can develop your application on your own computer and sign up for a Xojo Cloud server when you are getting close to deployment and are ready to test in as close to a real world situation as possible.
There are differences of course between how a web app will execute on your computer with a single user (you) versus on a server that is anywhere from hundreds to thousands of miles away with many users connected all at the same time. For the most part, you don’t have to think very much about this but there are areas where you should.
Keep the following 3 things in mind when developing without a cloud server.
If your application is accessing a database server, your code should test the database connection each time you use it. Some servers, such as MySQL, will drop idle connections in low memory situations. That’s something you may never run into while testing your app on your own. During development testing you can load thousands of rows into a listbox and not even notice it. In the real world, that’s likely to be a problem so you’ll want to find a way to reduce the number of rows you load into a listbox.
If you have a function that is processor-intensive and takes a while to finish, you may want to move that to a separate console app. Xojo web apps execute on a single core so creating helper apps for data processing jobs allows you to move this work to other available cores and will keep your app more responsive. Even if your particular Xojo Cloud server has a single core, by building it to take advantage of multiple cores, you can easily upgrade to a larger, multicore server when you need the extra power.
You’ll also want to think about what you want the user experience to be when you update the app. When you install an update to your web app, Xojo Cloud will quit your existing app to install the update and all users will be unexpectedly disconnected. If your app has a login you’ll want to provide a way to prevent new users from logging in and notify existing users that the app will be down for a few minutes.
If your app writes out files, you will want to update your code so that when it’s running on Xojo Cloud, it writes these files out to the Shared Documents directory if you want these files to remain when you install an update to your app. Use TargetXojoCloud to determine if your app is running on Xojo Cloud or not.
If you keep these things in mind while developing your app, you should only need to set up a Xojo Cloud server when you are ready to start beta testing your application.*
*Though it’s a secure and easy option for hosting your web app, you’re never required to use Xojo Cloud and can deploy your web apps as CGI or Standalone.