Xojo 2014 Release 2 was released this week. This release has around 200 bug fixes and enhancements, some new features, and some licensing changes. A good portion of the changes and enhancements are in the Web framework which will make web developers very happy (I know I am!).
New Single Desktop licensing. A new license is available for a single desktop platform (Mac OS X, Windows, Linux) at $99 each. This is helpful if you are only dealing with a single platform and have no need for the other two.
Pro license is $100 cheaper. A new Enterprise license is now available that gives you everything that the Pro license gives you plus 8 hours of custom video training. The Enterprise license costs $1,999 for both new and renewal.
Users can now add plist items into the plist generated by the IDE at build time. This takes the form of an XML file that is added to the project. If this is something you’re interested in take a look at the Platform-Specific/OS X/PList/EnableRetina example. If you were using an IDE script or PostBuild script on the Mac side to do this already I’m not sure that this is a better solution. However, I think this will be hugely beneficial to Windows and Linux users that are building for Mac OS X.
The PostgreSQL database plugin now has an SSLAuthority FolderItem property that represents the root SSL certificate file. This lets you connect to your database server using SSL.
Xojo Cloud users can now use the StageCode to create different builds for the server. Final is the same as it was in the previous release but Beta, Alpha, and Development stages add a -Beta, -Alpha, and -Dev postfix, respectively, to the app name and upload them to the Xojo cloud server. This should make it easier to test Xojo Cloud applications. The only drawback I can think of is that smart users might figure out the URL postfix and use the newer version rather than the release.
Speaking of Xojo Cloud, release 2 seems to have finally fixed the hang on upload during large projects. During the beta cycle I went from 1 out of 5 successfully uploading to a nearly 100% success rate. Those that did fail didn’t require a restart of the IDE which was a royal pain in Release 1.
AddHandler and RemoveHandler now work with Web controls after they’ve been sent to the browser. In previous editions you had to use AddHandler before it was sent. For example, if you added a dynamic WebDialog you had to implement the AddHandler after it was created but before the Show method was called. Now you can do that after the show.
The WebListBox received some love in this release. A new SelectionStyle property now lets you set the WebStyle for row selections. In addition to that, there is a new HeaderStyle and HeaderColumnStyle properties that let you select the header and column headers, respectively.
WebTextArea now has a ScrollPosition property that allows you to set the, wait for it, scroll position.
The WebToolbar has become more useful in that it allows you Append and Remove items. This has been wanted for a while now.
In one of the bigger bugs that’s affect me for a while, they fixed the WebRequest.QueryString on cgi builds. This now lets cgi builds to work the same as standalone builds.
WebContainers added via the EmbedWithin method now no longer have exponentially increasing delays. This is very helpful to developers, like us, that use WebContainers a lot. This change will let dynamic displays to be more responsive over time.
A bunch of Web framework items no longer leak memory. Of note is the WebPage when closed and dynamic WebDialogs (i.e. created in code not placed on a page at design time).
A change was made to the Web framework to prevent ‘clickjacking’. Clickjacking is an attack that tricks the web user into clicking something that is different from what they perceive. This can potentially reveal malicious or confidential information or even allow taking control of the computer. As far as I know, this attack has never occurred in a Xojo web app but it’s nice to see that they’re proactive on these things.
StyledText RTF parsing speed is improved. This is a good thing since it was pretty much a dog before.
A number of console app memory leaks were fixed.
Some database changes: SQLite is updated to use version 3.8.5. The MSSQLServerPreparedStatemnt.SQLExecute no longer crashes. MySQLCommunityServer no longer causes failed assertions when SQLSelect/Execute are invoked while other threads are running. The Recordset.Update/Delete now works in SQLite databases when he primary key has special tokens (like single quotes) or BLOBS. The error returned by SQLite databases using a bad encryption key is now the proper error.
Windows and Linux MsgBox and MessageDialog modality is now consistent. This means that MsgBox is always app-modal but it depends with MessageDialog. If called with ShowModal it is app-modal but if used with ShowModalWithin it is window-modal.
The IDE has a bunch of changes and improvements. The long standing issue of changes in the Inspector not being retained unless you tab out of the TextField seem to be fixed. Changes to non-text properties also commits the changes. The Inspector has been compressed a bit to reduce scrolling.
In general, the IDE seems a bit snappier – at least on Mac OS X. Sometimes it’s very hard to tell about fit and finish on the other platforms simply because I don’t develop on those platforms.
Xojo 2014 Release 2 is very much about the Web. The memory leaks getting squashed, the WebListBox additions, and security improvements are all welcome. Xojo Cloud is now functioning better and is now, in my opinion, worthy of being used on a day to day basis. We’ve moved all of our training apps to Xojo Cloud during this beta cycle and are happy with the performance.
If you are not a Web developer than this release still has some changes and fixes that might be important to you. Unfortunately, in a review like this I can only comment on changes that seem important to me. Check the release notes out!
What did I miss in the review that you thought was important?