Delphi developers are in for a big surprise as the World Tour of RAD Studio XE2 brings them some very unexpected opportunities as well as the expected Win64 compiler.

Here are a few of the new features in XE2:

64 bit Windows compiler:

  • for most Win32 projects, just select compile to Win64 and you have native 64bit Windows executable or DLLs!
  • if your project uses 32-bit assumptions, then these will need to be addressed, but otherwise it should just work.
  • NB. NativeInt, NativeUInt, pointers, indexes to dynamic arrays, tag properties (now nativeInt) are 64bit
  • Use your same source code and project files – just select an additional platform to build for in the project window
  • Use the same Windows API calls in your code, although Microsoft have renamed some (eg. SetWindowsLong is now SetWindowsLongPTR)
  • Use the same Runtime Library classes and functions
  • Use the same VCL components and non-visual components
  • new compiler directives include Win64, CPUX64
  • can only access 64bit versions of dlls, ActiveX controls, bitmaps and COM objects (eg. 64bit MS Office will only work with 64 bit exe’s and vice versa)
  • Win64 now ignores register, pascal, cdecl, and stdcall, so these are ignored in 64bit compilations.
  • No Extended type
  • issues with assembly code, SHL and SHR

New FireMonkey GPU framework for NATIVE deployment to Win32, Win64, OSX, iOS and Android:

  • 1st the bad news – to convert your existing projects, you will have to migrate all your VCL-based code and components to FireMonkey components as the two are not compatible in the same project (because it does not directly use Windows messaging like the VCL does), and instead of data-aware components as in VCL, we now have Live data bindings for all components (these are also now available in VCL)
  • Now, the fantastic news:
  • awesome 2D and 3D rotatable, visual forms and components with enormous potential for native GUI apps
  • you can apply the Gaussian Blur filter on your form at a strength you deem appropriate when a modal form is activated in front of it
  • improved animations of visual controls
  • compatible with TClientDataset and DBExpress components
  • NATIVE deployment as Object Pascal code to target platforms including iOS and thus satisfies Apple’s iTune apps requirements
  • Create a single application and target both Windows and OS X
  • the framework makes extensive use of interfaces to establish contracts, not inheritance
  • it is not managed code like .NET nor does it use AIR, Silverlight, HTML5 or CSS for its functionality but native code

Enhanced DataSnap DBExpress functionality:

  • DBExpress ODBC driver
  • new mobile and cloud connectivity in RAD Cloud – Microsoft Azure and Amazon support
  • supports https
  • new Datasnap server functionality includes client connection information and management of the connection from the server with ability to limit number of requests per connection, and ability to detect connects, disconnects, and to forecfully disconnect clients.
  • DataSnap clients can be created for nearly every common device natively via FireMonkey although Linux, Android and Blackberry devices currently are limited to using java Datasnap mobile connectors, while Windows Phone 7 devices are limited to using C#/Delphi Prism Datasnap mobile connectors.
  • one creates an Android Datasnap client in Delphi XE2 by creating a REST application and ticking the mobile connectors option which adds a DSProxyDispatcher component which will generate project java files such as DSProxy.java which can then be imported into Eclipse IDE for packaging as an Android app.

Enhanced VCL functionality:

  • the VCL is NOT being made redundant as it is needed for Windows specific applications (eg. using COM, etc) and backward compatibility
  • new functionality includes option of using the incredibly versatile LiveBindings functionality (see next post on FireMonkey) and new VCLStyles which allows a different mechanism of skinning to FireMonkey as it allows the use of a vsf file to be loaded at runtime, or added to the executable in Project options application appearance section, and then allows use of TStyleEngine and TStyleManager to set styles or load from file, but these styles are not applicable to menus, popupmenus or ribbons.

New RadPHP functionality:

  • rich jQuery mobile components
  • Create mobile-optimized web applications and standalone apps for iOS and Android devices using RadPHP – PhoneGap wizard allows packaging your application by creating java files for import into Eclipse java IDE, selecting a target platform (eg. Android v2.2) and running in the emulator before uploading to the Android store.
  • Create mobile optimized web applications that work on all types of mobile devices with elements that behave similar to native mobile apps.
  • Take advantage of touch optimized layouts, user interface elements, and professional looking theming using HTML5, CSS3, and JavaScript on the client and PHP on the server in an easy-to-use and visual way that only RadPHP can offer.
  • Using jQuery in RADPHP and a technology called PhoneGap, you can now package up a PHP application and deploy it as a native Android application

Very exciting times indeed!!

You can register for the Australian part of the World Tour demonstrations here – the Melbourne event is next Thursday, the 11th August 2011.