menu
  Home  ==>  papers  ==>  delphi  ==>  delphi_xe3_info   

Delphi XE3 Info - Felix John COLIBRI.

  • abstract : what's known so far about Delphi Xe3 : FireMonkey FM2, Windows 8 Metro and Metropolis, DataBindings, Mac OsX, Mobile Studio, Html5 Builder. WinRt: native or not. Delphi Pro Database licensing changes and canceled changes
  • keywords : Delphi XE3 - FireMonkey - Windows 8 Metro - LiveTile - DataBindings Designer - DataBindings Prototyping - Mobile Studio for iOs and Android - WinRt - SideLoading
  • plan :



1 - Delphi Xe3 News

This page will summarize what was published on the web so far about Delphi Xe3.

This is a simple report of pages I read, most of them referenced at the end of the article. I have no inside or official information of any kind, and am not beta tester, and had no access to the product at this date (22 august). Again, sources are pages on the Web, with special thanks to Lachlan GEMMELL for his very detailed verbatim notes of the Sidney conference.

You may consider this as a personal summary, to be prepared for the coming World Tour conference.

In addition we also present

  • some shapshots from the preview video
  • the WinRT features
  • the possible Delphi XE3 Pro Database licensing changes



2 - Delphi Xe3

2.1 - FireMonkey FM2

  • FM2 : "next generation FireMonkey application platform"

  • support for Actions and ActionLists
    Either framework independent, framework specific or LiveBinding specific
  • Anchor for the control
  • layout manager : flow and grid
  • multi media
    • audio-video : playback AND recording/capture (Windows and OsX)
    • tMediaPlayerControl component (Windows and OsX)
  • sensor and services Api for hardware on the mobile devices
    • position (Windows et Mac OsX)
    • other sensors (light sensors on OsX)
    • Motion sensor on Slate
    • Geo-location via GPS or network sensors
  • localization designer
  • styles
    • vector based styles (as in XE2) and bitmap "pixelperfect" styles like the VCL (useful for retina screens)
    • the Retina styles work on both Retina and non-Retina screens
    • FireMonkey switches between styles at runtime
    • redistributable style designer shared between VCL and FireMonkey
    • FireMonkey non-client area styling (title bar, min, max, close icons)
    • transparent window style
    • has styles that emulate Win8 Metro (so will allow Metro style on Windows XP, but without the LiveTiles)
    • the Retina styles work on both Retina and non-Retina screens
    • the style change can be performed at runtime
  • 3D improvements
  • gesture : standard and Windows 8 gestures - Touch compatible en source with la Vcl
  • virtual keyboard
  • DirectX 10 support
  • VCL->FMX migration : right-clic on a Vcl Form, and "convert"
  • third party support : TMS available now, FastReports included with XE3, ReportBuilder working on it, DevExpress may start soon ("We consider the possibility of porting some components to Firemonkey")


