Der diesjährige C#-Workshop hat zwei Schwerpunkte: Erstens zeigt euch Rainer Stropek, was sich bei der Sprache C# und in der .NET Base Class Library in den letzten Monaten getan hat – und das ist eine Menge. Rainer wird die neuen Features rund um Performanceverbesserungen im Bereich Memory Management (z. B. Span<T>) anhand von live programmierten Codebeispielen erklären. Wir kratzen dabei nicht nur an der Oberfläche, sondern schauen uns an, was im Hintergrund passiert. Der zweite Schwerpunkt des Workshops ist diesmal Dokumentation. Ein manchmal lästiges Thema, aber ein sehr wichtiges. Rainer wird im Workshop erklären, wie man mit DocFX professionelle Dokumentationsportale aus der C#-Codedokumentation erstellt. Er zeigt, wie man Web-API-Dokumentation hinzufügt, und welche Rolle Markdown spielt. Wir beschränken uns im Workshop nicht auf API-Dokumentation, sondern besprechen auch, wie man konzeptionelle Dokumentation erstellen und in das Portal integrieren kann.
Bis vor kurzem war Cloud für einige noch das Anzeichen einer Kaltfront aus Westen oder der sprichwörtliche Sack Reis. Das Thema spielte speziell in unserer Region eine untergeordnete Rolle. Das hat sich in letzter Zeit gewandelt. Inzwischen ist die Cloud eine feste Größe in IT-Abteilungen und in vielen Fällen auch schon erste Wahl. Aber natürlich nicht die ganze Cloud. DevOps-Teams stellen sich ein Bündel von Diensten und Lösungen zusammen, das für die Lösung ihrer spezifischen Herausforderungen in CI/CD-Projekten passend ist. Zur Eröffnung der BASTA! möchten wir keine Schlagwörter aufzählen, sondern diskutieren, was DevOps und Cloud für Entwickler und Unternehmen in der Praxis bedeuten und warum vieles damit einfacher geht. Außerdem geben wir einen Überblick darüber, wo die Themen im Programm der BASTA! ihren Platz gefunden haben.
C# ist eine Programmiersprache mehrerer Paradigmen. C# war nie rein objektorientiert, schon in der ersten Version als Component-basierte Sprache angepriesen. Mit der Zeit gab es Erweiterungen der deklarativen Programmierung, und auch funktionale Konzepte wurden bei C# übernommen. In welche Richtung entwickelt sich C# weiter? In dieser Session werden neueste Erweiterungen von C# gezeigt. Themen sind dabei die letzten aktuellen Änderungen sowie geplante Erweiterungen wie z. B. die Vermeidung von NullReferenceException mit Non-Nullable Reference Types und die Reduktion von Garbage-Collector-Aufrufen mit Hilfe von Memory-Optimierungen.
Agile Softwareentwicklung ist, mehr als täglich zusammenzustehen und alle zwei Wochen den Stakeholdern den Fortschritt zu zeigen. Wenn die agilen Werte auf das Requirements Engineering angewendet werden, bleibt kaum ein Stein auf dem anderen bezüglich der herkömmlichen Arbeitsweise. In diesem Vortrag präsentiere ich meine Top 5 Punkte des agilen Requirements Engineering: inkrementelles und iteratives RE statt langwierigem Requirements-Gold-Plating; Specification by Example mit automatisierten Akzeptanztests statt dicker Pflichtenhefte mit Widersprüchen; problemzentrierte Anforderungen statt Pseudolösungen; Requirements Engineering im Team statt Einzelkämpfer und Missverständnisse; Priorisieren und Übersicht halten statt Alles-ist-wichtig. Lernen Sie von meinen Erfahrung aus der Arbeit in und mit agilen Teams.
Der neue Ivy-Compiler und Angular Elements erlauben ganz neue Einsatzgebiete, in denen leichtgewichtige Web-Components anstatt eines umfassenden Frameworks gefragt sind. Beispiele dafür sind die Integration in bestehende Webanwendungen, die u. a. auf ASP.NET, jQuery oder dem Vorgänger AngularJS 1.x basieren, sowie die Nutzung innerhalb von Contentmanagementsystemen. Aber auch die Schrittweise Migration von Legacy-Anwendungen wird damit so einfach wie noch nie.
Hier erfahren Sie, wie sich Angular Elements und Ivy für solche Szenarien nutzen lässt und was unter der Motorhaube passiert. Wir beschäftigen uns auch mit Herausforderungen und dafür zur Verfügung stehenden Lösungen.
Kommen Sie in diese Session und dringen Sie mit Angular in neue Bereiche vor!
Angriffe wie etwa SQL Injection, Cross-Site Scripting (XSS) und Cross-Site Request Forgery (CSRF) sind teils über eine Dekade alt, man sollte sie also kennen. Doch verschärfte Varianten bestehender Methoden sind bereits im Anmarsch: CSRF ohne Nutzerinteraktion, längst vergessene XSS-Varianten, und JavaScript-APIs aus dem letzten Jahrtausend. Natürlich gibt es auch neuartigere Angriffe wie etwa unsichere JSON-Deserialisierung, überraschende XML-Injektionen und vieles mehr. Diese Session zeigt zahlreiche dieser Angriffe in Aktion und erläutert selbstverständlich Gegenmaßnahmen. Seien Sie bereit für ein paar überraschende Ansätze, eine Menge Code und eine To-do-Liste, sobald Sie von der Konferenz nach Hause kommen.
Angetrieben durch mögliche Nachteile einer monolithischen Architektur wollen Microservices und damit verbundene Designpatterns und -ideen das scheinbare Allheilmittel sein. In diesem Vortrag klärt Christian Weyer die folgenden Fragen: Was sind Microservices und was sind sie nicht? Wann setzt man sie ein? Und vor allem: Wie baut und betreibt man Microservices in der .NET-Core-Welt? Sehen Sie Architekturansätze und Patterns in Aktion und erleben Sie Technologien wie Service Discovery, Web APIs, SignalR, Message Queuing und Co. im praktischen Einsatz. Versuchen wir also gemeinsam, langweilige Architekturthemen spannend zu machen: auf pragmatische Weise. Dieser Talk richtet sich an .NET-Entwickler- und -Architekten, die Microservices verstehen und ohne jegliche Frameworks und Clouds in Aktion sehen wollen.
Wie bitte? Ohne Server? Ähm... Ja, in der Tat. Der Serverless-Ansatz verspricht eine niedrige Hürde, um den Einstieg in Microservices zu finden. In diesem Vortrag zeigt Christian Weyer die Grundlagen von Serverless mit Azure und .NET Core anhand praktischer Anwendungsfälle. Auf Basis erprobter Designpatterns können Sie mit Azure Functions, Azure Service Bus und Co. in kurzer Zeit sowohl einfache als auch komplexe Services-Anwendungen designen und implementieren – lokal und in der Cloud. Einer der Schlüssel ist hierbei das Denken in Events, über die Daten übertragen, verarbeitet und weitergeleitet werden. Kommen Sie vorbei – eventuell lernen Sie die Basis für Ihr neues Businesssoftware-Backend kennen.
Asynchrone Programmierung ist ein wichtiges Werkzeug, um die Skalierbarkeit und Responsiveness von Applikationen zu gewährleisten. C# und andere Programmiersprachen wie Python oder TypeScript haben dafür das "await" Keyword eingeführt, das es erlaubt, asynchronen Code zu schreiben, der so einfach zu lesen ist wie synchroner Code. Trotzdem bleibt asynchrone Programmierung ein komplexes Thema. Ein tiefgreifendes Verständnis von async/await ist daher sehr hilfreich, um korrekten Code schreiben zu können. In der ersten Hälfte des Vortrags wird hinter die Kulissen geschaut und erklärt, was der C#-Compiler tun muss, um async/await zu ermöglichen. Dazu werden die Codetransformationen, die der Compiler durchführt, von Hand nachimplementiert. Am Ende haben wir ein funktionsfähiges Programm, anhand dessen jeder Schritt einer async/await-Operation nachvollzogen werden kann. Die zweite Hälfte des Vortrags wird sich mit Anwendungsbeispielen und Fallstricken aus der Praxis beschäftigen.
Heute sind Linux-Server für beinahe alle Anwendungen eine ernsthafte Alternative. Besonders in der Cloud spart man so Geld, da keine Lizenzkosten anfallen und "kleinere" Instanzen verwendet werden können. Allerdings sind natürlich gewisse Grundkenntnisse erforderlich, um solche Systeme im täglichen Einsatz zu pflegen. Da müssen Systemprotokolle überwacht und Back-ups durchgeführt werden, Maintenance-Jobs koordiniert und Updates automatisiert. Oliver hat fünfundzwanzig Jahre Erfahrung mit Unix- und Linux-Servern und stellt in diesem Talk die wichtigsten Punkte zusammen.
„Auch das Beste stiftet, falsch verwendet, ein Unheil an, das seine Herkunft schändet.“ Wir (Menschen) verkennen regelmäßig, mit Inbrunst und in guter Absicht, die Komplexität systemischer Herausforderungen. „Systemisches Lernen“ bedeutet, vernetzte Wirkzusammenhänge und Regelkreisläufe wahrzunehmen und zu verstehen. In diesem Talk steigen wir anhand zweier Beispiele (Tschernobyl und das "Beer Game" der MIT Sloan School of Management) in die Grundlagen des systemischen Denken ein, analysieren einfache Regelkreisläufe und sehen uns an, was das für organisationales Lernen bedeutet.
DevOps bildet in der modernen Softwareentwicklung einen essentiellen Anteil. Bei Apps stellen sie den Entwickler gleichzeitig vor besondere Herausforderungen: Viele verschiedene Plattformen und eine Unzahl von verschiedenen Geräten. Microsoft bietet mit Visual Studio App Center ein Tool, das den kompletten Entwicklungszyklus für iOS-, Android-, Windows- und macOS-Apps abdeckt. Angefangen bei Continous Integration (CI-Builds), inklusive automatisierten Tests auf realen Endgeräten, über Logging und Fehlerreporting bis hin zu Continous Delivery per Push-Nachrichten.
Die Session liefert einen Überblick und Einstieg in Visual Studio App Center und zeigt, wie es den Entwickler bei DevOps unterstützen kann.
C# 7 bietet einige Erweiterungen für Value-Type-Parameter mit Referenzsemantik, wie z. B. das “in“ Keyword, als auch Rückgabe und lokale Variable mit "ref modifier". Eine Struct kann als "ref struct" deklariert werden. Was Sie damit machen können, wozu das in den neuesten .NET-Core-Versionen genutzt wird, und wie Sie diese Erweiterungen von .NET Core 2.1 selbst nutzen können, lernen Sie in dieser Session.
Früher galten Webbrowser als das Sicherheitsproblem #1 im World Wide Web. Heutzutage sind sie der letzte Schutzwall. In den vergangenen Jahren wurden zahlreiche Schutzmechanismen und APIs in die Webbrowser integriert, die entweder vor Angriffen schützen, Sicherheitsprotokolle umsetzen oder andere sicherheitsrelevante Funktionalitäten wie etwa Verschlüsselung anbieten. Wir gehen sechzig Minuten lang auf die Reise durch die Welt der APIs und sehen uns Features und natürlich den Browsersupport an.
Frankfurt, im Februar 2015: In einer Hotellobby probiert die Thinktecture-Crew eine der frühen, blutigen Alphaversionen von Angular 2 aus. Seither sind vier Jahre vergangen. Zurück in Frankfurt zeigt Christian Liebel von Thinktecture, welche Lehren das Thinktecture-Team aus beinahe vier Jahren Projektgeschäft gezogen hat. Wir besprechen bspw. erweiterte TypeScript-Sprachfeatures, die Unterteilung von Angular-Projekten in isolierte Module sowie verschiedene Maßnahmen zur Verbesserung der Performance. Dieser Talk richtet sich an Angular-Entwickler, welche die Grundlagen des Frameworks verstehen und schon erste Projekte damit umgesetzt haben.
Eine C++-Anwendung im Web, integriert in einer Single Page Application (SPA) - das geht? Ja, mit WebAssembly (WASM). Nativer Code im Web hat sinnvolle Anwendungszwecke für die unterschiedlichsten Szenarien. Durch die Möglichkeit, existierenden C++-Code speziell kompiliert in den Webbrowser zu laden, können komplexe Algorithmen und Berechnungen - wie sie etwa in der Bild- und Videoverarbeitung vorkommen - Cross-Plattform auf nahezu allen Endgeräten ausgeführt werden. In diesem Vortrag zeigt Ihnen Martina Kraus zunächst die Grundlagen von WebAssembly anhand eines kleinen C++-Hello-World-Beispiels. Im Anschluss widmet sie sich dann der Frage, wie man eine existierende C++-Anwendung in eine Angular-basierte SPA integrieren kann, um das Beste aus beiden Welten zu nutzen. Dabei sollen typische Designpatterns und evtl. notwendige Umbauarbeiten an bestehendem Code ebenso beleuchtet werden wie die WASM Toolchain, mit der man zum Ziel einer nativ-angereicherten modernen Web-App kommt.
Scrum ist das am meisten verwendete agile Framework und fast jeder kennt wohl die grundsätzlichen Regeln. Umso überraschender ist es, dass die Idee eines “Done” Product Increment so wenig Aufmerksamkeit erfährt. Vermutlich ist es einfacher, ein Daily Scrum von maximal 15 Minuten Dauer zu organisieren, als in jedem Sprint eine neue und erweiterte Version unseres Produkts in einer produktiv auslieferbaren und angemessenen Qualität abzuliefern. In diesem Talk wollen wir uns als Ritter dieses heiligen Grals auf die Suche nach Wegen hin zu dieser Qualität machen. Wir werden dabei erörtern, was “Done” in unterschiedlichen Kontexten bedeuten kann. Wir werden außerdem darüber sprechen, was Entwicklungsteams tun können, um diese geforderte Qualität zu erreichen. Dabei geht es um Praktiken der guten Softwareentwicklung (Software Craftsmanship) sowie um Werkzeuge für die Beurteilung und Verbesserung der aktuellen Qualität. Zusätzlich werden wir auch auf kontinuierliche Integration unserer Systeme und die Verbindung von Fachlichkeit, Softwareentwicklung, -test und -betrieb eingehen. Wir wollen mit diesem Talk dazu beitragen, dass das Done Increment kein unerreichbares Ziel der agilen Produktentwicklung mit Scrum ist, sondern etwas, das von jedem Scrum-Team ernst genommen und iterativ-inkrementell optimiert wird.
Bots are apparently the new rage in human-computer interactions, but all you see are nebulous show-off demos. What’s in it for you and why should developers build bots? Like most new technologies, usage and efficacy often come with deeper understanding.
Let’s demystify bots – Conversational Bots in particular. Let’s explore where they lead to cost savings for enterprises or drive greater user engagements. Let’s explore several developer frameworks to build bots and learn how/where to host them. The true power of bots lies in how intelligent they get, the UI through which they provide the user experience, and how well they mimic natural human conversations. Let’s explore tools and services that enable developers to build smarter bots – aka, the next generation of apps.
Was steckt hinter dem State Management Pattern Redux? Woher kommt es und wann sollte man es einsetzen? Michael bietet in seinem Vortrag eine Einführung in dieses Thema und teilt seine Erfahrungen aus der Praxis. Es wird nicht nur über die Entscheidungsbasis für oder gegen Redux gesprochen, sondern auch über eine mögliche Fehlverwendung. In einer Live-Coding-Session wird das Redux-Pattern in eine Applikation implementiert und angewendet.
Progressive Web Apps oder kurz PWAs bringen Webapplikationen näher zum Benutzer, indem sie Schritt für Schritt den Browser verlassen und sich nativen Apps annähern – und das nicht nur auf mobilen Geräten. Mit dem richtigen Konzept und etwas zusätzlichem Quellcode wird Ihre Applikation auf verschiedenen Geräten installierbar und offlinefähig. Dennoch müssen Sie nicht auf die Annehmlichkeiten einer traditionellen Webapplikation wie die einfachen Rollouts verzichten. Dieser Vortrag bringt Ihnen die Konzepte und Technologien näher, die hinter den PWAs stecken. So erfahren Sie beispielsweise, wie Sie die Manifestdatei für Ihre Applikation gestalten können und wie Sie einen Service Worker installieren. Die Session richtet sich an Entwickler mit Grundkenntnissen in Webtechnologien.
Die Kommunikation in einem Team kann über Erfolg oder Misserfolg entscheiden. Schwierig wird es wenn es zu Spannungen im Team oder mit dem Kunden kommt und oft weiß man nicht welche Reaktion die richtige ist.In diesem Vortrag werden wir zeigen wie klare Kommunikation Missverständnisse vorbeugt und ein Team klar kommunizieren kann.
Join Microsoft MVP Don Wibier to bring your C# coding skills to the next level. He will show you one of his own personal killer combis: Generics and abstract classes. With a lot of coding examples, you will learn how to optimize and re-use your code to the max and lay down a solid and flexible foundation for your applications.
Bisher war .NET Core nur für Server-, Web- und Konsolenentwickler interessant. Mit .NET Core 3.0 liefert Microsoft nun auch WPF und sogar Windows Forms für .NET Core, allerdings nur auf Windows. Mit dem App Bundler von .NET Core 3.0 kann man eine Desktopanwendung zusammen mit .NET Core ausliefern, enorm verkleinern und zu einer EXE zusammenschnüren. DOTNET-DOKTOR Holger Schwichtenberg thematisiert in diesem Vortrag die drei großen Fragen: Was ist auf .NET Core 3.0 möglich? Welche Vorteile bietet .NET Core 3.0 für bestehende und neue Desktopanwendungen? Mit welchem Aufwand kann ich bestehende Anwendungen auf .NET Core 3.0 umstellen? Natürlich werden auch andere Version-3.0-Neuigkeiten rund um .NET Standard, ASP.NET Core, ASP.NET Blazor und Entity Framework Core nicht fehlen.
Microsoft hat mit SQL Server 2019 das nächste Major Release vorgestellt. In dieser Session stellt Ihnen Thorsten Kansy in übersichtlicher Form Neuerungen zu Themen wie Performance Enhancements, Secure Enclaves, Hochverfügbarkeit, generelle Verbesserungen etc. vor. Der Fokus ist dabei auf das gerichtet, was ein Programmierer auf dieser Plattform wissen sollte.
TypeScript erfreut sich als client- und serverseitige Universalsprache großer Beliebtheit und die Tendenz ist steigend. Doch wie passt es mit Azure zusammen? Wie genau läuft TypeScript auf Node.js auf Azure? Welche Deployment-Mechanismen gibt es und wie funktioniert das Application Management? Wie findet man schnell Probleme und wie monitort man die serverseitige TypeScript-Applikation und ihre Performance? Antworten darauf finden Sie in diesem Talk.
Zentrale Eigenschaft jeder Progressive Web App (PWA) ist die Verbindungsunabhängigkeit. Dank dem Service Worker funktioniert die App auch dann, wenn der Anwender gerade offline ist: Im Tunnel, im Park oder im Dschungel. Zur Generierung eines Service Workers hilft das Toolkit Workbox. Anwenderdaten werden hingegen in der Browserdatenbank IndexedDB hinterlegt. Wo Daten offline gehalten werden, müssen aber auch deren Synchronisierung und Konfliktauflösung in der Architektur bedacht werden. Christian Liebel von Thinktecture zeigt Ihnen am Beispiel einer in Angular geschriebenen Anwendung die Mechanik hinter der dem Service-Worker-Cache und der Browserdatenbank IndexedDB, sodass es auch Ihre PWA mit ihren nativen Gegenstücken problemlos aufnehmen kann.
Dieser Talk richtet sich an Entwickler, die grob wissen, worum es bei Progressive Web Apps geht. In diesem Track gibt es auch den passenden Grundlagenvortrag („Progressive Enhancement im Web: PWA-Grundlagen“), der Ihnen dieses Verständnis vermittelt. Bitte nehmen Sie ein Smartphone mit, um ggf. die Demoanwendung am eigenen Gerät ausprobieren zu können.
Bereits seit der Version 2013 können Sie Microsoft Office durch Add-ins erweitern. Damit sind die Tage von VSTO endlich gezählt. Sie können heute mit modernsten Webtechnologien Erweiterungen für die beliebten Produkte wie Outlook, Excel oder Word erstellen und auf sämtlichen Plattformen bereitstellen. Egal, ob Ihre Anwender Office unter Windows, macOS, Android, iOS oder im Browser verwenden, mit Add-ins können Sie alle Benutzer erreichen. In diesem Vortrag wird Ihnen Thorsten Hans nach einer kurzen theoretischen Einführung zeigen, wie Sie ein neues Add-in für ein Office-Produkt exemplarisch mit dem Single-Page-Application-(SPA-)Framework Angular und TypeScript implementieren und in Office 365 bereitstellen.
007 meistert jedes Problem souverän. Durch den geschickten Einsatz seiner Fähigkeiten (und High-Tech-Gadgets) bewältigt er sogar die größten Krisen problemlos. Aber auch der berühmteste Geheimagent wäre nicht so erfolgreich ohne die Unterstützung seines Arbeitgebers. Das führt uns zu der Frage: Wie können wir als Unternehmen ein modernes, agiles Mindset bieten und so unsere Angestellten zu James Bonds machen?Talentierte und motivierte Mitarbeiter sind heute gefragter denn je, und auf dem erfolgreichen Weg in die Agilität muss die Selbstständigkeit des Einzelnen gefördert werden. Dominik Berner zeigt auf, wie in einer Organisation Selbstverantwortung gefördert werden kann und welche Auswirkungen dies auf jeden einzelnen Mitarbeiter hat. Zusammen machen wir einen mit Hollywood-Flair gewürzten Ausflug in das Mindset für eine moderne Unternehmenskultur.
Diese Session zeigt Ihnen, was es aktuell Gutes, Schlechtes und nicht so Schönes in C# gibt. Nach dem Motto: Nicht alles, was geht, ist gut und der Code sollte auch nach zwei Tagen nicht verständlich sein, aber auch kein Superrätsel. Also guten Code, damit Sie mit voller Kraft in neue Projekte (.NET oder .NET Core) starten können, oder um bestehenden Projekten ein Facelifting zu geben zu können.
Vielleicht hast du auch schon mal eine Sketchnote gesehen und gedacht: "Wow, wäre cool, wenn ich das auch könnte!". Dann komm in diese Session und lerne es. Keine Angst, deine Zeichenkünste sind ausreichend - garantiert! Sketchnotes machen mir nicht nur Spaß beim Erstellen, sondern helfen mir, mich während einer Präsentation oder eines Meetings zu konzentrieren und der Inhalt bleibt mir auch viel länger in Erinnerung. Und wenn ich mich mal nicht mehr erinnern kann, dann gibt mir die Sketchnote schnell wieder einen Überblick.
Als Entwickler sitzt man den ganzen Tag vor dem Computer; da braucht man einen Ausgleichssport. Für Rainer Stropek ist es Tanzen. Fünf bis sechs Mal pro Woche Training, regelmäßige Trainerstunden, alle paar Wochen nationale oder internationale Turniere – Rainer und seine Frau widmen dem Hobby schon eine Menge Aufmerksamkeit. Für technische Sportarten wie Tanzen braucht man viele Skills, die auch in der Softwareentwicklung notwendig sind. In dieser Night School erzählt euch Rainer, welche Erfahrungen er im Tanzsport gemacht hat, die ihn im Berufsleben zu einem besseren Entwickler gemacht haben – und vielleicht werdet ihr ja in der Session auch zu besseren Tänzern…
.NET has been around 17 years now and a lot has changed in the world of application development since then. Modern .NET feels like a breath of fresh air with future-facing technologies. Legacy apps aren’t being left behind either. Changes in the .NET developer ecosystem usher in a new era and align to modern web/mobile/desktop development. And developers can target just about any platform/device with .NET.
Let’s unpack the magic and talk about:
Join in as we explore all that’s new and shiny. This is one of the best times to be a .NET developer – let us show you why!
ASP.NET Core umfasst neben Web API und dem Server-side Rendering mit MVC und Razor Pages inzwischen auch das Single-Page-Application-Framework Blazor für den Browserclient, mit dem man den Browser in C# auf Basis von WebAssembly statt mit JavaScript programmieren kann. DOTNET-DOKTOR Holger Schwichtenberg stellt in diesem Vortrag den aktuellen Entwicklungsstand der verschiedenen Spielarten von ASP.NET Core vor mit einem besonderen Fokus auf die Neuerungen, die in Version 2.2 in das Produkt Einzug gehalten haben und in Version 3.0 kommen werden. Der Vortrag eignet sich sowohl für Umsteiger von klassischem ASP.NET als auch für Entwickler, die bereits mit den vorherigen Versionen von ASP.NET Core arbeiten.
Pairing an automatic event notification with an event-based cloud architecture seems obvious; an application emits an event and 'code in the cloud' responds to it. Why, then, is setting up WebHooks on Serverless harder than getting gum out of your hair? Join me and untangle the mystery. In this talk we'll cover WebHook fundamentals, compare WebHooks from several different vendors, and then implement them on multiple serverless ecosystems.
Git hat den Kampf der Versionsverwaltungen gewonnen und ist heute fast überall im Einsatz – nicht nur im Bereich Open Source. Trotzdem holen die wenigsten Teams die maximale Produktivität aus Git heraus, da sie nicht die richtigen Strategien verwenden. Oft wird z. B. GitFlow verwendet, da es der bekannteste Branching-Workflow ist – nicht weil er am besten zum Produkt oder Team passt.Der Vortrag stellt die richtigen Strategien vor – für Branch, Commit, Review und Merge. Wie findet man den richtigen Branching-Workflow für sein Team? Wie stellt man Namenskonventionen sicher? Wie schreibt man sinnvolle Commit-Messages? Welche Merge-Strategie ist die richtige für mein Team? Wie arbeitet man optimal mit Pull-Requests zusammen?Der Vortrag macht einen Rundumschlag um alle Themen, die Git betreffen – damit man das beste aus der Versionsverwaltung für sein Team herausholen kann.
DevOps ist in aller Munde und doch gibt es viele Missverständnisse und Fehlinterpretationen diesbezüglich. In diesem Lab wollen wir etwas mehr Klarheit darüber schaffen, was hinter diesem Begriff steht, warum DevOps hilfreich sein kann aber auch, wo die Herausforderungen liegen. Die Teilnehmer lernen die Philosophie hinter DevOps zu verstehen und beschäftigen sich mit verschiedenen DevOps-Praktiken. Das zentrale Thema sind dabei die "Three Ways". Die Inhalte sind dabei toolagnostisch und auch für Nicht-Entwickler relevant und gut nachvollziehbar. Interaktives Erarbeiten der Inhalte statt Toolpräsentation – so erhalten sie nicht nur ein grundlegendes Verständnis zum Thema DevOps, sondern hoffentlich auch viele neue Inspirationen, die sie in ihrem Alltag umsetzen können.
Wir zeigen anhand von zwei Beispielen, wie unterschiedliche DevOps-Aufgaben mit GitLab, Terraform und der Cloud hochskalierbar und kosteneffizient durchgeführt werden können.
Im ersten Beispiel stellen wir skalierbare Builds für den ASP.NET-Core-E-Shop im automatisierten CI/CD unter GitLab bereit. Wir zeigen dabei, wie Build-Spitzenlasten und auch Idle-Times ressourceneffizient und trotzdem entwicklerfreundlich ausgesteuert werden können.
Im zweiten Szenario widmen wir uns einem Lasttest. Dazu deployen wir den gebauten E-Shop und werden ihn mit einem Locust-Schwarm unter Stress setzen. Dabei demonstrieren wir, wie man mit Terraform und der AWS einen nahezu beliebig großen Locust-Schwarm quasi aus dem Nichts erzeugen und auf das Testziel loslassen kann.
Wie kann aus einem Haufen (Micro-)Services ein vollständiger Use Case oder gar ein übergreifender Geschäftsprozess abgebildet werden? Welche Art der Kommunikation zwischen den Services ist erwünscht? Synchron, asynchron oder Event-getrieben? Wie vermeide ich chaotische Spaghettikommunikation, die meinen Businessanalysten in den Wahnsinn treibt? Was bedeutet dies für uns als Entwickler, und wie gehen wir mit den Herausforderungen verteilter Systeme um? In diesem Vortrag beschreibe ich die Auswirkung verschiedener Lösungsvarianten auf die Architektur und zeige durch Live-Coding konkrete Rezepte rund um Fail Fast, Retrying und fachliche Transaktionen mit dem Saga-Pattern. Der Vortrag ist gespickt mit Praxiserfahrungen aus realen Kundenprojekten.
Immer wieder wird das Testing im Frontend auf die lange Bank geschoben. Dabei ist es für eine moderne Businessapplikation auch im Frontend unausweichlich, vernünftige Tests zu schreiben. Bei der Entwicklung von Angular gehörte die Testbarkeit von Anfang an zum Konzept. In diesem Workshop zeigt Fabian Gosebrink, wie man seine Angular-Applikationen auf Herz und Nieren testen kann. Es wird ein Blick auf die Tools und auf die verschiedenen Möglichkeiten von Testing geworfen, damit am Ende kein Fall mehr ungetestet bleibt.
IoT ist ohne Zweifel seit Jahren ein Megatrend. Viele Unternehmen sind schon längst auf dem Weg, mit IoT neue Geschäftsmodelle zu finden oder zu etablieren. Das stellt die Entwickler vor neue Herausforderungen, die Anwendungen zu implementieren, die keine Grenzen zwischen Edge und Cloud kennen.In dieser Session lernen Sie kennen, welche Technologien und Dienste dem .NET-Entwickler zur Verfügung stehen, die es möglich machen, moderne IoT- und Industrie-4.0-Lösungen einfach und effizient zu implementieren. Durch viele praxisorientierten Beispiele lernen Sie kennen, wie IoT-Lösungen mit Hilfe von verschiedenen Diensten und Containertechnologien erfolgreich umgesetzt werden können. Dienste im Fokus: IoTHub, IotEdge, Docker, .NET Core
Mit Office Add-ins können Sie sämtliche Produkte der Office Suite unter Verwendung moderner Webtechnologien erweitern. Ein Add-in wird immer im Kontext eines Elements - z. B. einer E-Mail in Outlook oder einer Tabellenkalkulation in Excel - ausgeführt, doch in der Praxis benötigen Sie oftmals mehr Daten. Mit dem Microsoft Graph API können Sie direkt aus Ihrem Office Add-in heraus auf Daten in Microsoft 365 zugreifen und so noch komplexere Workflows abbilden. Sie möchten relevante Dokumente für den aktuellen Benutzer finden? Aus Word heraus einen neuen Termin im Kalender des Benutzers anlegen? Oder aus einem Excel Add-in eine E-Mail im Namen des Benutzers versenden? Thorsten Hans zeigt in diesem Vortrag, wie Sie Ihren Office Add-ins mit dem Microsoft Graph API Zugang zu mehr Daten verschaffen.
NuGet-Pakete konsumiert der geübte .NET-Entwickler bei seiner Arbeit täglich. Doch wie sieht es mit der Erstellung und Veröffentlichung eigener Pakete aus? Nicht nur in privaten Projekten, sondern vor allen Dingen im Unternehmensumfeld kann dies dazu beitragen, in großen Projekten den Überblick zu wahren und Zuständigkeiten klar zu trennen. Dieser Talk gibt einen Überblick darüber, welche verschiedenen Möglichkeiten wir zur Erstellung und Verteilung von NuGet-Paketen haben. Bauen lassen sich Pakete auf verschiedene Arten – entweder manuell durch den Entwickler oder voll automatisch über einen Team Foundation Server. Sollen NuGet-Pakete nur für die eigene Verwendung veröffentlicht werden? Kein Problem mit einem eigenen NuGet Repository. An einem Beispiel aus dem Projektalltag wird gezeigt, wie eine saubere Strukturierung über NuGet-Pakete wieder Ordnung in historisch gewachsene Projekte bringen kann und es wird die Frage geklärt, wann der Einsatz von eigenen NuGet-Paketen sinnvoll ist – und wann nicht.
In diesem Lab wird es entschieden praktisch: Hands-on mit .NET Core in einem realen Szenario. Microservices, Container-basierte Anwendungen, Webanwendungen und Cross-Plattform-Apps mit Xamarin.Forms stehen im Mittelpunkt. Anhand einer praxisnahen Anwendung sollen akzeptierte Industriemuster und Architekturen für .NET-Core-Anwendungen dem Teilnehmer erläutert und einsatztauglich beigebracht werden. Am Ende kann der Teilnehmer die gelernten Technologien und Architekturansätze in einem realen Umfeld zielgerichtet zum Einsatz bringen. Zudem versetzt ihn eine verinnerlichte Kriterienliste in die Lage, Entscheidungen bzgl. des Einsatzes von .NET Core treffen zu können bzw. den Entscheidungsprozess maßgeblich zu beeinflussen. In kleinen Gruppen sollen gegebene Anwendungsfälle einer realen und vielseitigen Softwarelösung geplant, implementiert, integriert und schließlich in der Cloud veröffentlicht werden. Damit es am Ende eine lauffähige Softwarelösung in der Cloud gibt, muss jede Gruppe ihren essentiellen Beitrag dazu leisten. Die Teilnehmer haben alle Freiheiten (und die Verantwortung) bei der Wahl der Tools, bei der Ressourcenplanung (Aufteilung der Gruppen), Zuteilung der Anforderungen usw.
Voraussetzung für die Teilnahme ist ein Rechner (vorzugsweise mit Windows 10) mit installiertem Visual Studio 2017 (Community Edition genügt), sowie ein Git-Client der Wahl (z. B. SourceTree). Ebenfalls sollte die neueste, stabile Version des .NET Core SDKs installiert sein. Eine Azure-Subscription wäre ebenso wünschenswert.
Obwohl React wesentlich erfolgreicher ist als Angular, gibt es gerade unter den Entwicklern von Geschäftsanwendungen viele, die React und dessen Infrastruktur nur theoretisch kennen. In dieser Session stellt Oliver Patterns und Praxis von React anhand einiger praktischer Beispiele vor. Sie werden die Flexibilität und Einfachheit von React zu schätzen lernen und herausfinden, ob die Plattform auch für Ihr nächstes Projekt in die engere Wahl kommen sollte.
Das SPA-Framework Angular aus der Feder von Google bietet sich für große Geschäftsanwendungen an. Doch wie strukturiert man die damit umgesetzten Projekte am besten, um eine langfristige Wartbarkeit und Wiederverwendbarkeit zu gewähren?
Diese Session gibt unter Verwendung einer Fallstudie mehrere Antworten auf diese Frage. Im Zentrum steht der bei Google sehr beliebte Monorepo-Ansatz. Sie erfahren, wie Sie damit Ihre Lösung in kleine und wartbare Bibliotheken teilen und auf was dabei zu achten ist. Außerdem sehen Sie, wie sich Architekturvorgaben in einem Monorepo validieren lassen. Wir diskutieren auch Wege, die einzelnen Bibliotheken für unterschiedliche Anwendungsfälle und Kunden anpassbar zu gestalten, aber auch, wie sich diese als npm-Paket über die Registry der Wahl verteilen lassen.
Events, Events, Events … in dieser Session dreht sich alles um Events – genauer um das Azure Event Grid. Event-basierte Architekturen liegen im Trend – speziell in Kombination mit Serverless-Architekturen. Durch das Azure Event Grid werden Events zu First-Class-Citizens in der Cloud, und die Entwicklung von Event-basierten Architekturen wird stark vereinfacht. Diese Session soll einen Überblick über das Azure Event Grid und dessen Einsatzgebiete geben. Sehen wir uns gemeinsam an, wie Azure Event Grid auch Ihr Leben als Cloud-Architekt vereinfachen kann.
Es ist unumstritten, Machine Learning (ML) und Artificial Intelligence (AI) prägen sich immer tiefer in unsere Gesellschaft ein. Leider ist dieses Gebiet den klassischen Entwicklern und damit auch .NET-Entwicklern für sehr lange Zeit verborgen geblieben. Mit dem Open-Source-Framework „Machine Learning .NET“ soll sich dies ändern. In dieser Session lernen Sie zuerst die Grundlagen von Algorithmen und Spezialitäten von typischen ML-Projekten kennen. Darüber hinaus zeigen wir auf Basis von zahlreichen Demos, wie C#-Entwickler die ML-Lösungen auf Basis von .NET ML umsetzten können.
Microsofts Xamarin Platform ermöglicht die Entwicklung von Apps für Android, iOS und Windows mit nur einem Werkzeug (Visual Studio) und einer Programmiersprache (C#). Da sich die Plattformen im Detail jedoch gehörig unterscheiden, bedeutet dies nicht, dass Sie Ihre Codebasis ohne Änderungen auf allen Plattformen nutzen können. Wie Sie trotz der Unterschiede möglichst viel Code plattformübergreifend wiederverwenden können, wird Ihnen André Krämer in diesem Vortrag zeigen. Dazu wird er die verschiedenen Optionen "Shared Projects", "Portable Class Libraries" und ".NET Standard Libraries" näher erläutern. Darüber hinaus wird er über Dependency Injection sprechen und den Xamarin Dependency Service mit leistungsstarken Inversion-of-Control- Containern wie Autofac vergleichen. Abgerundet wird der Vortrag mit einem Überblick über Xamarin.Essentials, einer Bibliothek, die plattformübergreifende Implementierungen gerätespezifischer Funktionen bietet.
Die Idee von Micro Frontends, auch Micro Apps genannt, ist sehr verlockend: Anstatt eines großen monolithischen Clients erstellt man entsprechend der Microservices-Philosophie mehrere kleine und gut wartbare UIs. Doch wie lassen sich diese einzelnen Inseln mit einem integrierten UI präsentieren?
Frameworkunabhängige Web Components, die sich sehr einfach dynamisch in eine App-Shell laden lassen, sind hierfür eine moderne und sehr attraktive Lösung. Hier erfahren Sie, wie Angular mit den neuen Angular Elements dabei unterstützt. Die einzelnen Optionen werden herausgearbeitet und deren Vor- und Nachteile diskutiert. Am Ende liegt eine Blaupause für Ihre eigenen Vorhaben vor.
Build-Measure-Learn (Erstellen-Messen-Lernen) sind die Schlagwörter aus dem DevOps-Universum. Die Build-Phase ist inhaltlich bereits sehr gut in den Teams adaptiert. Den nächsten Schritt im Prozess, das Messen, ist da schon ein anderes Thema. Ohne gute Messdaten kann man als Team keine guten Erkenntnisse für die Weiterentwicklung des Produktes bzw. den Betrieb generieren. Das richtige Sammeln und Verarbeiten von Telemetriedaten ist somit für die ganzheitliche Adaption von DevOps als Konzept sehr wichtig. Das Motto lautet: "Wer 'sinnvolle' Daten im 'richtigen' Umfang sammelt [Input], kann später auch intelligent Entscheidungen treffen [Output]". Ohne guten Input gibt es keinen guten Output. Der Vortrag stellt das Thema konkret am Beispiel der Software "AIT WordToTFS" vor. Es werden dabei sowohl Tipps für die Implementierung gegeben als auch Beispiele für die spätere Auswertung und die daraus gezogenen Rückschlüsse für die Entwicklung/Betrieb gezeigt.
Um mit React eine vollständige Anwendung zu bauen, brauchen Sie verschiedene zusätzliche Elemente. Manche Varianten gibt es auch außerhalb von React, wie etwa Sagas und Redux (oder gar das Flux-Pattern). In dieser Session zeigt Oliver anhand von praktischen Beispielen, welche Rolle diese und andere Patterns im Gesamtsystem spielen, und wie einfach die Pflege komplexer Systeme mit ihrer Hilfe wird.
Für die Bereitstellung und den Betrieb einer containerisierten Anwendung kommt oftmals ein hochkomplexes Orchestrationswerkzeug wie z. B. Kubernetes zum Einsatz. Der Betrieb von Kubernetes stellt für viele Teams eine zusätzliche Herausforderung dar. In dieser Session zeigen wir, wie man einen Managed Kubernetes Cluster auf Microsoft Azure einsetzt, um sich wieder mehr auf die App-Entwicklung konzentrieren zu können, statt um den Betrieb des Clusters. Wir zeigen Beispiele und Demos zur Integration von CI/CD und auch zum Clustermanagement selbst.
Reaktive Programmierung und RxJs gewinnt in letzter Zeit immer mehr an Bedeutung. Was macht diese Technologien so reizvoll und relevant? Dieser Vortrag gibt eine Einführung in die Grundlagen der reaktiven Programmierung mit RxJs und zeigt die Anwendung in einer Live-Coding-Session. Lernen Sie, wie Sie mit RxJs komplexe Probleme mit HTTP, Events, Usereingaben und WebSockets einfach und elegant in nur wenigen Zeilen Code lösen können.
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 TFS zu Microsoft outsourcen.
Seit einigen Jahren betreibt Microsoft den Team Foundation Server fix und fertig in der Cloud – unter dem Namen Visual Studio Team Services (ja, das ist das gleiche Produkt mit zwei Namen). Das ist die gleiche Umgebung, die Microsoft für ihre eigene Softwareentwicklung verwendet, z. B. für die Entwicklung von Windows.
In diesem Vortrag geht es darum, wie der Weg vom eigenen TFS zu VS Team Services aussieht und wo aktuell die Chancen und Limitationen von VS Team Services liegen.
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.
Sie verwenden RESTful Web Services zum Bereitstellen von Daten für Ihre Anwendungen? Sie denken sich: "Ja klar, was denn sonst?". Dann sollten Sie sich näher mit GraphQL beschäftigen. GraphQL ist eine Abfragesprache und wird u. a. von Facebook, GitHub und Shopify als Alternative zu RESTful Web Services eingesetzt. In dieser Session erfahren Sie, was GraphQL ist und welche Vorteile sich durch die Verwendung von GraphQL für Sie ergeben. Darüber hinaus sehen Sie, wie GraphQL server- und clientseitig verwendet werden kann. Sie lieben REST? Sie "hassen" REST? Sie befinden sich gefühlsmäßig irgendwo dazwischen oder denken sich "REST, what else?" Wagen Sie den Blick über den Tellerrand! Und vielleicht verwenden auch Sie nach dieser Session GraphQL für Ihre nächste Anwendung.
Flutter ist Google’s kommendes Cross-Plattform-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 im Vergleich zu anderen Cross-Plattform-Technologien.
Die explosionsartige Verbreitung von Cloud Computing führt immer noch zu offenen Fragen, wenn es um die Sicherheit der eigenen Daten und Dienste geht: Daten werden nicht mehr in der eigenen Infrastruktur verarbeitet, sondern verlassen diese und entziehen sich somit der eigenen Kontrolle. Der Vortrag behandelt die generellen Sicherheitsaspekte bei der Nutzung von Public-Cloud-Diensten. Dazu zählen u. a. eine detaillierte Betrachtung der Grundlagen, Bedrohungen und Risiken im Public-Cloud-Umfeld. Vorgestellt werden außerdem selbst entwickelte Securitymodelle, Risiko- und Trust-Metriken, die basierend auf der Erfahrung aus einer Reihe von Sicherheitsevaluierungen entstanden sind. Weiterhin wird behandelt, wie die Automatisierungsmöglichkeiten von Cloud-Umgebungen für eine Verbesserung der allgemeinen IT-Security-Lage genutzt werden können.
Was lerne ich als Nächstes? Das neueste hippe Framework? Eine neue Programmiersprache? Oder doch lieber Soft Skills? Und was soll ich als neue Position anstreben? Teamleitung? Architekt? Um diese Frage zu beantworten, muss ein Entwickler sich erst mal darüber im Klaren sein, was Erfolg für ihn bedeutet und welche Karriereoptionen er hat. Der Vortrag zeigt den Teilnehmern auf, was Erfolg ist und wie sie ihre Karriere am besten steuern statt zu planen. Er zeigt, wie man durch Fokus auf das Wesentliche glücklicher und erfolgreicher wird. Damit nicht nur das Geld stimmt, sondern auch die Zufriedenheit mit der Arbeit und die Work-Live-Balance. Als Entwickler haben wir die Möglichkeit, nie wieder arbeiten zu müssen – frei nach dem Motto: „Mach dein Hobby zum Beruf – und du musst nie wieder arbeiten“. Wir nutzen diese Möglichkeit nur leider viel zu selten.
Mit ASP.NET Core ist die plattformübergreifende Entwicklung von ASP.NET-Webanwendungen unter Windows, Mac und Linux möglich. Viele Entwickler machen von dieser Option keinen Gebrauch, sondern entwickeln rein unter Windows. Sogar Nutzer von Apple-Geräten starten häufig eine virtuelle Maschine auf Ihrem Mac, sobald sie für ASP.NET entwickeln möchten.
André Krämer machte es lange genauso. Da er den Performanceverlust durch die VM jedoch nicht mehr hinnehmen wollte, beschäftigte er sich damit, wie er seinen Mac konfigurieren muss, um gemeinsam mit seinen Kollegen, die rein unter Windows entwickeln, produktiv an einer ASP.NET-Core- und SQL-Server-Anwendung arbeiten zu können.
In diesem Vortrag berichtet er, wie er sein System konfiguriert hat, welche Hürden es gab und welche Lösungen er gefunden hat, um vollkommen ohne Windows bei gleicher Produktivität in einem gemischten Team mit Windows- und Visual-Studio-Entwicklern arbeiten zu können.
Die letzten zehn Jahre haben uns gezeigt, dass der Datenbank zu hohe Priorität zugesprochen wurde. Die meisten Diskussionen drehten sich um das Datenmodell, statt um Geschäftsprozesse und Vorgänge. Kein Wunder, denn klassische SQL-Datenbanken erzwingen diese Vorgehensweise von uns. In dieser Session zeigt der MongoDB-Experte Gregor Biswanger eine zeitgemäße Alternative mit NoSQL und wie durch ein Umdenken auch ein Booster in unsere Architektur einfließt bezüglich Produktivität, Flexibilität und Performance.
UX is driving you crazy, a black throwing off timelines and killing ideas. UX doesn’t seem lean or agile. Can’t anybody make wireframes? Can’t we circumvent or exclude these people?
DevOps is about so much more than how developers connect with IT, how infrastructure is managed, and how frameworks can be improved. It’s about recognizing how many teams are truly involved in the software development process and finding better ways to make sure everybody is at the table.
This session will explain how the UX process fits into Agile, saves companies money, augments DevOps goals, and increases customer satisfaction.
Während des Projektverlaufs interessieren Projektleiter wie auch Entwickler nur zwei Themen: Fertigstellung und Deployment. Doch was passiert, nachdem eine Software ausgeliefert wurde? Wie kann man eine Anwendung überwachen und eventuell umkonfigurieren? Diese Session beschäftigt sich genau mit diesem Thema und zeigt zum einem, welche Konzepte für Ihre Projekte Sinn machen und wie Sie diese mit der Anwendungsmanagement-Plattform „Congether“ umsetzen können.
Seit dem VSTS-Relaunch Mitte 2018 als Azure DevOps ist Microsoft mit den Cloud-Diensten der Azure-DevOps-Servicefamilie auch für die Verwaltung und den Betrieb von Open-Source-Projekten eine sinnvolle Ergänzung. Gerade im Hinblick auf die kostenlose Verfügbarkeit der Dienste für Open-Source-Projekte ist es eine spannende Alternative. Im Vortrag soll an Beispielen aus unserem eigenen Umfeld gezeigt werden, wie sich GitHub-basierende Projekte mit einzelnen Azure-DevOps-Diensten (z. B. Azure DevOps Pipelines, Azure Boards) integrieren bzw. erweitern lassen. Neben der Integration betrachten wir hier ebenfalls die Aspekte "Was hat sich bewährt?" und "Was würden wir mittlerweile anders machen?".
Traditionell erscheint einmal im Jahr eine neue Hauptversion von Microsofts ALM-Plattform – dem Team Foundation Server (TFS). Dabei gibt es nicht nur viele neue Features, die helfen sollen, den Alltag produktiver zu gestalten – sondern vieles, auch Altbewährtes und Liebgewonnenes, wird ebenfalls anders.
Dieser Vortrag gibt einen Überblick über die vielen Änderungen und wichtigsten Neuerungen und eignet sich gleichermaßen für alte TFS-Hasen und Interessierte.
Wachsende Daten beanspruchen schnellere und klügere Systeme, um die Datenverarbeitung bewältigen zu können. Die zeitgemäße Antwort darauf lautet: Big Data mit NoSQL! MongoDB ist eine der beliebtesten NoSQL-Datenbanken und bietet dem .NET-Entwickler einige Vorteile gegenüber bekannter SQL-Datenbanken. Der MongoDB-Experte Gregor Biswanger zeigt in seiner Session dazu einen perfekten Überblick und einige Tipps zum Einstieg aus der Praxis.
Ist der Entschluss einmal gefasst und die Entscheidung getroffen in die Cloud zu gehen, stellt sich als nächstes die Frage nach der optimalen Vorgehensweise. Oftmals gilt es, komplexe und gewachsene Anwendungen zu migrieren bzw. Cloud-fähig zu machen. Das muss nicht in einem gewagten Schritt passieren. Azure Hybrid Connections helfen bei der schrittweisen Migration. In dieser Session wird der Einsatz von Azure Hybrid Connections anhand eines realen Beispiels demonstriert. Praxisorientierung durch Live-Coding steht dabei im Vordergrund.
Eine moderne App bietet nicht nur eine schicke Oberfläche, sondern auch eine gute Usability. Doch wie können Design und UX auf unterschiedlichen Plattformen effizient entwickelt werden? Jörg Neumann stellt in seiner Session konkrete Lösungsansätze vor und zeigt beispielweise, wie Custom Controls entwickelt werden, die nicht nur auf dem Desktop, sondern auch auf iOS und Android nativ gerendert werden.
Nachdem Microsoft nun viele Lücken in Entity Framework Core geschlossen hat, macht es wenig Sinn, noch mit dem klassischen Entity Framework Core zu arbeiten. Der Nachfolger des Entity Frameworks läuft nicht nur auf Windows, sondern auch Linux, Mac, iOS und Android. Neben einer höheren Geschwindigkeit, weniger RAM-Bedarf und Plattformunabhängigkeit bietet die neue Version auch zahlreiche neue Features für den Datenbankzugriff (z. B. Batch Updates, Shadow States, LINQ-Verbesserungen, globale Filter, SQLite-Unterstützung). DOTNET-DOKTOR Holger Schwichtenberg präsentiert in diesem Vortrag die Neuerungen in den Versionen 2.2 und 3.0. Er stellt auch die noch bestehenden Unterschiede zum klassischen Entity Framework 6.2 dar.
Softwareentwicklung ist Modellbildung. Wir bauen einen Teil der Wirklichkeit als Programm nach und verbessern sie so. Ein traditioneller Ansatz ist, die Domäne als Ganzes möglichst detailgenau nachzubilden. Aber ist das eigentlich der Zweck von Modellen? Wenn wir genau hinschauen, bemerken wir, dass ein Modell eigentlich genau das Gegenteil ist: Ein Modell ist nämlich eine Abstraktion der Wirklichkeit, in die nur das Wesentliche übertragen und das Unwesentliche weggelassen wird. Was wesentlich und was unwesentlich ist, ergibt sich aus dem Kontext. Ein einfaches Modell ist leichter zu verstehen als ein kompliziertes. Deshalb ist es eine gute Idee, von einer komplizierten Wirklichkeit mehrere einfache (und einfach verständliche) Modelle zu bilden. Genau diesen Effekt machen sich Microservices und DDD mit seinem strategisches Design zunutze. Hier werden statt dem einen großen unternehmensweiten Modell, mehrere kleine gut verständliche Modelle gebildet. In diesem Talk betrachten wir, welche Mittel uns zur Verfügung stehen, um gute Modelle zu bauen und die Domäne so aufzuteilen, dass wir auch mit mehreren sinnvoll und unabhängig arbeiten können.
In dieser Session stellt Ihnen Ingo Rammer die von der Linux Foundation betreute Open-Source-Blockchain-Basistechnologie Hyperledger Fabric vor. Sie lernen die Grundlagen von Fabric für den Betrieb von privaten bzw. berechtigungsgestützten Blockchains kennen und erfahren die dafür geeigneten Einsatzgebiete, Architekturentscheidungen sowie Sicherheitsaspekte. Diese Session ist eine optimale Grundlage, um Sie für die Folgesession "Coding Hyperledger Fabric - Smart Contracts und Clients mit Node.js" vorzubereiten.
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 Cloud-Selbsthilfe. 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.
Agile teams and organizations need to focus on so much more than their software development methodology, flavor of Agile, or measurements of agility. If we’re not building what is valuable to and desired by customers, who cares if estimations were accurate, productivity was good, and efficiency was glorious? This is where UX specialists shine and are valuable investments.
Debbie Levitt’s stories of being a 20+ year UX specialist in a Fortune 500 that misunderstood, belittled, circumvented, and overruled User Experience specialists will have you laughing, cringing, and wondering if these disasters are happening in your organization… and if your DevOps are in the intensive care unit.
Mit Adaptive Cards können Teile von User Interfaces mit JSON gemeinsam für HTML-Clients, Android, iOS, WPF, UWP, und Xamarin.Forms geschaffen werden. Diese Session gibt einen Einstieg in Adaptive Cards, welche Möglichkeiten diese Karten bieten, und zeigt die Verwendung in Chat Bots, mit HTML-Clients, in WPF, UWP und Xamarin.
Das Problem ist real: Die Produktivität in vielen Softwareprojekten sinkt unerwartet schnell, weil nicht nachhaltig entwickelt wurde. Legacy Code, Brownfield Code, The Big Ball of Mud... Diese und andere Bilder beschreiben die Situation in der Codebasis plakativ. Die Analogie, dass es sich dabei um einen Schuldenberg handle, dass technische Schulden aufgenommen wurden, die abgezahlt werden müssten damit es besser wird, ist jedoch entgegen ihrer Beliebtheit wenig hilfreich. Der Situation in der Codebasis und dem Tagesgeschäft entspricht nicht einer Situation, in der finanzielle Schulden aufgenommen werden; die Analogie suggeriert Verhältnisse, die nicht vorhanden sind. Aus einer falschen Vorstellung abgeleitete Gegenmaßnahmen können daher nur zufälligen Erfolg bringen. Der Vortrag erklärt zunächst Punkt für Punkt, warum es sich in Softwareprojekten nicht um technische Schulden handelt - und stellt anschließend eine Analogie vor, die Punkt für Punkt zur Situation typischer Softwareentwicklung passt. Daraus lassen sich dann realistischere Maßnahmen ableiten, um die Produktivität wieder zu steigern oder es gar nicht erst so weit kommen zu lassen.
Azure Blob Storage ist Microsofts Cloud-Dienst zum Speichern von Binary Large Objects (BLOBs). Das sind unstrukturierte Daten wie Bilder, Videos und Textdokumente. Doch neben dem Speichern dieser Daten bietet Blob Storage weitaus mehr. Es lassen sich beispielsweise einfach Snapshots eines Blobs erstellen, um eine Art Versionierung zu bauen, es lassen sich Metadaten auf einem Blob abspeichern und Sie können sogar eine ganze Angular-Applikation direkt in Azure Blob Storage für wenig Geld hosten. Wie all das geht, erfahren Sie neben einem Einstieg in Blob Storage in dieser Session.
Aufbauend auf den Inhalten der Session "Hyperledger Fabric: die Open-Source Basis für Ihre Blockchain" zeigt Ihnen Ingo Rammer in dieser Session, wie Sie die SDKs für Fabric in Ihrem Code nutzen können. Sie lernen, wie Sie von ihrem Client aus Transaktionen initiieren und wie Sie Chaincode (Smart Contracts in Fabric) erstellen können, um diese zu verarbeiten. Sie sehen, wie Sie eventgesteuert auf Ereignisse der Blockchain reagieren können und wie Sie mit den unterschiedlichen Arten von Daten Ihrer Blockchain interagieren. Zu guter Letzt erfahren Sie, wie Sie mit Fabric einen typischen Code>Test>Debug>Deploy-Zyklus umsetzen können.
Alle reden von DevOps. Neno Loje und Dr. Holger Schwichtenberg zeigen Ihnen in diesem Vortrag anhand von Azure DevOps (ehemals VSTS und TFS) an zwei Release-Pipelines, wie das praktisch für eine WebAPI-Serveranwendung mit ASP.NET Core und einen Cross-Platform-HTML-Client mit Angular funktioniert. Sie sehen hier und heute: 1. Wie man trickreich die Unit-Tests aus dem Build-Prozess als Integrationstests in der Release-Pipeline wiederverwendet. 2. Wie man für die Integrationstests die Datenbank elegant erstellt und auf dem aktuellen Stand hält. 3. Wie man die WebAPIs mit Postman testet. 4. Wie man das Web-UI mit Selenium testet. 5. Wie das vollautomatisch getestete Produkt mit einem Mausklick in die Produktion geht. 6. Welche Möglichkeiten Sie zur laufenden Überwachung der Produktion haben.
Tipps und Tricks zum Beschleunigen von Datenoperationen mit LINQ und Entity Framework.
Git und TFS sind ein Traumteam – leider kann Visual Studio nicht das volle Potential ausnutzen, schon allein weil nicht alle verfügbaren Funktionalitäten in der Oberfläche zur Verfügung stehen. Wie Sie trotzdem wichtige Powerfeatures von Git nutzen, um produktiver zu arbeiten und mehr Überblick zu gewinnen, zeigt Ihnen Uwe Baumann in dieser Session.
In diesem Ganztagesworkshop erfahren Sie, wie Sie - ganz ohne CPU-intensives Mining und ohne Kryptowährungen - auf der Basis der Open-Source-Plattform "Hyperledger Fabric" eine private ("permissioned") Blockchain zwischen Geschäftspartnern aufbauen und wie Sie mit Node.js dafür Smart Contracts und HTTP-Endpunkte entwickeln können. Nach einer kurzen Zusammenfassung der technischen Blockchain-Grundlagen sehen Sie, wie eine private Blockchain auf Basis von Hyperledger Fabric konfiguriert und betrieben wird. Danach lernen Sie die Besonderheiten dieser Umgebung zur Entwicklung von Smart Contracts kennen und wie Sie Tools und Vorgehensweisen zum Deployen, Debuggen und Verwalten Ihrer Anwendungen nutzen können. Neben den typischen Sicherheitsaspekten von Blockchain-Anwendungen im Geschäftsumfeld lernen Sie auch verschiedene Versionierungs- und Governance-Strategien zum langfristigen Betrieb Ihrer Smart Contracts kennen. Zu guter Letzt sehen Sie, wie Sie mit zwischengeschalteten Node.js APIs zwischen .NET-Anwendungen und den entstandenen Smart Contracts bidirektional kommunizieren können, um den Datenaustausch zwischen Ihren existierenden Systemen und der Blockchain-Umgebung zu erlauben.
Dieser Workshop stellt Ihnen die wichtigen Grundlagen für den Einsatz in eigenen Projekten vor und nimmt eine Einordnung in den Kontext der Azure Cosmos DB vor. Sehen Sie anhand von Beispielen, wie eine Cosmos-Datenbank und Collection erzeugt werden und wie mittels der unterschiedlichen APIs die Zugriffe realisierbar sind: SQL API, MongoDB API, Cassandra API, Gremlin API, Table API.
Dabei erläutert Thorsten Kansy alle wichtigen Grundbegriffe und Stärken/Schwächen, sodass dem eigenen Einstieg in diese Technologie nichts mehr im Wege steht. Wo möglich und sinnvoll, kommen Tools wie Azure Cosmos DB Emulator und Azure Comos DB Data Migration Tool zum Einsatz)
Ein besonderes Augenmerk wird dabei auch auf Entity Framework Core 2.2 gelegt, das erstmals einen Zugriff über Microsofts O/R Mapper ermöglicht.
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 als auch beim Deployment der Anwendung vom Testsystem bis in die Produktion.
In diesem interaktiven Workshop lernen Sie an verschiedenen End-to-End-Beispielen, wie Sie der Team Foundation Server (TFS) bzw. die Onlinevariante "Azure DevOps Services" dabei unterstützen kann, die Prozesse nach dem Einchecken – also: kontinuierliche Builds, automatisierte Tests, Deployment und Releases – zu automatisieren.
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!