Agenda

der ADC++ und ADC


*Änderungen vorbehalten

8.30 - 9.00 Uhr
Einlass und Begrüßungskaffee
9.00 - 9.30 Uhr

Keynote

Zusammen mit der ADC
Details

tba

 
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
Details

tba

 
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
Details

tba

 
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
Details

tba

 
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
Details

tba

 
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
Details

tba

 
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
Details

tba