ݺߣ

ݺߣShare a Scribd company logo
Delphi XE2 " Biggest   and   best   release ” André Mussche 6 oktober 2011 DTS b.v
Inhoud Delphi XE2 64-bit  FireMonkey GUI Mac OS X én iOS  Unit ScopeNames VCL styles LiveBindings Datasnap, RTTI  IDE, 3rd party Demos Toekomst Vragen
64 bit (Windows) “ It just works” :-) Delphi IDE zelf nog 32bit debugger (apart proces) wel 64bit Eenvoudige migratie (makkelijker dan Unicode) vooral bij “nette” code (weinig low level pointer en assembly trucs) Vooral principieel, niet perse nodig (?) Nog niet uitgeoptimaliseerd  (soms even snel of wat trager dan 32bit Delphi) eerst een werkende versie.
64 bit (Windows)(2) Onderwater 64bit flink anders:  Calling conventions (geen stdcall, register, cdecl) oa bij dll’s Exception handling anders, geen try...except penalty Niet perse sneller, wel meer registers Floating point wel stuk sneller dmv SSE2, etc Data types: Integer = Int32, 4 bytes NativeInt, NativeUnt = Int64 + UInt64 (64bit), Int32 + Cardinal (32bit) Pointer: 8 bytes (64bit) 4 bytes (32bit)
Firemonkey Vertor based GUI framework  zoals WPF & Adobe AIR, maar dan RAD (eenvoudig) voorheen VgScene/DxScene Hardware accelarated, 2D & 3D, transparency, anti aliased, etc Lage CPU belasting, snelle GUI geen flikkering meer (Windows API: VCL, WinForms, etc) Cross-platform, met abstractie lagen: 2D: GDI, GDI+ (WinXp), Direct2D (Vista+), Quartz (Mac) 3D: DirectX, OpenGl Win32, Win64, MacOsX, iOS (iPhone, iPad) Flexibel: VPR (Vectorial Polygon Rasterizer) implementatie (open source)
Compatible met VNC en RDP, ook Windows Xp Styles: meegeleverd, zelf handmatig style staat los van component zelf, bijv. TButton Default platform style (look and feel) Windows style, MacOs style Alles is container: ListBox met buttons, images, panels, etc Geen beperking door Windows API (Listbox met ListItems) 1e versie, opnieuw opgezet  beperkingen t.o.v. VCL (geen actions en anchors)  Import van 3d objecten (.3ds) Firemonkey (2)
2 soorten frameworks: Mac C Frameworks (C/C++) Objective-C Framework (Delphi, interfaces) Alles moet via “XCode”  Taal: Objective-C Aparte C variant, met veel haken Lastig te programmeren, gelukkig met Delphi een stuk eenvoudiger :-)  Mac OS X
Mac OS X (2) - (NSTextField*) addFieldWithTitle:(NSString*) aTitle at: (NSRect) aRect { NSTextField* label = [[[NSTextField alloc] initWithFrame: aRect] autorelease]; [label setStringValue: aTitle]; [[window contentView] addSubview: label]; return label; }  function TappDelegate.addFieldWithTitle (const aTitle: string; at: NSRect): NSTextField; begin Result := TNSTextField.Wrap(TNSTextField.Alloc.initWithFrame(at)); Result.setStringValue(NSStr(aTitle)); TNSView.Wrap(window.contentView).addSubview(Result); end;
GUI: XCode Designer  lastig, zelfs Mac fans klagen erover “ het beste is zelf in code doen: iets meer werk maar dan doet het ten minste wat je wil”   Gelukkig Firemonkey(FMX) -> stuk eenvoudiger :-) Ook mogelijk om native Cocoa controls te gebruiken Nadeel:  3d werkt niet in VmWare: alleen op Apple hardware mag Vmware Fusion gebruikt worden  Vmware Player + Workstation via “unlock” hack Dus 3d effecten met FMX niet demonstreerbaar Mac OS X (3)
Op laatste moment toegevoegd Gebruikt FPC (free pascal compiler) ivm ARM  Volgende versie wordt eigen ARM compiler gebruikt  Simulator op de Mac, geen emulator Stuk sneller (geen 2 minuten opstarttijd zoals bij Android?) Niet 100%, maar veel overeenkomsten iOS en Mac dus geen direct probleem Via gratis Apple account simulator gebruiken Voor 99 dollar per jaar 100 devices + Apple Store iOS  (iPhone/iPad)
Gebruik van namespace support door Delphi zelf Nodig voor VCL/FMX en cross platform Voorbeelden: VCL.Controls, VCL.Touch.Gestures, etc FMX.Controls. FMX.Filters.Effects, etc Macapi.QuartzCore, Macapi.Mach, Macapi.CocoaTypes, etc Winapi.ActiveX, Winapi.Windows, Winapi.DirectDraw, etc XML.Win.msxmldom, etc System.Win.Registry, etc Data.Win.ADODB, Data.Cloud.AmazonAPI, etc Automatische prefix, afhankelijk van VCL of FMX project Backwards compatible met bestaande code Unit Scope Names
Ingebouwde skinning/theme support voor VCL (voorheen 3rd party) Veel bestaande VCL applicaties Veel styles meegeleverd zelf via editor eigen style maken VCL styles
VCL styles (2)
Databinding:  elk (visueel) element te verbinden met elk type data  Vooral database bijvoorbeeld een dataset rechtstreeks aan grid koppelen Krachtige expression engine elke object mogelijk + two way maar wat omslachtiger + fixed string Nu 1e versie, waarschijnlijk later language/compiler integratie LiveBindings
Datasnap volwassen?  begint steeds meer te lijken op WCF en RemObjects REST, JSON, compression, encryption, HTTPS, broadcasts, events, sessions, tunnels, dynamische intercepts, etc Connectors (generated code): iOS (iPhone, Objective-C) Windows Phone 7 (C#, Silverlight) Android (Java) Blackberry (Java) Cloud support (Azure, Amazon), generieke API Datasnap
TVirtualInterface dll als interface runtime objecten maken op basis van interface: mock object voor unit testen soft interface / duck typing:  als functies van object en interface overeenkomen, dan object als interface te gebruiken AOP (Aspect Oriented Programming) RTTI IDuck = interface procedure Quack; procedure Feathers; end; TPerson = class public procedure Quack; procedure Feathers; procedure Name; end;
IDE: Project manager, option sets Remote debugging (Win32, Win64, MacOS) Deployment manager Extra 3rd party toevoeging FastReport (ter vervanging van Rave Reports op lange termijn) Documentation Insight (WYSIWYG editor, XMLDoc in code) (AQTime, Beyond Compare, CodeSite, FinalBuilder, IntraWeb, etc) IDE, 3rd party
Demos
Eerste update ondertussen al uit Firemonkey uitbreidingen/verbeteringen Livebindings integratie? Ontwikkel team uitbreiding, investeringen Compiler: ARM cpu  Windows 8 native Android native iOS Mac 64bit OpenCL integratie? Toekomst
Einde... Vragen?
Ad

Recommended

Complex realtime event analytics using BigQuery @Crunch Warmup
Complex realtime event analytics using BigQuery @Crunch Warmup
Márton Kodok
6 Million Ways To Log In Docker - NYC Docker Meetup 12/17/2014
6 Million Ways To Log In Docker - NYC Docker Meetup 12/17/2014
Christian Beedgen
Cisco Network Functions Virtualization Infrastructure (NFVI)
Cisco Network Functions Virtualization Infrastructure (NFVI)
Cisco Russia
All you need to know about Orient Me
All you need to know about Orient Me
LetsConnect
Security Realism in Education
Security Realism in Education
Tajul Azhar Mohd Tajul Ariffin
Retelling nonfiction
Retelling nonfiction
Emily Kissner
Spring Batch
Spring Batch
maknihamdi
Evolutions et nouveaux outils SEO
Dimitri Brunel
Get complete visibility into containers based application environment
Get complete visibility into containers based application environment
AppDynamics
Docker swarm-mike-goelzer-mv-meetup-45min-workshop 02242016 (1)
Docker swarm-mike-goelzer-mv-meetup-45min-workshop 02242016 (1)
Michelle Antebi
JavaOne 2017 - Choosing a NoSQL API and Database to Avoid Tombstones and Drag...
JavaOne 2017 - Choosing a NoSQL API and Database to Avoid Tombstones and Drag...
Leonardo De Moura Rocha Lima
Monitoring and tuning your chef server - chef conf talk
Monitoring and tuning your chef server - chef conf talk
Andrew DuFour
Performance monitoring and call tracing in microservice environments
Performance monitoring and call tracing in microservice environments
Martin Gutenbrunner
Chicago AWS user group meetup - May 2014 at Cohesive
Chicago AWS user group meetup - May 2014 at Cohesive
AWS Chicago
Docker security introduction-task-2016
Docker security introduction-task-2016
Ricardo Gerardi
IBM Bluemix Nice meetup #5 - 20170504 - Container Service based on Kubernetes
IBM Bluemix Nice meetup #5 - 20170504 - Container Service based on Kubernetes
IBM France Lab
From 10 Users to 10 Milion in 10 Days - Adam Lev, Tamar Labs - DevOpsDays Tel...
From 10 Users to 10 Milion in 10 Days - Adam Lev, Tamar Labs - DevOpsDays Tel...
DevOpsDays Tel Aviv
A BRIEF OVERVIEW ON WILDLIFE MANAGEMENT
A BRIEF OVERVIEW ON WILDLIFE MANAGEMENT
Pintu Kabiraj
Cloud Expo New York: OpenFlow Is SDN Yet SDN Is Not Only OpenFlow
Cloud Expo New York: OpenFlow Is SDN Yet SDN Is Not Only OpenFlow
Cohesive Networks
Sprint 49 review
Sprint 49 review
ManageIQ
Veselík 1
Veselík 1
Mária Čierna
Fuel cell
Fuel cell
Ahmed M. Elkholy
QNH pizza sessie
QNH pizza sessie
Matthijs Breemans
Nagios Open Source Monitoring
Nagios Open Source Monitoring
247 Invest
Android
Android
Peter Maas
SNUG 2008 - Lotus Domino 8.5 Administration (dutch/nederlands)
SNUG 2008 - Lotus Domino 8.5 Administration (dutch/nederlands)
Fred Janssen
WP7 non-technical insights
WP7 non-technical insights
Brainlane

More Related Content

Viewers also liked (14)

Get complete visibility into containers based application environment
Get complete visibility into containers based application environment
AppDynamics
Docker swarm-mike-goelzer-mv-meetup-45min-workshop 02242016 (1)
Docker swarm-mike-goelzer-mv-meetup-45min-workshop 02242016 (1)
Michelle Antebi
JavaOne 2017 - Choosing a NoSQL API and Database to Avoid Tombstones and Drag...
JavaOne 2017 - Choosing a NoSQL API and Database to Avoid Tombstones and Drag...
Leonardo De Moura Rocha Lima
Monitoring and tuning your chef server - chef conf talk
Monitoring and tuning your chef server - chef conf talk
Andrew DuFour
Performance monitoring and call tracing in microservice environments
Performance monitoring and call tracing in microservice environments
Martin Gutenbrunner
Chicago AWS user group meetup - May 2014 at Cohesive
Chicago AWS user group meetup - May 2014 at Cohesive
AWS Chicago
Docker security introduction-task-2016
Docker security introduction-task-2016
Ricardo Gerardi
IBM Bluemix Nice meetup #5 - 20170504 - Container Service based on Kubernetes
IBM Bluemix Nice meetup #5 - 20170504 - Container Service based on Kubernetes
IBM France Lab
From 10 Users to 10 Milion in 10 Days - Adam Lev, Tamar Labs - DevOpsDays Tel...
From 10 Users to 10 Milion in 10 Days - Adam Lev, Tamar Labs - DevOpsDays Tel...
DevOpsDays Tel Aviv
A BRIEF OVERVIEW ON WILDLIFE MANAGEMENT
A BRIEF OVERVIEW ON WILDLIFE MANAGEMENT
Pintu Kabiraj
Cloud Expo New York: OpenFlow Is SDN Yet SDN Is Not Only OpenFlow
Cloud Expo New York: OpenFlow Is SDN Yet SDN Is Not Only OpenFlow
Cohesive Networks
Sprint 49 review
Sprint 49 review
ManageIQ
Veselík 1
Veselík 1
Mária Čierna
Fuel cell
Fuel cell
Ahmed M. Elkholy
Get complete visibility into containers based application environment
Get complete visibility into containers based application environment
AppDynamics
Docker swarm-mike-goelzer-mv-meetup-45min-workshop 02242016 (1)
Docker swarm-mike-goelzer-mv-meetup-45min-workshop 02242016 (1)
Michelle Antebi
JavaOne 2017 - Choosing a NoSQL API and Database to Avoid Tombstones and Drag...
JavaOne 2017 - Choosing a NoSQL API and Database to Avoid Tombstones and Drag...
Leonardo De Moura Rocha Lima
Monitoring and tuning your chef server - chef conf talk
Monitoring and tuning your chef server - chef conf talk
Andrew DuFour
Performance monitoring and call tracing in microservice environments
Performance monitoring and call tracing in microservice environments
Martin Gutenbrunner
Chicago AWS user group meetup - May 2014 at Cohesive
Chicago AWS user group meetup - May 2014 at Cohesive
AWS Chicago
Docker security introduction-task-2016
Docker security introduction-task-2016
Ricardo Gerardi
IBM Bluemix Nice meetup #5 - 20170504 - Container Service based on Kubernetes
IBM Bluemix Nice meetup #5 - 20170504 - Container Service based on Kubernetes
IBM France Lab
From 10 Users to 10 Milion in 10 Days - Adam Lev, Tamar Labs - DevOpsDays Tel...
From 10 Users to 10 Milion in 10 Days - Adam Lev, Tamar Labs - DevOpsDays Tel...
DevOpsDays Tel Aviv
A BRIEF OVERVIEW ON WILDLIFE MANAGEMENT
A BRIEF OVERVIEW ON WILDLIFE MANAGEMENT
Pintu Kabiraj
Cloud Expo New York: OpenFlow Is SDN Yet SDN Is Not Only OpenFlow
Cloud Expo New York: OpenFlow Is SDN Yet SDN Is Not Only OpenFlow
Cohesive Networks
Sprint 49 review
Sprint 49 review
ManageIQ

Similar to Delphi XE2, door André Mussche op de 4DotNet Developers Day (20)

QNH pizza sessie
QNH pizza sessie
Matthijs Breemans
Nagios Open Source Monitoring
Nagios Open Source Monitoring
247 Invest
Android
Android
Peter Maas
SNUG 2008 - Lotus Domino 8.5 Administration (dutch/nederlands)
SNUG 2008 - Lotus Domino 8.5 Administration (dutch/nederlands)
Fred Janssen
WP7 non-technical insights
WP7 non-technical insights
Brainlane
Windows 8: een hit of een flop
Windows 8: een hit of een flop
Gene Vangampelaere
JavaVMs en GraalVM
JavaVMs en GraalVM
Bart Hanssens
De Werking Van De Computer
De Werking Van De Computer
Niko Folgers
LineageOS op je (oude) smartphone (Merijn Supply)
LineageOS op je (oude) smartphone (Merijn Supply)
Avansa Mid- en Zuidwest
Instant Access to Windows Kernel Programming Second Edition Pavel Yosifovich ...
Instant Access to Windows Kernel Programming Second Edition Pavel Yosifovich ...
pavravlase
BiMserver
BiMserver
Léon Berlo
Windows 8, een flop of een hit
Windows 8, een flop of een hit
Gene Vangampelaere
Distributed Dispatching via Cloud Computing (main)
Distributed Dispatching via Cloud Computing (main)
Dennis Degryse
Het Web als platform
Het Web als platform
Lykle de Vries
WSO2 Mashup Server
WSO2 Mashup Server
Nils Breunese
Ad

Delphi XE2, door André Mussche op de 4DotNet Developers Day

  • 1. Delphi XE2 " Biggest and best release ” André Mussche 6 oktober 2011 DTS b.v
  • 2. Inhoud Delphi XE2 64-bit FireMonkey GUI Mac OS X én iOS Unit ScopeNames VCL styles LiveBindings Datasnap, RTTI IDE, 3rd party Demos Toekomst Vragen
  • 3. 64 bit (Windows) “ It just works” :-) Delphi IDE zelf nog 32bit debugger (apart proces) wel 64bit Eenvoudige migratie (makkelijker dan Unicode) vooral bij “nette” code (weinig low level pointer en assembly trucs) Vooral principieel, niet perse nodig (?) Nog niet uitgeoptimaliseerd (soms even snel of wat trager dan 32bit Delphi) eerst een werkende versie.
  • 4. 64 bit (Windows)(2) Onderwater 64bit flink anders: Calling conventions (geen stdcall, register, cdecl) oa bij dll’s Exception handling anders, geen try...except penalty Niet perse sneller, wel meer registers Floating point wel stuk sneller dmv SSE2, etc Data types: Integer = Int32, 4 bytes NativeInt, NativeUnt = Int64 + UInt64 (64bit), Int32 + Cardinal (32bit) Pointer: 8 bytes (64bit) 4 bytes (32bit)
  • 5. Firemonkey Vertor based GUI framework zoals WPF & Adobe AIR, maar dan RAD (eenvoudig) voorheen VgScene/DxScene Hardware accelarated, 2D & 3D, transparency, anti aliased, etc Lage CPU belasting, snelle GUI geen flikkering meer (Windows API: VCL, WinForms, etc) Cross-platform, met abstractie lagen: 2D: GDI, GDI+ (WinXp), Direct2D (Vista+), Quartz (Mac) 3D: DirectX, OpenGl Win32, Win64, MacOsX, iOS (iPhone, iPad) Flexibel: VPR (Vectorial Polygon Rasterizer) implementatie (open source)
  • 6. Compatible met VNC en RDP, ook Windows Xp Styles: meegeleverd, zelf handmatig style staat los van component zelf, bijv. TButton Default platform style (look and feel) Windows style, MacOs style Alles is container: ListBox met buttons, images, panels, etc Geen beperking door Windows API (Listbox met ListItems) 1e versie, opnieuw opgezet beperkingen t.o.v. VCL (geen actions en anchors) Import van 3d objecten (.3ds) Firemonkey (2)
  • 7. 2 soorten frameworks: Mac C Frameworks (C/C++) Objective-C Framework (Delphi, interfaces) Alles moet via “XCode” Taal: Objective-C Aparte C variant, met veel haken Lastig te programmeren, gelukkig met Delphi een stuk eenvoudiger :-) Mac OS X
  • 8. Mac OS X (2) - (NSTextField*) addFieldWithTitle:(NSString*) aTitle at: (NSRect) aRect { NSTextField* label = [[[NSTextField alloc] initWithFrame: aRect] autorelease]; [label setStringValue: aTitle]; [[window contentView] addSubview: label]; return label; } function TappDelegate.addFieldWithTitle (const aTitle: string; at: NSRect): NSTextField; begin Result := TNSTextField.Wrap(TNSTextField.Alloc.initWithFrame(at)); Result.setStringValue(NSStr(aTitle)); TNSView.Wrap(window.contentView).addSubview(Result); end;
  • 9. GUI: XCode Designer lastig, zelfs Mac fans klagen erover “ het beste is zelf in code doen: iets meer werk maar dan doet het ten minste wat je wil” Gelukkig Firemonkey(FMX) -> stuk eenvoudiger :-) Ook mogelijk om native Cocoa controls te gebruiken Nadeel: 3d werkt niet in VmWare: alleen op Apple hardware mag Vmware Fusion gebruikt worden Vmware Player + Workstation via “unlock” hack Dus 3d effecten met FMX niet demonstreerbaar Mac OS X (3)
  • 10. Op laatste moment toegevoegd Gebruikt FPC (free pascal compiler) ivm ARM Volgende versie wordt eigen ARM compiler gebruikt Simulator op de Mac, geen emulator Stuk sneller (geen 2 minuten opstarttijd zoals bij Android?) Niet 100%, maar veel overeenkomsten iOS en Mac dus geen direct probleem Via gratis Apple account simulator gebruiken Voor 99 dollar per jaar 100 devices + Apple Store iOS (iPhone/iPad)
  • 11. Gebruik van namespace support door Delphi zelf Nodig voor VCL/FMX en cross platform Voorbeelden: VCL.Controls, VCL.Touch.Gestures, etc FMX.Controls. FMX.Filters.Effects, etc Macapi.QuartzCore, Macapi.Mach, Macapi.CocoaTypes, etc Winapi.ActiveX, Winapi.Windows, Winapi.DirectDraw, etc XML.Win.msxmldom, etc System.Win.Registry, etc Data.Win.ADODB, Data.Cloud.AmazonAPI, etc Automatische prefix, afhankelijk van VCL of FMX project Backwards compatible met bestaande code Unit Scope Names
  • 12. Ingebouwde skinning/theme support voor VCL (voorheen 3rd party) Veel bestaande VCL applicaties Veel styles meegeleverd zelf via editor eigen style maken VCL styles
  • 14. Databinding: elk (visueel) element te verbinden met elk type data Vooral database bijvoorbeeld een dataset rechtstreeks aan grid koppelen Krachtige expression engine elke object mogelijk + two way maar wat omslachtiger + fixed string Nu 1e versie, waarschijnlijk later language/compiler integratie LiveBindings
  • 15. Datasnap volwassen? begint steeds meer te lijken op WCF en RemObjects REST, JSON, compression, encryption, HTTPS, broadcasts, events, sessions, tunnels, dynamische intercepts, etc Connectors (generated code): iOS (iPhone, Objective-C) Windows Phone 7 (C#, Silverlight) Android (Java) Blackberry (Java) Cloud support (Azure, Amazon), generieke API Datasnap
  • 16. TVirtualInterface dll als interface runtime objecten maken op basis van interface: mock object voor unit testen soft interface / duck typing: als functies van object en interface overeenkomen, dan object als interface te gebruiken AOP (Aspect Oriented Programming) RTTI IDuck = interface procedure Quack; procedure Feathers; end; TPerson = class public procedure Quack; procedure Feathers; procedure Name; end;
  • 17. IDE: Project manager, option sets Remote debugging (Win32, Win64, MacOS) Deployment manager Extra 3rd party toevoeging FastReport (ter vervanging van Rave Reports op lange termijn) Documentation Insight (WYSIWYG editor, XMLDoc in code) (AQTime, Beyond Compare, CodeSite, FinalBuilder, IntraWeb, etc) IDE, 3rd party
  • 18. Demos
  • 19. Eerste update ondertussen al uit Firemonkey uitbreidingen/verbeteringen Livebindings integratie? Ontwikkel team uitbreiding, investeringen Compiler: ARM cpu Windows 8 native Android native iOS Mac 64bit OpenCL integratie? Toekomst