Wednesday, May 20, 2015

Article on Developing for Windows 10 with RAD Studio XE8

Just wrote an article on Embarcadero Community site you might be interested in.

Just wrote an article on Embarcadero Community site you might be interested in:

It covers installing RAD Studio XE8 on Windows 10 preview and building applications for the preview of the coming version of Windows. We are expecting the migration to be smooth, but also very interested in creating "first calss apps" (or universal apps) via the Centennial bridge.

We are working with Microsoft to offer Delphi and C++Builder the best support for Windows 10, whether they keep going with the best Windows library out there (VCL) or follow the multi-device route with FireMonkey. Stay tuned for more information.


Wednesday, May 13, 2015

Conferences Last Week London and DDD From Remote

Last week I've spoken to a Delphi conference in London, and after that I've attended online Q&A sessions at the Delphi Developer Days events in Olso and Frankfurt. Here are some pictures.

Last week I've spoken to a Delphi conference in London, and after that I've attended online Q&A sessions at the Delphi Developer Days events in OsLo and Frankfurt.

Spring Delphi Conference, London

The London Spring Delphi Conference was a community event sponsored and promoted by Embarcadero. There were local and Embarcadero speakers, plus Bruno Fierens who showcased among others a new great FireMonkey component, a time planner. The event was also in a great location, London's National History museum. Here are some pictures.


Delphi Developer Days, Online Q&A

At Delphi Developer Days 2015, organized by Cary Jensen with Ray Konopka this year, I gave a keynote in Amsterdam (late April), which Cary recorded. For the following European stops they replayed my recording and later I joined for an online audio and video Q&A session. I t was really a pleasure for me and I think attendees appreciated it *yes, being there in person would have been better, but there is so much one can do).

Here are pictures of me speaking, to the audience... wondering if I should move to a nicer looking section of my office in the future.


Next, Far East

I'm going to be in Japan (next week) and China (the following one). If you live in those countries (or nearby), I'll be happy to see you in Osaka, Tokyo, or Beijing.



Monday, May 4, 2015

Microsoft BUILD, Windows 10, and Delphi and C++Builder

Microsoft made a large number of announcements last week at the BUILD conference, some of which surprising, about Windows 10 development. Here are some personal considerations, also regarding RAD Studio (both Delphi and C++Builder)

Microsoft made a large number of announcements last week at the BUILD conference, some of which surprising, about Windows 10 development. Here are some personal considerations, also regarding RAD Studio (both Delphi and C++Builder). Don't take this as an official Embarcadero announcement, as we still need some time to fully evaluate. Rest assured that full support for the Windows 10 platform is in the RAD Studio roadmap and the company is fully committed to it. Also, the information here is based on public information Microsoft has released so far, and that is not really complete or detailed.

Overall Microsoft Directions

At the BUILD 2015 conference, the company substantially reiterated its recent strategy of " cloud first, mobile first ", but gave it considerably more substance. Here I won't really cover much the cloud side, as there is limited direct tie with pure development (as long as you can interact via REST with cloud services, and use them for hosting applications and data). The focus around mobile, however, is very interesting and got a couple of spins:

  • Treat each computer as a device, including a desktop PC. This implies adding services like notifications and push notifications, app advertising, and store purchase of third party applications, something Windows 8 almost totally failed to deliver. (By the way, their marketing spin of considering Android = KitKat to show Windows 10 will be a platform larger than Android looked quite foolish to me)
  • Spread office and other Microsoft apps to all mobile platforms, and offer Azure services to all. This includes API integration for Office on all platforms, something of interest to many developers.
  • Help developers outside of the Microsoft ecosystem (that is, WinRT) target both desktop and mobile version of Windows 10

This last is a new key element of the Microsoft strategy, and something significantly and directly affecting RAD Studio developers. But let's proceed in steps.

The (New) Universal Windows Platform

Until a little time ago, the Universal Windows Platform with WinRT API at its core (in a new version working across desktop and mobile) seemed like a new implementation of the largely unsuccessful "Modern App" strategy around Windows 8 time frame. The announcements at BUILD 2015 radically change the model and make it extremely more flexible and open to all developers.