Also note
  • no RichEdit (would require native components) and no Webbrowser
  • no designer laser lines
  • the FMX-VCL integration still not officially announced (but has been demonstrated in some developer's Web articles)
  • native controls : somehow in the Mobile Studio
  • no Frames yet (maybe in coming versions)


2.2 - Windows 8

  • creation of Delphi applications with Windows 8 look and behaviour

  • Metropolis : the name for Delphi's Metro look and feel and Win8 integration (LiveTiles, etc)

    So, are we building Metro apps using WinRT or only "Metro look and feel" apps ?

    • a tLiveTemplate component spawns a new process in the WinRT space which is is an actual WinRT LiveTile application. The LiveTile communicates with the Metropolis "desktop" backend via HTTP/REST to start/stop the application or update the LiveTile.
    • in an answer of an Embarcadero forum, Alan BAUER surprisingly revealed that a direct access to the WinRT was impossible, due to Microsoft rejection of any compiler but Microsoft's own tools : "the actual implementation allows only VC++ code to work through special permission given to it runtime DLL". So, until Microsoft lifts this constraint, "true WinRT" will not be possible

  • the "File | New" menu has now Metropolis options (for VCL and FMX)

  • migration of VCL or FireMonkey to Metropolis in a couple of clics
  • with the Metro integration, a Windows 8 Metro style Desktop application can run on Windows XP, Vista, Win 7 or Win 8 and work as touch-enabled apps thanks to Delphi gesture control functionality
  • Metro support for Intel mobile devices including gyro, accelerometer and camera.
  • "Fat Finger" touch ready
  • Office 2013 styling

  • Metro application templates : basic, grid and split layout
  • tLiveTile component handling the selection of live tile templates (52 templates available)
  • support for Surface Pro (Intel device) and Samsung Slate (ATOM).
    Surface/ARM will be available with Mobile Studio


Please note
  • "Windows App Store" will be possible using "SideLoading"


2.3 - Interbase

  • new InterBase XE3 version, with ToGo embeddable version
  • Can switch within the IDE deployment to embedded or remote interbase instances

  • Interbase for iOS et Android when Mobile Studio will be available


2.4 - DataSnap

  • an SqlLite driver for DBX
Also
  • no functional extensions were presented
  • no Servers on Linux


2.5 - LiveBindings

  • "Visual LiveBindings designer" : building visual connections
    • uses Drag and Drop
    • for instance, drag TListBox.SelectedValue on tLabel.Text. Will fill the lists, the tListViews, the grids
    • can right click on entities to choose properties other than "text" to bind to
  • Organise large numbers of bindings using photoshop style layers. Can hide/show parts of complex LiveBinding visual designs, and save the design as a bitmap.

  • More LiveBindings wizards to set up bindings

  • the Observer pattern used more extensively within LiveBindings. No more need for manual change notifications
  • FMX grid binding uses new method at designtime (no tDataSource as in XE2 : just link a BindSource to a dataset such as tClientDataset)
  • improved dataset lookup support
  • grid columns editor has been improved
  • LiveBindings stored in the .DFM
  • a .VLB file stores the design-time layout from the bindings designer.
  • tProtoTypeBindSource
    • allows to mock up a database for prototyping purposes without needing to create the actual tables yet.
    • it is also possible to prototype data from other sources (tList <tMyObject> for instance)
    • there are wizards to fill the mock database with sample data.
    • tProtoTypeBindSource.OnCreateAdapter event lets you switch from mock database to actual database/business object/anything with public properties.
    Usefull for testing and design time layout


2.6 - Mac OsX

  • support for OSX Mountain Lion
    Styles FireMonkey "Native Mountain Lion"
  • supports Retina displays. FireMonkey components automatically can detect and be optimised for pixel-perfect display on either Retina or non-Retina displays in the same binary executable
  • Mac App Store compatible (Anders Ohlsson already has a FM2 app in the Mac Store)
  • video playback utilises Quicktime
  • new IDE "Entitlement List" page for "OsX sandboxing"
  • new IDE "Provisioning" page (Mac developers certificates)
  • Indy
  • sensor support, like OsX light sensors



3 - Mobile Studio - iOs et Android

3.1 - Mobile Studio

  • Mobile Studio : the name of the new add on for building mobile applications for iOs and Android (and eventually other later : Blackberry, and Windows Phone)
  • it is a separate product from Delphi Xe3
    • will be purchased separately
    • will be part of "All Access" (a kind of Embarcadero "app store")
    • will plug into the Rad Studio IDE (like C++)
    • the purchase (or upgrade of) Xe3 licenses will allow to be beta tester
    • should be available around first quarter 2013
  • Uses FireMonkey, dbExpress, Interbase, SQLite, DataSnap
    Supports Gyro, GPS, Camera, Accelerometer (this library is multi platform)
  • Same source code will natively target all devices.
  • enables debugging on the device from the Delphi IDE (or from the IDE on the iOS simulator running on OSX)
  • uses a mobile device form designers
  • Indy support on iOs

  • the Delphi language (= the "front-end") will include mobile enhancement, like memory management features such as automatic reference counting.
  • the Delphi mobile back end (= the compiler, linker, debugger) will be optimized to generate ARMv7 processor binaries
  • both the runtime library and FireMonkey framework are being optimized for mobile, removing un-needed desktop functionality and adding mobile specific features.

  • native controls or "look and feel" :
    • a demo of a native iOS popup dialog was presented in a running OSX demo
    • the official answer is "We will do native controls where native makes sense"
      and "We'll do the obvious ones, and as many as we can, but 3rd parties or yourself can add others" (Malcolm GROVES)
    In addition FM2 can render vector drawn components or provide bitmap based components
  • Surface/ARM will come with the Delphi and C++ ARMv7 compilers (David I)


In addition
  • the migration tools delivered in XE2 will no longer be included in XE3, and FireMonkey FM2 desktop apps will not be compatible with FreePascal and XCode. However, as an XE3 customer you will have access to (or may already have) the XE2 product that you can continue to use with FireMonkey XE2 to build iOS applications with Xcode and FreePascal.
  • the whole product rests on the future ArmV7 compiler


3.2 - The FireMonkey Mobile Framework

This is what JT (John Ray Thomas) presented:
  • a mobile targeted version of the FireMonkey FM2 framework,
    • will take advantage of the new Delphi language memory management features
    • deliver mobile specific features such as
      • native iOS and Android UIs with pixel-perfect native looking controls and behavior
      • custom UIs (which can share custom styles with XE3 desktop applications),
      • a service framework
        • for hardware sensors, such as GPS, accelerometers, gyros, and cameras,
        • for OS services such as location, advertising, and in-app payments.
  • the mobile products (FireMonkey FM2 for mobile and the mobile tuned development environment)
    • are being designed to be able to easily leverage and extend XE3 Mac and Windows desktop projects.
    • will offer native development solution for both iOS and Android with
      • one development environment
      • one language (Delphi or C++)
      • one framework,
      • and one codebase (common with XE3 desktop projects as well)



4 - HTML5 Builder (in Rad Studio Xe3 - not a Delphi product)

  • Html5 Builder : tool for building HTML5 web applications and iOs / Android mobile applications
  • builds on the previous "RadPhp Xe2", with a new IDE and many extensions
  • allows to build applications
    • with HTML5, CSS3 and JavaScript front end (= languages).
    • with PHP for the Server side
    "So we can create HTML5/CSS3/JavaScript client and mobile applications and never have to do any server side PHP, and can also build server side PHP" (David I)
  • there are many kind of target applications:
    • Client Mobile application
    • Client web application
    • Server mobile application
    • Server Web application
    and
    • Console Application
    • SOAP Server Application
    • individual units including
      • Client Mobile Page, Client Page, Client Unit, Mobile Theme, Server Data Module, Server Mobile Page, Server Page, Server Unit.
    • components, CSS Style Sheets, DataSnap REST Client (Delphi and C++Builder native code datasnap servers on Windows), etc
  • for Android, HTML5 Builder will automatically install the Android SDK Android and the emulator
  • the HTML5 components support canvas, geolocation, local storage, audio/video multimedia
  • for deployment to mobile devices, HTML5 Builder uses PhoneGap services (like RadPhp did)
  • the Editor supports JavaScript code completion


Obviously, Html5 Builder is not a "Pascal / Delphi" product, but I still felt it was worth mentioning in this article




5 - Delphi Xe3 In perspective

Just my 2 cents ...

5.1 - Microsoft and the run for the Mobile

Totally ignorant about Windows 8, "Metro Style", WinRt, LiveTiles names and concepts, I had to dig a little bit to understand what everybody was talking about. Those of you who know, will undoubtedly skip this part

In September 2011, there was a Microsoft conference "the BUILD", where the new Windows 8 architecture was presented. Here is the very important official diagram which will make a very long story short:

architecture_davidburela



The important points

  • this shows the willingness of Microsoft to focus on the mobile market and try to grab a share of the "app store" market
  • the Windows 8 / Metro Style does not seem to have convinced everybody that Microsoft will win this game, and many predict that it will some day be dropped as some other Microsoft marketing efforts.
Some minor points
  • this diagram has about as many versions as presenters, as explained by Mary Jo FOLEY
  • as an aside, "Metro" is no longer supposed to be used because of some German company with rights on the name
  • so far, Windows 8 with Metro Style seems to be a "many personality" product:
    • the "desktop" part and the "Metro" (mobile) part
    • the x86 and the Arm binaries
    • a managed (C#) and a non managed (C++) part
    • a new visionary product (towards a object oriented OS, beyond C#) with the usage of some kind of applications interfaces, or a step backward (COM and the Registry)
    • the nice new User Interface, or the limited communication with other apps features
  • many argue that WinRt is supposed, over time, to replace Win32


5.2 - The WinRt controversy

The architecture diagram above clearly explains the WinRT controversy:
  • is Xe3 able to produce apps in the "Metro" area
  • or can Delphi Xe3 only produce Win32 apps which look and behave like "Metro Style" apps ?


So
  • the paragraph above presents how Delphi XE3 can communicate with WinRT apps and why Delphi cannot generate native WinRT applications, due to some Microsoft constraints, presumably to preserve the WinRT security
  • a later blog also explained how Delphi (and other platforms / tools) could somehow produce application for the Windows store, using "sideloading"


5.3 - "Delphi Professional Edition" Licence terms (EULA) - Changes and Counter-changes

Joylon SMITH also pointed out that some Web leak explained that the Delphi licensing for the PRO version will change. This was somehow confirmed by David Intersimmone in answers to forum posts

To cut it short

  • new users can only use the Delphi Professional Edition to access local database, either with the Delphi components or third parties
  • to develop applications Client/Server applications new users will have to use Enterprise edition or higher, or by the Client/Server Addon for Professional Edition
  • if you own a license from Delphi 1 to Delphi XE2 you will not be affected by this new restriction
In other words, Delphi Pro (and third party with Delphi Pro) users had to nearly double the price to use remote database.

This started a violent outrage, with Non Technical posts in "non technichal Delphi forum" with more than 700 ansers !



This was canceled, on August 31, whith the publishing of the (reverted) EULA, which allows remote database usage, with clauses similar to the Delphi Xe2 terms for Delphi Pro (and third party with Delphi Pro) users.

I could have removed this paragraph altogether, but since many readers of this summary might have heard about the controverys, I prefered to keep it, with all the links (including part of the reverted EULA) at the bottom of the article




6 - References

Embarcadero

The WinRt story Delphi WinRT Sideloading

About the license changes

World Tour Summaries

Windows 8 and WinRT articles


7 - Dictionary

Since I am not really a groupie of all new technologies or hardwares, (I basically use Delphi 6 on XP, have no iPhone nor Mac), I simply will list the topics I will have to become familiar with in the coming weeks:
  • "surface pro" : the Microsoft tablet
  • Html5
  • "mountain lion"
  • "slate" : the Samsung tablet
  • "retina screen" : a MacBook screen
  • "Windows 8" - Metro - LiveTiles
  • "fat finger"
  • "Photoshop Style Layers"



8 - Snapshot of the Delphi Xe3 Preview




9 - Feedback

As usual:
  • please tell us at fcolibri@felix-colibri.com if you found some errors, mistakes, bugs, broken links or had some problem downloading the file. Resulting corrections will be helpful for other readers
  • we welcome any comment, criticism, enhancement, other sources or reference suggestion. Just send an e-mail to fcolibri@felix-colibri.com.
  • or more simply, enter your (anonymous or with your e-mail if you want an answer) comments below and clic the "send" button
    Name :
    E-mail :
    Comments * :
     

  • and if you liked this article, talk about this site to your fellow developpers, add a link to your links page ou mention our articles in your blog or newsgroup posts when relevant. That's the way we operate: the more traffic and Google references we get, the more articles we will write.



10 - The author

Felix John COLIBRI works at the Pascal Institute. Starting with Pascal in 1979, he then became involved with Object Oriented Programming, Delphi, Sql, Tcp/Ip, Html, UML. Currently, he is mainly active in the area of custom software development (new projects, maintenance, audits, BDE migration, Delphi Xe_n migrations, refactoring), Delphi Consulting and Delph training. His web site features tutorials, technical papers about programming with full downloadable source code, and the description and calendar of forthcoming Delphi, FireBird, Tcp/IP, Web Services, OOP  /  UML, Design Patterns, Unit Testing training sessions.
Created: aug-12. Last updated: jul-15 - 98 articles, 131 .ZIP sources, 1012 figures
Copyright © Felix J. Colibri   http://www.felix-colibri.com 2004 - 2015. All rigths reserved
Back:    Home  Papers  Training  Delphi developments  Links  Download
the Pascal Institute

Felix J COLIBRI

+ Home
  + articles_with_sources
    + database
    + web_internet_sockets
    + oop_components
    + uml_design_patterns
    + debug_and_test
    + graphic
    + controls
    + colibri_utilities
    + colibri_helpers
    + delphi
      – rad_studio_resources
      – the_turbo_pascal_story
      – induc_a_virus_anatomy
      – firemonkey_styles
      – delphi_xe3_info
      – ios_preview_summary
    + firemonkey
    + compilers
  + delphi_training
  + delphi_developments
  + sweet_home
  – download_zip_sources
  + links
Contacts
Site Map
– search :

RSS feed  
Blog