8.30 - 9.00 Uhr
Einlass und Begrüßungskaffee
9.00 - 9.30 Uhr
Keynote
Zusammen mit der ADC
9.30 - 10.00 Uhr
Kaffeepause
Raum 1
10.00 - 11.00 Uhr
Architektur 101
David Tielke
Details
Das Thema Architektur ist sehr umfangreich und leider schlecht dokumentiert. Aber jedes Projekt
benötigt eine Architektur, wenn es langfristig gewartet und weiterentwickelt werden soll. In dieser Session gibt Ihnen
Architekturexperte David Tielke einen Überblick was Architektur ist, warum diese für jedes Projekt so enorm wichtig ist und
was genau Sie wissen müssen, um Ihre Architektur im Griff zu behalten.
Raum 2
10.00 - 11.00 Uhr
Records in C# mit .NET 5 & .NET 6
Christopher Münch
Details
Mit .NET 5 und C# 9 wurde der Sprache ein neuer Datentyp hinzugefügt: Das Record. Mit Records ist
es möglich, unveränderliche (immutable) Datenstrukturen zu definieren. Zusätzlich dazu verwenden Records – auch wenn sie
wie Klassen Referenztypen sind – keinen Verweisvergleich. Die Gleichheit zweier Records wird über die eigentlichen Werte
des Records ermittelt. Doch ein Record bietet noch viele weitere Features, auf die ich in diesem Vortrag eingehen werde.
Außerdem werfe ich einen Blick unter die Haube und zeige wie Records in C# implementiert werden und was der Compiler mit/aus
diesen macht.
Raum 3
10.00 - 11.00 Uhr
Mit Serverless zur nachhaltigen Web App
Ralf Richter
Details
Nachhaltigkeit muss sich auch in unserer Entwicklungsarbeit wieder spiegeln. Als Teil der Green
Manifesto Community zeige ich in dieser Session, wie man mit Serverless Technologien eine nachhaltige Anwendung erstellt.
Dabei gehen wir nicht nur auf die Infrastruktur ein – anhand von dem Beispiel der Web App https://www.greenmanifesto.de
zeige ich auf, mit welchen Techstack die App nachhaltig entstanden ist und dabei technisch keine Abstriche machen muss,
noch Abstriche in der Performance. Am Ende der Session nimmst Du mit: Was ist eine nachhaltige Web App und wie Du mit
Serverless Technologien wie z.B. Azure Static Web App, Azure Functions und ein paar grünen Software Entscheidungen zu Deiner
eigenen nachhaltigen Web App kommst.
Raum 4
10.00 - 11.00 Uhr
Eine Einführung in Asynchrone Programmierung mit async/.await in Rust
Rafael Bachmann
Details
In der Rust Community wurde lange diskutiert und experimentiert, um ein solides Fundament für
asynchrone Programmierung zu finden. Seit Ende 2019 ist async/.await endlich in "stable" verfügbar, und das Ökosystem
evolviert rapide.
Doch wie passen Event Loops und asynchrone Laufzeitumgebungen in die Konzepte der Programmiersprache Rust, welche auf
Zero-Cost Abstractions, (Thread-)Safety by Design, und höchstmögliche Leistung in allen Bereichen setzt? Und, wie
ergonomisch und praktikabel ist asynchrones Rust?
In dieser Session werden wir einige Grundlagen erkunden und dann mithilfe beliebter Bibliotheken in die Praxis
einsteigen. Dabei werden uns asynchrone Design Patterns, strukturierte Nebenläufigkeit, Tooling, sowie ein paar Gotcha's
und Antipatterns begegnen.
11.00 - 11.15 Uhr
Raumwechsel
Raum 1
11.15 - 12.15 Uhr
Azure Best Practices - Implementierung von schwergewichtigen Lösungen am Beispiel von ML.NET
Damir Dobric
Raum 2
11.15 - 12.15 Uhr
C# 10 Neuerungen
Thorsten Kansy
Details
Welche neuen Features C#10 für den Entwickler mit bringt stellt Thorsten Kansy in diese Session
kurz und übersichtlich vor. Von Neuerungen für Records über File Scoped Namespace ist da einiges dabei.
Raum 3
11.15 - 12.15 Uhr
Building first Apps with Q#
Christian Waha
Raum 4
11.15 - 12.15 Uhr
Von der Wunschliste zur Framework-unabhängigen Programmierung
Volker Hillmann
Details
Auf Veranstaltungen und Schulungen habe ich oft behauptet, dass es möglich ist, mit einer einfachen
Wunschliste zu beginnen und daraus ein plattformunabhängiges Programm in C++ zu entwerfen. Damit werden wir unabhängig von
Frameworks und Bibliotheken und schützen die Investition Dabei sollte der Beginn sofort möglich sein und in jedes Projekt
integrierbar sein. Ich habe aber immer nur den ersten Schritt gezeigt. Das ist jetzt anders. Dieses hatten wir am Anfang mit
den beiden Bibliotheken von Embarcadero, der VCL auf der einen Seite und FMX auf der anderen Seite gezeigt. Dann haben wir
es verallgemeinert und erweitert und haben Visual C++ genutzt, und die unabhängige Oberflächenbibliothek Qt verwendet.
Damit die Frage auch schon beantworten, natürlich ist es möglich mit einer Schnittstelle, nennen wir sie jetzt einfach
mal Wunschliste, zu beginnen und daraus eine unabhängige Lösung für C++ zu schaffen. Dabei muss die Wunschliste möglichst
kurz sein, wir sollten uns nicht an dem orientieren was möglich ist, sondern immer an dem was wir wirklich brauchen.
In diesem Vortrag möchte ich ihnen diesen Weg vorstellen und mit Euch diskutieren, wie es noch effizienter geht.
12.15 - 13.15 Uhr
Mittagspause
Raum 1
13.15 - 14.15 Uhr
Deep Dive mit Blazor – Lifecycle und Rendering in & out!
Christian Giesswein
Details
Blazor hat ein einfaches, verständliches Programmiermodell. Doch wie immer sitzt der Teufel im
Detail. Deswegen gilt es in dieser Session einmal unter einen Blick unter die Motorhaube zu werfen. Gerade die Themen
Lifecycle in und mit Blazor ist ein relevantes und spannendes Thema, und in diesem Zusammenhang natürlich vor allem auch,
wie die Elemente am Ende des Tages gerendert werden. Ein tiefer Einblick und eine spannende Reise in dieser Session rund um
Internals von Blazor.
Raum 2
13.15 - 14.15 Uhr
Einführung in gRPC
Kevin Winter
Details
In dieser Session macht Kevin Winter eine kleine Einführung in gRPC. Dieser Überblick ist für
Neulinge in gRPC und dient als Grundlage für seine zweite Session.
Raum 3
13.15 - 14.15 Uhr
Modernes Web - wie man es nicht überkompliziert
Maria Korneeva
Details
Frontend-Entwicklung ist heutzutage nicht einfach: Javascript, Typescript, CSS-Präprozessoren,
geräte- und browserübergreifende Kompatibilität, Ally, i18n, Frameworks, Frameworks, Frameworks... Benötigen Sie einige
Offline-Funktionen? Dann sollten Sie sich mit PWAs beschäftigen. Wollen Sie Zugang zur Kamera? Lassen Sie sich darauf ein
und tauchen Sie in die Welt der Hybrid-Apps ein... Aber muss es immer so kompliziert sein? Wussten Sie zum Beispiel, dass
<input type="file" /> ausreicht, damit der Benutzer Dateien aus dem Speicher seines Geräts auswählen oder ein neues Bild
mit der Kamera des Geräts aufnehmen kann? In meinem Vortrag werde ich verschiedene Funktionen der Webplattform und die
Möglichkeiten der HTML5-APIs demonstrieren, wie z. B. Geolokalisierung, Offline-Modus, Spracherkennung usw. Ich werde
Code-Beispiele liefern und auf aktuelle Einschränkungen und Implementierungszwänge eingehen.
Raum 4
13.15 - 14.15 Uhr
C++17 pmr Allokatoren und STL Container in Embedded Anwendungen
Richard Kaiser
Details
In der Voreinstellung reservieren die Container der C++ Standardbibliothek ihren Speicher mit new
und geben ihn mit delete wieder frei. Diese Aufrufe haben keine determinierten Ausführungszeiten und können zu einer
Speicherfragmentierung führen.
Das kann in vielen embedded Anwendungen nicht toleriert werden. Die AUTOSAR Regel A18-5-5 verlangt (wie auch
entsprechende MISRA-Regeln), dass Speicherverwaltungsfunktionen die folgenden Anforderungen erfüllen müssen:
(a) deterministic behavior resulting with the existence of worst-case execution time,
(b) avoiding memory fragmentation,
(c) avoid running out of memory,
(d) avoiding mismatched allocations or deallocations,
(e) no dependence on non-deterministic calls to kernel.
Deshalb dürfen die Container der C++ Standardbibliothek in solchen Anwendungen nicht verwendet werden.
Seit C++17 stehen die STL Container aber mit Allokatoren aus dem namespace std::pmr (polymorphic memory resources) zur
Verfügung. Diese verwenden kein new und delete. Die Container mit diesen neuen Allokatoren können oft so verwendet werden,
dass die Anforderungen AUTOSAR Regel A18-5-5 erfüllt werden. Damit kann man das erste Mal in der Geschichte von C++ die
Vorteile der STL Container in einem großen Teil der embedded Welt nutzen.
14.15 - 14.30 Uhr
Raumwechsel
Raum 1
14.30 - 15.30 Uhr
Coding Business Processes beyond limits of hyperautomation – Best Proctices with Durable Functions and Actor Model
Damir Dobric
Raum 2
14.30 - 15.30 Uhr
Rapid Application Development mit C-A-B-B-M (C#, Azure, Blazor, Back4App, MudBlazor)
Stephan Hüwe
Details
Du möchtest schnell Web-Applikationen entwickeln? Mit der Kombination dieser vier Werkzeuge kannst
Du innerhalb kürzester Zeit ansprechende Web-Applikationen entwickeln. C# ist unsere Programmiersprache, wir hosten auf
Azure, nutzen Blazor als Web-Framework, die Datenhaltung übernimmt Back4App und für das Material-Design sorgt MudBlazor.
In diesem Talk möchte ich diese Vierer-Kombination vorstellen und wir entwickeln eine kleine Applikation zusammen.
Raum 3
14.30 - 15.30 Uhr
AWS Cognito - Web authentication kann auch einfach sein
Alexander Eiswirth
Details
Identität ist die Eingangstür einer jeden Benutzeraktion. Wenn man nicht gerade ein
Sicherheitsexperte ist, sollte man beim Thema Authentifizierung & Autorisierung lieber auf einen Dienst zurückgreifen,
der einem genau diese Komplexität abnimmt. In dieser Session möchte ich euch am Beispiel von AWS Cognito zeigen, wie schnell
und einfach man genau dieses Problem in den Griff bekommt. Wir wenden das Ganze praktisch an und implementieren eine Simple
Webapplikation in AWS, die wir mit AWS Cognito versehen, um Benutzer zu authentifizieren und zu autorisieren.
Raum 4
14.30 - 15.30 Uhr
C++ & Docker & Portainer & Clion - Smartes Development in Container Zeiten
Holger Kolb
Details
Docker & Co sind nicht nur Ops, sondern auch Dev. Eine kurze Geschichte wie Docker die Entwicklung mit C++ bereichert.
15.30 - 16.00 Uhr
Kaffeepause
Raum 1
16.00 - 17.00 Uhr
Deep Dive Infrastructure as Code für Web Entwickler mit Bicep in Azure
Philipp Bauknecht
Details
Bicep ist die domänenspezifische Sprache von Microsoft mit deren deklarativer Syntax sich Azure
Ressourcen einfach bereitstellen lassen. In dieser demolastigen Session lernen wir anhand eines umfangreichen Szenarios
aus der Praxis wie verteilte Web Applikationen in Azure modelliert und erstellt werden können. Dabei gehen wir auf
verschiedene Azure Dienste wie App Services, Container Apps, Service Bus, Storage, Functions und FrontDoor ein mit vielen
praktischen Tipps und Tricks.
Raum 2
16.00 - 17.00 Uhr
Microsoft Teams Graph API mit ASP.NET
Hannes Preishuber
Details
So richtig cool wird Teams erst, wenn es sich in eigene Systeme integriert. Dazu sieht Microsoft
die Graph API vor. Ich zeige euch wie wir Authentifizierung und Workflow in unser bestehendes ASP.NET basiertes CMS
integriert haben und man wesentlich mehr aus Teams rausholen kann. Ein paar Slides und Coding.
Raum 3
16.00 - 17.00 Uhr
Hello Blockchain! Einführung in die Web3-Entwicklung
Ulrike Exner
Details
Crypto, Web3, Metaverse und NFTs: Pionier:innen der Web3-Community sehen in dem "dezentralisierten"
Netz nichts weniger als eine technische und gesellschaftliche Revolution. Blockchains werden häufig zunächst mit Bitcoins,
Cryptopunks oder Finanzspekulationen in Verbindung gebracht, allerdings bietet die Technologie auch für Software- und
Webentwickler:innen spannende Anwendungsfälle und Raum zum Entdecken. Dieser Talk zeigt, wie die Web3-Bewegung Smart
Contracts und dezentralisierte Applikationen auf Basis der Blockchain-Technologie entwickelt, wie ein Einstieg in diese
Community gelingt und welche Sprachen und Frameworks hier zum Einsatz kommen.
Raum 4
16.00 - 17.00 Uhr
Paketierung eines C++ Projekts mittels Cmake
Felix Mößbauer
Details
Beim Entwickeln einer C/C++ Software Bibliothek sollte bereits zu Anfang ein Augenmerk auf die einfache Integration der Bibliothek gelegt werden.
Dies gilt insbesondere für Bibliotheken, welche später von externen Nutzern in deren Anwendungen integriert werden sollen.
Da in vielen Projekten bereits CMake als Buildsystem verwendet wird, liegt es nahe, auch CMake für die Beschreibung der Compiler und Linker Optionen, sowie abhängiger Bibliotheken und deren Header zu verwenden.
Bei korrekter Beschreibung reichen dann folgende zwei Zeilen zur
Integration:
find_package(foo REQUIRED)
target_link_libraries(myapp PRIVATE foo::foo)
Der Vortrag führt anschaulich durch den Prozess des Paketierens unter Berücksichtigung folgender Ziele:
(a) einfache Integration der Bibliothek in eine Anwendung
(b) Erkennen fehlender Abhängigkeiten vor dem Kompilieren
(c) kein Spamming: Compiler und Linker Optionen nur dort wo benötigt hinzufügen
(d) flexible Paketierung: Einfache Integration in OS Distributions
(e) Unterstützung nicht CMake basierter Buildsysteme (z.B. mittels PKG-Config)
Hierbei geht der Vortrag insbesondere auf die Unterschiede zwischen Import und Export Targets, Find_Package und PackageConfig Skripten sowie Private / Interface / Publik Relationen ein.
17.00 - 17.15 Uhr
Raumwechsel
Raum 1
17.15 - 18.15 Uhr
Micro Frontends - Warum und warum nicht?
Florian Rappl
Details
In den letzten 2 Jahren sind Micro Frontends als Architekturmuster immer populärer geworden.
Doch was sind Micro Frontends genau? Und was sollen sie lösen? Wie können Micro Frontends implementiert werden? In diesem
Vortrag geht Dr. Florian Rappl auf genau diese Fragen ein. Anhand eines illustrativen Beispiels zeigt er den Aufbau einer
clientseitig-basierten Micro Frontend Lösung, die schnell umsetzbar und gut skalierbar ist. Im weiteren geht er auf
fortgeschrittene Themen wie das Management von gemeinsamen Abhängigkeiten und die richtige fachliche Aufteilung der
Applikationsfunktionalität ein.
Raum 3
17.15 - 18.15 Uhr
Introducing Testing into the Toni Kroos Academy Flutter App
Marco Papula
Details
Eine große App mit zahlreichen Usern und leider keine Tests. Das erschwert uns Entwicklern natürlich
erheblich die Arbeit, da sich leichter Bugs einschleichen können und selbst kleine Änderungen dazu führen können, dass wir
einen Screen deutlich verbessern und einen anderen dabei gänzlich kaputt machen.
Ich zeige euch am Beispiel der Toni Kroos App, wie man es am besten angeht, Tests hinzuzufügen wenn bisher keine vorhanden
sind und auch der Code nicht zwangsläufig mit Testing im Hinterkopf geschrieben wurde. Von der Argumentation mit dem PM,
über welche technischen Hürden durch verwendete Plugins enstehen bis zu den spezifischen Test Plugins die wir mittlerweile
in der App haben ist alles dabei.
Raum 4
17.15 - 18.15 Uhr
R"---(Mehr über die Compound Gruppe „LOOP")---"_@de
Frank Haferkorn
Details
In seinem deutschsprachigem Vortrag stellt Frank Haferkorn Details zur Compound-Gruppe "LOOP"
für C/C++ vor. Nach einer Erläuterung der Syntax werden die Implementierung sowie Vor- und Nachteile der neuen
Kontrollflussbefehle ausführlich erklärt - inklusive einer Vergleich Performance.
Die ursprünglichen C Kontrollfluss-Befehle haben sich seit Ende der 1970er Jahre wenig bis gar nicht verändert,
Sie heißen „Compound(s)" und sind in die wohlbekannten if-else, while, do-while, for sowie switch und wurden in C++
erweitert um try{}catch(){} block sowie mit C++17 um if(;) und switch(;).
Ist es ein physikalisches Gesetz, dass keine weiteren Compounds hinzukommen dürfen?
Besprochen wird eine für C11, C++11 und C++20 angepasste „Header-Only" Lösung von:
loop(<N>){},
typed_loop(<type>, <N>){},
named_loop(<type>, <name>, <N>){}
named_loop_up(<type>, <name>, <N>){}
named_loop_down(<type>, <name>, <N>){}
Frank Haferkorn präsentiert sowohl eine C, eine C++11 als auch eine um Post-Expressions erweiterte Implementierung
für C++20.
Die Vorteile sind Iterationen mit reduziertem Freiheitsgrad, verbesserter Lesbarkeit von C/C ++ und erlauben
einfachere / performantere Notation von Algorithmen.
Ein Nebeneffekt ist eine Verbesserung der Teachability von C/C++ insbesondere für die Raspberry PI Generation.
(Zukünftige) Compiler können aufgrund des reduzierten Freiheitsgrads kürzeren Maschinencode Code mit zusätzlich
reduzierter Zahl von „Cache-Misses" und damit eine Performance Gewinn erzielen.
Die Performance ist immer mindestens dem eines regulären for(;;){} Compound Befehls.
Eine Performance Analyse für verschiedenen CPU/DSP Plattformen und einer eine abschließende Diskussion darf nicht
fehlen.
ab 18.15 Uhr
Abendevent Regensburger Maidult
8.30 - 9.00 Uhr
Einlass und Hangover-Kaffee
Raum 1
09.00 - 10.00 Uhr
Identity and access management for End-Customer centric application
Nina Pollak
Details
Der sicherste Code für die Entwicklung eines Systems für Identitäts- und Zugriffsverwaltung ist
jener, den wir nicht selbst schreiben müssen. Glücklicherweise bietet uns Azure Active Directory B2C in Kombination mit
Azure App Service EasyAuth eine Möglichkeit wie wir unsere Anwendungen und Dienste absichern ohne ein eigenes Identitäts-
und Zugriffsystem entwickeln zu müssen. In den letzten Jahren wurde dieses Service von Microsoft deutlich verbessert.
Nebst einer sehr sicheren und stabilen Lösung, die gut skaliert bietet diese auch viele Anpassungen und
Integrationsmöglichkeiten. In dieser Demo-Only Sessions sehen wir uns an, wie wir Azure AADB2C konfigurieren können und
Anwendungen unter Berücksichtigung unterschiedlicher Identitätsanbieter wie Google, Facebook,… leicht absichern können.
Raum 2
09.00 - 10.00 Uhr
Komponentenbasierte Webentwicklung in C# mit Blazor
Chistopher Münch
Details
Mit ASP.NET Core 3.0 wurde dem Web-Framework mit Blazor ein besonders spannendes Feature
hinzugefügt. Seit seiner Einführung erfreut es sich großer Beliebtheit und hat in den letzten großen .NET Versionen
weitreichende Updates erhalten. Mit Blazor ist es möglich, interaktive Webseiten komplett in HTML und C# zu schreiben.
Während es zuvor mit Razor View/Pages nur möglich war, HTML-Code serverseitig vorzurendern, musste für clientseitige
Interaktionen auf JavaScript zurückgegriffen werden. Vom Aufbau des Frameworks hat sich Microsoft hier sehr stark an
beliebten, modularen SPA (Single Page Application) JavaScript-Frameworks wie Anuglar, React oder Vue orientiert. Blazor
ist somit ein modulares und komponentenbasiertes Framework. In dieser Session werde ich zunächst einen allgemeinen Überblick
über Blazor geben. In der weiteren Vertiefung werden die verschiedenen Hosting-Modelle (client- & serverseitig), sowie die
komponentenbasierte Entwicklung betrachtet.
Raum 3
09.00 - 10.00 Uhr
Dart eine totgeglaubte Sprache in neuer Blüte
Christoph Menzel
Details
Die Version 1.0 von Dart wurde bereits im November 2013 veröffentlicht. Seitdem war es immer sehr
ruhig um die Sprache und sie wurde nie wirklich erfolgreich.
Doch nun, da Dart die Programmiersprache hinter dem mehr als erfolgreichen Cross-Plattform Framework Flutter ist,
gewinnt sie mehr und mehr an Beliebtheit und Popularität.
Dart bringt einige sehr interessante und einmalige Features mit sich, so ist es zum Beispiel möglich sowohl „just in
time" (JIT) als auch „ahead of time" (AOT) zu kompilieren. Aber auch das Kompilieren von Dart Code nach Java Script ist
möglich.
Anhand verschiedener Live-Codings und Beispielen gebe ich Dir einen Einblick in die Programmiersprache Dart und zeige
Dir unterschiedliche Features.
Lass Dich in die Welt von Dart entführen und davon begeistern!
Raum 3
9.00 - 10.00 Uhr
Vorschau auf C++23
Daniela Engert
Details
C++20 war groß - sehr groß. Manche sagen sogar, es hatte so viele Neuerungen gebracht, dass
es nicht nur Anwender überfordern könnte, sondern auch die Entwickler der Compiler und Standardbibliotheken, sodaß das
C++ Komittee in C++23 keine größeren Neuerung bringen sollte. Trotzdem gab es natürlich einen Plan für die Dinge, welche
als Ziele für den kommenden Standard vordringlich bearbeitet werden sollten. Und dann kam die Pandemie und notwendigerweise
andere Methoden und Vorgehensweisen zur gemeinsamen Arbeit an der Spezifikation von C++23.
10.00 - 10.30 Uhr
Kaffeepause
Raum 1
10.30 - 11.30 Uhr
Micro Frontends mit Blazor
Florian Rappl
Details
Mittlerweile hat sich Blazor im .NET Ökosystem bestens etabliert – viele Anwendungen werden
bereits mit Blazor gestartet, auf Blazor migriert oder für einen Umstieg vorbereitet. Häufig treten jedoch spätestens bei
der entwicklungstechnischen Skalierbarkeit Probleme auf, die sich nicht ohne weiteres lösen lassen. Ein möglicher Ausweg
ist der Umstieg auf eine Micro Frontend Architektur. In diesem Vortrag diskutiert Micro Frontend Experte Dr. Florian Rappl
mögliche Gründe und Implementierungsstrategien um Micro Frontends auch mit Blazor effizient umsetzen zu können. Florian
zeigt anhand von praktischen Beispielen und illustrativen Demos mögliche Fallstricke und Wege um diese zu vermeiden. Hierbei
sind nicht nur Skalierbarkeit und Umsetzbarkeit im Fokus, sondern auch Entwicklerfreundlichkeit und Robustheit.
Raum 2
10.30 - 11.30 Uhr
Legacy Apps mit modernen .NET Features ausrüsten
Kenny Pflug
Details
Jeder kennt sie, jeder liebt sie: Apps, die seit Jahren, wenn nicht Jahrzehnten gewartet und
erweitert werden. Häufig laufen diese noch auf alten .NET Framework Versionen wie 4.5 oder gar 4.0. Als Entwickler vermisst
man dabei die neuesten Features von C# und der .NET Runtime. In diesem Talk sehen wir uns an, wie wir neue Features wie
Span <T>, Records und Nullable Reference Types trotzdem in alten Projekten einsetzen können. Ebenso betrachten wir, wie wir
schrittweise die Entwicklung in Legacy Apps verbessern können, indem wir Code entkoppeln und uns „Islands of Joy"
aufbauen, die automatisiert testbar sind. Als Abschluss schauen wir uns an, wo Pro und Contra beim Upgrade auf .NET 6
liegen.
Raum 3
10.30 - 11.30 Uhr
Teams Store Application - How to build and bring it to the store
Christian Waha
Details
Die Version 1.0 von Dart wurde bereits im November 2013 veröffentlicht. Seitdem war es immer sehr
ruhig um die Sprache und sie wurde nie wirklich erfolgreich.
Doch nun, da Dart die Programmiersprache hinter dem mehr als erfolgreichen Cross-Plattform Framework Flutter ist,
gewinnt sie mehr und mehr an Beliebtheit und Popularität.
Dart bringt einige sehr interessante und einmalige Features mit sich, so ist es zum Beispiel möglich sowohl „just in
time" (JIT) als auch „ahead of time" (AOT) zu kompilieren. Aber auch das Kompilieren von Dart Code nach Java Script ist
möglich.
Anhand verschiedener Live-Codings und Beispielen gebe ich Dir einen Einblick in die Programmiersprache Dart und zeige
Dir unterschiedliche Features.
Lass Dich in die Welt von Dart entführen und davon begeistern!
10.30 - 11.30 Uhr
Eine Einführung in Bare Metal Programmierung in Rust
Rafael Bachmann
Details
Mikrocontroller ohne Betriebssystem sind ein zentraler Bestandteil vieler eingebetteter Systeme.
Weil diese Systeme direkt mit der Außenwelt interagieren können, sind sie oft hohen Leistungs- und Sicherheitsanforderungen
unterworfen. Diese decken sich mit einigen Werten und Konzepten des Rust Projektes: hohe Performance bei niedrigem Speicher-
und Energiebedarf, definiertes Verhalten und sichere Nebenläufigkeit, sowie Compiler und Tooling, welche uns Entwicklern zur
Seite stehen.
Natürlich gibt es auch Herausforderungen für Bare Metal Rust - die großzügige Nutzung (auch transitiver) Abhängigkeiten
scheint zunächst ungewöhnlich, man begegnet mehrzeiligen Typsignaturen, und für Asynchronizität (Interrupts, DMA, oder
Multitasking) wird mit verschiedenen Ansätzen experimentiert.
Wir werden in dieser Session von den Grundlagen der Rust Bare Metal Programmierung ausgehen, um dann Bibliotheken
kennenzulernen, welche die Entwicklung portabler Treiber und deren Tests ermöglichen. Dabei werden uns einige Design
Patterns, Architekturen, und Tools über den Weg laufen. Zu guter Letzt halten wir einen Ausblick auf Asynchronizität in
Embedded Rust.
11.30 - 11.45 Uhr
Raumwechsel
Raum 1
11.45 - 12.45 Uhr
Configuration Management for Applications in Azure (Secure app config in Azure)
Nina Pollak
Details
Das geheime Schlüssel und andere sensitive Konfigurationseinstellungen nicht in den Quellcode
gehören ist heutzutage wohl jeder Person bekannt. Auch andere Konfigurationseinstellungen sollten sicher und gut verwaltet
werden, denn auch durch Fehlkonfigurationen können Sicherheitslücken entstehen. In dieser Demo-Only Session sehen wir uns
an wie wir Managed Identities, Azure KeyVault und Azure App Configuration einsetzen können, um unsere
Konfigurationseinstellungen möglichst sicher zu verwalten und den Zugriff darauf auf das Notwendigste zu beschränken. Zudem
zeige ich ihnen, wie sie die in Azure App Configuration integrierte Features-Flags Funktionalität nutzen können.
Raum 2
11.45 - 12.45 Uhr
Automatisiertes Testen mit C# im Jahr 2022
Rainer Stropek
Details
Testautomatisierung ist wichtig, das wissen alle SoftwareentwicklerInnen. Trotzdem erhält das
Thema oft nicht die Aufmerksamkeit, die es haben sollte. Das ist schade, da moderne Tools für automatisiertes Testen von
C#-Code die Aufgabe deutlich erleichtern. In dieser Session zeigt Rainer Stropek, wie er in seinen Projekten C# Unittests
und Integrationstests (DB, Web APIs) entwickelt. Rainer stellt die von ihm verwendeten Frameworks vor und zeigt auch, wie
die Tests in Docker und GitHub Actions automatisiert ausgeführt werden können.
Raum 3
11.45 - 12.45 Uhr
Flutter, der heilige Gral der Cross-Plattform-Entwicklung?!
Christoph Menzel
Details
Wenn sich Google einem Thema annimmt, dann meist richtig und mit vollem Einsatz. Genau das sieht
man auch beim Thema Cross-Plattform: Google entwickelte Flutter, ein UI Framework, mit dem native Apps für Mobile, Web und
Desktop mit einer einzigen Codebase in sehr kurzer Zeit entwickelt werden können.
Was Flutter so einzigartig macht und wie wir es bereits produktiv für Apps einsetzen, zeige ich Dir in diesem Talk.
Anhand verschiedener Beispiele und Live-Codings siehst Du, warum uns Flutter so überzeugt hat. Damit sind wir auch nicht
alleine, denn Toyota verwendet Flutter bereits für ihre neuen Infotainment Systems und viele weitere namhafte Firmen wie
Microsoft, Canonical und BMW setzen ebenfalls auf das Framework.
Lass Dich in die Cross-Plattform-Welt von Flutter entführen und davon begeistern!
Raum 4
11.45 - 12:45 Uhr
Evolution von modernem C++ am Beispiel eines einfachen Problems
Volker Hillmann
Details
Dieses ist wieder ein mehr praxisorientiertes Thema rund um moderne, neue C++ Eigenschaften
(C++11 – 20). Bjarne Stroustrup hat in einem seiner Bücher mal geschrieben, dass C++ Entwickler zwar die neuen Eigenschaften
von C++11 (und 14, 17, 20) wahrgenommen, aber nicht den grundlegenden Programmierstil geändert haben und neue Paradigmen
annehmen. Kann man also an einem so einfachen Beispiel, wie dem Einlesen einer größeren sequentiellen Datei Zeit und
Ressourcen sparen, wenn man aktuelles C++ einsetzt?
12.45 - 13.45 Uhr
Mittagspause
Raum 1
13.45 - 14.45 Uhr
Einführung Azure Dev Ops
André Ruland
Raum 2
13.45 - 14.45 Uhr
OData im Vergleich mit gRPC
Kevin Winter
Details
In dieser Session vergleicht Kevin Winter OData und gRRC. Wann sollte man zu OData greifen und wann hat
gRPC mehr Vorteile?
Raum 3
13.45 - 14.45 Uhr
Infrastructure as Code mit Bicep
Rainer Stropek
Details
Azure ARM Templates waren gestern, heute schreibt man Bicep Scripts. Bicep erleichtert den
Infrastructure-as-Code (IaC) Ansatz für Azure-EntwicklerInnen spürbar. In dieser Session zeigt Rainer Stropek an Beispielen,
wie Bicep funktioniert und wie man in der Praxis damit umgeht.
Raum 4
13.45 - 14.45 Uhr
Typsichere APIs mit OpenAPI und GraphQL für C++
Patrick Charrier
Details
REST und JSON sind die defacto Standards um zwischen Anwendungskomponenten
Daten über das Netzwerk auszutauschen. Typsicherheit bleibt dabei jedoch oft auf der Strecke und bei
Sender und Empfänger werden dieselben Data-Transfer-Objects (DTOs) oft redundant und manuell fehleranfällig
typisiert. Der Talk zeigt zunächst auf wie diese Probleme mit Hilfe der Datenbeschreibungssprache OpenAPI inkl.
entsprechender Code-Generatoren vermieden werden können. Im letzten Teil wird demonstriert, wie das Problem der
Granularität von APIs mit Hilfe von GraphQL gelöst werden kann.
14.45 - 15.00 Uhr
Raumwechsel
Raum 1
15.00 - 16.00 Uhr
Exploring Flow Architectures
Clemens Vasters
Details
In Anlehnung an den Begriff "Flow Architectures" aus dem Titel des kürzlich erschienenen Buches von
James Urquhart wird Clemens Vasters die Elemente ereignis- und nachrichtengesteuerter Architekturansätze untersuchen, die
für viele anspruchsvolle, groß angelegte Unternehmenslösungen grundlegend sind. Wir werden uns mit Systemen befassen, die
diskrete Ereignisse erzeugen und von diesen gesteuert werden, mit Systemen, die aus Event Streams abgeleitete Signale
aussenden, aggregieren und auf diese reagieren, und wir werden die erforderliche und gewünschte Kopplung zwischen den
Elementen eines Systems und die Auswirkungen dieser Kopplung auf die Anwendungsarchitektur untersuchen. Wir werden auch
mit der falschen Vorstellung aufräumen, dass einige Elemente des Messagings, wie Queues, irgendwie "traditionell" oder
"veraltet" sind, während Event Streams "modern" sind - sie sind Facetten desselben Werkzeugkastens.
Raum 2
15.00 - 16.00 Uhr
ASP.NET Core Tipps und Tricks - Plaudern aus dem Nähkästchen
Rapfael Schwarz
Raum 3
15.00 - 16.00 Uhr
Modelle und Code in einer agilen Welt verwalten!
Daniel Siegl
Details
In dieser Session stellt Daniel fortgeschrittene Wege vor, wie Sie Ihre UML- oder SYSML-Modelle
zusammen mit Ihrem Code in Git verwalten und beides in Ihre kontinuierlichen Integrationslösungen (CI) integrieren können.
Die Verwaltung der Modelle zusammen mit dem Code in denselben Zweigen - unter Verwendung von Prozessen aus dem
Software-Engineering - ermöglicht es, die komplexen cyber-physikalischen Systeme von heute mit Stil zu entwickeln, ohne
dabei die Anforderungen aus sicherheitskritischen Normen zu opfern.
Raum 4
15.00 - 16.00 Uhr
A Love Letter to Rust
Rainer Stropek
Details
Rust ist seit einigen Jahren in aller Munde. In dieser Session erklärt Rainer Stropek,
warum er sich in Rust „verliebt" hat. Wer neugierig auf Rust ist, aber noch nicht so recht weiß, ob die Plattform den
Lernaufwand wert ist, der ist in dieser Session genau richtig.
16.00 - 16.15 Uhr
Raumwechsel
Raum 1
16.15 - 17.15 Uhr
Azure Event Hubs - The Architect's Cut
Clemens Vasters
Details
Ich bin der leitende Architekt von Azure Event Hubs. Dies ist ein tiefer Einblick.
Keine Feature-Delta-Sitzung, sondern ein Blick hinter die Kulissen, wie die Technologie funktioniert und eine Erkundung
von Funktionen, die das Publikum vielleicht noch nicht kennt.
Raum 2
16.15 - 17.15 Uhr
Back to the 90’s TCPIP
Hannes Preishuber
Details
Jeder nutzt es und macht sich keine Gedanken darüber. Hannes baut in dieser Session von ganz
unten mit .NET über alle Plattformen eine Service Architektur ohne Rest, gRPC oder gar WCF.
Raum 4
16.15 - 17.15 Uhr
Einblick in die Entwicklung heterogener Anwendungen mit Intel Data Parallel C++ und SYCL
Georg Zitzlsberger
Kekse?
🍪 Diese Website verwendet Cookies, mit der Nutzung stimmen Sie dem zu.
Datenschutz