Delphi in Einzelteile zerlegt – wie funktionieren eigentlich Objekte, Klassen und Co?Jeder nutzt sie jeden Tag: Klassen, Objekte und Interfaces. Aber wie funktionieren die eigentlich intern? Was genau macht eigentlich eine virtuelle Methode beim Aufruf? Was ist ein gemanagter Datentyp und wie sind strings intern aufgebaut? Die Session wird all diese Fragen beantworten und auf einer Tour durch die Tiefen von System.pas und anderen grundlegenden Units unter anderem folgende Bereiche erklären: Aufbau von Objekten, Klassen und Interfaces. Was ist eine VMT? Virtuelle Methoden, Aufrufkonventionen und Parameter. Wie sind strings aufgebaut?
In der Session werden die Tools und API von CodeMeter für Schutz und Lizenzierung vorgestellt. Im praktischen Beispiel wird gezeigt, wie ausführbare Dateien automatisch komplett verschlüsselt werden, wie einzelne Funktionen dynamisch zur Laufzeit entschlüsselt werden und wie man per API-Aufrufe Lizenzen anzeigen und Fehlerfälle abfangen kann.
Früher konnten eingefleischte Desktop-Entwickler ARC weitgehend außer Acht lassen. In den letzten Delphi Versionen hat sich das etwas geändert. Delphi Berlin hat uns Weak References für Interfaces auf der Desktop Platform gebracht und seit Delphi Tokyo wissen wir, dass wir uns mit ARC, dem automatischen Reference Counting, auch für die Linux Platform auseinandersetzen müssen. Grund genug sich das Memory Management von Delphi etwas genauer anzuschauen und das nicht nur im Hinblick auf ARC und Interfaces sondern auch mit einem Blick auf andere Datentypen vom klassischen Pointer bis zum String oder dynamischen Array. Ein Blick auf nützliche Tool die dem Entwickler helfen Speicherlöcher zu finden, werfen wir auch.
Datenbanken und Funktionen zentral Ihren Apps und Anwendungen zur Verfügung stellen: Das geht seit etlichen Versionen mit Delphi und DataSnap bzw EMS/RAD Server. Client-seitig muss es dabei nicht Delphi sein: Man kann beliebige Clients daran anbinden: Delphi, HTML/JavaScript, aber auch C#, PHP, Java, etc. Mit der JSON/REST-basierten Middleware des RAD Servers haben Sie die Möglichkeit dies in der Applikationsschicht inklusive Benutzerverwaltung und Auswertungsmöglichkeiten durchzuführen und auch wahlfrei Client-Anwendungen dafür zu entwickeln. Dieser Vortrag zeigt einen Durchstich von der Datenbank, über die Middleware RAD Server hin zu einem HTML-Client mit Senchas EXT JS.
Introducing FastReport VCL 6 – Reporting Tips and Tricks Fast Reports produces professional reporting tools for software developers. Learn all about this great reporting tool widely used by Delphi and C++ Builder developers. See how the new features will widely expand abilities for your document creation and help you create advanced reports.
In this session, I’d like to bring RAD component based web development using TMS WEB Core (http://web.tmssoftware.com) with which rich web clients can be fully programmed using Pascal language, a component framework, binding to other JavaScript based UI controls such as jQuery controls. The web clients can connect to microservices / REST APIs, such as TMS XData, Embarcadero RAD server, node.js, asp.net core microservices etc. With TMS WEB Core it is also possible to use the now web-enabled TMS FNC component framework, allowing to fully reuse UI control logic / code between Windows, macOS, Android, iOS, Linux and web applications.
In dieser Session zeigt Max Kleiner vier Gruppen des ML auf: Regression, Dimension Reduction, Clustering und Classification. ML erkennt Muster und Gesetzmäßigkeiten in den Lerndaten. Die meisten ML-Projekte scheitern angeblich an fehlender Datenkonsolidierung und infolge nicht vorhandener Hypothese. Anhand des bekannten IRIS Dataset werden die 4 Gruppen mit je 4 Algorithmen durchgegangen und dieser Mangel vermieden.
Im ersten Teil des Vortrags werden die Grundlagen der Kryptographie wie Hashfunktionen, Symmetrische und asymmetrische Verschlüsselung vorgestellt. Im zweiten Teil werden Zertifikate und deren Einsatzgebiete behandelt. Der dritte Teil zeigt legendäre Fehler, die selbst einen guten Algorithmus durch Implementierungsfehler nutzlos machen können. Im abschließenden Teil wird eine kurze Vorstellung von Post-Quantenkryptographie gezeigt.
Erfolgreiche Apps sehen nicht nur gut aus, sondern bieten vor allem eine exzellente Usability. Besonders im Enterprise-Umfeld spielen intuitive Bedienung und die proaktive Unterstützung der Anwender eine entscheidende Rolle. Um dies zu erreichen, müssen alle Stakeholder in den Design-Prozess eingebunden werden. Hierbei können Storyboards helfen. Denn anders als statische Wireframes vermitteln sie dem Anwender einen guten Eindruck vom Verhalten der App. Zudem bieten sie eine solide Grundlage für die Entwicklung. Jörg Neumann zeigt Ihnen an Beispielen aus der Praxis, wie gute Storyboards entworfen werden und welche Faktoren für ein gutes App-Design wichtig sind.
In this session Andreas Magni will cover most common topics a developer faces while building UIs with FMX. Achieving layout responsiveness, list controls and their customization, live bindings techniques. A session with examples and hints to help you get the most out of FMX.
OmniThreadLibrary ist eine herausragende multithreading Bibliothek für Delphi. Was ist die Philosophie dahinter und woher kommt die Motivation? Was bringt uns die OmniThreadLibrary tatsächlich? Warum sollten wir überhaupt OTL nutzen? Wo ist eigentlich der Unterschied zu Delphi parallel programming library, vorgestellt in Delphi XE7 also PPL? Die Antworten benötigen einen tieferen Einblick in die Konzepte. Jedoch es ist möglich, dies bald festzustellen. Neben anderen Unterschieden konzentriert sich PPL hauptsächlich auf die Erstellung und Verwaltung von Threads auf einer niedrigeren Ebene. Auf der anderen Seite fokussiert sich OmniThreadLibrary viel mehr auf den Entwickler selbst um ihm eine saubere, übersichtliche, angenehme Arbeit mit Threads zu ermöglichen und alle Begrenzungen und Umständlichkeiten, die oft die parallele Verarbeitung in jedem Projekt mitbringen muss, leicht und elegant zu überwinden. Sodass man nicht nur auf der tieferen Ebene auf alles zugreifen kann. Man arbeitet eher auf einer höheren abstrakten Ebene und interessiert sich viel mehr für die effektivste Lösung des Problems, mithilfe von abstrakten Konstrukten wie Task, Future, Pipeline, Map. OTL kümmert sich währenddessen um alle Tricks rund um die Threads.
Das neue Zauberwort heißt Machine Learning. Max Kleiner zeigt konkret drei Anwendungen mit TensorFlow, Scikit-learn oder dewresearch.com in VS-Code, C++ und Delphi API. Anhand eines neuronalen Netzes der Handschrifterkennung lassen sich die Anwendungen auch grafisch darstellen. TensorFlow ist eine plattformunabhängige Open-Source-Programmbibliothek für künstliche Intelligenz bzw. maschinelles Lernen im Umfeld von Sprache, Big Data, Data Science und Bildverarbeitungsaufgaben.
Debugging represents a big part of development, perhaps one of the biggest. We all know about breakpoints, single-stepping and watches, but what else can we do to help work through bug scenarios and resolve problems? This session looks at a number of techniques, tricks, and utilities to help make the chore of debugging a bit more productive. Warning: this session may contain the CPU window!
Paradoxically, the best way to ensure that your systems won’t break is by deliberately breaking them. Lucky for us, breakage is inevitable. All we have to do is to accept outages for what they are: Opportunities to learn. A gift from fate that helps improve the quality of our system in a very real and measurable way. In this talk, Kees Jan shares some of his experience and enthusiasm for production incidents, high risk migrations and systems outages. He gently guides you through the though process that enables you to accept breakage, via assuming breakage and doing your first breaking tests all the way to where you break production systems with confidence, all the while improving the quality of your systems. The audience leaves the room with concrete actions to take to implement blame-free post-mortems, concise monitoring and ultimately inventing creative ways to break their own systems.
Delphi hat eine Vielzahl von Tools rund um die IDE (Integrierte Entwicklungsumgebung) und etliche Erweiterungen in der IDE, die vielen (oder zumindest einigen) unbekannt sind. Diese Session zeigt die Tools, Produktivitätserweiterungen und Tipps & Tricks für Delphi: Tastaturshortcuts, die man kennen sollte, Tools aus dem bin-Verzeichnis, Nützliches aus GetIt und weitere Plug-In.
Durch die Androhung hoher Bußgelder ist die Europäische Datenschutzgrundverordnung (EU-DSGVO) derzeit in aller Munde. Der aktualisierte Datenschutz stellt hohe Anforderungen an die Informationssysteme. Um die Anwender zu unterstützen, können viele der Anforderungen direkt in der Datenbank implementiert werden. In dieser Session werden die Anforderungen vorgestellt, Lösungsmöglichkeiten erarbeitet und direkt in eine Beispiel-Datenbank implementiert.
In der Session schauen wir uns an, wie wir die Azure Cloud aus Delphi heraus nutzen können. Wir streifen kurz den Connect über FireDAC auf die Azure SQL-Datenbank und schauen uns dann konkret die Delphi-Komponenten für den Zugriff auf Blob, Queue und Tableservices an und diskutieren Möglichkeiten zum Zugriff auf weitere Dienste der Azure Cloud.
MARS-Curiosity is an open source REST library for Embarcadero Delphi (https://github.com/andrea-magni/MARS), easy to use, lightweight yet powerful and easy to integrate with other technologies. In this session I will provide an overview of the library, focusing on the most recent developments and additions.
In this session I will cover a very debated topic: How to properly separate UI from application code. TFrameStand component enables some very useful techniques to separate UI from application code but a recent improvement to the component's DI functionalities push this topic the next level. We'll see together how to build an application where UI and application code are easily separated, making it possible to exchange implementation where needed (different platform, testing purposes, fine tuning).
Schluss mit schlecht gemachten Oberflächen! Gute Apps sehen nicht nur schick aus, sondern sind vor allem benutzbar. Doch wie entwickelt man eine gute Usability? Jörg Neumann zeigt Ihnen Techniken, wie Sie Apps leicht entwerfen können, die Ihre Anwender lieben. Zudem zeigt er, wie Sie ohne Reibungsverluste vom ersten Entwurf bis zur fertigen Implementierung kommen.
It is no surprise that RAD Studio developers spend most of their time working in the IDE. What is surprising, is that many RAD Studio developers are not aware of many of the productivity features available. In this session, Ray Konopka highlights many of his favorite IDE tips and tricks including the new QuickEdit Designer. Some tips focus on improving IDE navigation, some tips accelerate code editing, others simplify form design, but all of them will enhance your IDE experience.
Do you want to know how to develop complex cross-platform enterprise web applications? How can you come from an idea to a working prototype in a couple of days? How can you visualize and handle in a browser huge enterprise data sets in Grids, PivotGrids, Trees and Charts? In her presentation Olga Petrova will show you a detailed overview of Sencha Ext JS and its technical advantages for developing business-critical data-intensive web applications.
Anwendungen werden heutzutage immer komplexer. Ein Schritt deren Entwicklung zielorientierter voran zu treiben, ist die Kapselung von Aufgaben in Micro-Services. In dieser Session erkläre ich Ihnen anhand eines einfachen Beispiels, wie Sie Daten über mehrere Micro-Services verteilt verarbeiten können.
Erleben Sie im Speaker Panel spannende Diskussionen zwischen den Trainern.
Die Moderation übernimmt Bernd Ua.
Im Domain-Driven Design ist es sehr wichtig, ein gutes Domänenmodell zu haben. Allerdings wird nirgendwo so wirklich erklärt, wie man ein gutes Domänenmodell unter Mitwirkung aller Beteiligten erstellen kann. Hier schafft Event Storming Abhilfe. Mit Hilfe dieser Technik kann man ein gutes Domänenmodell Schritt für Schritt erstellen, erweitern und verfeinern - und das innerhalb eines einzigen Tages! Gleichzeitig wird noch jede Menge Domänenwissen zwischen den Domänenexperten und den restlichen Projektbeteiligten ausgetauscht. Beim Modellieren lassen sich sehr einfach und schnell verschiedene Szenarien ausprobieren, man kann mehrere Varianten gegeneinanderstellen und vergleichen, um so die beste Lösung zu finden - und das ganz ohne eine Zeile Code zu schreiben. Trotzdem sind die Modelle sehr nahe am Code und an der Logik. Dabei werden keine langweiligen UML-Diagramme gezeichnet, sondern es wird mit Post-It's an einer großen Modellierungsfläche gearbeitet, so dass alle involviert sind. In diesem Workshop werden wir uns anhand einer vorgegebenen Domäne damit beschäftigen, ein solches präzises Domänenmodell in mehreren Stufen zu entwickeln und zu verstehen. Freut Euch auf ein actionreiches Abenteuer :-)
Since Delphi XE2, Delphi has shipped with FastReport, one of the most powerful reporting tools available. This in-depth workshop begins by showing you how to install the free Embarcadero version of FastReport, followed by a step-by-step demonstration of basic report creation. The workshop continues by showing you how to create increasingly sophisticated reports, including data-based reports, summary reports, master-detail reports, reports with sub-reports, reports with graphs, mailing labels, and more. You'll also learn a few nifty tricks along the way.
Fast Report CEO Michael Philippenko will support Cary Jensen as guest speaker.