Migrating from Visual Basic
VisualBasic
Visual Basic (6 or earlier) and Visual Basic .NET use a language very similar to the Xojo language. You will notice that many of the commands are nearly the same, but there are differences as well.
You can find further information in these blog posts: A Modern Alternative to Visual Basic and Migrate Your Visual Basic Apps to Xojo and the Migrating to Visual Basic video.
To help make your transition from Visual Basic easier you can also download the open-source VB library which maps many VB commands to their Xojo equivalents for you:
Xojo.VB: A library of Visual Basic functions for use with the Xojo programming language.
Similarities to Visual Basic
Visual Basic 6 (VB6) is no longer supported by Microsoft, which recommends you instead migrate to Visual Basic .NET (VB.NET). But Visual Basic .NET is large and complex, not to mention not cross-platform. Xojo is usually a better choice for Visual Basic 6 apps because it has the simplicity of VB6, but is a fully object-oriented language like VB.NET.
Programming language
To start with, the language syntax of VB is very similar to Xojo. You 'll see familiar syntax for If...Then...Else, For...Next, While...Wend, Dim and many other commands. Someone who has used either VB6 or VB.NET will have no trouble understanding the Xojo programming language.
Data types
Although Xojo data types are not always named exactly the same as VB6 data types, all the equivalent types are there. For example, Integer is equivalent to a VB6 Long. Here is a mapping of some VB data types to Xojo data types:
VB Data Type |
Xojo Data Type |
---|---|
Boolean |
|
Byte |
|
Currency |
|
Date |
DateTime class |
Double |
|
Integer |
|
Long |
|
Object |
|
Single |
|
String |
|
Variant |
Commands
Below are some common VB commands and their corresponding Xojo commands.
String manipulation
VB Command |
Xojo Command |
---|---|
Asc |
|
Chr |
|
Len |
|
Left |
|
Right |
|
Mid |
|
Trim |
|
LCase |
|
UCase |
Mathematical functions
VB Command |
Xojo Command |
---|---|
Abs |
|
Cos |
|
Sin |
|
Tan |
|
Val |
|
Rnd |
|
Int |
Input and output
VB Command |
Xojo Command |
---|---|
MsgBox |
File handling
VB Command |
Xojo Command |
---|---|
Open |
Controls
The default UI controls included with VB are, for the most part, also included with Xojo. But Xojo also has several controls that are not included by default with VB. Of course VB had plenty of additional, but Windows-specific, controls that could be added to its default setup and many of these controls can be added to Xojo using ActiveX, but they will also remain Windows-only.
Here is a list of some VB controls and their Xojo equivalents for desktop, web and iOS apps:
VB Control |
Xojo Desktop Control |
Xojo Web Control |
Xojo Mobile Control |
---|---|---|---|
PictureBox |
|||
Label |
|||
TextBox |
|||
Frame |
n/a |
n/a |
|
CommandButton |
|||
CheckBox |
|||
Listbox |
|||
HScrollBar, VScrollBar |
n/a |
||
Timer |
|||
Shape |
|||
WebBrowser |
|||
TreeView |
n/a |
n/a |
|
Toolbar |
|||
MediaPlayer |
Differences from Visual Basic
Xojo definitely feels familiar to VB developers, but there are differences as well. A big difference is that Xojo cannot create DLLs, ActiveX controls or any kind of shared libraries. Since these are all Windows-specific technologies, they are not useful for cross-platform apps.
Xojo can access DLLs and many ActiveX controls, but using them means your application will only run on Windows and cannot be cross-platform.
Of course, Xojo can easily create web and iOS apps, something VB6 cannot do.
File I/O
File input and output in VB6 uses direct, path-based access to files. This is not something that works for cross-platform apps, so Xojo consolidates all file processing into a few classes: FolderItem, TextInputStream, TextOutputStream and BinaryStream.
Data typing
Xojo is a strongly typed programming language. VB6 (and older versions) would allow you to use a variable that had not been previously declared. It would infer a type based on a special character in its name (name$ would be a String, for instance). Before trying to migrate VB6 code, you should use the OPTION EXPLICIT command to make sure that all your variables are declared.