If you want to read an overall overview of the Universal Windows Platform, you can refer to blog post by Kevin Gallo There are some interesting elements in the strategy, including UI styling, some nice new components (not sure if I'm the only one thinking that the RelativePanel is very similar to FireMonkey MultiView component), and platform extensions.

One side element, but one that is very important to RAD Studio developers, is that some of the new Windows 10 features will become available via the traditional Win32/64 SDK, in a way that should be easy to consume for Delphi and C++Builder native applications. Rest assured that RAD Studio will have support for these APIs.

Universal Windows Platform Bridges

Even more important than the core platform features, was the announcement of a number of projects to host existing applications written with different technologies as part of the Universal Windows Platform. In other words, unlike in Windows 8, there are many ways developers can support the latest Microsoft platform, which is great news. This is done through 4 different "bridges", covered at

1. Project Astoria is an Android "compatible" runtime for Windows Phone. According to the current information, it looks like an existing Android APK can be used as is. A developer would need to update it only to take advantage of specific Microsoft services. Microsoft specifically mentions supporting both Java/SDK and C++/NDK, so I'm expecting Delphi and C++Builder Android applications to be supported. This will be great news, as RAD Studio developers will be able to target also Windows Phone with no change to their code.

2. Project Islandwood is an Objective-C toolchain available in Visual Studio for re-compiling iOS applications to target Windows Phone. This is not a direct bridge or a compatibility layer (unlike the Android bridge), as it seems to require opening the source code, adapting it (how much is hard to say) and recompiling it for the new target. This is of little direct interest to RAD Studio developer, who can target iOS from the same code base used for Android and other platforms.

3. Project Centennial is a virtualization environment for "traditional Win32 SDK and .NET desktop applications", so that they can run in a protected and secure environment on a desktop PC, Intel tablet, or notebook. Now the advantage is not to be able to run these applications on Windows 10, as they already work fine. The advantage is that by becoming first class citizen applications, your exsiting VCL apps (for example) will be able to get fully hosted on the Windows Store, with direct sale and installation from the store. This is different from the old scenario of applications that could get listed on the store, but were sold and downloaded in a traditional way. While the specific requirements, if any, are not known, we are already at work to make sure RAD Studio generated applications fully comply with the current Microsoft requirements for store listing. I personally believe that support for "Centennial" could really bolster new life into VCL applications. Microsoft claims these applications will be able to leverage new features using the SDK, but it is not clear if the same code will run also directly in a natively deployed scenario. Finally notice this brigde is for RAD Studio VCL and FireMonkey applications, for Visual C++ MFC applications, for .NET WinForms and WFP applications: In other words, RAD Studio developers are in a good company here!

4. Project Westminster is focused on moving mobile apps to the Windows 10 platform, and is of limited interest to RAD Studio developers.

What About Multi-Device Development?

Notice that the focus of Microsoft at BUILD wasn't as much into using a single tool for targeting multiple versions of Windows (let alone other platforms) but to let developers using other platform specific tools to add support for Windows 10 desktop and phone. While this is interesting, it doesn't help at all with the source code fragmentation witnessed today. How can RAD Studio help? By letting you keep your existing Windows applications on the best native library (VCL) and support Windows 10 platform in full (store included). At the same time, RAD Studio let's you create multi-device FireMonkey applications that with a single code base (written in Object Pascal or C++) can directly and natively target Windows (possibly now including Windows phone), OS X, Android, and iOS. This is still superior than managing a diverse array of tools and apps written in different languages for different platforms.

Given the information from BUILD 2015, RAD Studio looks as an even more impressive tool in today's landscape. If you don't already own XE8, try it today and start building single source applications that works across billion of devices today !

Thursday, April 30, 2015

Delphi Blogs of the Week #29

Another rich set of blogs posts, covering XE8 features but not only.

Another rich set of blogs posts, covering XE8 features but not only. 

More General XE8 Information

Interview with John JT Thomas on RAD Studio XE8 at

Replays of the launch webinar available at

Where are Delphi developers? David I answers at

Where should you ask XE8 questions. Find out at

A great guide to iBeacons (not RAD Studio related) at

How Internet of Things Affects Business App Developers (by Brian) at

Blogs on XE8 Technical Features

Sarina on using the MapView component on mobile at

Premium FireMonkey styles at

Hotfix for missing SQLite files at

Using interstitial ads on Android (from Daniele Spinetti) at

Anatomy of a FMX app (very nice summary) at

Another post you can forward to your .NET friends it this one on migrating from C# to Delphi at

Unit testing with TestInsight at (not strictly XE8, but very nice overview)

Things Jeroen learned in the Google+ Delphi Community about XE8 at

Malcolm on AppTethering (a great overview) at

And the UK Conference

Finally, I want to remind any of you leaving in the UK (or nearby) of this great event coming up next Wednesday in London that I'll also attend, see



Monday, April 27, 2015

Using XE8 Settings Migration Tool

RAD Studio XE8 has a new tool for migrating IDE settings from an older version, or within different installations of the same version.

There are several elements to consider when migrating to RAD Studio XE8 from an older version (see tomorrow’s skill sprint for a live demo). The first is the new Settings Migration Tool, which helps you reconfigure the IDE according to your preferences. The second is the migration of any component, and of your code. This blog post focuses on the Settings Migration Tool.

The Settings Migration Tool

The Setting Migration Tool is a new tool that ships for the first time with RAD Studio XE8 (and also Delphi and C++Builder). You can find this tool in the product installation bin folder (like C:\Program Files (x86)\Embarcadero\Studio\16.0\bin ) under the name migrationtool.exe . If you run it, it has a wizard UI guiding you through a few pages.


The concept behind this tool is quite simple: The IDE saves its configuration settings in the registry, and each version installed on a computer will have its specific settings. The Setting Migration Tool offers an easy way to copy some or all of the settings from the area of the registry for a version of the product to a different area storing the information for a different version.

The same tool can also be used to export the settings to an external XML file, move it to a different computer (provided the folders configuration is similar) or virtual machine, and re-apply the same settings on a different computer. This can be used when a developer moves his license to a different computer, if the developer has multiple computers with the product installed (a scenario the license allows), or just to copy the settings of a developer to the computer of another developer of the same team (or another developer in general).

Finally, you can use this tool to create a backup of your settings, or move settings between different configurations on the same machine.

Install and Migrate

The most common scenario for using the Settings Migration Tool is likely the first time you install XE8. Notice, thought, that installing the product doesn’t create the user registry settings (by default), but only the system ones. You’ll have to run the IDE a first time to create the default settings. At this point close the new IDE, use the Settings Migration Tool, migrate the configuration of an older version, and reopen the new IDE.

Settings to Migrate

When it comes to migrating settings from one version to another or from one machine to another, you seldom want to migrate everything (unless you are doing this for backup reasons).
The Settings Migration Tool lets you pick any area of the registry for the product (under HKEY_CURRENT_USER\Software\Embarcadero\BDS\version_no ), but not all of them make sense. PlatformSDKs, for example, require a version specific installation. Design-time packages configurations generally refer to files on a specific computer, and of a specific version of the IDE.

You’d generally want to migrate editor settings, general IDE settings and default compiler/linker settings. The tree of options is quite large and deep, and here I’ve listed only the elements at the first level:

ActiveX Controls
Auto Save
Class Completion
Closed Files
Closed Projects
Code Explorer
Code Insight
Component Toolbar
Disabled Packages
Environment Variables
Form Design
History Lists
LiveBindings Designer
Main Window
New Component
Object Inspector
Print Selection
Project Upgrade
Property Editors
Startup Options
ToDo List
Type Library

I really recommend you to spend a little time getting familiar with the settings when doing a migration. You’ll really never want to move everything and select all nodes.

Migrating Alternative Settings

As some of you might know, the Delphi, C++Builder, and RAD Studio IDE can be executed with an alternative configuration, that it automatically created from the defaults the first time it is used. This happens by running the IDE with the –r regkey_name command line parameter. The issue with this approach is that all of your IDE settings are not copied, and you get the default settings.

However, you can first save them to the XML configuration file, with the Settings Migration Tool and later re-execute the tool with the same –r regkey_name to make is work on the alternative registry configuration.

When Things Go Wrong: Restoring from a Backup

Finally, I want to mention that every time the Settings Migration Tool writes to the registry, it also creates a backup of the existing configuration. In case something goes wrong (the Ide might not even start, in the worse case scenarios) you can execute the tool again and restore the settings from the backup file.

Migrating the Actual Projects

Now what about migrating existing projects? Well, that worth a separate blog post, and an focused skill sprint. Suffice to say that migration of code from iOS 32-bit to iOS 64-bit is surprisingly simple… and much simpler that using any of the other native development tools currently available.

As for migration of other project types, the migration of VCL code is generally smooth, after you’ve converted your code to Unicode. Notice, though, that you need to have any third party component updated to the current versions (as component packages are version specific), or have their source code to recompile.

One specific addition to the “conversion” toolset is the availability of a specific set of components and some search and replace (reFind) scripts for migrating code that uses the dbExpress database access engine to the newer FireDAC database engine.

That’s All, Tune in the Skill Sprint Tomorrow

As the title says, see you at tomorrow for a 20 minute skill sprint focused on the same topics covered in this blog post. Details, time of the different sessions, and sign up at



Wednesday, April 15, 2015

Berlin and Amsterdam Next Week and XE8 Tour Starting

Starting my "XE8 trips" by visiting two European cities next week. Many XE8 events coming soon to a city near you.

Starting my "XE8 trips" by visiting two European cities next week. Later London, Japan, and China.

Berlin: Apps World

I'll be in Berlin next week to attend the conference. I'm speaking on Wednesday the 22nd on a round-table, or panel, on "New platforms and technologies for app development", which is part of the Development track ( Embarcadero will have a booth and I'll be around on the taht day and part of the 23rd (see for the Embarcadero booth information).

Amsterdam: Delphi Developer Days

On Thursday I'll fly to Amsterdam and spend the evening and the following day, the 24th, at Delphi Developer Days with Cary Jensen and Ray Konopka, see I'll give a keynote on the 24th and I'm available for an informal "chat with the Delphi PM" session on Thursday evening.

XE8 Tour Starting

While these two are special events, focused on specific audiences, Embarcadero is kicking off a multi-continent XE8 tour, visiting dozens of countries. An XE8 events is coming soon to a city near you. The current schedule is at . Expect changes and further cities to be added.

Special Event in London

Out of this tour, there is a very special event taht will go beyond the standard session. The "Delphi Spring Community Conference" is in London on May 6th, I'll give a keynote on the product, but there will be many other Embarcadero and guest speakers. More information (and signup) at Details of the program to come (and I'll make sure I blog again).

Coming to Japan and China

Among the XE8 tour and events, I'll be hitting for the first time the far east mid May (Japan and China). I'll follow up on this. Some info on the Tokio and Osaka developer camps should be (not that I can read it, but I can clearly see I'm in) at Of course, I'll blog more later on.


Tuesday, April 14, 2015

Delphi Blogs of the Week #28 (It's XE8)

Almost another month has gone by, with the release of Delphi XE8 (and RAD Studio XE8) last week. Here is another round of links.

Almost another month has gone by, with the release of Delphi XE8 (and RAD Studio XE8) last week. Here is another round of links.

XE8 Release

I've already blogged about the announcement, don't want to repeat those links, just go to Or you can read Nick's summary at

This one I missed in my post: Bugs fixed in XE8 at

Press Releases and Articles

InfoWorld article: "Embarcadero moves RAD Studio beyond Windows" at

The Register (Time Anderson) on "Embarcadero’s cross-platform XE8 RAD Studio targets iOS 8, IoT" at

Even if not strictly related with XE8, this is a press release from our Japan office, done along with a large (or I should say very large?) company moving back to RAD Studio after using Visual Studio for some time: Great business reasoning on why RAD Studio helps them deliver software to their customers.

I wrote a rather general (not XE8 specific) article, or guest blog post, on the alternative approaches for "Enterprise Mobile Development" for the AppsWorld blog at I'll be at their conference in Berlin next week.

XE8 Technical Blog Posts

Stephen Ball on "What to do with Beacons before you code" at

Sarina has an actual proximity awareness app build step by step at

I blogged about new VCL features and TFields optimizations at

Malcolm explains how to revert back the toolbar color (, but not sure why you need that.

Yaroslav (who works for the RAD Studio R&D Team) has two fantastic blog posts on FireMonkey internal "control control-model" implementation at and Worth reading with care, even more if you are interested in FireMonkey components development.

Roman explains some of the work on TurboPack components and GetIt at

InterBase ChangeViews support in XE8 is covered by Stephen at

And an XE7 HotFix

For iOS deployment, we have also the hotfix for XE7, "iOS 8.1.3/8.2 Deployment Beta Hotfix for XE7". Actually two. One is for professional ( and one for Enterprise and above (

As part of the new update subscription plan, we don't expect this to be the last fix for XE7, even after Xe8 is released. But following fixes will be made available only to developers on the Update Subscription.

And A Book

I know really nothing about this book, but nice to see another one on FireMonkey for Windows and OS X in Kindle format at I'll probably get a copy and read it, and let you know.


Friday, April 10, 2015

What's New in Delphi XE8 for VCL developers

With many new features introduced in Delphi (and C++Builder) XE8, some developers have the impression there is little in it for Windows VCL developers, not interested in mobile. In fact, there is a plethora of new features in XE8, even if you don't care about mobile and FireMonkey.

Delphi XE8 is an amazing release for VCL developers, and so is C++Builder XE8. There is a plethora of new features for Windows VCL developers, in the VCL, the RTL, and in the IDE. In addition to all of the amazing new VCL and IDE features there are also significant enhancements in mobile and IoT. BUt even if you are not interested in mobile, XE8 has a lot to offer. Here is an incomplete summary.

Developer Productivity in the IDE

A significant area of enhancement in XE8 (for all developers) comes from the productivity features added to the editor and the IDE, along with significant improvements in existing subsystems (like unit testing and version control). Here is a short summary:

  • GetIt package manager for seamless installation of components
  • DUnitX support
  • Version Insight support for Mercurial, and improved support for Git and Subversion
  • IDE configuration migration tool
  • Faster CHM help
  • Start here page redesign
  • Project statistics information
  • Clipboard history
  • Multi-paste support
  • Stack bookmarks
  • Smart keys
  • Parenthesis matching
  • Code structural highlight
  • Castalia refactorings
  • Editor selection expansion
  • Flow controls highlighting
  • Code navigation toolbar
  • Smart symbol search
  • Code analysis to track quality


By combining this easy to use component (drop it, add your application ID and it works), an easy signup process on (use your existing EDN credentials), and even a free basic tier (applications startup counts), you can start tracking your users analytics in only a few minutes. This is very easy to use, and a pay-as-you-go service (official pricing coming soon).

Core RTL New Features

There are many new RTL features that VCL developers can start using right away, as they fully work on Windows. There are many enhancements in AppTethering (including support for custom encryption), Bluetooth and Bluetooth LE support you can leverage. But there is also a brand new HTTP client library, that lets you create HTTPS clients with no need to redistribute the OpenSLL library. And this also enhances the REST client library.

You can also now easily add the Box2D physics engine to your VCL applications, take advantage of the parallel library (if you are not already on XE7), and leverage many other new RTL features added over recent years, including significant optimizations.

Faster TFields

One specific optimization that it is worth noticing, compared to XE7, is in the way TField objects of a TDatSet (or any descendant dataset) copy their data to and from the active record buffer. The net effect is a 10% to 25 increase in most existing database applications for the "data copy" operations. As a sample, I've created an application that basically duplicates records from one ClientDataSet to another one, in memory, and have obtained a significant faster execution in XE8. See below the image with the XE7 and XE8 timing (in milliseconds) and the source code of the demo:


VCL and RTL Fixes and Quality Improvements

There are also many fixes and improvements to core VCL and RTL features, including the cleanup of a few long standing issues related with font scaling in the VCL. For a list of bugs reported by customers and fixed in XE8 refer to In the list there are over 30 VCL specific improvements, plus RTL and compiler ones.

New RTL and VCL units

Finally, like I've done other times, I want to list the new RTL/Windows units added in XE8, compared to XE7. Here are the new units that a Windows/VCL developer can leverage:

  • System.Analytics (interfaces)
  • System.Hash (THashMD5, THashSHA1, THashBobJenkins)
  • System.Win.InternetExplorer (new name for SHDocVw)
  • System.Net.HttpClient (THTTPClient, IHTTPRequest, THTTPRequest, IHTTPResponse, THTTPResponse, 
  • System.Net.HttpClient.Win (Windows platform implementation)
  • System.Net.HttpClientComponent (TNetHTTPClient and TNetHTTPRequest components)
  • System.Net.Mime (TMultiPartFormData)
  • System.Net.Socket.pas
  • System.Net.URLClient.pas
  • System.NetConsts.pas
  • WinAPI.WinHTTP


As you can see, it is not just a marketing claim saying that XE8 is a great release for VCL developers. There is a lot of substance to this claim, and there are many reasons to upgrade to XE8 even if you are not into mobile development. But this will also offer you a great chance to (finally?) get into mobile development!


Tuesday, April 7, 2015

RAD Studio XE8, Delphi XE8, and C++Builder XE8 released today

Today Embarcadero technologies released RAD Studio XE8, Delphi XE8, and C++Builder XE8. Another great step forward for Windows/VCL and multi-device/FireMonkey developers.

Today Embarcadero Technologies released RAD Studio XE8, Delphi XE8, and C++Builder XE8 (press release at Another great step forward for Windows/VCL and multi-device/FireMonkey developers. Product pages:

As you can see in the main banner images, a core theme is connectivity, with improvements in AppTethering (between VCL and mobile), BlueTooth support, and now also Beacons support in the box. But connectivity is also a driver for the new HTTP client library (also for VCL) based on platform HTTP and HTTPS support (no OpenSSL required), connecting to the GetIt repository to add packages to the IDE, track applications usage by connecting them to the AppAnalytics service, connecting to mobile devices using Push Notifications in EMS, and connecting with Teradata database servers in FireDAC.

Of course, this is only a subset of the new features, with the new iOS 64-bit platform now available, including support for Apple Universal Applications (single app with both 32bit and 64bit binaries), and that is for both Delphi and C++. iOS 64-bit support is highly backwards compatible with existing FireMonkey mobile source code, much more than if you are using Xcode or Xamarin.

There are many new features in the IDE, including developers productivity enhancements, the already mentioned GetIt package manager, a new less cluttered Welcome page, the multi-device preview, direct support for DUnitX and Mercurial version control system... I could continue, with all of the FireMonkey features (from the MapView component to desktop browser component), but you can visit the web site for lots of short product videos, highlighting the features, and you can also refer to the Feature Matrix, which is now a single document shared among the three products (PDF).

For learning more, wait for your maintenance download (because you are moving to update subscription, aren't you?), download a trial (just follow the links in the respective product pages) or sign up to the RAD Preview RAD XE8 Launch webinar in Thursday at I'll be online with the other RAD Studio product managers, talk to you at the webinar... 

PS. I'll also visit quite a few countries and events to talk about XE8 in person, stay tuned for the details and also for way more technical information about the product in the coming days and weeks.

Friday, April 3, 2015

RAD Studio First Look Webinar on April 9

Next week, the RAD Studio PM team will host an online webinar to preview the next version of RAD Studio, Delphi, and C++Builder.

Next week, the RAD Studio PM team (myself included) will host an online webinar to preview the next version of RAD Studio, Delphi, and C++Builder. 

The title is: " Windows and Beyond: See What's Coming in RAD Studio, Delphi and C++Builder " and the webinar is schedules to be live 3 times during the day, as most Embarcadero international webinars these days. The focus, according to the announcement, is on the following areas:

  • See new innovations in multi-device, multi-form development
  • Build 64-bit and Universal apps for iOS
  • Add IoT solutions, like proximity awareness to your existing applications
  • Extend and mobilize your Windows-based business
  • Be more productive than ever in the IDE

However, you'll also be able to learn more on technologies already introduced in recent skill sprints, like beacons support, push notifications in EMS, and Box2D interfaces. Sign up for the free event at: