A look to the current version of Delphi and the features expected in the near future, with particular focus on Windows 10 support, multi-device development, and the new RAD Server architecture. Marco will help you understand the current focus and directions of the product, and he’ll guide you though some nice additions to the product and highlight what’s cooking in the development labs and possibly offer some sneak peaks.
Wer commit, pull, push und merge beherrscht, aber mehr aus Git herausholen möchte, wird in dieser Session einiges über "git flow", wann man mergen oder doch lieber rebasen sollte und dem Umgang mit dem interactive rebase erfahren und das ungeachtet ob man in einem Team oder nur allein arbeitet.
Für Delphi Entwickler ist der Einstieg in die Entwicklung von Android- und iOS-Apps denkbar einfach. Diese lassen sich um Cloud-, Internet- und Multi-Tier-Fähigkeiten leicht erweitern. Zugriffe auf Internet Dienste über REST mit den REST Client Bibliotheken; Zugriffe auf selbst-erstellte EMS-Dienste; JSON Verarbeitung und Handling. Das ist das, was das Herz des Internets heute ausmacht und im RAD Studio leicht umgesetzt werden kann. Dieser Vortrag zeigt die Möglichkeiten von EMS, REST, JSON und mehr.
Monolithic rich Windows applications are not enough for our customers. We are often requested to provide a web front-end, or a REST server to be consumed by mobile or thin clients. Integrating n-Tier architecture to an existing project is challenging. Some good practices, based on industry standards and proven design patterns (like uncoupling or SOLID) can be mind-breaker for RAD developers. In this session, we will define some architectural aspects of SOA, ORM and MVC/MVVM, and what our Open Source mORMot framework offers to ease this transition.
MARS-Curiosity is an open-source library written for Delphi.
It delivers a pure and clean REST implementation and provides FireDAC integration to easily build multi-platform applications (desktop, mobile, web).
Dieser Vortrag gibt einen Überblick über die aktuelle Version vom RAD Studio mit Delphi und dem C++Builder. Mit den neuen Funktionen und Erweiterungen zeigt Ihnen Matthias Eißing den aktuellen Status der Entwicklung und die zukünftige Ausrichtung vom RAD Studio. Sehen Sie, wie sich das RAD Studio im mobilen und Windows Umfeld positioniert und welche Möglichkeiten sich Umfeld vom "Internet der Dinge" ergeben.
Fehler und aufgetretene Exceptions werden in vielen Programmen stiefmütterlich behandelt. Da ist von leeren Exceptionhandlern bis zu "raise Exception.Create('')" alles an Sünden vertreten, was man besser vermeiden sollte. Neben der Frage wie besseres Exceptionhandling denn aussehen sollte, klärt der Vortrag auch technische Fragen. Was passiert eigentlich technisch in einem Exceptionhandler und wie können sie das übersteuern? Was ist an DLL- oder Thread/Task-Grenzen zu beachten und wo helfen Frameworks und Tools weiter.
Der Vortrag stellt die Theorie hinter der Blurry Box-Kryptographie vor. Blurry Box-Kryptographie ist eine Technologie, die von Karlsruher Instituts für Technologie (KIT), Wibu-Systems und FZI Forschungszentrums Informatik entwickelt und mit dem 5. Deutschen IT-Sicherheitspreis ausgezeichnet wurde. Herkömmliche Ansätze um Software gegen Reverse Engineering zu schützen wie Obfuskierung (Verschleierung) und Verschlüsslung mit einem Wrapper basieren auf der Geheimhaltung der Verfahren. Im Gegensatz dazu ist bei Blurry Box-Kryptographie, ganz im Einklang mit dem Kerckhoffs’schen Prinzip, nur der Schlüssel geheim und das komplette Verfahren öffentlich bekannt. Neben der Theorie wird im Vortrag gezeigt, welche Teile und Methoden von Blurry Box-Kryptographie bereits heute in einer Delphi Anwendung verwendet werden können.
Die Idee, seine Anwendung in möglichst kleine, unabhängige Teile zu schneiden, die dann miteinander kommunizieren, hat einiges für sich.
Wie bekommt man es aber hin, dass dabei die Fachlichkeit nicht zerpflückt wird und dabei der Blick für das große Ganze verloren geht? Wie schneide ich die Services richtig? Wie sieht die Kommunikation der Services untereinander aus?
Anhand von Beispielen aus der Praxis zeigt die Session, wie Domain Driven Design dabei helfen kann, diese Themen sinnvoll zu beantworten.
Delphi 10 Seattle introduced several new native VCL controls that are inspired by new controls that Microsoft introduced in Windows 10. This session provides an overview of the new controls including the TRelativePanel and TSplitView and demonstrates how to use them effectively.
Selbstverständlich wird kein professioneller Delphi-Entwickler mehr nur mit F9 und Kopieren der Exe Software erstellen, aber es ist nicht zu leugnen, dass manche Bestandteile einer professionellen Software-Entwicklung mit Verspätung oder noch gar nicht in der Delphi-Welt angekommen sind.
In dieser Session wird anhand des Entwicklungsprozesses für interne Produkte der TimoCom Soft- und Hardware GmbH vorgestellt, wie man Versionsverwaltung wie Git, Stage-Handling, Builds, Testfälle, Versionierung der Exe, MSI-Erstellung, Datenbank-Updates, Dokumentation, Deployments und noch manches mehr mit einmaligem Einrichten und geringen Wartungsaufwänden mittels eines CI-Servers wie Jenkins automatisiert.
RAD Server, also known as EMS, offers a simple and modern architecture to host REST APIs based on Delphi code, which can leverage any database connectivity layer you already use, starting with FireDAC. This session will introduce to the API, the creation of modules, the ready-to-use capabilities of RAD Server, and will show you have to build a compelling REST API and have it up and running in a very short amount of time. The presentation will also cover how to use JS clients, rather than Delphi ones.
Mit Windows 10 kommt ein einheitliches App-Model für Smartphone, Tablet und Desktop. Doch neben den technischen Aspekten war in der Vergangenheit vor allem die Gestaltung der Oberfläche für unterschiedliche Displaygrößen ein Problem. Hierfür bietet Windows 10 ebenfalls eine elegante Lösung: Adaptive UI. Hierbei können Sie in einer App Screens für unterschiedliche Displays bereitstellen oder eine einzelne Seite für verschiedene Auflösungen anpassen. Jörg Neumann stellt das Konzept vor und gibt Tipps für die richtige Umsetzung.
In this session I will show how you can leverage the power of AppTethering to do live update of various clients on changes in the underlying data. The session will cover the AppTethering on Windows, and mobile devices.
Gerade in Richtung Mobilgeräte wird es immer wichtiger, wie eine Applikation (oder App) an die Daten eines Backends kommt, für welches es keine native Client-Unterstützung gibt. Mit oData existiert ein auf http(s)-Kommunikation aufgebauter quasi-Standard für den Datenaustausch zwischen beliebigen Front- und Backends. In diesem Vortrag wird erläutert, was oData ist und wie es verwendet wird.
How to: Un-Do! Einen Nutzer zu fragen "Möchten Sie das jetzt wirklich tun?" bringt auf Dauer nichts, wir müssen dem Nutzer helfen Fehler zu korrigieren. Was wäre ein Word Prozessor ohne die Funktion "Rückgängig machen"? In dieser Session lernen Sie Konzepte kennen, mit welchen man die meisten Aktionen rückgängig machen kann, ohne dass die UI wissen muss, was zu tun ist. Am Ende werden Sie sich sagen: "So einfach geht das? Das machen wir im nächsten Release auch!"
Wenn man als Delphi-Entwickler(in) zum ersten Mal mit JavaScript in Berührung kommt, dann kann das ein ganz schöner Kulturschock werden: Keine Typisierungen, seltsame Sprachkonstrukte und viel asynchroner Code springen einem entgegen.
Zum Glück sah das auch Anders Hejlsberg, der maßgeblich an der Entwicklung von Delphi beteiligt war, genau so, und ist uns zu Hilfe geeilt. Mit TypeScript hat er JavaScript um ein paar nette Sprachkonstrukte wie Typen und Generics, erweitert, die uns Delphianern von der Syntax her sehr bekannt vorkommen sollten.
In dieser Session zeigt Ihnen Sebastian Gingter, was TypeScript ist, welche Vorteile es gegenüber purem JavaScript bietet und wie man sehr einfach damit loslegen kann.
Das RAD Studio ist sicherlich die beste Windows-Entwicklungsumgebung, wenn es um das schnelle und komfortable Erstellen von Windows Anwendungen geht. VCL-Entwicklern wird mit dem neusten RAD Studio das universelle Werkzeug zur Verfügung gestellt, um Windows 10 Anwendungen zu entwicklen. Das komplette RAD Studio bringt das Handwerkszeug des Entwicklers auf den neuesten Stand und bietet viele Neuerungen für Windows/VCL-Entwickler und FireMonkey-Entwickler.
Over time, there has been a trend towards better security including network protocols. Even though not everybody follows the trend, it's important you do.
This session explains various SSH and SSL/TLS based protocols and how to test their various security aspects.
Then it shows a few alternatives for SFTP based clients in Delphi (as Indy does OK on the SSL/TLS side, but nothing on the SSH side).
Finally you will see client side usage of SSL/TLS based protocols.
There will also be some guidance on server based secure protocols.
Abo-Modelle erfreuen sich einer stark wachsenden Beliebtheit. Für den Softwareanbieter bieten sie eine regelmäßige Einnahmequelle. Für den Anwender vereinen sie einen kostengünstigen Einstieg mit flexibler Laufzeit und einer Aktualitätsgarantie. Doch Abo-Modell ist nicht gleich Abo-Modell. Einige Anwendungsfälle umfassen die Miete der Software, während in anderen Fällen Updates abonniert werden.
Der Vortrag stellt die verschiedenen Abo-Modelle vor und vergleicht die potentiellen Einnahmen mit den Risiken bei der Einführung solcher Modelle. Es wird ein Beispiel für die Erstellung eines individuellen Businessplans gezeigt, um Chancen und Risiken für die eigene Software abschätzen zu können. Im zweiten Teil des Vortrags wird anhand einer Cleverbridge E-Commerce Lösung und von CodeMeter License Central beispielhaft eine Umsetzung eines Abo-Modells gezeigt.
The next-generation document technology from Gnostice, XtremeDocumentStudio Delphi, enables Delphi developers to work with PDF and Office documents. In this session we will get hands-on with the many new features of the technology: True FireMonkey mobile PDF, Word, and image viewing; PDF creation, reading, and manipulation on mobile devices using the new PDF engine; Word document creation, and reading on mobile devices using the new Word engines; and other document viewing features. The PDF and Word engines have been rebuilt from the ground-up for full FireMonkey mobile support. We will get to see how to build applications with real examples.
Objektrelationale Mapper treten an, die Lücke zwischen Datenbanken und Objekten zu schließen. Während in anderen Sprachen ORMs wie Hibernate nicht mehr wegzudenken sind oder zumindest zum Alltag gehören, fristen diese in der Delphi Community eher ein Nischendasein. Nicht zuletzt dank neuer Sprachfeatures der letzten Jahre sind inzwischen auch Delphi Entwickler in der komfortablen Lage zwischen mehreren Frameworks wählen zu können. Der Vortrag stellt ORMs im Allgemeinen vor und gibt einen Überblick über kommerzielle und freie ORMs für Delphi und zeigt an Beispielen deren Verwendung.
Cross-Plattform Anwendungen zu bauen ist heutzutage kein Hexenwerk mehr. Echtes Cross-Plattform aber ist, wenn die eigene Business-Anwendung wirklich auf allen relevanten Geräten läuft: Egal ob auf einem ARM- oder Intel-Smartphone, einem Tablet, einem PC, der Xbox oder einfach nur im Browser. Und das alles mit nur einer Code-Basis!
Steffen Jahr und Sebastian Gingter bauen regelmäßig solche Cross-Plattform Business-Anwendungen, und zwar auf Basis von Open-Source Technologien wie z.B. Angular 2, Type- bzw. JavaScript und Apache Cordova.
Und weil die beiden trotzdem keine Magier sind, lassen sie sich gerne in die Karten schauen und zeigen, wie man mit wenig Aufwand seine Business-Logik aus Delphi mit einer solchen modernen Business-Anwendung in den Browser und auf alle relevanten Devices bringen kann.
Especially on mobile, visual continuity and beautiful transitions are a must for each developer!
Learn how to use TFrameStand to easily split your app in several frames and have a chance to orchestrate transitions and effects with no effort.
This technology (open-source and available through GetIt) has proven its effectiveness in real use applications and it strongly simplifies mobile development with Delphi.
Radiant Shapes is a brand new component library available to all RAD Studio developers that will brighten any FireMonkey app. The library contains 35 reusable shape controls that can be used in all facets of FMX UI development from style composition and button adornment to data visualization and dashboard design. Each control has been designed for optimal performance and flexibility. Radiant Shapes is a core library every FMX developer needs in their toolbox.
Die moderne Arbeitswelt besteht immer häufiger nicht mehr aus einem festen Schreibtisch mit Windows-basierter Unternehmenssoftware - mobile Endgeräte dagegen werden immer wichtiger. Auto, Zug, Café – überall kann heutzutage ein Arbeitsplatz sein. Apps für Geschäftsprozesse werden deshalb immer gefragter, aber ohne zugehörige Daten sind sie nutzlos. Wie greift man jedoch mit einer App auf Unternehmensdaten in einer Delphi-Anwendung zu, wenn diese Daten nicht hell ausgeleuchtet in der Cloud liegen sollen? Gibt es Lösungen abseits von offenen Firewalls und VPN-Gateways, die rein als Software funktionieren? Und geht das bitte auch mandantenfähig und als Open Source? Steffen Jahr und Marco Frodl von Thinktecture werden diese Frage mit einem JA beantworten und am Beispiel des Open Source Projekts RelayServer zeigen, wie sicherer und kontrollierter Zugriff auf Unternehmensdaten in einer Delphi-Anwendung aus einer App heraus funktioniert.
This session focuses on using WinRT APIs from Delphi and building applications for the UWP Desktop Bridge (aka Centennial Bridge) in Windows 10 Anniversary Edition. These features combined offer a tremendous migration path for your existing VCL (and FireMonkey) applications for Windows, in terms of taking advantage of the new Microsoft platforms without having to rewrite your code, but simply augmenting it with new features.
Business Apps bestehen häufig aus einfachen Frontends für bestehende Systeme. Daher orientieren sie sich meist an Desktop-Bedienparadigmen, sprich einer Vielzahl an Formularfeldern. Doch der eigentliche Sinn solcher Apps sollte die Optimierung von Geschäftsprozessen sein. Um dies zu erreichen ist eine Prozess-getriebene Vorgehensweise notwendig, die den Benutzer und seine Workflows in den Mittelpunkt stellen. Jörg Neumann erklärt wie nutzerzentrierte Apps entworfen werden und welche Faktoren hierbei eine Rolle spielen. Zudem werden Strategien für eine effiziente Cross-Plattform-Entwicklung diskutiert.
Von der Frage: welches Testframework soll ich denn nun nutzen? Bis zum Entdecken von Memoryleaks schon beim Testdurchlauf wird anhand eines Beispiels gezeigt, wie man seine Unit- und Integrationstests zu einem integralen Teil seines Entwicklungsalltags machen kann und sollte.
Starting from Michael C. Feathers "Working Effectively with Legacy Code", we will introduce the concept of "technical debt", and some practical patterns to integrate testing, separation of concerns, structure, re-usability, to ease maintenance and evolution of existing projects. Don't forget that even new projects will soon become legacy... Of course, we will introduce some mORMot features which were developed to reduce your pain in this process.
Mit der mapbox Open Source Platform hat man ein Toolset und diverse REST APIs zugleich, die man schlicht zur Next Generation zählen darf.
Immer mehr Apps der Geoinformationstechnologie basieren auf Basis von HTML5, CSS3 und JavaScript im Umfeld von sog. Responsive Design.
Mit den modularen APIs, vor allem Static, Geocoding, Distance,Satellite und Map Matching ist man breit aufgestellt, was auch die plattformunabhängige Entwicklung fördert.
Gezeigt wird mit 5 Use Cases (neudeutsch Anwendungsfälle) wie sich die 5 REST GET Calls OHNE JavaScript einbinden lassen.
Here you can experience an exciting and informative discussion with the experts of the EKON 20. Take the chance a ask your questions to the topics of the day.
Moderation: Bernd Ua
This is about a web game focussing on the concurrency issues in multi-threading environments.
By the conference there will be a Delphi version of it. At the workshop we will play each round interactively: all attendees play the round followed by a short discussion.
This is about collective learning, so the speakers will probably learn just as much as attendees do.
Der Workshop beschäftigt sich mit der Refakturierung von bestehendem Delphi Code. Den Einstieg in das Thema bildet ein Überblick zu den klassischen Refactorings von M.Fowler und deren Anwendbarkeit auf Delphi. Es wird erläutert wie bei Refactorings vorgegangen werden sollte und es werden verschiedene Code Smells und Lösungen diskutiert. Dabei werden die Möglichkeiten, die Delphi selbst bietet, mit denen verglichen, die Modelmaker Codeexplorer für Refactorings bietet. Im Workshop wird dann klassischer Delphi RAD-Code schrittweise in gekapselten, testbaren und refakturierten Code überführt und dabei natürlich insbesondere auf die Möglichkeiten und Grenzen der Sprache Objectpascal in diesem Kontext eingegangen.
Die Business-Anwendung auf jedem gängigen Smartphone? Gleichzeitig im Browser und auf einem PC? Ist das überhaupt möglich? Ja das ist es! In diesem Workshop werden Ihre Fragen beantwortet.
Echtes Cross-Plattform ist heute keine Zauberei mehr. Es ist möglich mit nur einer Code-Basis alle relevanten Geräte und Plattformen zu bedienen. Egal ob Intel- oder ARM-Smartphone, ein Tablet, Windows-, Apple oder Linux-PC. Die App für jede Plattform. Echtes Cross-Plattform eben!
Steffen Jahr und Sebastian Gingter entwickeln mit Ihnen zusammen in diesem Workshop eine echte Cross-Plattform Anwendung auf Basis von Open-Source Technologien, welche auf jedem relevanten Device und zusätzlich noch auf PCs und im Browser lauffähig ist. Zum Einsatz kommen Technologien wie Angular 2, Type- bzw. JavaScript und Apache Cordova.
Teilnahmevorraussetzungen: Notebook ;-)
The Open Source mORMot framework is a huge set of units, with a lot of features. It allows Delphi and FPC to eb true competitors for business projects. In this workshop, we will present how its ORM leverages SQL and NoSQL databases, and how interface-based services ease SOA development. We will show some several cross-cutting features, like SynTests (and stubs/mocks), SynLog, SynMustache, SynDB, SynMongoDB, SynSM, SynPDF, SynCrypto or SynEcc. High-level presentation of the involved concepts will always be followed by some sample code. Last but not least, we will introduce DDD principles and how they help us write better code.