Xojo for Microsoft Visual Foxpro Developers
Kevin CullyCULLY Technologies, LLC
About This Session
● A Look at Xojo● Not a sales pitch● Comparison between VFP and Xojo● Why Developing In Xojo is 'natural' For VFP Developers● What It Takes For A VFP Developer To Move To Xojo● Coding in Xojo
About Me● Professional developer since 1990● Foxpro developer since 1992● CULLY Technologies, LLC since 2000● Consulting small, medium, and large companies● Desktop and web applications● Xojo (REALbasic) developer since 2006● 50% Xojo since 2010● Founder of Atlanta Xojo Users Group● Couple of articles in xDev Magazine
History of Visual Foxpro1984 FoxBase1987 – FoxBase+ for the Mac1992 – Microsoft buys FoxSoftware, Inc.1993 – FoxPro for DOS, Windows, Mac and Unix1995 – Visual Foxpro 3.0 (Windows, Mac)1996 – Visual Foxpro 5.0 (Windows)1998 – Visual Foxpro 6.0 2001 – Visual Foxpro 7.0 2003 – Visual Foxpro 8.02004 – Visual Foxpro 9.02005 – Visual Foxpro 9.0 Service Pack 12007 – Visual Foxpro 9.0 Service Pack 22009 – Visual Foxpro 9.0 Service Pack 2 w hotfixes2015 – Visual Foxpro support ends
Where are the VFP Developers Going?
Microsoft .NETPython
Ruby on RailsXojo
Looking For A New Development LanguageVisual Development
Singular IDEReport Writer
CrossplatformObject orientedMultithreaded
High productivityActive community
Third party supportExtensibility
Reasonably PricedNot case sensitive
language
About Visual Foxpro● Datacentric● Objectoriented and procedural programming language● COMbased● Dynamically typed language● Has its own relational database engine● Supports the full SQL query language and data manipulation● Much of Foxpro written in Foxpro● "Fat client" applications, but also middleware and web applications.
About Xojo● Objectoriented programming language● Strongly typed language● Single inheritance and interfaces● Class methods and class properties● Automatic memory management● Uses SQLite for integrated database engine● "Fat client" applications, but also middleware and now ● Web applications● iOS phone applications
About Xojo the Company
Geoff Perlman founded Real Software in 1996Headquarters in Austin TX
Developers around the globe
Bought CrossBasic in 1998Originally Mac and Java VM
Dropped Java VMAdded Windows
Added Linux in 2005Added Web in 2010Added iOS in 2014
Comparing VFP and Xojo
Feature Visual Foxpro Xojo
Windows Editor Drag and Drop Drag and Drop
Code Editor Methods, events and properties accessible from the property sheet
Methods, events and properties open in a related tab
Object-oriented Yes Yes
Graphic support Some, GDI+ Some, Sprites, Quicktime, GDI
Built-In Database Yes, DBF, DBC Yes, but single user version of SQLite
Database Connectivity Yes, via ODBC and OLE DB/ADO Yes, via ODBC and plug-ins
Internet Development Features Limited but can be extended with 3rd party products
Yes, Web Edition.
Integrated Help Yes Yes
Royalty-free Deployment Yes Yes
Target Platforms Windows Max, Windows, Linux, Web, iOS
Extensibility Classes, DLLs, FLLs Plug-ins
Application Types Desktop, console Desktop, console, web, phone
Integrated Report Writer Yes Yes, but limited
Error Handling Yes, ON ERROR, TRY...CATCH...ENDTRY, Object Error Method
Yes, exception class, TRY...CATCH...END
Integrated Debugging Yes Yes
Auto-Formats Code No (tabs or spaces fight anyone?) Yes (auto-indents for you)
Build Semi interpreted Compiled
Unicode No Yes
Architechture 32bit 32bit; 64bit in 2015
Cousin LanguagesVisual Foxpro: MessageBox(“Hello World”)Xojo: MsgBox(“Hello World”)
Visual Foxpro: LOCAL oMyClass oMyClass = CREATEOBJECT(“MyClass”)
Xojo: DIM oMyClass AS NEW MyClass
What about costs?
Xojo IDE Free!Xojo Single Desktop $99/eachXojo Desktop $299Xojo Web $299Xojo iOS $299Xojo Professional Edition $699Xojo Enterprise Edition $1,999
On occasions there will be sale pricing.
Xojo ControlsThere is a good bit of overlap between Visual Foxpro controls, however Xojo has a wide variety of controls that we didn't natively have access to.
Screen Building
Database Access For our database example, lets look at a class I use to store and retrieve generic settings; Window height, width, listbox column widths, etc.
Data Binding – Xojo
Report Building
Easing The TransitionBuilding a class with the missing VFP commands
Native Controls for Desktop Applications● Windows● Mac● Linux
Cross Platform Issues
#IF TargetWin32 THEN ' Windows only code#ELSEIF TargetMacOX THEN ' Mac only code#ELSEIF TargetLinux THEN ' Linux only code#ELSEIF TargetWeb THEN ' Web only code#ELSEIF NOT TargetHasGUI THEN ' Console application code#ENDIF
Building Apps For Alt. PlatformsIf you are careful with your development, and creating dependancies, building applications for alternate platforms is a checkbox away.
Remote Debugger
Xojo Plugin Creators
Monkeybread Software
Bkeeney Software
Einhugur Plugins
Van Hoek Software
… and many others ...
Bumps in the Road Moving to Xojo
● Recordsets● Controls are global to the Window● Cannot programmatically control ZOrder of controls● Visual Inheritance● Code Inheritance Parent Classes● Data Binding
Xojo Plans
● LLVM● 64bit● Android● RaspberryPi & others
Xojo is Web 3.0!
● (Web 3.0 is one better than Web 2.0)
Current Web Development
● HTML● PHP ● CSS● ASP.NET● JavaScript● Jquery● ExtJS● KnockoutJS● AngularJS● … any others ...
Xojo Web Edition
● Web Site <> Web Application
Xojo Web Edition
● Develop as you would desktop application● Persistent connection between browser & server● Web sockets & similar technology per platform handles communication
●
● { demo }
Xojo Web Edition
● First Application
Xojo Web Edition
● Single Page Application
Xojo Web Edition
Xojo Web Platform Specific
●
Xojo Web Edition Deploy
● Xojo Cloud – Xojo's own cloud hosting● 1701 Software – Xojo Web Edition Specialists● Digital Ocean – Hourly and Monthly Hosting● Vultr – Hourly and Monthly Hosting● … others ...
Xojo Web Edition
●
Q & A
Kevin [email protected]
Thank You!
Kevin CullyCULLY Technologies, LLC
Http://cullytechnologies.comHttp://cully.biz
Http://twitter.com/kevincully
Recommended