Xojo 2014 Release 1 hit the internet this week. This substantial update fixes a number of issues, has some very nice enhancements, and has the long awaited release of Xojo Cloud. So let’s dig in!
Xojo Cloud is, as the name implies, a hosting service for web applications written in Xojo. It is a one-click deployment solution that greatly simplifies the process of deploying your Xojo web apps. It really is pretty simple and there are really only a few caveats with using it.
Xojo Cloud is using RackSpace servers and there are three configurations that are currently available. The small and cheapest server has 512 MB of RAM, 20GB of storage, and 1 Virtual CPU for $49/month. The medium server has 1 GB of Ram, 40 GB of storage and 1 Virtual CPU for $99/month. The biggest server has 2 GB of RAM, 80 GB of storage, and 2 Virtual CPU’s for $199/month.
This seems like a lot of money considering that a VPS offered by many hosting companies runs you about $400 a year (or less). However, those VPS solutions are unmanaged and it’s up to you to keep them secure. The Xojo Cloud solution has some pretty strict security that has intrusion detection and some other goodies that will make it difficult for an intruder to get to your application and data. Add on that Xojo web apps are compiled and it makes for a pretty secure system. Only time will tell how secure it is but unless you’re an expert on security it’s unlikely that your unmanaged VPS will be more secure.
Xojo web apps are guaranteed to work with Xojo Cloud (duh). That’s not always the case with my experience with VPS solutions. You have to worry about 32 bit compatibility libraries, permissions, and a whole host of other things that could go wrong. Really, Xojo Cloud is a pretty decent value if you don’t like, or want, to manage your own server.
Xojo Cloud is a version 1 release. There are a number of things that are not available yet. For one, the server does not come with a database server though this is very high on their list. During the alpha period I was able to, with the help of Xojo engineers, use a Rackspace Database Server (MySQL) working with a Xojo Web app. Also, if you have a lot of storage needs (we have 40 GB of video for the Xojo Training Application) you probably will have to get a RackSpace Cloud Files account. All-in-all it’s not very hard once you get it setup but RackSpace can be kind of daunting as you wade through all of their options.
Xojo 2014 Release 1 comes with some Cloud specific framework additions. The first is a TargetXojoCloud constant that lets you call code specific to Xojo Cloud. One of those is the XojoCloud.FirewallPort method this allows you to open a port in the server firewall. Once the reference goes out of scope the port is automatically closed. If you do any communication with the outside world such as sending an email, you’ll need to open the port to the mail server.
There is currently no control panel to upload or view files. Release 1 comes with an example on how to do this via a web app. There are four areas that you can access on your server: the application area, the Temporary directory, Shared Documents, and Documents. The latter 3 can be access via the SpecialFolder object. Accessing the Documents folder of your application creates a Documents directory next to the application and accessing the Shared Documents creates a Documents directory in the overall applications directory.
A few other miscellaneous things that are kind of a drag: There’s no way to create testing builds without changing the name. Ideally, I would want the Stage Code to let me make testing builds without affecting the production app. My second issue is that as a consultant I will potentially have multiple clients with their own servers. Currently there is no way to share servers. The good news is that both of these items are in development and could be added at almost any time. I’ve been told that some Xojo Cloud enhancements don’t depend on the IDE release schedule.
The IDE has some Xojo Cloud specific additions as well. In the Build Settings you’ll now find Xojo Cloud as one of the targets. Once selected you’ll get Cloud Specific properties in the Inspector. Currently there are only two: The name of the application and a popupmenu listing your servers.
All-in-all, Xojo Cloud is a very good first release. In the years that Web Edition has been around, deployment issues are the biggest headache for many. It can be quite frustrating to deal with the various issues and while Xojo Cloud seems a bit pricey we plan on migrating our apps over to it (technically some already are but they’re not public yet). File Storage and Database support is an extra addition, however, and some might find that unpalatable for now.
As if that wasn’t enough, there’s more! Release 1 has a ton of fixes and enhancements. The Layout Editors are MUCH speedier. I have several layouts that in previous versions were almost unusable with web containers. I had several web pages with fairly complex containers on them and when I selected one of them it would take a second for the Inspector to load and forget about doing a drag of the container as it would lag to the point of being worthless. This enhancement alone is worth the upgrade, in my opinion.
The IDE received a bunch of love fixing some of the more painful bugs in the Navigator. There are simply too many to list here but it’s a lot of changes in improving the user experience. Some of the properties in the Inspector have now been migrated to the advanced tab of the Inspector. The advanced tab used to contain only the Attributes panel but now some things like Font, Control Set, Focus and Database Bindings. No great loss of those since they’re not changed very often (or even used).
The SQL Server database class was enhanced so that it works with SQL Server 2012. This is good news for folks running Microsoft SQL Server.
Another big change in this release is the removal of QuickTime dependencies in the IDE and in Cocoa builds. Apple has deprecated QuickTime and is rejecting apps from Mac App Store that use it. In release 1 all framework references to QuickTime and QTKit are removed. If you are using EditableMovie or any of the QuickTime decencies in the MoviePlayer you are out of luck. There are currently no plans to replace EditableMovie. Along with this, the MoviePlayer was rewritten to work without QuickTime.
A new language feature is the IF operator. This is similar to the VB IIf or VB.Nets’s If operator. An example is: If(myInteger > 40, “Big number”, “Small number”). My only beef with the IF operator is that the debugger can’t show you the results unless you have a local variable defined to show it.
I highly recommend that you peruse the release notes as there is a plethora of changes and enhancements listed.
What are your thoughts on Xojo Cloud and this release?
Edit: Fixed a few typo’s.