• Steve Carroll

    What’s new in .NET 5 and Visual Studio for .NET developers

    A preview of many new features from Blazor with WebAssembly, early previews of .NET 5 features, and all the latest and greatest productivity improvements in Visual Studio.

  • Roland König

    C# im Browser mit ASP.Net Core Blazor

    Mit WebAssembly ziehen ganz neue Möglichkeiten in die ohnehin schon mächtige Web-Plattform ein. Eine davon ist die Entwicklung von C#-Applikationen direkt im Browser mithilfe von ASP.Net Core Blazor. Für C#-Entwickler entsteht damit ein sehr interessanter Weg zur Entwicklung von Web-Applikationen, da die Einarbeitung in JavaScript größtenteils entfällt. Doch auch unabhängig von dem Thema JavaScript ist Blazor interessant, denn es ermöglicht etwa das Teilen von C#-Code zwischen Server und Client.

  • Thomas Althammer

    Komplexe Web-Anwendungen mit .NET Core realisieren: Rapid und Cross Plattform mit Wisej

    Desktop-Anwendungen sind out: Spätestens seit den Hamsterkäufen für VPN-Zugänge in den vergangenen Monaten ist allen IT-Verantwortlichen klar, dass an Web-basierten Unternehmensanwendungen kein Weg vorbei führt. Bei Ergonomie und Funktionalität stehen heutige Web-Anwendungen dem Desktop in nichts nach. Doch wie geht man die Entwicklung von komplexen Lösungen an, ohne sich in verschiedenen Technologien, Bibliotheken, Schnittstellen und Programmiersprachen zu verlieren? Der Ansatz von Wisej folgt den Ideen integrierter Entwicklungsumgebungen der letzten 25 Jahre. Auf Basis einer Single-Page-Anwendung können selbst komplexeste Anwendungen mit hunderten von Masken elegant fürs Web entwickelt werden. Dabei kommt man häufig um Faktor 5-10 schneller ans Ziel als mit klassischen Entwicklungsansätzen, ohne dabei die Flexibilität zu verlieren. In dieser Session bauen wir in nur 40 Minuten eine Web-Anwendung, die unter Windows, Linux, auf dem Raspberry Pi, als lokale Desktop-Anwendung unter Windows und als „connected App" auf iOS und Android lauffähig ist.

  • Thomas Althammer

    Migrieren oder Neuentwickeln? Mit komplexen Anwendungen vom Desktop ins Web

    Die Neuentwicklung von geschäftskritischer Software dauert Jahre. Die aktuell vorhandene Software genügt nicht den fachlichen Anforderungen, ist vom Wettbewerber überholt worden, kann nicht als Software-as-a-Service bereitgestellt werden, läuft nicht auf einem Tablet und auch nicht auf den aktuellen Betriebssystemen, steht nicht als Webanwendung zur Verfügung, ist nicht responsive und dem Design sieht man das Alter an, …
    Für ein Unternehmen sind die Herausforderungen einer Neuentwicklung oft nicht zu bewältigen. Auch erscheint es unsinnig, da ja viele bewährte Funktionsbereiche beibehalten werden könnten.
    Hingegen verspricht die Migration der Software die Lösung aller Probleme. Funktioniert das wirklich?
    Der Vortrag beschreibt, wie eine sehr umfangreiche geschäftskritische Software von Client-Server basierend auf .NET Winforms auf eine Browser basierende Webanwendung umgestellt werden kann, die zudem den neuesten Designkriterien entspricht. Anhand erfolgreich umgesetzter Projekte werden die eingesetzten Technologien und Werkzeuge, die Vorgehensweise aber auch die Herausforderungen solcher Projekte erläutert. Die technische Sicht wird anhand eines Beispiels ebenso verdeutlicht wie die betriebswirtschaftliche Bewertung anhand von realen Projekten. Schnell wird den Zuhörern klar, dass mit der Migration nicht nur das technische Ziel erreicht wird, sondern gleichzeitig auch die vorhandenen Entwickler in die neue Welt "mitgenommen" werden.

  • Kenny Pflug

    Async Await Internals

    Haben Sie sich auch schon gefragt, wie Async Await eigentlich intern funktioniert? In diesem Talk sehen wir uns im Detail die State Machine an, die der C# Compiler für async Methoden generiert, und verdeutlichen anhand von Speicherabbildungen, was genau beim Ausführen in der Runtime passiert. Ebenso werfen wir einen Blick auf den Performance-Overhead von async Methoden mithilfe von BenchmarkDotNet.

  • Gregor Biswanger

    Microsoft Azure: Microservice Infrastruktur-Strategien in der Cloud

    Microsoft Azure bietet eine Vielzahl an Möglichkeiten eine Microservice Infrastruktur aufzubauen: Azure Service Fabric, Azure Kubernetes Services oder manuell über virtuelle Maschinen und App Services. Der Microservice- und Azure-Experte Gregor Biswanger gibt in seiner Session ein Big Picture und geht auf die jeweiligen Vor- und Nachteile der unterschiedlichen Microservice Infrastruktur-Strategien ein.#

  • Tobias Fuchs

    Say It Like You Mean It - Semantics Concepts for Behaviour Driven Development

    Code cannot express its intent, except for inline documentation which cannot be validated. According to "The Mythical Man Month" and our own experience, the hard part of building software is specification, design, and testing. These aspects are the crucial foundation of robust software because they formulate the effective behaviour and purpose of the implementation. For device drivers, this behaviour affects the specification of the controlled hardware as well as higher-level logic in software. When hardware and software are developed in parallel, keeping specifications, implementation and tests synchronized is a cumbersome challenge. In this talk we present semantics concepts for C++ that unify these aspects in human-readable code. From semantics definitions, hardware mocks with specified behaviour can be derived for tests, keeping tested and specified behaviour synchronized.

  • Damir Dobric

    Advanced Backend: Actor Programming Model mit dapr

    Im Zeitalter von Microservices, Cloud und Machine Learning nimmt die Komplexität von Backend-Anwendungen extrem stark zu. Es wird zunehmend schwieriger, robuste, zuverlässige, skalierbare und einfach zu bedienende Systeme zu konzipieren. Dies ist eine Session über das Actor Programming Model mit dem sich komplexe Backend-Systeme einfacher konzipiert werden können. Die Teilnehmer lernen Actor Programming Model kennen. Mit Hilfe vieler Beispiele wird gezeigt, Actor Programming Model Framework auf Basis "dapr" Framework umgesetzt werden kann. Diese Session fokussiert Software Architekten und Entwickler mit dem Ziel, moderne Anwendungen zu entwerfen und zu implementieren, die als Teil eines komplexeren Systems über Cloud und Edge verteilt sind.

  • Gregor Biswanger

    Electron.NET: Cross-Platform Desktop Software mit ASP.NET Core

    HTML5 ist überall - im Web, Mobile und natürlich auch auf den Desktop. Die große Stärke an HTML5 ist nicht nur, dass diese Plattform übergreifend unterstützt wird, sondern dass es immer mehr Features aus der Desktop-Welt bietet. Dennoch erfordert die Entwicklung von Desktop Anwendungen auf Basis von HTML & JavaScript neue Frameworks und Sprachen. Das Open Source Projekt Electron.NET verbindet ihr bekanntes C# & ASP.NET Core KnowHow mit den Möglichkeiten von Electron. In Kombination von C# und HTML5 können hoch performante Desktop Geschäftsanwendung für Windows, Mac und Linux entwickelt werden. Sie steigen mit den Grundlagen von Electron.NET ein und werden dann mit den wichtigsten Tools und Vorgehensweisen vertraut gemacht. Mit diesen Infos steigen Sie rasch zum versierten Cross-Platform Entwickler mit .NET auf.

  • Kevin Winter

    Windows Service mit .NET Core

    tba

  • Florian Bader

    Testing einer Web-App mit Jest und Selenium

    Testen stellt einen zentralen Aspekt der Qualitätssicherung dar und sollte bereits parallel zur Entwicklung durchgeführt werden. In der Praxis jedoch wird dies oftmals sträflich vernachlässigt. Lernen Sie Teststrategien für Web-Applikationen mit einem Mix aus Theorie und Demos aus praktischen Beispielen kennen: Von Unit Test über Integration Test mit Jest bis End-to-end Tests mit Selenium. Wann ist welche Art von Test sinnvoll und wie werden diese in der Praxis am besten umgesetzt.

  • Damir Dobric

    Machine Learning fuer .NET Entwickler

    ML und KI werden ohne Zweifel immer wichtiger. Die Integration von ML/AI-Fähigkeiten in Software ist jedoch keine leichte Aufgabe. Die meisten Projekte in diesem Zusammenhang werden in Python prototypisch umgesetzt. ML.NET sollte dies ändern. In dieser Sitzung werden die Teilnehmer lernen, wie ML/AI durch die Verwendung des Microsoft Machine Learning .NET-Frameworks vollständig in .NET-Anwendungen implementiert werden kann, ohne dass sie die Geheimnisse komplexer Algorithmen erlernen müssen. ML.NET ist ein kostenloses, plattformübergreifendes und quelloffenes Machine-Learning-Framework für .NET-Entwickler. Diese Sitzung konzentriert sich auf die Grundlagen der Theorie hinter maschinellem Lernen und hilft beim Einstieg in ML.NET.

  • Roland König

    Moderne Windows-Desktop-Apps mit WinUI 3

    Mit WinUI 3 entsteht gerade der neueste Vertreter von GUI-Technologien für Windows. Technisch werden die Xaml-Controls und die Xaml-Runtime der Universal Windows Platform (UWP) aus dem Betriebssystem entkoppelt und als Nuget-Paket bereitgestellt. Anders als vorher können nun auch klassische Desktop-Applikationen nach dem Win32-Modell mit diesem Framework entwickelt werden. Andere Eigenschaften wie etwa die Unterstützung für C++ Applikationen bleiben erhalten. In Summe hat WinUI das Potential, die Basis für moderne Windows-Desktopentwicklung zu werden.

  • Alexander Meijers

    Intelligent applications with Kinect for Azure (English)

    In this session we will explain how you can use Azure Machine Learning in combination with Kinect for Azure to recognize objects inside a Windows desktop app. We will explain how Kinect for Azure works, What tools are available, how to connect to the device and how you can start building your intelligent apps. Live demos will be used during the session with an actual Kinect for Azure device.

  • Florian Rappl

    GraphQL in .NET

    While REST is certainly a useful pattern to follow when designing backend APIs it also leaves a lot open and up to the implementation. The result is a mess that needs to be tackled by strict guidelines and frameworks for creating RESTful APIs. In this talk we look at GraphQL as an alternative for backend APIs. We explore Hot Chocolate as a viable GraphQL implementation for .NET.

  • Adam Ralph

    Finding your service boundaries - a practical guide (English)

    We know it's useful to split up complex systems. We've seen the benefits of modular deployment of microservices. Dealing with only one piece of code at a time eases our cognitive load. But how do we know where to draw the service boundaries? In complex business domains, it's often difficult to know where to start. When we get our boundaries wrong, the clocks starts ticking. Before long, we hear ourselves say "it would be easier to re-write it".

  • Thomas Rümmler
    & Florian Bader

    IoT im DevOps-Zeitalter: Wie funktioniert das?


    DevOps ist heute schon in vielen Unternehmen angekommen und hat sich dort auch etabliert. Für viele die sich gleichzeitig mit dem Thema IoT beschäftigen, stellt sich jedoch die Frage: Wie funktionieren DevOps und IoT zusammen? Die Provisionierung von Devices und auch das Ausrollen von Software soll auch hier nach DevOps-Prinzipien im besten Fall vollautomatisiert passieren. In diesem Vortrag wollen wir zeigen, wie DevOps-Praktiken und -Prinzipien sich mit IoT vereinen lassen. Am Beispiel von Azure IoT Edge werden unterschiedliche Szenarien durchgespielt, die in einem IoT-Umfeld relevant sind. Wie kommen Software-Updates kontinuierlich auf Devices und wie können Devices automatisiert gepflegt werden?

  • Christian Vorhemus

    Kubernetes von A bis Z

    Es ist die neue Antwort auf die Frage nach dem Leben, dem Universum und dem ganzen Rest. Wo sollen die neuen Applikationen laufen? Wohin sollen all die alten Anwendungen, die wir mühsam in Container gepackt haben? Wie skaliert das Ganze? Kubernetes! In diesem Vortrag beleuchten wir Kubernetes in seiner ganzen Bandbreite: Von Nodes, Pods und DaemonSets über Control Plane, Clusterauthentifizierung, das interne Kubernetes-Netzwerk und kubectl. Untermalt wird die Theorie mit praktischen Beispielen verschiedener Cluster-Konfigurationen in Azure, gewürzt mit einer Prise Helm als Abschluss.

  • Sebastian
    Kleinschmager

    ASP.NET Core und Entity Framework Core Possibly Good Practices
                  Eine simple Variante von wart- und testbarer Struktur für Web Backends


    Wer hat diese Probleme nicht schon mal in einem Projekt erlebt? Die Repository und Service Klassen in der eigenen Anwendung werden zu groß. Die Datenbank fühlt sich an wie ein Fremdkörper, und Änderungen an Schema und Daten sind nicht so leicht in einen modernen Entwicklungsprozess zu integrieren. Ständig entstehen Fehler bei Datenbank-Deployments und das Release liegt mal wieder in Schutt und Asche. Mit Entity Framework Core liefert uns Microsoft einen modernen objektrelationalen Mapper, der es uns ermöglicht, die Datenbank sauber in den Entwicklungs- und Deploymentprozess zu integrieren, sowie mit einfachen Mitteln die gefürchteten datenbankbasierten Tests umzusetzen.
    Ich zeige in diesem kurzen Vortrag, wie ein moderner Entwicklungsprozess unter Nutzung von Entity Framework Core und ASP.NET Core die Datenbank sauber in den Arbeitsfluss integriert und auch das Testen und Deployment vereinfacht. Dabei lasse ich viele Best Practices aus meiner Projekterfahrung einfließen.

  • Sebastian Achatz

    Terraform - Cloudinfrastruktur als Teil der Anwendung

    In den Zeiten von Continuous Integration und Continuous Deployment ist es für moderne cloudbasierte Anwendungen wichtig, Infrastruktur effizient und effektiv als Teil der Gesamtlösung in einer CI / CD Pipeline vollautomatisiert auszurollen. Ziel sollte es sein, Infrastruktur als Teil der Anwendung zu erstellen, zu verwalten und zu pflegen. Terraform von HashiCorp ermöglicht genau das. Diese Session gibt einen Überblick wie das geschehen kann anhand einer Vielzahl von Beispielen.

  • Gergely Kalapos

    State of Observability in .NET - Tracing applications in the cloud

    Egal ob man Applikationen in der Cloud oder im eigenen Rechenzentrum betreibt, Telemetriedaten aus einem Produktionssystem sind für den Erfolg eines Softwareprodukts ausschlaggebend. Cloud und Microservices machen Telemetrie und Tracing allerdings noch wichtiger: Ein HTTP 5xx im Browser sagt uns nicht, wo genau ein Request schiefgegangen ist; mit Dutzenden von Cloud-Services den Fehler zu finden ist gar nicht so trivial. Zum Glück stellt .NET sehr gute Features bereit, um Tracingsysteme zu bauen – ein Beispiel dafür ist DiagnosticSource. Zusätzlich gibt es auch eine W3C-Initiative für einen Tracingstandard namens Trace Context sowie Open-Source-Initiativen mit .NET-Unterstützung, wie zum Beispiel OpenTelemetry.
    Was heißt das für .NET-Entwicklerinnen und -Entwickler, die Applikationen für die Cloud bauen? Diese Session zeigt, wie DiagnosticSource, Distributed Tracing und OpenTracing funktionieren. Das ist aber noch nicht die ganze Geschichte: Die vorher genannten Tools bieten eine Lösung, um Daten zu sammeln und zu korrelieren. Zusätzlich möchte man natürlich diese Tracing- und Telemetriedaten auch visualisieren. Der zweite Teil der Session beschäftigt sich daher mit Observability und Monitoringtools, die die Telemetriedaten auch sammeln, speichern und visualisieren. Vorgestellt werden Application Insights, Jaeger und Elastic APM.

  • Kerry Lothrop

    UWP für Android, iOS und Web

    Seit gut zwei Jahren gibt es einen neuen Player im Bereich der Cross-Platform-Entwicklung, der für .NET-Entwickler von Interesse sein kann.

    Die Macher von Uno haben sich das Ziel gesetzt, Code, der für UWP-Anwendungen geschrieben wurde, unter Android und iOS lauffähig zu machen. Dadurch bietet Uno den einfachsten Einstieg in die Cross-Platform-Welt für UWP-Entwickler und steht damit in direkter Konkurrenz zu Xamarin.Forms.

    Spätestens seit der Unterstützung von WebAssembly als neue Zielplattform sollte dem Erfolg von Uno nichts mehr im Wege stehen.

    In diesem Vortrag entwickeln wir gemeinsam eine Uno-Anwendung und vergleichen die Ergebnisse auf den verschiedenen Plattformen. Ob man sich die Entwicklung einer eigenen Web-App in Zukunft sparen kann?

  • André Ruland

    Erstellen Sie einzelne Codebase-Apps für WebAssembly, iOS, Android und Windows

    TBA

  • Andreas Pollak

    Visual Studio 2019 IDE - Tipps and Tricks for .NET Developers

    In dieser Demo-Session erfahrt ihr wieder eine Menge nützlicher Tipps und Tricks, welche euch das arbeiten mit Visual Studio 2019 erleichtern. Zudem stelle ich euch wieder einige spannenden Erweiterungen vor, die ebenfalls unglaublich nützlich sind. Es wird wieder spannend!

  • Isaac Abraham

    Go Pro on .NET with F#

    F# has been a part of .NET since the early days of the Framework, yet it still is relatively unknown for a large majority of the .NET developer community. But why is this? With the rise of .NET Core, and with C# going through a large transition at the moment with features such as tuples, pattern matching and non-nullability all influenced from F#, it's never been easier to start using F# today.

    This talk will cover the discuss the fundamentals of functional programming, cover the basic value proposition of F#, illustrate the philosophy and key language features behind the language, with examples comparing equivalent solutions in C# and F#, as well as looking at the typical life cycle for F# developers.

    We'll finish up with some demos that show use cases of F# and how, when using a language that has functional programming at its heart, you can "level up" and achieve large boosts in both productivity and developer satisfaction.

  • Stephan Hüwe

    Blockchain.Net

    Blockchain ist eines der Buzzwords der letzten Jahren. Abseits von Kryptowährungen bietet die Blockchain-Technologie einen interessanten neuen Baustein für Enwickler im Bereich von verteilten Datenstrukturen. Dieser Vortrag führt in die Grundlagen von Blockchains ein und erläutert Vor- und Nachteile - Chancen und mögliche Risiken. Anhand der theoretischen Grundlagen wird eine beispielhafte Implementierung in .NET beleuchtet. Zusätzlich werden fertige Projekte vorgestellt.

  • Kenny Pflug

    JSON Serialization in ASP. NET Core

    Sie gehören zu fast jedem HTTP-Aufruf dazu, dennoch bemerkt man sie kaum: JSON Dokumente. In diesem Talk blicken wir unter die Haube von ASP.NET Core und sehen uns genau an, wie JSON Serializer eingesetzt werden und arbeiten. Insbesondere vergleichen wir JSON.NET (Newtonsoft.Json) mit dem neuen System.Text.Json Serializer, der seit ASP.NET Core 3 der Standardserializer ist, bezüglich Features und Performance.

  • Andreas Daxer

    Migration einer WPF-App auf .Net Core

    Microsoft lässt die WPF nicht nur weiterleben, sie soll in .Net Core neue Höhen erleben. Aber als Praktiker frägt man sich schon: Lässt sich eine fertige WPF-Applikation auf .Net Core migrieren und gibt es dabei Stolperfallen? Erfahren Sie hier, wie eine umfangreiche WPF-Applikation mit UI-Framework (Mahapp Metro), MVVM Framework (Caliburn Micro), ORM-Mapping (EntityFramework 6) und etlichen Modulen auf .Net Core transportiert wurde.