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
- 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")
- 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
- "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
- 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.
Usefull for testing and design time layout
- 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.
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)
- 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" :
In addition FM2 can render vector drawn components or provide bitmap based components
- 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)
- Surface/ARM will come with the Delphi and C++ ARMv7 compilers (David I)
- 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
- 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 PHP for the Server side
- there are many kind of target applications:
- Client Mobile application
- Client web application
- Server mobile application
- Server Web application
- 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)
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:
The important points
Some minor 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.
- 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 ?
- 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
In other words, Delphi Pro (and third party with Delphi Pro) users had to nearly double the price to use remote database.
- 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
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
- "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 email@example.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 firstname.lastname@example.org.
- or more simply, enter your (anonymous or with your e-mail if you want an answer) comments below and clic the "send" button
- 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.