London RADStudio1031 MarcoCantu
London RADStudio1031 MarcoCantu
London RADStudio1031 MarcoCantu
[email protected] [email protected]
+44 (0) 1364 655 123 +353 1 566 7508
www.greymatter.com www.greymatter.ie
Marco Cantu’
RAD Studio Product Manager
[email protected]
@marcocantu
Today’s Agenda
• Introduction by Grey Matter
• 9:00-11:15am
RAD Studio Product Roadmap
• 11:15-11:30am
Break / refreshments
• 11:30am-1:15pm
Modernising Delphi Applications and Architectures
Idera Inc. Developer Tools
• RAD Studio, C++Builder, Delphi, InterBase, RAD Server
PLATFORM
CROSS INDEPENDENT
PLATFORM CLOUD READY
NATIVE
Fast, Visual Development
● Add Windows 10
features without
breaking
Windows 7
compatibility Data by Stat Counter as of September 2018 -
http://gs.statcounter.com/windows-version-market-share/desktop/worldwide/#monthly-201609-201809
- CC-BY-SA 3.0 Unported license
Windows 10 is King
● Windows 10 = key focus for RAD Studio
16
Multi Device is the Future
Swift or
Java or Kotlin C++ or C#
Objective-C FMX layout
Code Code
Code Android iOS
Variant Variant
Platform APIs
JNI & JDK
Cocoa APIs Windows APIs
Interface
One Project
4 Platforms
RAD Studio
Officially Supporting
RAD Studio Family of Products
• Two Programming Languages
• Delphi language, Modern Object Pascal
• C++Builder, Clang-enhanced C++17
• RAD Studio
• Bundle of both Delphi and C++Builder
• Community Edition
• Available for Delphi and C++Builder (not both combined)
• Free for students etc. (more info later)
FireDAC High-Performance Data Access
• Enterprise Editions
• Include DataSnap, Full FireDAC support, RAD Server
• Single Site RAD Server deployment
• Now with IBToGo free deployment for mobile
• Type inference
• Value determines type
• “Integer” default for (smaller) numeric values
• Effect on performance?
• InlineVarSpeed demo
TSplitView
VCL Calendar control
Date and Time PIcker, More panels
VCL Relative Layout Panel – TRelativePanel
• Controls position based on relative position
• Set position via ControlCollection
• Find child control with IndexOf()
• Or at design time use properties
• Align[xx]WithPanel: Boolean
• Above: [Sibling]
• Align[xx]With: [Sibling]
• LeftOf: [Sibling]
http://docwiki.embarcadero.com/RADStudio/en/
Using_the_Relative_Panel
VCL Features You Might Have Missed
• Direct2D Canvas
• WIC support in TImage
• Post-Windows XP VCL controls features
• Buttons, progress bars, edits, list views, headers
• Task Dialogs
• Gestures and touch support
85
Challenges with High DPI and Multiple Monitors
Icons and text can be too small, too large, appear fuzzy
UIs need to scale according with the DPI of the target monitor
Individual monitors can have desktop scaling configured
System elements (scrollbars, check boxes, etc) need to adapt
Images and graphical elements should not scale up (getting blurred) but
be picked among multiple versions
Windows, High DPI, and Multiple Monitors
Windows 10 has support for multiple monitor, different DPIs
Dragging to new monitor triggers system messages
Windows support for High DPI has been changing
Each Windows 10 release has something new
“Per Monitor v2” -> new APIs offers system information per
monitor
Additional challenge:
Win32 standard and common controls and image lists are only
partially DPI aware (single image list, no scaling)
VCL and High DPI
Continuous work and improvements over years
Supports dragging among monitors
“Per Monitor v2” support (in 10.3) addresses issues with scaling of
system elements (requires recent Windows 10)
Multi-resolutions images supported with new image list components
(10.3)
VCL High DPI Image List
● New components
○ image collection (holds images)
○ virtual image list (DPI-aware specific
view of that collection)
● List is compatible with TImageList (including
HIMAGELIST handle)
● Image list scales as parent form DPI scales
(that means, share an image collection, but
don’t share an image list between two forms
or place in data module)
● Migration tools for old -> new lists
Windows 10 “Per Monitor v2” Support
● PerMonitor v2 support in project options
○ Requires Windows 10 build 1703
“Creators Update” (from 5-April-2017)
96
What is FireDAC?
• A set of Universal Data Access Components
• for developing any database application
• High-performance, easy-to-use, enterprise
connectivity
• Universal Data Access
• But with many database specific features
Key FireDAC Features
• Data Access Engine
• Foundation classes + TDataSet comps
• High Performance Data Access
• From Live Data Window to Array DML
• Unified API
• SQL abstraction and scripting
• Unified errors and transactions
FireDAC Overview
Core FireDAC
• TFDConnection
• TFDQuery
• TFDMemTable
• BDE migration
• Script to replace configuration and components
• Dbx migration
• Script + special components
101
FireDAC = Amazing Database Access!
• Works on all platforms & Supports most databases
• Including NoSQL on MongoDB
• Enterprise Connectors expands it further to the cloud!
• Amazing Features + Top Performance
• Unified interface with database specific control
• TFDLocalSQL is so useful!
• Run SQL queries locally on TDataSet descendants.
• Simplify code with SQL to process sets of local data
• Join queries between heterogeneous data sources.
• Supports the INSERT/UPDATE/DELETE SQL commands as transactions and
savepoint
Single Source Mobile and Desktop
Not so very long ago . . .
Yes, DOS came before Windows, so did UNIX and CP/M, but we aren’t going back that far today.
Now What’s a Developer to do?
#EmbarcaderoCE
Topic
I need- how
Problem
many tools & languages?
Java for Android Swift for iOS &
macOS
C# for
Windows
#EmbarcaderoCE
Topic
That’s- Where
how to Embarcadero
solve problem Comes In . .
• No runtime needed
• No dependency on execution environment (.NET, JVM)
• No runtime compilation, JITer, or any other layer
• Advantages
• Fast, secure, xcopy deployment
UI Widgets: Styled vs. Native or Both
• Multi-platforms solutions offer
• Styled (painted) controls only – often not even matching the platform
• Native controls only – UI code changes significantly among platforms
• “Forms” with a handful of controls
• FireMonkey
• Extensive collection of styles controls, with platform specific styles
(“pixel perfect”)
• Key controls available as native controls (input controls and more)
• Embedded complex native controls (maps, browser, etc.)
Best in Industry: FireUI Multi-Device Designer
• TEMSDataSetResource
• Maps to a dataset
• Offers GET/POST/PUT/DELETE operations
• LIST (Get /) including paging and sorting
• Customize parameters to Keys mapping
RAD Server Summary
• Rad Studio 10.3 has the “2.0” RAD Server, redesigned URL mapping
• Bringing component based development to server side development
• Reduce repetitive boilerplate code, focus on business logic and special processing
• And deployment license is included in Enterprise (one site) and
Architect (multi site)
• Plus, great back end for a JavaScript (and ExtJS) front end
Cloud Ready
Agenda: Delphi and The Cloud