Künstliche Intelligenz ist die neue Elektrizität, behaupten einige. In jedem Fall aber wird sie unser Leben verändern. Für uns Entwickler bedeutet dies vor allem eines: KI wird ein wesentlicher Bestandteil zukünftiger Software, weshalb eine Auseinandersetzung mit dem Thema zwingend erforderlich ist. Der Workshop zeigt Ihnen, um was es bei KI im Allgemeinen und um Machine Learning im Speziellen geht, in welchen Szenarien es helfen kann und welche Algorithmen hierbei eine Rolle spielen. Sie lernen, wie Sie eigene Machine-Learning-Modelle entwickeln, trainieren und in Ihre Anwendung integrieren können. Hierbei werden die wichtigsten Produkte und Frameworks vorgestellt: Von Azure Machine Learning über ML.NET bis hin zu den Cognitive Services werden Sie alles kennenlernen, was Sie brauchen, um wirklich intelligente Apps zu entwickeln.
Angular ist ein äußerst beliebtes Framework für browserbasierte Geschäftsanwendungen. Seine Grundlagen kann man sich zwar rasch aneignen, aber meist bleibt eine wichtige Frage offen: Wie nutzt man es richtig, um langlebige Geschäftsanwendungen damit zu entwickeln? Dieser mit PowerPoint sehr sparsam umgehende Workshop liefert Antworten für alle, die (bessere) Enterprise-Lösungen mit Angular entwickeln wollen. Dazu wird von Anfang an mittels Livecoding unter Berücksichtigung bewährter Architekturmuster und Best Practices eine Angular-basierte Geschäftsanwendung entwickelt. Sie sehen also nicht nur, was Angular zu bieten hat, sondern auch, wie man seine Möglichkeiten richtig nutzt. Wir beschäftigen uns mit Smart und Dumb Components, Monorepos und Nx, dem Aufteilen einer großen Anwendung mittels Bibliotheken, Details der Datenbindung und Dependency Injection, State Management, Routing und ausgewählten Performanceaspekten. Am Ende wird eine Demoanwendung vorliegen, die alle Aspekte zeigt und als Vorlage für eigene Vorhaben verwendet werden kann.
Wie jedes Jahr bringt Oliver Sie in diesem ganztägigen Workshop auf den aktuellen Stand zu aktuellen Technologiefragen für Programmierer und Architekten. Zu Beginn des Tages helfen Sie selbst mit, das Programm zu definieren, sodass Ihre Fragen und Problemstellungen im Vordergrund stehen. Ideen gibts viele: Microservices, wie geht das? Darf auch das Frontend jetzt "Micro" sein? Ist Serverless das letzte Wort zu Microservices? Blazor, Xamarin, React, Vue, Angular - welchen Weg sollte ich gehen? Datenhaltung mit NoSQL, CQRS, Event Sourcing? Bringen Sie eigene Vorschläge mit und nehmen Sie viele neue Perspektiven mit nach Hause!
Microsoft hat verkündet, dass .NET Framework 4.8 die letzte Version des klassischen .NET war. Es gibt keine Weiterentwicklung mehr. Die Zukunft gehört .NET Core 3.1 und dessen Nachfolger .NET 5.0.
Zum Glück kann man mittlerweile nicht nur Webanwendungen und REST-Web-API-Dienste, sondern auch Desktopanwendungen und Systemdienste mit .NET Core entwickeln. Aber so einfach ist der Umstieg auf .NET Core nicht. Eine Migration muss wohldurchdacht und gut umgesetzt sein.
Dieser Workshoptag beginnt mit strategischen Überlegungen zur Migration, insbesondere eine Abwägung der Vor- und Nachteile von .NET Core. Denn auf dem klassischen .NET Framework zu bleiben, kann auch eine valide Option für Ihr Projekt sein!
Danach geht es konkret um die Migration bestehender Anwendungen auf .NET Core. DOTNET-DOKTOR Holger Schwichtenberg zeigt die Umstellung auf .NET Core anhand von WPF-, Windows-Forms- und ASP.NET-MVC-Anwendungen. Auch die Migration des Datenzugriffscode und von Services spielt dabei natürlich eine Rolle.
In dem Workshop wird der DOTNET-DOKTOR die Migrationsschritte und die verfügbaren Werkzeuge ebenso wie die Herausforderungen der Umstellung erörtern.
Das Web als Plattform und der Browser als Ausführungsumgebung haben vor vielen Jahren ihren Siegeszug als Basis für moderne Businessanwendungen angetreten. Mit dem WebAssembly-Standard kann ein Entwickler heute neben JavaScript und TypeScript auch andere nicht-webnativen Programmiersprachen und Frameworks nutzen, um Cross-Plattform-Lösungen für den Browser zu realisieren. In diesem Workshop widmet sich Christian Weyer dem clientseitigen Blazor Framework des ASP.NET-Core-Teams. Sehen Sie, wie man mit Blazor, C# und .NET webbasierte Single Page Applications (SPAs) baut und wie man mit einer passenden Anwendungsarchitektur über API und Push Services eine Full-Stack-Lösung mit C# implementiert. Auch weiterführende Konzepte wie Interoperabilität mit der Browserplattform und Umsetzung von Progressive Web Apps (PWAs) werden thematisiert. Als Abrundung des Workshops soll auch ein Blick auf und ein Vergleich mit Server-side Blazor nicht fehlen, um einschätzen zu können, wann man was einsetzt - und wann nicht.
Für .NET-Entwicklungteams gibt es im Moment wieder eine Menge zu lernen. Die neuen Major-Versionen von C# und .NET sind da. Sie stehen diesmal im Mittelpunkt des traditionellen C#-Workshops. Wir starten mit den C#-8-Sprachfeatures. Rainer Stropek zeigt euch die Neuerungen in der Sprache. Wir begnügen uns aber nicht mit kurzen Demos. Wir nehmen uns die Zeit, hinter die Kulissen zu sehen und analysieren den generierten Code, analysieren die Performance und sprechen über Anwendungsmöglichkeiten in der Praxis. Im zweiten Teil stehen .NET Core 3 und .NET Standard 2.1 im Mittelpunkt. Rainer zeigt, was die neuen Versionen können und wie sie zusammenhängen. Im Workshop geht es weniger um aufbauende Frameworks wie WPF oder ASP.NET Core. Wir wollen uns an dem Tag Zeit nehmen, solides Wissen über die Grundlagen aufzubauen, damit der Einsatz weiterführender Komponenten einfacher wird. Als dritten Schwerpunkt hat Rainer diesmal Unit Testing ausgewählt. Alter Hut? Keineswegs. Testautomatisierung ist in Zeiten von DevOps so aktuell wie nie, und deshalb zahlt es sich aus, wieder einmal über das Thema zu reden. Rainer hat für den Workshop xUnit.net und Moq als Tools ausgewählt. Er wird anhand vieler Codebeispiele zeigen, wie man Unit-Tests sinnvoll aufbaut und die Funktionen der beiden Tools sinnvoll einsetzt.
Wer nur auf die Oberfläche schaut, sieht weniger als die Spitze des Eisbergs. Das einfache UI ist nur ein Aspekt der UX (User Experience), die heute für den Erfolg einer Software bei den Nutzern wichtig ist – so weit, so gut. Aber was sind denn die Oberflächendimensionen, die heute wichtig sind? Und wie sieht es dabei mit der DX (Developer Experience) aus? In dieser Keynote diskutieren Thomas Claudius Huber, Manfred Steyer und Mirko Schrempp die technologischen und architekturellen Dimensionen aus Sicht von .NET-Entwicklern, die sich immer mehr Dimensionen öffnet – von den UIs über verschiedene Architekturansätze bis in die Clouds.
Moderne Webbrowser unterstützen eine große Menge an Sicherheitsfeatures, die aus Entwicklungssicht genutzt werden können: HTTP-Header, JavaScript-APIs und mehr. Diese Mechanismen können effektiv Cross-Site Scripting, ClickJacking, Cross-Site Request Forgery und andere Angriffe verhindern und vieles mehr. Diese Session zeigt viele dieser Features, diskutiert die Browserunterstützung und zeigt aktuelle Entwicklungen auf, etwa Features, die vor der Einstellung stehen und ersetzt werden müssen.
Microservices: ja! Oder eher doch nicht? Um diese Frage beantworten zu können, klärt Christian Weyer in diesem Vortrag, was Microservices sind, was sie nicht sind, wann man sie nutzt – und vor allem: wie man Microservices in der .NET-Welt implementieren kann. Sehen Sie Architekturansätze und Patterns in Aktion und erleben Sie Technologien wie Web-APIs, gRPC, Push Messaging, Background Workers und Co. im praktischen Einsatz mit .NET Core 3. Versuchen wir gemeinsam, langweilige Architekturthemen spannend zu machen - durch eine pragmatische Sichtweise.
You probably have heard of the term Docker and you might have heard that a lot of developers think it is the next big thing since sliced bread. In this session I will introduce you to what containers are, what Docker is, how you can run your existing application on Docker and explain why this has so many advantages. I will demystify terms like Docker for Windows, Docker on Windows, Docker Swarm, Container services, etc. After attending this session you have a full understanding on what container technology is, what Docker brings to the table and how it can revolutionize the way you do software development in the future!
Mit C# 8, einer Major-Version von C#, gibt es große Erweiterungen wie u. a. Async Streams, Non-nullable Reference Types, Ranges und Indices sowie weiterführende Features beim Pattern Matching, das in C# 7 eingeführt wurde. In dieser Session sehen Sie, wie neue C#-Features in Libraries und Applikationen genutzt werden können und wie auch Frameworks von Microsoft angepasst wurden, um die neuen Features zu nutzen.
The Oil & Gas Service Industry has undergone massive changes over the past two decades from a mechanical approach to a Software focused approach. Such complex industry requires Software that hides the complexity behind the scenes to facilitate intuitive handling.
The presentation will cover the basics of the Oil & Gas Industry and the various components being used. In addition to that, it describes the development of a new Software Platform for the Oil & Gas Industry that needs to take into consideration ongoing changes in mechanical, electrical, Firmware and Software design.
In addition to describing the general setup of Software this presentation will depict the challenges and needs faced during development of this highly complex system. As all involved components (mechanical, electrical, etc.) change during the development phase it requires alignment with all involved disciplines.
Based on a real scenario an example of architectural challenges and possible solutions will be given from a software point of view.
Ob neue Technologien, (agile) Transformationen, neue Arbeitsmethoden oder die vielbeschworene Digitalisierung und DevOps: Veränderungen in Unternehmen sind heute allgegenwärtig. Das kann mitunter anstrengend und frustrierend sein, denn oft greifen diese Veränderungen tief in den Alltag der Betroffenen ein. Wer kennt nicht mindestens eine Horror-Story von einem gescheiterten Veränderungsprozess? Die Geschichten von ziellosem umherirren im Methodendschungel unstrukturierten Prozessexperimenten oder diktatorischem Umorganisieren mit Brechstangenmethodik sind zahlreich.Doch das muss nicht sein! Veränderungen können und sollen positiv erlebt werden. Im Zusammenspiel von sieben Erfolgsfaktoren ist eine zielgerichtete und nachhaltige Veränderung deutlich leichter zu erreichen. Welche Faktoren das sind und wie sie praxisnah erkannt und umgesetzt werden, können zeige ich in diesem Vortrag. Ihr lernt eine konkrete Methode zur Umsetzung von kleineren und grösseren organisatorischen Veränderungen kennen und nehmt eine Liste von Fragen mit, die in der nächsten Veränderung beantwortet werden wollen.
In verteilten Anwendungen spielt das Backend eine entscheidende Rolle, und die Entwicklung des Backends ist ein eigener Bereich geworden. Es sollte schnell und einfach zu benutzen sein, die Daten für das Frontend bereitstellen und gut dokumentiert sein. In diesem Talk von Fabian Gosebrink hören Sie nicht nur, wie Sie ein RESTful Web-API mit ASP.NET Core erstellen. Sie erfahren außerdem praxisnah, wie Sie es mithilfe von Tools dokumentieren und nützlichen Features erweitern können. So entsteht am Ende ein sauberes Backend, das von jedem Client aus benutzt werden kann.
Buzzwords rund um die „Digitalisierung“ rufen verschiedenste Hoffnungen und Ängste hervor. Dass die Digitalisierung nicht nur Organisationen, sondern auch jeden einzelnen Mitarbeiter betrifft, ist eine Binsenweisheit. Wie können wir Schritt halten und den rasanten US-amerikanischen oder den asiatischen Entwicklungen Paroli bieten? Inwieweit betreffen Plattformöknomien und digitale Geschäftsmodelle nicht nur den Consumer-Bereich (Amazon, Alibaba, Buchungsportale, Finanzportale, Transportportale, …), sondern auch „meine“ Branche und mein Umfeld?
Trotz Digitalpakt und Co. scheinen wir in vielen Bereichen hinterherzuhinken oder unser Familiensilber nach Asien zu verkaufen. Doch meistens liegt das Zurückbleiben nicht an technischen Gegebenheiten, sondern am Mindset: An der Agilität und Flexibilität der Führungsmannschaft und der Mitarbeiter. Bildungseinrichtungen und Organisationen ticken im Kern oft noch wie vor 25 Jahren. Muss man daher als Ausweg dem Hype folgen und als Unternehmen Startups mit viel „Spielgeld“ ausgründen? Oder können wir direkt im Unternehmen Geschwindigkeit und Agilität etablieren und näher am Kunden sein?
In diesem Talk zeigen wir anhand eines Beispiels aus der Praxis, wie man im Unternehmen eine matrixartige „Allianz der Willigen“ schafft, welche Hindernisse auftreten können, wie man sie mit viel Kommunikation umschifft und damit täglich schneller, motivierter und näher am Kunden arbeitet.
Komponenten – ein Begriff der uns Entwicklern sehr geläufig ist, egal ob als Windows-, Desktop- oder Webentwickler. Durch Kapselung von UI-Definition und Code-behind erhalten wir modulare und wiederverwendbare Bausteine zum Zusammensetzen der Oberfläche unserer Anwendung. Während wir damals im Web mit jQueryUI erste Komponenten entwickeln konnten, bedienen wir uns heute moderner Frameworks wie Angular, React oder Vue.js. Doch mit den Webstandards für HTML-Templates, Shadow DOM und Custom Elements erhalten wir die Möglichkeit, ein natives Komponentenmodell im Browser zu nutzen, gänzlich ohne Frameworks: Es leben die Web Components! In dieser Session klärt Manuel Rauber, wie Web Components funktionieren, wo die Vorteile und Nachteile liegen und ob wir heutzutage schon in der Lage sind, Single Page Applications zu entwickeln, die gänzlich ohne Frameworks auskommen. Sind Sie auch schon auf die Antworten gespannt?
gRPC ist ein effizientes Protokoll für die Kommunikation zwischen Microservices. Seit kurzem beherrscht es auch .NET und C#. In dieser Session geht Rainer Stropek darauf ein, wie man gRPC mit C# nutzt und in der Praxis einsetzt.
C# 8 bringt sowohl umfangreiche Neuerungen als auch einige Breaking Changes mit sich. Vor allem zwei der neuen Features erfordern ein Umdenken bei der Architektur einer Anwendung - die Rede ist hier von Nullable Reference Types und Default Interface Members. Aber auch die weiteren Neuerungen führen dazu, dass Sie bei der Anwendungsentwicklung umdenken müssen. Diese Session zeigt, wie eine Webanwendung mithilfe von C# aufgebaut werden kann, wo die Neuerungen den Code vereinfachen und auf welche Stolpersteine man achten muss.
Das klassische .NET Framework wird nicht mehr weiterentwickelt. Die Version 4.8 aus April 2019 ist die letzte Version. Auf der anderen Seite kann man in .NET Core seit Version 3.0 nun auch Desktopanwendungen entwickeln. Beim Umstieg von .NET Framework auf .NET Core gibt es einige Änderungen zu beachten. Dieser Vortrag wird zehn Ihrer wichtigsten Fragen beantworten: 1. Welche Vor- und Nachteile hat .NET Core? 2. Womit sollte man neue Anwendungen entwickeln? 3. Muss man bestehende .NET-Framework-Anwendungen auf .NET Core umstellen? 4. Welche Funktionen fehlen in .NET Core? 5. Welche Migrationswerkzeuge gibt es? 6. Wie migriert man WPF- oder Windows-Forms-Anwendungen auf .NET Core? 7. Wie migriert man ASP.NET-Anwendungen auf ASP.NET Core? 8. Wie stellt man von Entity Framework auf Entity Framework Core um? 9. Wie stellt man WCF-Anwendungen auf .NET Core um? 10. Wie geht man mit Drittanbieterbibliotheken um?
Unedle Metalle in pures Gold zu verwandeln, war der Traum eines jeden Alchimisten. So ähnlich geht es den Webentwicklern von heute auch: eine Webapplikation mit HTML, CSS und JavaScript so zu entwickeln, dass Sie konkurrenzfähig zu nativen Applikationen auf den verschiedenen Plattformen wie Smartphone oder Desktop sind. In den vergangenen Jahren wurden verschiedenste Ansätze verfolgt, von denen Progressive Web Apps, oder kurz PWAs, der erfolgversprechendste ist. Dieses Konzept verwendet moderne Browserschnittstellen, um die Leistungsfähigkeit und die Features von Webapplikationen zu erweitern. Das Ziel ist, dass die Applikation auf jeder Umgebung mit den zur Verfügung stehenden Mitteln optimal läuft. In diesem Vortrag werfen wir einen Blick auf die zugrunde liegenden Schnittstellen und sehen uns an, wie Features wie Offlinefähigkeit, Installierbarkeit und Push-Benachrichtigungen umgesetzt werden können. Außerdem sehen wir uns hilfreiche Ressourcen und Werkzeuge an, die die Arbeit mit PWAs erleichtern.
The acronym UWP stands for Universal Windows Platform, but what it means today is rather convoluted. In the early days, UWP apps were simply Windows Store apps written in native Windows 8.1 stack. Then things started getting complicated with advent of Modern Apps and as Windows devices became more diversified – Windows 10, Xbox, Hololens & Surface Hub. To lure more apps to run across all Windows form factors, in came the Desktop Bridge – to make Win32 apps run as UWP apps. As the Windows Store struggled to fill the app gap, many speculated UWP is dead – many times over. Turns out, UWP is a corner stone for the future of Windows & investments are in place to maintain its health. UWP is also not purely an UI play – modern apps can be written in C#/XAML, WinUI, Xamarin.Forms, Unity, React Native & more. And technologies like Uno Platform easily add the ‘Universal’ in UWP to take such apps to iOS, Android and WebAssembly. UWP as an app model is here to stay – just complicated to explain. The technology stack is diverse with matured tooling & polished UI across platforms – more choices for developers to make their apps run everywhere.
Das Manifest der agilen Softwareentwicklung sagt uns, wir sollen bessere Wege erschließen, um Software zu entwickeln. Das Caretaker-Modell beschreibt die Art, auf die mein Team arbeitet. In dieser Präsentation erkläre ich euch, warum wir Scrum hinter uns gelassen und unsere eigene Methode umgesetzt haben. Und natürlich, warum das Caretaker-Modell viel besser zu uns passt – und zu dir und deinem Team möglicherweise auch.
In this session we will see how to abandon the old-school approach of creating code guidelines in a text document (that no one looks at or follows). Instead, we will supercharge our C# code with EditorConfig and a variety of Roslyn code analyzers to achieve better code coherence, maintain higher code quality and uniformly enforce the required code conventions. We’ll also see how to incorporate that into Visual Studio, Visual Studio Code and even command line builds (i. e. build server).
Gibt es heute noch ein Projekt, das ohne Open-Source-Software auskommt? Doch wann darf ich Open-Source-Software nutzen, wann muss ich meinen Source Code ebenfalls veröffentlichen? Wie verstehe ich die Vielzahl an Lizenzen und welche Feinheiten gilt es zu beachten? Hafte ich oder haftet mein Unternehmen für die eingebundene Software? Und wer kennt das nicht: in Stack Overflow steht die Lösung für mein Problem, also füge ich das Codebeispiel in meinen Source Code ein - doch darf ich das überhaupt? Der Vortrag gibt einen verständlichen Einblick mit detaillierten rechtlichen und technischen Hintergründen zu den geläufigen Open-Source-Lizenzen, Fragen in der Haftung, in lizenz- und urheberrechtliche Fragestellungen wie auch der prozessualen Einbindung in den Entwickler- und Unternehmensalltag in Build Pipelines mit Lösungen wie Blackduck & Co.
Der Monolith hat ausgedient; kleine wartbare Microservices sind im Trend! Aber wie nutzt man diese Idee in die Welt von Angular? In dieser Session stellt Ihnen der Angular-Experte und Microfrontend-Pionier Manfred Steyer einen bewährten Ansatz vor. Anhand eines 7-Punkte-Plans und viel Live-Coding sehen Sie, wie eine auf Angular basierende Microservices-Architektur entsteht. Außerdem lernen Sie ein paar wenig bekannte Angular-Features und Kniffe kennen, die sich bei solchen Vorhaben als äußerst nützlich herausgestellt haben. Am Ende wissen Sie, mit welchen konkreten Schritten Sie auch in Ihren Lösungen von Microfrontends profitieren.
Join DevExpress Technical Evangelist Don Wibier as he shares just how easy testing the UI of your web app should be. Using it's 'plug-in free' design, Don will demo the benefits TestCafé Open Source delivers in just a few mouse clicks.
• see how quickly TestCafé Open Source can be deployed
• learn the powerful API
• discover the browser-based script editor
• witness the true independence as Chrome, Edge, IE and FireFox all play host
Häufig wird Kanban als Alternative zu Scrum verstanden. In diesem Vortrag wird jedoch der Fokus darauf gelegt, wie Scrum-Teams von zusätzlichen Kanban-Praktiken profitieren können. Im Fokus steht dabei die Optimierung des Flows, also des Arbeitsflusses innerhalb des bestehenden Scrum-Prozesses. Die dabei vorgestellten Konzepte eröffnen neue Perspektiven und Möglichkeiten in der Planung, Steuerung und dem Monitoring von Projekten. Themen wie Schätzung und Prognosen werden aus anderen Blickwinkeln betrachtet.
GraphQL ist eine flexible Abfragesprache, die sich an Ihre Bedürfnisse anpassen lässt. Aus Architektursicht stellt sich die Frage, wo dieses Werkzeug einzuordnen ist - besonders in Microservices-Umgebungen, die eventuell mit Read Models aus Event Sourcing und ähnlichen Komponenten gestaltet sind. In diesem Talk zeigt Oliver praktische Ansätze, wie GraphQL effektiv in Ihr System integriert werden kann. Es wird Code gezeigt, in JavaScript und C#!
Progressive Web Apps sind ein plattformübergreifendes Anwendungsmodell, das auf Webtechnologien basiert. Auch Googles SPA Framework Angular enthält eine PWA-Unterstützung, die schnell angeschaltet ist. Doch damit geht die Arbeit erst richtig los: Christian Liebel zeigt Ihnen, wie Sie mit Angular App-Updates richtig kommunizieren, Cacheprobleme debuggen und den Anwender korrekt zum Abonnement von Push-Benachrichtigungen oder zum Installieren der App auffordern.
Viele Performanceprobleme von C#-Anwendungen haben ihren Grund im Memory Management. Seit Version 7 hat C# in dieser Hinsicht viele neue Tricks gelernt. Span, Memory, neue Funktionen in der BCL - richtig eingesetzt, kann man dadurch Skalierbarkeit und Performance zum Teil deutlich verbessern. Rainer Stropek widmet diese Code-only-Session dem Thema C# Spans. Man lernt die Grundprinzipien, erfährt zu beachtende Einschränkungen und sieht anhand von Demos, wie Spans und Memory zusammenspielen. Rainer setzt in dieser Session gutes C#-Basiswissen voraus.
Single Page Applications (SPAs): bisher implementierte man sie vornehmlich mit JavaScript oder TypeScript, oft im Rahmen eines SPA Frameworks wie Angular oder React. Mittlerweile können nun durch den WebAssembly-Standard theoretisch beliebige Sprachen genutzt werden. Mit dem Blazor Framework auf Basis von WebAssembly hat das ASP.NET-Core-Team einen neuen Kandidaten am Start, um auch praktisch mit C# und .NET SPAs für den Browser realisieren zu können. Christian Weyer zeigt in diesem Vortrag anhand von Beispielen, wie Blazor tickt, wie man es sinnvoll einsetzen kann und wo aktuell die Grenzen liegen - je nach Anwendungsfall.
Der Desktop ist tot, lang lebe der Desktop! Mit Electron.NET können Sie in ASP.NET Core Cross-Plattform-Desktopsoftware entwickeln. Nach über einem Jahr und zahlreichen Git Pull Requests, sind zahlreiche neue Features hinzugekommen. Gregor Biswanger, einer der Gründer von Electron.NET, gibt in seiner Session eine kleine Einführung und demonstriert die neuen Features im Detail. Dazu gibt es einige Tipps und Tricks, die aus täglichen Programmierpraxis nicht mehr wegzudenken sind.
Mit ML.NET bietet Microsoft einen relativ einfachen Einstieg in Machine Learning für .NET-Entwickler. Dabei lassen sich in Visual Studio Modelle trainieren, um verschiedenste Machine-Learning-Algorithmen zu nutzen. In dieser Session erhalten Sie einen Überblick über die Möglichkeiten und erfahren, wie Sie mit ML.NET in Ihren eigenen .NET-Anwendungen Machine Learning einsetzen können.
Die Zukunft liegt in Web/Cloud-basierten Anwendungen. Wie bekommt man Software-Lösungen mit hunderten von Dialogen als native Web-Applikation in den Browser?
Geschäftsanwendungen haben lange Lebenszyklen: Über Jahre aufgebaut und erweitert können sie nicht „mal eben so“ neu entwickelt werden. Viele Personenjahre wurden investiert, Prozesse in der Software und den enthaltenen Algorithmen sind gewachsen. Ein Neustart ins Web erscheint zu teuer, zu risikoreich, zu aufwendig oder es fehlen schlichtweg die Leute.
Der Vortrag beleuchtet Strategien und Lösungsansätze für eine Modernisierung bestehender Anwendungen. Anhand konkreter durchgeführter Projektbeispiele wird aufgezeigt, wie der Weg in Web und Cloud gestaltet werden kann, welche Herausforderungen zu lösen sind und wie derartige Projekte in der Praxis erfolgreich gemeistert werden.
Hauchen Sie Ihren Anwendungen neues Leben ein… Es werden Beispiele aus dem Umfeld Visual Basic 6, C# und VB.NET mit Windows Forms, aber auch von anderen Legacy-Produkten aus dem Umfeld C++ und Gupta/Centura aufgezeigt.
"Wie lange braucht das?" ist die vielleicht frustrierendste Frage für Softwareentwickler. Die Antwort darauf zu finden ist langwierig, nervig, konfliktträchtig und am Ende ist ohnehin niemand damit zufrieden, ganz davon zu schweigen, dass der geschätzte Termin dann doch nicht eingehalten wird.
Kunden und Manager haben ein berechtigtes Interesse, eine Antwort auf diese Frage zu bekommen. Doch deren Qualität wird nicht besser, solange Entwickler sich bemühen, einfach nur besser zu schätzen. Das sollten Jahrzehnte der weithin vergeblichen Bemühungen gezeigt haben.
Warum also nicht es einfach mal ganz anders probieren? Vorhersagen statt schätzen. Fakten statt Bauchgefühl. Klare Risikoangaben statt Träumerei.
Ralf Westphal stellt zunächst das Thema Schätzen in einen größeren Zusammenhang von Alltagserfahrungen - und demonstriert dann die Vorhersage von Softwarelieferungen und anderen Ergebnissen durch Simulation auf der Basis von historischen Daten. So bekommen alle Stakeholder eine bessere Entscheidungsgrundlage als stressige Entwicklerbefragungen.
Solche Simulationen sind denkbar einfach und erfordern höchstens einen kleinen Eingriff in den bisherigen Entwicklungsprozess.
Durch einige Erweiterungen in der Sprache C# als auch mit neuen Typen die im .NET-Standard 2.1 als auch in .NET Core 3.0 definiert sind, ist es für uns Entwickler wieder etwas komplexer geworden – neue Dinge, die unsere Software beschleunigen können, vorausgesetzt, es werden die richtigen Sprachkonstrukte korrekt eingesetzt. In dieser Session geht es darum, praxisnah an realistischen Beispielen das Maximum an Performance herauszuholen. Spaß und Performance garantiert!
Container sind überall! Natürlich sehen wir ehrfürchtig die Infrastrukturmodelle, in denen komplexe Umgebungen vollautomatisch aufgebaut und skaliert werden. Für den "normalen" Entwickler gehören diese Dinge glücklicherweise nicht zum Alltag, aber Container können trotzdem gewinnbringend eingesetzt werden, um Arbeitsumgebungen sauber und reproduzierbar zu halten. Oliver zeigt in dieser Session Container und virtuelle Umgebungen für jedermann - mit Windows, Chromebooks und Linux über Docker, WSL und LXC bis hin zu Qubes OS als Nonplusultra der Containerifizierung.
SignalR is cool piece of tech that powers real-time communications and is one the latest additions to the ASP.NET Core family. Yes, SignalR is open source and enables two-way client-server RPC calls – across .NET and JavaScript. This means seamless real-time communications across web, desktop and mobile platforms. With rich server-side Hubs, SignalR allows for granular communication and management of .NET, JS & other clients. SignalR easily powers common scenarios of web backends and cross-platform mobile front ends. And modern SignalR has well thought out features – like streaming, configuration, MessagePack and security considerations. Need scalable hosting or serverless real-time apps – Azure SignalR Service is here to help. Let’s explore SignalR and deep dive into what’s possible with real-time communications!
NoSQL-Datenbanken verfolgen einen nichtrelationalen Ansatz. Sie brechen damit mit der langen Geschichte relationaler Datenbanken. Sie benötigen keine festgelegten Tabellenschemata, sondern haben eine ganz eigene Herangehensweise. In dieser Session zeigt der MongoDB-Experte Gregor Biswanger, wie ein NoSQL-Schema für dokumentenorientierte Datenbanken entworfen wird. Dazu werden einige bekannte Entwurfsmuster aus der Praxis vorgestellt.
Wer sowohl Spaß als auch Produktivität bei der WPF Entwicklung steigern will, ist in dieser Session genau richtig. Anhand von viel Code und wenig Slides werden wir betrachten, wie wir möglichst viel automatisieren können. Dadurch wird Kapazität frei, die dann kreativ genutzt werden kann, um echten Mehrwert zu schaffen.
WPF erlebt durch die .NET-Core-Unterstützung seinen zweiten Frühling als Desktop-UI-Framework. Gemäß MVVM werden Darstellung und Logik der Benutzerschnittstelle voneinander getrennt. Doch an einigen Stellen bezahlen Entwickler einen hohen Preis dafür. Viel Zeit und auch Kreativität geht beim Schreiben von Boilerplate-Code verloren, der View und ViewModel schlussendlich wieder miteinander verknüpft. An dieser Stelle werden wir ansetzen. Durch den geschickten Einsatz von Konventionen und Frameworks ist ein Großteil des Boilerplate-Codes überhaupt nicht erforderlich. Am Ende haben wir eine prall gefüllte Trickkiste, aus der sich jeder nach Bedarf bedienen kann. Dabei werden auch die Herausforderungen nicht vernachlässigt, wenn sichtbarer Code durch „schwarze Magie“ ersetzt wird.
Azure Functions sind Microsofts Umsetzung von Functions as a Service (FaaS). Dieses beginnt mit einer kurzen Einführung und einem Überblick über typische Use Cases; danach werden wir eine kleine Beispielanwendung umsetzen. Dabei soll deutlich werden, wie mächtig das Konzept hinter Azure Functions ist – und wie einfach und unkompliziert sich Azure Functions aus Sicht des Entwicklers darstellen. Einige Erfahrungswerte und Best Practices runden das Thema ab.
Azure Functions bieten immer mehr Funktionalität. Sie sind mittlerweile für viele Projekte eine beachtenswerte Alternative im Vergleich zu klassischen ASP.NET Core Web APIs. In dieser Session zeigt Rainer Stropek, wie man Serverless Microservices mit Azure Functions und C# entwickelt. Er geht sowohl auf die normalen stateless Functions als auch auf die Umsetzung langlaufender Workflows mit Durable Functions ein. Gutes C#-Basiswissen wird vorausgesetzt, Azure-Erfahrung ist von Vorteil, aber keine Voraussetzung.
Modern cloud platforms offer amazing capabilities for application developers. Cloud apps utilize multiple services and consist of many components, so they are hard to manage without employing infrastructure as Code. Traditional tools like CloudFormation, ARM templates, and Terraform use text-based formats, which tend to be tedious, repetitive, and cumbersome to reuse. What if instead of configuration files you could use your favorite programming languages like C# or F#? See how you can bring your developer tools like code completion, types, components, and abstractions to cloud infrastructure definition.
In ASP.NET Core 3.0 ist mit "Blazor Server" eine nagelneue und innovative Softwarearchitektur erschienen, mit der Sie Single Page Web Applications (SPAs) mit ASP.NET Core, C# und Razor-Templates implementieren können, ohne selbst eine Zeile JavaScript schreiben zu müssen.Der .NET- und Webexperte Dr. Holger Schwichtenberg zeigt in diesem Vortrag an der Beispielanwendung "MiracleList" (einem Klon der weit verbreiteten App "Wunderlist"), wie man eine solche SPA mühelos schreibt, was im Hintergrund passiert, welche Erweiterungen es gibt und wie man bei Bedarf auch JavaScript/TypeScript ergänzend einsetzen kann. Zudem gibt es einen Ausblick auf "Blazor WebAssembly", die in der Entwicklung befindliche Variante von Blazor, bei der Ihr C#-Code wirklich im Browser läuft. Neben den Unterschiedenen beider Varianten geht es natürlich insbesondere darum, wie man den bestehenden Code zwischen Blazor Server und Blazor WebAssembly austauschen kann. Natürlich wird auch eine Diskussion der Vor- und Nachteile von Blazor Server und Blazor WebAssembly gegenüber einer klassischen SPA mit JavaScript und Web-Frameworks wie Angular und React nicht fehlen.
Auf dem Weg hin zu selbstlernenden, autonomen Algorithmen, wie sie im Bereich der künstlichen Intelligenz verwendet werden müssen, werden Lernverfahren benötigt, die auf eine sich verändernde Dynamik der Umgebung reagieren. Hier setzen die Lernverfahren des Reinforcement Learning an, die zukünftige Handlungen antizipieren und in der Entscheidungsfindung berücksichtigen. Im Rahmen des Talks wird die Funktionsweise von Reinforcement Learning anhand eines Spiels und unter Verwendung des Unity-ML-Agents-Toolkits veranschaulicht. Garantiert ohne langatmige Exkursionen der zugrunde liegenden Mathematik, dafür aber mit einsteigerfreundlichen Erläuterungen und vielen Visualisierungen.
Nach langer Wartezeit ist mit Angular 8 endlich die neue Engine verfügbar und in einem halben Jahr wird Ivy standardmäßig aktiviert sein. Es wird daher Zeit, sich mit dem Thema zu beschäftigen. Doch was genau ist eine Rendering-Engine und welche Vorteile bringt Ivy in der Angular-Entwicklung mit sich?
In diesem Talk stellt Google Developer Expert (GDE) Martina Kraus die genauen Aufgaben einer Rendering-Engine innerhalb des Angular Frameworks vor. Sie erläutert Konzepte und Prinzipien und welche Vorteile bei der der Komponentenentwicklung durch Ivy entstehen. Lernen Sie in diesem Talk, wie Ihre Angular-Anwendung mit Ivy schneller lädt, die Anwendung eine geringere Größe erhält und durch Features wie Lazy Loading von Komponenten der Entwicklungsalltag vereinfacht wird.
Am Ende des Talks haben Sie einen soliden Überblick zum Thema und werden dank der zahlreichen Codebeispiele ihr eigenes Angular-Projekt optimieren können.
Deploy several times a day. Trigger automatic builds upon the push of a commit. Release to multiple environments with varying conditions. Sounds complicated? Luckily, it’s not! I’ll discuss which steps are vital to automate in your Azure dev workflow to maximize your team’s efficiency.
Das Internet der Dinge vereint künstliche Intelligenz, die Cloudnutzung und Edge Computing. In diesem Kontext wird die Datenverarbeitung an Orten mit rauen, extremen Umgebungsbedingungen, schlechter Konnektivität oder besonderen Sicherheitsanforderungen zur Normalität. Dadurch werden Lösungen mit Echtzeitanforderungen und die ausschließliche Verarbeitung von Daten in der Cloud schwieriger, teurer oder in Teilen unmöglich. Mit Azure IoT Hub und Azure IoT Edge begegnet Microsoft diesen Herausforderungen und ermöglicht die Datenverarbeitung am – oder näher am – Entstehungsort. Damit wird es möglich, bereits auf dem Edge Device AI-Modelle, z. B. auf Basis von Microsoft Cognitive Services, zu verwenden oder Datenstromanalysen mit Hilfe von Azure Stream Analytics einzusetzen. Diese Session bietet einen Einstieg in die Azure-IoT-Edge-Plattform und die von Microsoft bereitgestellten Technologien und Services. Sie bildet damit einen Jumpstart für diejenigen, die sich dafür interessieren, wie sich intelligente und verteilte Datenverarbeitung auf der Microsoft-Azure-Plattform umsetzen lässt.
Immer mehr Unternehmenslösungen werden heutzutage als Single Page Applications realisiert. Es handelt sich dabei so gut wie immer um große Anwendungen, die langfristig wartbar sein müssen. Genau das muss sich auch in unseren Frontend-Architekturen widerspiegeln! Hier erfahren Sie, wie Sie dieses Ziel erreichen, indem Sie Ihre Anwendung mit dem populären Werkzeug Nx und Monorepos in mehrere überschaubare Bibliotheken aufteilen und mit bewährten Ideen aus der Welt von Domain-driven Design kombinieren. Wir diskutieren nicht nur Strategic Design und Tactical Design, sondern auch, wie sich diese Ideen mit den Möglichkeiten von Angular und etablierten Best Practices vereinen lassen. Am Ende haben Sie einen Überblick über bewährte Architekturkonzepte und wissen, wie Sie damit Ihre Angular-Anwendungen nachhaltiger gestalten können.
Mit .NET Core und XAML Islands lassen sich WPF-Anwendungen Schritt für Schritt modernisieren. Mit .NET Core eröffnen sich Ihrer Anwendung neue Features, wie beispielsweise Single File Executables. Mit XAML Islands lassen sich moderne UWP/WinUI Controls in WPF einbinden. So ist es bspw. möglich, in einer WPF-App das Ink Control für die von Windows 10 bekannte Stifteingabe zu nutzen. In dieser Session lernen Sie die Grundlagen von.NET Core und XAML Islands beim Live Coding kennen, damit Sie Ihre WPF-Anwendungen für die Zukunft rüsten können.
Data visualization and dashboards are everywhere today – but are they telling the right story? Are they telling an honest story? Is what you’re looking at Chart-Art or useful for analytics? In this talk, we’ll explore best practices in modern data visualization, including concrete examples of what works and what doesn’t, along with the latest trends and tools in data visualization, data science and BI for 2020 and beyond - and even better - with every best practice you’ll see how to create the visualization in React, Angular or C#/ Blazor!
Agilität hat viel mit Mindset und Kultur zu tun, Themen die nicht nur rational erfassbar sind. Deshalb gibt es eine Vielzahl von Formaten, mit denen sich agile Konzepte und die Philosophie hinter Agilität in einem spielerischen, interaktiven Format erleben lassen. In diesem Lab haben die Teilnehmer die Gelegenheit, einige dieser Formate selbst zu erfahren, nicht nur um sich dadurch inspirieren zu lassen – vieles davon kann auch genutzt werden, um Kollegen, Mitstreitern und Vorgesetzten einfach und wirkungsvoll Agilität näherzubringen. Die Teilnehmer erwartet ein unterhaltsamer, lehrreicher Tag mit viel Spaß und spannenden Diskussionen.
Als Designtechnik ist Event Storming momentan der letzte Schrei. Nur mit haufenweise Klebezetteln ausgerüstet treffen Entwickler und Anwender aufeinander. Innerhalb von sehr kurzer Zeit bauen alle Teilnehmer ein gemeinsames Verständnis der Domäne und der Prozesse auf. Der Schwerpunkt wird dabei zunächst auf die Domain Events gelegt, also das, was in der Fachlichkeit geschieht. Weil die Methode so leichtgewichtig ist, fokussiert sie das, was wirklich wichtig ist: weg von Technologie und Werkzeugen hin zur Domäne. Besonders spannend: die Ergebnisse der Event-Storming-Sessions geben uns schon konkrete Implementationshinweise. Und das Ganze auch noch mit einer Menge Spaß. In dieser Session zeige ich kurz, wie Event Storming funktioniert und wo man es einsetzt.
Im Gegensatz zu klassischen Webanwendungen haben Single Page Applications einen Anwendungszustand – und diesen gilt es zu verwalten, um Inkonsistenzen sowie Zyklen in der Datenbindung zu vermeiden. Der populärste Ansatz dazu ist das Redux-Muster, das in der Angular-Welt mit der weit verbreiteten Bibliothek @ngrx/store zur Verfügung steht. In dieser Session erfahren Sie mehr über dieses Thema und sehen, wie Sie mit Redux und @ngrx/store State Management in Ihre Angular-Anwendungen integrieren können, um diese langfristig wartbar zu gestalten. Sie sehen aber auch, wie Sie Redux und @ngrx/store nach und nach einführen können, um die damit einhergehende Komplexität so gering wie möglich zu halten. Am Ende kennen Sie die Prinzipien hinter State Management, Redux und @ngrx/store und besitzen alle wichtigen Werkzeuge, um eine langfristige Lösung für Ihre Applikation zu entwickeln.
Docker und Kubernetes sind derzeit in aller Munde. Doch was bedeutet das für mich als ASP.NET-Core-Entwickler? Diese Session zeigt die grundlegenden Konzepte von Docker und Kubernetes auf und veranschaulicht die Vorteile dieser Technologien und Plattformen. Anhand von Beispiel-Services bauen wir uns eine Dev/Test/Prod-Umgebung mit Kubernetes auf und runden das Ganze mit einem voll automatisierten Deployment ab.
Die Versionierung eines Web-API ist nicht einfach und oftmals auch überhaupt nicht nötig. Doch ist ein API erst einmal öffentlich, muss es unter Umständen lange unterstützt und Breaking Changes auch sauber über die Versionsnummer kommuniziert werden. Dabei gibt es die unterschiedlichsten Konzepte und Herangehensweisen. Aber selbst wenn das Konzept steht, erledigt sich die Implementierung noch nicht von selbst. In diesem Vortrag wird anhand von Azure DevOps und praktischen Beispielen gezeigt, wie Public APIs versioniert werden können und was an Implementierung vom Controller bis zur Datenbank dahinter steckt. Es wird betrachtet, was sich in der Praxis bewährt hat und was besser vermieden oder anders gemacht werden sollte.
Mit Xamarin.Forms 4 und Visual Studio 2019 können Sie im Handumdrehen eine eigene App schreiben. In diesem Vortrag zeigt Ihnen Microsoft MVP André Krämer, wie es geht. Ausgehend von einer leeren Projektmappe werden Sie live sehen, mit wie wenig Aufwand eine App mit mehreren Bildschirmen entwickelt werden kann. Ein besonderes Augenmerk wird bei der Entwicklung auf dem Einsatz aktueller Xamarin Neuerungen wie z. B. der Shell liegen.
Monitoring ist schon lange kein reines Betriebsthema mehr. Auch Entwickler, Product Owner und Tester können von der Auswertung von Logs und Metriken profitieren, um wertvolle Erkenntnisse über die eigene Software zu gewinnen.
Mit Azure Monitor hat Microsoft die Dienste zur Überwachung, Analyse und Präsentation von Telemetriedaten in eine zentrale Oberfläche komprimiert. Die Erfassung von Daten aus virtuellen Maschinen, von AKS-Clustern und On-Premise-Diensten ist in Azure nur wenige Klicks entfernt. Doch allein das Sammeln von Laufzeitdaten bietet dem Betrieb und der Weiterentwicklung von Software noch keinen Nutzen.
Johannes Petereit demonstriert anhand eines beispielhaften Use Case, wie Sie für verschiedene Stakeholder relevante Informationen bereitstellen und aufbereiten, wie Sie Ihr Monitoring über Stages hinweg organisieren, und wie mit Hilfe der Azure Analysetools und den richtigen Fragen interessante Erkenntnisse über ein bestehendes System ermittelt werden können.
Das Angular-Ökosystem hat noch einige Trümpfe im Ärmel, die es nach dem Erscheinen des Ivy-Compilers nach und nach ausspielen wird. Das schafft ein enormes Potenzial für Ihre Anwendungen! In dieser Session zeigt Ihnen Manfred Steyer, Google Developer Expert und Trusted Collaborator im Angular-Team, wie Ihre Anwendungen davon profitieren werden, aber auch, wie Sie sich auf diese neue Welt vorbereiten können. Wir diskutieren die aufkommenden Möglichkeiten rund um dynamische Komponenten und HOC (Higher Order Components), leichtgewichtige und Framework-agnostische Web Components, das Arbeiten ohne NgModules sowie Zone-less Change Detection. Kommen Sie in diese Session und dringen Sie mit Angular in neue Bereiche vor!
Zeit und Geld (aber vor allem Zeit) sparen, wer möchte das nicht? Insofern bietet es sich an, zu prüfen, ob man Dinge nicht auslagern kann, die andere besser (oder günstiger) tun können und die nicht Kernbestandteil der eigenen Aufgaben sind. Damit wären wir auch schon beim Thema: den Azure DevOps Server/TFS an Microsoft outsourcen. Seit einigen Jahren betreibt Microsoft den Azure DevOps Server/TFS fix und fertig in der Cloud – unter dem Namen Azure DevOps Services – mit allem, was dazu gehört: Versionsverwaltung mit TFVC und Git, Work Items, Build und Release, Packages und Testplänen. Das ist die gleiche Umgebung, die Microsoft für die eigene Softwareentwicklung verwendet, z. B. für die Entwicklung von Windows, Visual Studio und Azure. In diesem Vortrag gibt Neno Loje einen Überblick über Azure DevOps, zeigt auf, wo aktuell die Chancen und Beschränkungen bei der Nutzung des Clouddienstes liegen und welche Möglichkeiten es gibt, seine Daten von einem selbstbetriebenen TFS/Azure DevOps Server umzuziehen.
Architektur steht für Stabilität und weitreichende Entscheidungen. Und das soll in einem schnelllebigen, flexiblen, agilen Projekt möglich sein? Ich zeige in dieser Präsentation, wie sich Architektur mit den User Stories zusammen evolutionär entwickeln kann, wie Entscheidungen bis zum richtigen Zeitpunkt vertagt werden können und welche agilen Architekturmuster es gibt. Ihr lernt, wie eine agile Architektur schnelle Änderungen, einfache Architekturvalidierung und ein immer lauffähiges System ermöglicht.
Flutter ist Google’s neues Cross Platform Framework für die Mobile-App-Entwicklung. Es ermöglicht das Schreiben nativer Apps für iOS und Android auf Basis von Dart. Das dürfte besonders JavaScript-Entwicklern den Einstieg erleichtern. Zudem bietet Flutter interessante Features wie z. B. ein Hot-Reload-Verfahren, das direkte Änderungen der laufenden App ermöglicht. Jörg Neumann stellt das Framework vor und beleuchtet Stärken und Schwächen gegenüber anderen Cross-Platform-Technologien.
Die immer ansteigende Komplexität von Software erhöht zunehmend die Wahrscheinlichkeit von sicherheitskritischen Bugs. Buffer-Overflows sind im Vergleich zu früher seltener anzutreffen, dennoch sind sie selbst in Java noch vorhanden. Inkonsistente Validierung und unzureichende Verwendung von Daten haben zu einigen Sicherheitsproblemen in z. B. LibreOffice geführt. Sandboxes sind auch anfällig, darunter z. B. die Jenkins Groovy Sandbox, die bereits Probleme mit exotischen Groovy-Funktionalitäten hatte. Im Rahmen des Vortrags werden wir uns an diesen (und weiteren) Fällen im Detail anschauen, was konkret schief gelaufen ist und wie man es hätte verhindern können.
Mit WinUI 3 bringt Microsoft ein brandneues XAML-basiertes UI-Framework auf den Markt. Brandneu? Nicht ganz. Die XAML Runtime und XAML Controls der Universal Windows Platform (UWP) wurden von Windows entkoppelt und stehen nun als NuGet-Pakete unter dem Namen WinUI zur Verfügung. Mit WinUI 3 lassen sich moderne Applikationen basierend auf dem UWP-Modell (mit Windows-Store-Unterstützung) als auch auf dem klassischen Win32-Modell mit EXE-Datei erstellen. Es sieht so aus, als ob WinUI 3 die Zukunft der modernen Windows-Desktop-Entwicklung darstellen wird.
Künstliche Intelligenz und maschinelles Lernen beherrschen gerade nicht nur die Themen in der Entwicklung, sondern auch in der Digitalisierung der Gesellschaft allgemein. Für die meisten Menschen, sogar Entwickler, ist AI immer noch etwas mysteriöses und undurchsichtiges. Viele AI Frameworks stellen selbst erfahrene Entwickler vor großen Herausforderungen. In diesem Talk möchte ich zeigen, was die gängigsten AI- und Machine-Learning-Konzepte sind und wie diese z. B. als Pipelines vereinfacht und ohne aufwendige Programmierarbeit dynamisch umgesetzt werden können.
Erinnert man sich zurück, so war doch das .NET Framework mit der Version 3.0 schon recht erwachsen. Es ist wohl an der Zeit, sich die Frage zu stellen, wie es um Entity Framework Core 3.0 steht. Es wird nun C# 8.0 unterstützt, somit sind die Async Streams zum Greifen nah. Gleichzeitig wurde wieder massiv an der Performanceschraube gedreht, und wir dürfen erneut Performancesprünge bei der Verwendung von EF Core 3.0 erwarten. Gerade aus diesen Gründen ist es Zeit für ein Update!
Als Entwickler wollen wir uns das Leben möglichst einfach machen. Und wenn wir eine Aufgabe vor uns haben, dann wollen wir auch möglichst viel damit erreichen. Nun haben wir ein ASP.NET-Core-Web-API gebaut, und es mit Hilfe von Swagger dokumentiert. Und nun? In dieser Session zeigt Ihnen Sebastian Gingter, wie man mit möglichst wenig Aufwand möglichst viel aus einer lebendigen Swagger-Dokumentation herausholen kann. Dabei erleben Sie auch, wie man von dort aus mit wenigen Schritten zu einer umfassenden End-to-End-Testsuite kommt. Und wenn wir schon dabei sind, dann schauen wir uns auch noch an, wie wir von der Dokumentation zu komplett funktionalen Clientbibliotheken kommen, ohne uns zu sehr anzustrengen: E2E-Web-APIs – jenseits von Hello World und mit viel Projekterfahrung.
Mit Version 3.0 unterstützt das Entity Framework Core die erste nichtrelationale Datenbank in Form der Azure Cosmos DB. Kenntnisse und Erfahrungen mit diesem O/R-Mapper erleichtern also seitdem auch den Einsatz dieser NoSQL-Datenbank. Wie genau das funktioniert und welche Möglichkeiten es dabei gibt, zeigt Thorsten Kansy in diesem Talk anhand des aktuellen Stands der Technik
Die Zukunft von Azure DevOps/TFS liegt ganz klar in der dezentralen Git-Versionsverwaltung. Microsoft macht es vor und hat alle geschäftskritischen, internen Produktteams wie das Windows- und das Office-Team auf Git umgezogen. In diesem Vortrag erfahren Sie, was der Umstieg praktisch für Sie bedeutet, welche Migrationsoptionen zur Verfügung stehen und wie er – trotz vieler Unterschiede im Detail – gelingen kann.
Schluss mit schlecht gemachten Oberflächen! Gute Apps sehen nicht nur schick aus, sondern sind vor allem benutzbar. Doch wie entwickelt man eine gute Usability? Jörg Neumann zeigt Ihnen Techniken, wie Sie sehr leicht Apps entwerfen können, die Ihre Anwender lieben. Zudem zeigt er, wie Sie ohne Reibungsverluste vom ersten Entwurf bis zur fertigen Implementierung kommen.
Erfolgreiche Apps sehen nicht nur gut aus, sondern bieten vor allem eine exzellente Usability. Besonders im Enterprise-Umfeld spielen intuitive Bedienung und die proaktive Unterstützung der Anwender eine entscheidende Rolle. Um dies zu erreichen, müssen alle Stakeholder in den Designprozess eingebunden werden. Hierbei können Storyboards helfen. Denn anders als statische Wireframes vermitteln sie dem Anwender einen guten Eindruck vom Verhalten der App, zudem bieten sie eine solide Grundlage für die Entwicklung. Jörg Neumann zeigt Ihnen an Beispielen aus der Praxis, wie gute Storyboards entworfen werden und welche Faktoren für ein gutes App-Design wichtig sind.
When Azure Functions aren’t enough, Durable Functions are probably the answer. Azure’s Durable Functions allow you to write stateful functions in a serverless compute environment which are incredibly powerful when you have complex workflows or longer-running, dependent steps. We’ll explore the six patterns with which Durable Functions can be applied and the best practices for each.
Ein abgestürzter Build aufgrund eines SDK-Upgrades oder der mühsame Weg, einen alten Codestand zu kompilieren, dürfte den meisten bekannt vorkommen. Damit das der Vergangenheit angehört, wird Configuration as Code für die Build-Infrastruktur umso wichtiger. Doch wie mache ich das? VM Images für jede OS- und SDK-Version? Schwerfällig. Docker hingegen ist leichtgewichtig und lässt sich mit modernen SDKs wie z. B. .NET Core ideal als Build-Infrastruktur-Umgebung einsetzen. Dieser Vortrag zeigt auf, wie Sie Docker in Ihrer Build Pipeline integrieren, ob als Multi-Container Build oder einfach als isolierte Umgebung für Build-Instruktionen. Mit Azure Pipelines können wir sogar noch einen Schritt weiter gehen und komplexe Umgebungen mit mehreren Container Instanzen betreiben, um z. B. einen Integrations- oder Systemtest durchzuführen.
Mit Concepts, Koroutinen, Modulen, dem neuen Spaceship-Operator und vielen anderen Neuerungen wird C++ 20 das größte Update der Sprache seit C++ 11, dem Beginn des "modernen C++". Wer hier auf dem aktuellen Stand bleiben will, hat in dieser Session die Gelegenheit, die wichtigsten neuen und eine Auswahl "alter" (C++ 11, 17) Features anzuschauen, ebenso (soweit schon möglich) einige Visual-Studio-Beispiele dazu. Erfahrung mit C++ vor Version 11 ist unbedingt erforderlich.
Entity Framework Core hat sich mittlerweile in der .NET-Welt als OR-Mapper etabliert. Aber kennen Sie auch alle Fallstricke und Optimierungsmöglichkeiten? .NET-Experte Dr. Holger Schwichtenberg wird in diesem Vortrag einige Architektur- und Implementierungsfehler thematisieren, die er in Beratungseinsätzen immer wieder bei seinen Kunden sieht. Zudem zeigt er Ihnen einige Tricks, wie Sie mehr aus Entity Framework Core herausholen und die Leistung verbessern. Es geht u. a. um Ladestrategien, Caching-Anomalien, Herausforderungen bei Transaktionen, Persistieren von Änderungen auch bei schnellen No-Tracking-Abfragen, Compiled Queries, Einsatz von EF Profiler, Strategien für Unit-Tests und Integrationstests, sinnvolle Erweiterungen.
Egal ob selbstfahrende Autos, Gesichtserkennung oder Sprachsteuerung – Machine Learning fasziniert. Doch neben all dem Hype gibt es auch ganz bodenständige Einsatzfälle, die das Potential haben die Softwareentwicklung nachhaltig zu verändern. Jörg Neumann erklärt, warum Machine Learning nicht nur etwas für Mathematiker ist und wie es in die moderne Softwareentwicklung integriert werden kann.
Write once, run anywhere – dieser alte Java-Traum ist dank Webtechnologien längst Realität geworden. Neuerdings haben Cross-Platform-Entwickler aber die Wahl zwischen altbewährten Ansätzen wie Apache Cordova und GitHub Electron, bei denen Web-Apps in native Container verpackt werden, und den neuen Progressive Web Apps (PWA), bei denen eine Webanwendung aus dem Browser heraus installiert wird. Optisch geben sich beide Methoden nicht viel, doch sie unterscheiden sich hinsichtlich der Verteilung und im Funktionsumfang. Electron-Experte Thorsten Hans und PWA-Professional Christian Liebel erklären Ihnen, für welche Anwendungsfälle sich PWAs eignen und wann Sie ergänzend oder alternativ zu Electron oder Cordova greifen sollten.
Jede Datenbank muss nach Erstellung oder Anpassungen irgendwann einmal auf dem Produktionssystem bereitgestellt werden. Dabei ist es unerheblich, ob die Datenbank von Hand oder von Tools erstellt bzw. angepasst oder von der Migration des Entity Framework (Core) generiert wurde. Erfahren Sie in diesem Talk, welche Möglichkeiten es gibt, um genau die Änderungen an Daten und Struktur (und auch nur genau diese) bereitzustellen; sei es mit Skripten, Data-Tier Applications (DACPACs/ BACPACs) oder eigenem .NET-Code.
Heiße Testphase … Sie müssen Ihr Produkt unter verschiedenen Plattformen und Konfigurationen testen, aber Ihr einsamer Testrechner bricht unter der Last der virtuellen Maschinen schon fast zusammen. Ihre interne IT-Abteilung hat Hilfe in Aussicht gestellt – in zwei Monaten! Was tun? Greifen Sie zur Cloudselbsthilfe. Mit Microsoft DevTest Labs können Sie Ihren Bedarf an Testinfrastruktur schnell, sicher, flexibel und preiswert decken. Neno Loje und Uwe Baumann zeigen Ihnen, wie das geht.
Schick, performant und bitte auf allen Plattformen verfügbar! Moderne Anwendungen verlangen ihren Entwicklern einiges ab. Wo früher noch die Vorarbeit von Anbietern wie Microsoft in Form von UI-Baukästen geleistet wurde, muss heute selbst Hand angelegt werden. In dieser Session von Andreas Wissel erfahren Sie, wie Ihr Team mit robusten Workflows in einer agilen Welt mit diesen Anforderungen Schritt hält. Angefangen bei Grundkonzepten der User Experience über die Bausteine eines modernen Design Systems bis hin zur fertigen Implementation. Mit diesem Handwerkszeug schaffen Sie die Grundlage für konsistente, schicke und performante Oberflächen.
Database Lifecycle Management ist an sich kein neues Thema. Die meisten existierenden Konzepte enden jedoch mit dem Thema Wartung. Spätestens seit Inkrafttreten der europäischen Datenschutz-Grundverordnung (DSGVO) muss aber auch die Löschung der Daten mit betrachtet werden. In diesem Vortrag wird ein ganzheitliches Modell aufgezeigt, in dem alle Phasen von der Erfassung der Daten bis hin zur Löschung berücksichtigt werden. Dabei steht mehr die Methodik als die Technik im Vordergrund. Dennoch werden auch technische Ansätze aufgezeigt, die bei der Umsetzung hilfreich sein können.
Entwickler und IT-Profis in einem Team zu vereinen, macht sie nicht gleich zu einem DevOps-Team. Und selbst wenn sie reibungslos zusammenarbeiten, gibt es immer wieder das Spannungsfeld Sicherheit. Build and Release Pipelines kümmern sich um die Erstellung und Bereitstellung Ihrer Anwendung, aber sind Ihre Pipelines sicher? Und der Code, den Sie bereitstellen? Bei vielen Releases pro Tag können Sicherheitsverantwortliche nicht jedes Release überprüfen. Bei Rugged DevOps geht es darum, Ihre Assets und Ihre Pipeline zu sichern und Sicherheit wirklich in Ihren DevOps-Prozess einzubetten. In diesem Vortrag führe ich Sie durch die Konzepte von Rugged DevOps, die Risiken, denen Unternehmen derzeit ausgesetzt sind, und spreche über einige Strategien und Tools, die Ihnen helfen können, Sicherheit in Ihre DevOps-Prozesse zu integrieren.
Stellen Sie sich vor, Sie schreiben Ihre moderne Businessanwendung genau einmal – und sie läuft auf Windows, macOS, Linux, Android, iOS und in Ihrem Browser. Diese Anwendungen werden per Fingertippen aus dem Browser auf dem Gerät installiert, können Push-Benachrichtigungen empfangen und funktionieren auch dann, wenn das Wi-Fi im Zug gerade mal wieder nicht funktioniert. Das klingt fantastisch? Dank Progressive Web Apps (PWA) wird all das Wirklichkeit. Mithilfe moderner Webtechnologien wird aus einer Webanwendung eine App, die einer nativen App in nichts nachsteht. In diesem Workshop zeigen wir anhand eines durchgängigen Beispiels die Grundlagen der PWA-Entwicklung mit Googles Single-Page-App-Framework Angular, bei denen Sie aktiv mitentwickeln können. Jeder geht mit einer PWA nach Hause!
Um agile Softwareentwicklung und die damit einhergehenden schnelleren Releasezyklen Realität werden zu lassen, braucht es einen hohen Grad an Automatisierung – beim Build, der eine Art "Herzschlag" des Projekts darstellt, bei der Qualitätssicherung und beim Deployment der Anwendung, vom Testsystem bis in die Produktion. In diesem interaktiven Workshop erfahren Sie anhand verschiedener End-to-End-Beispiele, wie Sie der Azure DevOps Server (ehemals TFS) bzw. die Cloudvariante Azure DevOps Services dabei unterstützen kann, die Prozesse nach dem Einchecken zu automatisieren – also: kontinuierliche Builds, automatisierte Tests, Deployment und Releases. Freuen Sie sich auf einen lehrreichen und unterhaltsamen Tag zusammen mit dem TFS-Experten und MVP Neno Loje. Und: Bringen Sie gerne Ihre Fragen mit!
Microsoft hat seinen O/R Mapper als "Entity Framework Core" neu implementiert und mittlerweile auch wesentliche Lücken im Produkt geschlossen, sodass man heutzutage nur noch wenige Gründe hat, noch mit dem klassischen ADO.NET Entity Framework zu arbeiten. An diesem Tag erhalten Sie von dem bekannten .NET-Experten Dr. Holger Schwichtenberg das solide Fundament für Ihren Einstieg in Entity Framework Core. Zunächst geht es um das Basiswissen: Entitätsklassen, Kontextklassen, Codegenerierung aus bestehenden Datenbanken (Reverse Engineering), Generierung von Datenbanken aus Programmcode (Forward Engineering), Schemamigrationen, LINQ, die CRUD-Operationen und die Objektbeziehungen. Im Laufe des Nachmittags steigt der Workshop tiefer in das Entity Framework Core ein mit Architekturfragen sowie Tipps und Tricks: Ladestrategien, Performanceoptimierung durch No-Tracking, Praxisherausforderungen durch das Caching, direkte Verwendung von SQL, Stored Procedures und Table-valued Functions anstelle von LINQ, Konfliktfeststellung und -behandlung. Natürlich gibt es auch Hinweise auf die bestehenden Schwächen im Produkt und zugehörige Workarounds. Aufgrund der erheblichen Unterschiede sollten Sie diesen Workshop auch besuchen, wenn Sie schon mit dem klassischen ADO.NET Entity Framework oder anderen OR-Mappern gearbeitet haben.