Vorträge

RSS
Geändert am So, 17 Jun 2018 15:31 von Manuel Stelter Kategorisiert als Nicht kategorisiert

Sessions (60 Minuten)

Wir holen Berlin nach Köln – Ein HoloLens-Hackathon

Daniel Adolphs

Virtual-, Augmented- und Mixed Reality sind stetig wachsende Begriffe, die nicht nur Gamer-Herzen höherschlagen lassen. Mit stetig verbesserter Technologie und steigendem Marktanteil sind auch den Einsatzmöglichkeiten in industriellen Bereichen kaum Grenzen gesetzt.

Bei dieser immer rasanter fortschreitenden Entwicklung werden die Fragen immer größer: Wie kann ich möglichst schnell und effizient in diese Entwicklung einsteigen? Welche Technologien muss man sich aneignen und worauf sollte dabei geachtet werden? Wie so oft führen auch hier viele Wege nach Rom.

Inspiriert durch Anwendungsfälle in der Baubranche und unter Zuhilfenahme des Unity3D-Frameworks, haben wir im Rahmen eines internen Hackathons eine kleine MR-App für den Einsatz auf Microsofts HoloLens umgesetzt. In diesem Erfahrungsbericht gibt Daniel Adolphs einen Einblick in diese Variante der App-Entwicklung für HoloLens und damit verbundene Herausforderungen – mit anschließender interaktiver Demo!

(Level 200, 60 min)

Web Assembly - eine Revolution des Webs

Florian Bader - Lukas Ochsenreiter

Ein Web ohne JavaScript ist heute undenkbar. Doch die Skriptsprache bekommt Konkurrenz: Von Web Assembly. Web Assembly ist ein Low-Level Bytecode Format für den Browser. Dabei führt es unter Berücksichtigung der Hardwareressourcen zu einer schnelleren Ladezeit und Ausführung. Aktuell können C oder C++ in Web Assembly Bytecode kompiliert werden und weitere problemorientierte Sprachen wie C# oder Java sind bereits angedacht. Werden wir also in Zukunft auf JavaScript verzichten können und nur noch Assembler im Web machen oder was hat es hiermit auf sich?

Auf Basis eines Projektes aus der Praxis erfahren Sie, wie man bestehenden Anwendungen im Web lauffähig bekommt, welche Vorteile und Nachteile das neue Format mit sich bringt und für welche Anwendungsfälle es besonders geeignet ist. Kann in Zukunft auf JavaScript verzichtet werden oder deckt Web Assembly nur eine Nische ab?

(Level 100, 60 min)


Become a productive .NET developer with JetBrains Rider

Maarten Balliauw

With .NET Core, an explosion of .NET IDE's happened! There's good old Visual Studio, but also VS Code and JetBrains Rider. In this talk, we'll dive into the latter. We'll explore navigation, automatic inspections and quick fixes, code generation, built-in tooling like version control integration and local history and look at the special scenario's the debugger has to offer, like conditional breakpoints and on-the-fly decompilation of third party libraries. Come to this session to learn about this new (and fast!) kid on the block and learn plenty of tips & tricks to enhance your development productivity.

(Level 100, 60 min)

Hab ich was vergessen? Ihre ultimative Checkliste für Schutz und Lizenzierung

Stefan Bamberg

Will ich meine Software erfolgreich am Markt etablieren, dann muss ich auf der einen Seite dafür sorgen, dass niemand an mein in der Software enthaltenes Know-how herankommt, aber auf der anderen Seite auch Lizenzmodelle integrieren, mit denen ich attraktiv und damit wettbewerbsfähig bin. Möchte ich international unterwegs sein? Setze ich besser auf Dongles oder auf Softwarelizenzen? Werde ich früher oder später meine Software auch in die Cloud bringen? Wie baue ich Schutz und Lizenzierung in meine Software ein? Wieviel Zeit brauche ich dafür? Wie kommen die Kunden an Ihre Lizenzen? Fragen über Fragen, auf die man gerne eine Antwort hätte. Genau diese wird der Vortrag liefern. Holen Sie sich Ihre Checkliste für Schutz und Lizenzierung.

(Level 100, 60 min)

Electron: Einstieg in die Entwicklung von Cross-Platform Desktop Software

Gregor Biswanger

Bring Your Own Device wird für Unternehmen immer wichtiger. Die Software soll nicht nur auf dem Windows Computer, sondern ebenfalls auf dem Mac eingesetzt werden. Das funktioniert leider nicht mit dem .NET-Framework oder der Java Runtime. Die Lösung: Electron! Mit nur einem Code wird eine hoch performante Geschäftsanwendung für Windows, Mac und Linux entwickelt. Sie steigen mit den Grundlagen von Electron ein und werden dann mit den wichtigsten Tools und Vorgehensweisen vertraut gemacht. Mit diesen Infos steigen Sie rasch zum versierten Cross-Platform Entwickler auf.

(Level 100, 60 min)

Die GPU und .NET

Tim Borowski

Liest man von Grafikkarten, dann meist im Zusammenhang von Computerspielen und Bitcoins. Aber nicht nur deswegen werden Grafikkarten immer wichtiger. Während die Leistungszuwächse einzelner Prozessoren nicht mehr so rasant voranschreiten, steigt die Anzahl der Shader-Module auf Grafikkarten unbeirrt weiter. Die Einstiegshürde und die Berührungsängste sind leider recht hoch. In dieser Session möchte ich Ihnen den Einstieg in die Grafikkartenentwicklung via C#.NET erleichtern. Dazu nutzen wir einen C#-Direct3D Wrapper namens SharpDX. Ich werde Ihnen die Konzepte der Grafikkartenentwicklung samt der Renderpipeline näher bringen, um Ihnen den Weg zur GPU zu ebnen.

(Level 100, 60 min)

Generic < S >

Tim Borowski

Generics sind nichts Neues und auch kein neuer Trend. Dennoch sieht man im Alltag immer wieder Code, der auf Generics konsequent verzichtet. C# Generics unterscheiden sich grundlegend von Templates, die Sie aus C kennen und Generics aus Java. Generics können sowohl zur Laufzeit, als auch zur Compilezeit enorme Vorteile bieten. Um sie sinnvoll einzusetzen, muss aber auch die Codebasis passend gestaltet sein. In dieser Session möchte ich Ihr Auge bezüglich der Trennung von Daten, Algorithmen unter dem Fokus Generics schärfen. Zudem werden Sie verstehen, wie die CLR mit Generics umgeht.

(Level 100, 60 min)

ASYNC HARDCORE

Stefan Dirschnabel

Ganz sicher haben Sie die folgenden Begriffe schon gehört: Threads, Tasks (Task.Factory vs. Task.Run()), TPL, Async / Await, Thread-Pool, Scheduler, usw. Ganz sicher wissen Sie auch worin sich diese Begriffe unterscheiden. Natürlich wissen Sie, dass es Unterschiede zwischen Foreground und Background-Threads gibt. Sie wissen wie async / await funktioniert. Sie wissen was async / await für ihre Software-Architektur bedeutet und was IO-bound bzw. CPU-bound Operations sind und warum bei einem Task eben nicht immer ein Thread auf der CPU ausgeführt wird. Sie verstehen ganz genau wann es bei async / await zu Deadlocks kommen kann, wie man async / await innerhalb von Bibliotheken implementiert und selbstverständlich kennen Sie den Einsatz von ConfigureAwait(…) aus dem Schlaf. Richtig verstanden haben Sie auch die Probleme die im Zusammenhang zwischen Events und der nebenläufigen Programmierung auftreten können..

...oder etwa nicht?

Ein detailliertes Verständnis der oben genannten Thematiken wird für die moderne Softwareentwicklung immer wichtiger. Neue Bibliotheken wie wir sie im Azure Umfeld vorfinden arbeiten nur noch asynchron. In diesem Vortrag werde ich alle oben genannten Themen ansprechen und vor allem: verständlich erklären. Wir werden die asynchrone Programmierung endlich vollständig verstehen. Vorbeischauen und anschnallen.

(Level 400, 60 min)


SOLID für .NET und JS

Stefan Dirschnabel

SOLID, das sind fünf Prinzipien zum Entwurf und der Entwicklung wartbarer Software-Systeme. Das Wissen um und über diese Prinzipien sollte zur Basis jedes Software-Entwicklers gehören! Die durch Uncle Bob bekannt gewordenen Prinzipien werden praktisch immer anhand stark typisierter Sprachen erklärt. In der immer stärkeren werdenden Webentwicklung spielt jedoch Javascript als dynamisch typisierte Sprache eine entscheidende Rolle. Im Web-Frontend kommen auch .NET Entwickler nicht mehr an JS vorbei. Lassen sich die SOLID Prinzipien, z.B. das Interface Segregation Principle überhaupt auf JS anwenden wenn es doch gar keine Interfaces gibt? Auch in der Literatur ist sind die Zusammenhänge zwischen JS und SOLID praktisch nicht existent.

In diesem Vortrag werden die SOLID Prinzipien und ihre Umsetzungsmöglichkeiten an einem ausführlichen Beispiel in C#.NET sowie zusätzlich in Javascript detailiert erklärt. Ziel des Vortrages ist es, dass Sie direkt am nächsten Tag von dem neu erworbenen Wissen profitieren und SOLID einfach erkennen + fixen können. Deswegen zeige ich Ihnen gegen Ende des Vortrags wie Sie anhand einfacher Codesmells die SOLID Prinzip erkennen und beheben können.

(Level 400, 60 min)


Am Tag als Bob der Baumeister starb

Jan Fellien

Stein um Stein bauen wir Software, ganz wie es sich der Software Architekt überlegt hat. Das klappt schon seit Jahren perfekt und niemand käme auf die Idee etwas daran zu ändern. Außer vielleicht eine Quadrillion Softwareentwickler, die nicht das Gefühl haben, dass man eine Applikation einfach, mir nichts, dir nichts, zusammenstecken kann. Die Metapher der Baumeister in der Softwareentwicklung ist schlichtweg falsch. Es Zeit für eine Retrospektive. Schauen wir uns die letzten 50 Jahre Softwareentwicklung an und evaluieren, Wer, Wie und Was wir sind. Das Ergebnis ist überraschend.

(Level 100, 60 min)

Immer mit dem Strom - Datastreaming

Jan Fellien

Relationale Datenbanken sind ja sowas von vorgestern und mit unstrukturierten Datenhaltungen sieht es auch nicht besser aus. Stück für Stück mutieren sämtliche Datensenken zu unwartbaren inperformanten Datenklumpen, denen man nicht ansehen kann, wie sie entstanden sind. Wie kommt das nur?

Weil wir Entwickler immernoch hauptsächlich in Daten denken und dabei die Realität aus den Augen verlieren. Wie funktioniert denn in Wirklichkeit das Business? Es geschehen sogenannte Geschäftsereignisse. Sie bestimmen in Form von zeitlichen Veränderungen, was tatsächlich passiert. Darum brauchen wir eine neue Form der Datenhaltung, den Stream. Hiermit werden Daten nicht mehr überschrieben, so dass jeder erdenkliche Datenzustand der Vergangenheit wieder hergestellt werden kann. Wie man eine Applikation mit Streams steuert und entwickelt soll dieser konzeptionelle Vortrag zeigen. (Level 100, 60 min)

Xamarin Show

Marian Grzesik

"Xamarin Show" is eine Präsentation der aktuellen Möglichkeiten der App-Entwicklung mit Xamarin.

Die wichtigsten Punkte der Präsentation:

  1. Installation von Visual Studio 2017 mit Xamarin
  2. Simulatoren für Android und iOS
  3. Testen auf dem Handy
  4. iOS Designer, Android Designer, Xamarin Live Player
  5. iOS Provisioning / Android App Signieren & Packaging
  6. Xamarin University Training
  7. Native Views vs. Xamarin.Forms
  8. Xamarin.Forms Rendering, Animations, SkiaSharp, ...
  9. .NET Standard Libraries mit Xamarin
  10. Prism für Xamarin.Forms
  11. Continuous Integration, Cloud Tests in Visual Studio App Center kurz darstellen

(Level 100, 60 min)

Azure Functions Deep Dive

Sia Ghassemi

Serverless ist eine beliebte Architektur, kostengünstig und hilft zuverlässige und skalierbare Services zu erstellen. Azure Functions, die serverless Implementierung in Microsoft Azure, ist ein etablierter Service und bekommt in letzter Zeit immer mehr Aufmerksamkeit.

Aber oft kommt die frage auf wie es unter der Haube aussieht. Wie ist Azure Functions aufgebaut und wie können wir das debuggen, falls notwendig? Dieser Vortrag gibt einen tieferen Einblick in Functions and zeigt auf wie und wo man startet wenn man eine Function lokal testen und debuggen möchte. Das ist ein guter start um sich an dem open-source-project zu beteiligen.

(Level 400, 60 min)



Was sind Azure Functions?

Sia Ghassemi

Diese Session gibt einen Überblick über Azure Functions und erläutert die Grundlagen von "Serverless Computing". Sie zeigt anhand von Beispielen aus dem "echten Leben" wie man eigene Anwendungen auf funktionaler Ebene quasi "grenzenlos" und zu einem Bruchteil der Kosten on-demand skalieren kann. "Serverless Computing" ist zu recht eines der kommenden großen Themenfelder und wird den Bereich rund um "verteiltes Rechnen" ganz neu definieren.

(Level 100, 60 min)

Xamarin.Forms Apps mit CQRS und EventSourcing

Sia Ghassemi

Die Flux-Architektur ist mittlerweile dank Patterns wie Redux sehr bekannt und gemeinsam mit dem React-Framework ist es mittlerweile ein Quasi-Standard für WebApps. Oft werde ich gefragt, ob es nicht auch Sinn ergibt die Flux-Architektur für native Mobile Apps einzusetzen. Bei nährerer betrachtung stellt man schnell fest, dass es sich bei Redux um nichts anderes als eine kombination aus CQRS und einer CurrentState in sogenanten StateStores handelt. Es gibt mittlerweile Redux implementierungen für .NET und damit auch für Xamarin und Xamarin.Forms. Also stellte sich die Frage, ob es auch möglich ist eine implementierung mit CQRS und EventSourcing umzusetzen und dabei Events zu erzeugen und den CurrentState einfach aus der Events zu erzeugen. Dieser Vortrag zeigt eine Beispielimplementierung mit Xamarin.Forms, Prism.Forms und einem einfach in-memory EventStore. Dabei wird dann auch auf die Vor- und Nachteile einer solcher Implementierung eingegangen.

(Level 300, 60 min)

Customizing ASP.NET Core

Jürgen Gutsch

ASP.NET Core bietet viele Möglichkeiten, um auf individuelle Anforderungen angepasst zu werden. So gibt es einige Stellschrauben, die gedreht werden können um Module und Komponenten beliebig zu modifizieren oder gar zu ersetzen. Das Logging passt euch nicht? Ihr nutzt andere Konfigurationen? Ihr nutzt eine bessere Dependency Injection Library? Kein Problem, wir zeigen euch die wichtigsten Stellschrauben.

(Level 300, 60 min)

Was ist neu in ASP.NET Core 2.x?

Jürgen Gutsch

ASP.NET Core 2.0 ist seit letztem Sommer released, die Version 2.1 steht kurz bevor, aber was hat sich getan seit der Version 1.1? Kann man ASP.NET Core nun ohne bedenken und ohne Einschränkungen in echten Projekten nutzen? In diesem Vortrag zeigen wir Ihnen die wichtigsten neuen Features der aktuellen Version 2.0 und interessante Neuerungen der kommenden Version 2.1.

(Level 200, 60 min)

GraphQL mit Prisma in der Anwendung – Besser als REST?!

Peter Hecker

Wir schauen auf die Technologien „GraphQL“ und „Prisma“, wofür die gut sind und was man damit so machen kann. „GraphQL“ wurde übrigens von Facebook entwickelt und wird schon seit Jahren als Datenschnittstelle für die mobilen Anwendungen eingesetzt.

Bei GitHub ist „GraphQL“ auch im Einsatz. Und ob „GraphQL“ jetzt wirklich besser ist als „REST“, dass kann ja dann jeder für sich entscheiden.

(Level 200, 60 min)

Azure Cosmos DB

Thorsten Kansy

Diese Session 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. Es zeigt anhand praktischer Beispiele, wie eine funktionsfähige Datenbank angelegt und mit Daten gefüllt wird und wie die Daten abgefragt werden können. Dabei erläutert Thorsten Kansy alle wichtige Grundbegriffe, so dass dem eigenen Einstieg in diese Technologie nichts mehr im Wege steht.

(Level 200, 60 min)


Intelligenz als Basis für Anwendungen der nächsten Generation

Constantin "Kostja" Klein

Alle Welt spricht von AI oder künstlicher Intelligenz, doch warum ist dieses Thema auch für Entwickler interessant? Was genau macht denn eigentlich eine intelligente Anwendung aus und wie helfen Angebote der Microsoft AI Platform, wie z.B. Cognitive Services, dabei die eigene Applikation mit Intelligenz anzureichern? In dieser Session gibt es einen Rundflug über verschiedene Angebote und Möglichkeiten die eigene Anwendung intelligenter zu machen, aber auch Einblicke, wie schnell und einfach ein intelligenter Bot entwickelt werden kann.

(Level 200, 60 min)

SQL Server 2017 für Entwickler

Constantin "Kostja" Klein

Seit Oktober 2017 ist der neue SQL Server da und hat etliche Neuerungen in allen Bereichen mit im Gepäck. Doch vieles davon begeistert zwar den DBA oder den BI-ler, aber sind denn auch spannende Features für den Entwickler dabei? Und falls ja, welche sind das? Ich habe mich auf die Suche begeben und möchte dieser Frage in meiner Session auf den Grund gehen.

(Level 300, 60 min)

Xamarin ohne Mac und Android SDK? So weit kommen Sie mit dem Xamarin Live Player

André Krämer

Wer in die App-Entwicklung mit Xamarin einsteigen möchte braucht Geld, Geduld und starke Nerven. Geld, weil für die iOS-Entwicklung ein Mac notwendig ist. Geduld, weil das mehrere Gigabyte umfassende Android SDK inklusive Emulatoren heruntergeladen und installiert werden muss, ehe man auch nur eine Zeile Code für Android übersetzen kann. Starke Nerven, weil es alles andere als intuitiv ist, Mac, XCode, Android und Windows synchron up to date zu halten. Dank des Xamarin Live Players könnte damit endlich Schluss sein. Bereits mit einer minimalen Visual-Studio-Installation können Sie – ganz ohne Mac – Xamarin-Apps entwickeln. Wie weit Sie mit dem Player kommen und ab wann Sie doch einen Mac und ein Android SDK benötigen, erfahren Sie in dieser Session.

(Level 200, 60 min)


Dock mal wieder!

Jörg Krause

Docker gibt's ja schon eine Weile. Aus den ganzen Ankündigungen wurde Ernst - also Praxis. Die Session zeigt, wie man auf Linux und auf Windows Server Docker installiert, einrichtet und ein Projekt lokal deployed. Benutzt wird in beiden Fällen .NET Core. Erklärt wird das Prinzip der Lösung Docker und dessen Vorteile, auch im Vergleich zu VMs. Die Bestandteile einer auf Microservices ausgerichteten Architektur werden gezeigt und die Prozedur im Live-Coding vorgeführt. Die Session eignet sich für Anfänger in Container-Technologien, die jedoch aktive Entwickler von Web-Applikationen sein sollten. Der Vortrag wird abgerundet durch Hosting-Tipps für Amazon AWS und Microsoft Azure, erklärt, was es mit Kubernetes auf sich hat und was demnächst so kommt.

(Level 200, 60 min)


Progressive Web Apps mit Angular: das Web wird nativ(er)

Christian Liebel

Progressive Web Apps (PWA) sind das heiße und topaktuelle Thema in der Webentwicklung. Hinter dem Begriff verbergen sich eine ganze Reihe von Webtechnologien und Vorgehensweisen. Das Ziel: Dem Anwender einer Webanwendung dieselbe User Experience zu bieten, die er von nativen Anwendungen kennt. Das schließt Offlinefähigkeit, Datensynchronisation und Pushbenachrichtigungen mit ein. Gefällt dem Benutzer eine Webanwendung, wird sie mit einem Fingertipp zur auf dem Gerät installierten App – inklusive Icon auf dem Home-Screen. Christian Liebel von Thinktecture zeigt Ihnen die verschiedenen PWA-Features anhand einer Beispielanwendung in Angular – dem Framework zur Implementierung von Single-Page Applications (SPA) von Google, das sich auch zur Programmierung von PWAs hervorragend eignet.

(Level 100, 60 min)


Die neue Art zu Arbeiten bei Microsoft: Releases alle 3 Wochen statt 2 Jahre

Neno Loje

Vergleicht man das Microsoft von heute mit dem Microsoft von vor ein paar Jahren, mag man manchmal kaum glauben, dass es sich um die gleiche Firma handelt: eine ganz neue Offenheit im Hinblick auf Technologien und Prozesse. Ein ganz neues Selbstverständnis und Mitarbeiter, die das neue Mindset verkörpern – was in letzter Konsequenz auch zu Produkten führt, die die neue Vision widerspiegeln. In diesem Workshop geht es am Beispiel von Microsoft um die Reise zu mehr Agilität, um Themen wie Open Source, Git und DevOps, und wie diese Themen Einzug in die Produktentwicklung bei Microsoft und den Alltag von Entwicklern finden. Besuchen Sie diesen Vortrag und holen Sie sich wertvolle Ideen und Inspiration für Ihren Entwicklungsprozess!

(Level 200, 60 min)


Debugging bugs and performance issues in the field

Gad J. Meir

In the field and at customers' site most of the tools used in development are not available and can’t be installed. Microsoft give you many tools, some of them are built into the OS and the others can be used without installation. Those tools can be used in such environments to collect debugging and performance data without intervening with the IT operations. In this practical and demo-based talk, we will introduce and demo tools for the field like Debugging tools for windows, Dump analysis, Windows performance toolkit and many other tools and methods you can use to handle bugs and performance issues in customer's sites and in QA / test environments.

(Level 300, 60 min)

Windows Performance toolkit deep dive

Gad J. Meir

Windows performance toolkit is a free Microsoft collecting and analysis tool. This tool is currently the most advanced toolset available to diagnose complex performance issues. The collector tools can be used without installation and the analyzing tool is very easy to use (but not that easy to interpreted). The tools are useful to developers, Test and QA and IT operations. It can give deep insight into the real time behavior of the software during development and in production. This talk will deep dive on the tools and features included in the windows performance toolkit. Show and demo how to get the tool, use it without installation, collect data and interpret the results. We will demo several practical real live scenarios. Experience based tips and guideline will be shared and discussed.

(Level 300, 60 min)

API-First: Wie Versicherungen sexy werden und sich mit House-Keeping-Aufaben rüsten

Björn Pasch & Dr. Frank Simon

Die Digitalisierung macht auch vor Versicherungen keinen Halt. Das gilt nicht nur intern, sondern natürlich auch gegenüber unseren Endkunden, die eine immer größere Erwartung an digitale Services haben. Im Zuge dieser ganz neuen, zusätzlichen Anforderungen an Versicherungen stellen sich diese immer häufiger die Frage nach ihrer Kernkompetenz: Gehört es zur Kernkompetenz einer Versicherung, sexy Apps zu programmieren, über die ihre Kunden Versicherungen einsehen und modifizieren können? Und intern gefragt: Gehört es zur Kernkompetenz einer Versicherung, E-mail-Server zu hosten oder CRM-Systeme zu betreiben? Eine Antwort auf viele dieser Fragen lässt sich unter dem Begriff API-first subsumieren: Anstatt für alle Frontends selbst verantwortlich zu sein fokussiert eine Versicherung auf einen API-erzeugten Abstraktionslayer, der den Plattformgedanken implementiert. Unternehmen wie John Deere (ja, die Trecker) praktizieren dies seit Jahren. Für Versicherungen besteht allerdings hier häufig das Problem einer intern gewachsenen und seit Jahren erfolgreich betriebenen IT-Architektur: So sehr alle die Digitalisierung begrüßen und sie beschleunigen wollen, die interne IT-Struktur ist dem noch nicht in allen Facetten gewachsen. So existiert das Spannungsfeld zwischen klassischen House-Keeping-Aufgaben, die lediglich das Ziel haben, eine gegebene Infrastruktur zu modernisieren, und echten nach außen gerichteten Innovationen. Der Vortrag wird diese beiden Facetten gleichwertig nebeneinander beleuchten.

(Level 100, 60 min)

Session von Philips Lightning - City Touch

Philips Lightning - City Touch

TBD

(Level ???, 60 min)

What is .NET Standard?

Adam Ralph

.NET Standard is one of many new technologies to emerge from the mass of open source .NET initiatives during the past year. Compared to what's come before, .NET Standard is not only a more effective way to use NuGet packages cross platform, it's also way simpler.

It has the potential to remove most, if not all, of the current confusion surrounding cross platform multi-targeting. So what is exactly is it and how does it work? How does it relate to .NET Core? Join Adam as he answers these questions and more, and takes a dive into some of the magic which makes .NET Standard work.

(Level 200, 60 min)

Finding your service boundaries - a practical guide

Adam Ralph

We know it's useful to split complex systems into logical services. We feel the benefits of modular deployment of microservices, and our cognitive load is eased when we only deal with one piece of code at a time. But how do we know where to draw the service boundaries? In complex business domains, it's often difficult to know where to start. And when you get your boundaries wrong, it's often only a matter of time before you hear yourself say "it would be easier to re-write everything".

Join Adam as he shares practical advice on how to discover the service boundaries hidden in your systems. We'll examine a sample business domain and discover the techniques we can apply to tease out the natural separation of concerns. We'll investigate some of the common pitfalls, including some of the crazy mistakes Adam has made during the last 20 years of developing complex systems.

(Level 300, 60 min)

Wie RESTful ist dein API?

Tobias Richling

Fast jedes API möchte sich heutzutage REST-API nennen dürfen. Dabei gibt es für die Erteilung dieser Plakette klare Regeln. Anhand des Richardson Maturity Model kann man den Grad der Zielerreichung messen. In der Session wird ein Service entwickelt, der das maximale RMM-Level erreicht. Auf dem Weg dahin kann man gut nochmal revue passieren lassen, was man so alles über das HTTP-Protokoll weiß und vielleicht sogar noch etwas dazu lernen. Mit einer fertigen Lösung in der Hand kann man dann über das Für und Wider der einzelnen Anfroderungen diskutieren.

(Level 200, 60 min)


Turn on the SWAG - mit der OpenAPI Specification 3.0

Tobias Richling

Wer kümmert sich schon gern um die Dokumentation die APIs die er baut? Aber was wäre wenn entweder die Dokumentation sich automatisch erstellt und sogar automatisch eine Testoberfläche mitbringen würde? Oder wenn man aus der Dokumentation direkt ein API erstellen könnte? Das alles und noch viel mehr ermöglicht die OpenAPI Specification, a.k.a. Swagger. In der Session wird erklärt was Swagger ist und was es kann. Außerdem wird auf die Neuerungen in der neuen Version 3.0 der zugrunde liegenden Spezifikation eingegangen.

(Level 200, 60 min)


Continuous Delivery in der Praxis

Thomas Rümmler

Stündliche Releases zu ermöglichen ist das Ziel einer Continuous Delivery (CD) Pipeline. Dafür ist neben einer neuen Arbeitskultur auch die Automatisierung der kompletten Pipeline erforderlich. Was mit Hello World Beispielen einfach aussieht, birgt in der Praxis einige Tücken. Berechtigungen, Verfügbarkeit von Build- und Testservern, das Signieren mittels Hardware-Token sowie besonders schützenswerte Zugangsdaten sind Themen, die über das reine Build hinausgehen. Doch genau diese Praxisthemen sind zu lösen, bevor man von einer vollautomatisierten Delivery Pipeline sprechen kann. Wir zeigen an einem Praxisbeispiel, wie man diese Herausforderungen lösen kann. Dabei setzen wir technologisch EV Code Signing mit USB Token, .NET, VS Tools for Office und VSTS ein. Der Vortrag zeigt Konfigurationen, Schritte und PowerShell-Scripts, mit denen wir die Herausforderungen einer vollautomatisierten Pipeline gelöst haben und damit CI/CD auf verschiedenen Release Trains ermöglichen.

(Level 300, 60 min)


Einführung in Python.NET

Stefan Schukat

Python.NET als Bibliothek für C-Python bietet die Möglichkeit auf .NET-Objekte zuzugreifen und dabei die einfach zu lernende Sprache Python zu nutzen. Da Python mit dem Nutzen in der Big Data Analyse einen weiteren Schwung bekommt lohnt sich ein Blick aus der C# Entwicklerbrille auf Python. Entsprechend stellt dieser Vortrag die Möglichkeiten vor, die Python.NET einem Entwickler bietet verschiedene Sprachkonstrukte aus C# in Python zu überführen, um bekannte Bibliotheken aus C# weiter zu nutzen. Damit erschliesst sich dem Entwickler die einfache Welt einer Skriptsprache und deren Vorteilen. Mit IDEs die eine REPL (Read Eval Print Loop) und Intellisense unterstützen hat man schnell eine Skripting Unterstützung für seine C# Projekte und kann schnell etwas ausprobieren. Gleiches gilt für die Einbindung einer Skripting Lösung in ein .NET Programm, d.h., der Anwender kann relativ leicht mal eben etwas skripten. Umgekehrt kann ein Python-Entwickler die vollen Möglichkeiten der BCL nutzen statt sich dafür entsprechende Python Bibliotheken zu suchen. Vor den Möglichkeiten der Bibliothek wird noch ein Überblick über die Historie, Motivation und die Architektur der Bibliothek gegeben.

(Level 200, 60 min)


Von C# 7 zu C# 8

Holger Schwichtenberg

C# wird mittlerweile wie viele andere Microsoft-Produkt in kleineren Schritten weiterentwickelt. In diesem Kurzvortrag stellt Dr. Holger Schwichtenberg die Neuerungen vor, die es seit C# 7.0 gibt, z.B. Nullable Reference Types, Async Main, Tuple Table Inference, Ref Readonly, Private Protected, Non-trailing Named Arguments, Ranges und Default Interface Methods. Sehen Sie auch, wie es nun möglich ist, die Sprachversion unabhängig von der Visual Studio- und .NET-Version zu wählen.

(Level 300, 60 min)

Angular und Microservices – Wie passt das zusammen?

Manfred Steyer

Microservices sind derzeit ein beliebter Architekturstil. Single Page Applications (SPA) auch! Aber wie lassen sich diese beiden Architekturen kombinieren? Die Gute Nachricht: Es existieren hierfür gleich mehrere Ansätze und natürlich hat jeder seine ganz eigenen Vor- und Nachteile. Diese Session diskutiert anhand einer Angular-Anwendung diese Ansätze, die in der Praxis bereits erfolgreich umgesetzt wurden. Die damit einhergehenden Konsequenzen werden aufgezeigt und Möglichkeiten zum Kompensieren der vorherrschenden Nachteile präsentiert.

(Level 100, 60 min)


Querschnittsfunktionen in Angular gekonnt implementieren

Manfred Steyer

Die Umsetzung von Querschnittsfunktionen kann lästig und fehleranfällig sein, weil es sie immer und immer wieder zu Berücksichtigen gilt. Typische Beispiele sind Autorisierung, Warnmeldungen, Fehlerbehandlung oder Caching. In dieser Session erfahren Sie anhand einiger Beispiele, wie Sie solche Anforderungen in Ihren Angular-Projekten gekonnt realisieren können. Dazu kommen Konzepte wie Direktiven, Router Guards und Interceptoren zum Einsatz. Am Ende kennen Sie Ihre Optionen, um Querschnittsfunktionen global zu implementieren.

(Level 300, 60 min)


WebAssembly Revolution am Beispiel von C# und Blazor

Rainer Stropek

JavaScript hatte bisher ein Monopol bei der clientseitigen Webentwicklung. Bei den Frameworks haben wir zwar die Wahl zwischen Angular, React, Vue & Co, am Ende des Tages läuft aber alles auf JavaScript hinaus. Damit ist jetzt Schluss. WebAssembly hat das Zeug, Entwicklung im Browser komplett auf den Kopf zu stellen. In dieser Session möchte Rainer das am Beispiel von Blazor zeigen. Blazor ist ein (experimentelles) Open Source Single Page App (SPA) Framework von Microsoft, das C# und Razor nach WebAssembly und damit in den Browser bringt. Viele Live-Demos, wenige Slides und viele Neuigkeiten, die hoffentlich begeistern und zum Nachdenken anregen.

(Level 200, 60 min)


Serviceorientierte Architekturen

David Tielke

SOA ist von gestern, Microservices sind die Gegenwart. So oder so ähnlich lautet heute die weit verbreitete Meinung, wenn es um die Wahl einer richtigen Architektur geht – zu veraltet und komplex sind die damit assoziierten Technologien wie SOAP oder WSDL. In dieser Session zeigt Architekturexperte David Tielke warum diese Aussage nicht wahr ist. Neben den grundlegenden Prinzipien von SOA, geht es vor allem darum, die Vorteile dieses Ansatzes in nahezu jeder Architektur nutzbar zu machen – egal ob für ein verteiltes System oder ein einzelnes System. Dabei zeigt David zahlreiche Beispiele aus seinem Berateralltag und den damit verbunden Kundenprojekten. Am Ende wird Ihre Meinung zu SOA garantiert eine andere sein.

(Level 300, 60 min)

Angriff der Klonkrieger - Automated Disposable Infrastructure

Rob Wagner

Deploying to production should be boring. Automating your build and deployment process reduces the potential excitement involved in human mistakes as you move from environment to environment.
However, what about the machines you deploy to? Is their setup and install automated? Are you sure that the versions and setting in your test environment match production?
In this session, Robert Wagner, lead developer at Octopus Deploy, will cover how to automate your environment setup using Packer and Terraform. allowing you to provision a new Linux environment with your application dependencies on every deployment. Then we will automatically provision this immutable infrastructure environment on deployment of a .NET Core application, and switch it live.

(Level 300, 60 min)

Keyboards? Where we're going we don't need keyboards

Don Wibier

One of the cornerstones in Microsoft’s digital assistant Cortana are cognitive services. Instead of the traditional Screen / Keyboard / Mouse combination for user interaction with your application, it offers different ways of handling user input.

Think about vision, speech and language – the new way of communicating with your devices – but also how to analyze and structure these kinds of user input.

This session will give you an introduction on the Cognitive Services Platform – show how it can help your end-users – and with live coding examples you will experience how easy it is to start using this incredibly cool API.

(Level 200, 60 min)

Challenges and Surprises from Big Data and Analytics

Anna Zietlow

Working alongside analytics teams can be challenging: shared lanaguage with different meanings, opposing goals, differing processes. Meanwhile, your traditional development technologies crumble under the weight of big data. This session gives an overview of challenges, surprises, and lessons learned from diving into big data and analytics.

(Level 100, 60 min)

Lightning Talks (20 Minuten)

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

Gregor Biswanger

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

(Level 100, 20 min)

Fußball in der Cloud - der FC Basel auf Azure

Jürgen Gutsch

Vor drei Jahren haben wir die komplett neue Version des digitalen Auftritts, eines der erfolgreichsten Fußballclubs der Schweiz, released. Alle Komponenten des digitalen Auftritts (unter anderem bestehend aus: Website, Mobile-Apps, Live-Ticker, Image Database, Videos, Shop, Extranet) wurden designed um auf Azure zu laufen. Seit dem arbeiten wir kontinuierlich an der Platform um neue Features und neue Services zu integrieren, oder um die Performance und die Sicherheit zu erhöhen. Dieser Vortrag zeigt aus was dieser digitale Auftritt besteht, wie dieser gebaut wurde, wie er arbeitet und wie wir kontinuierlich weitere Features und Verbesserungen nach Azure publizieren.

(Level 200, 20 min)

Microsoft AppCenter Quicktour

Tobias Hoppenthaler

Microsoft App Center bietet ein umfangreiches Toolset für Continous Integration, Continous Deployment und mehr. Eine kurze LIVE-Tour durch das App Center gibt einen Überblick über die Funktionalität.

(Level 300, 20 min)


Hype or Hot - das ist hier die Frage

Constantin "Kostja" Klein

Disruptiv - so wird die Veränderung in unserer Branche, ja vielleicht unseres Zeitalters gerne genannt. Darum möchte ich zwar an die Tradition meiner Lunch-Sessions aus den Vorjahren anknüpfen, aber diesmal den Fokus besonders auf die Frage legen welche Auswirkungen die Digitalisierung denn eigentlich auf uns IT-ler und die Anforderungen an uns hat.

Ich freue mich, wenn Ihr in einer kurzweiligen und interaktiven Session mit mir darüber diskutiert.

(Level 100, 20 min)

DevOps: Entwickeln Sie noch oder liefern Sie schon?

Neno Loje

Könnten Sie in Ihrem Projekt problemlos 10 Releases am Tag durchführen? Damit sind wir schon gleich bei einem derzeit aktuellen Thema, nämlich: "DevOps" - der nächsten Evolutionsstufe der Agilität.

Der digitale Wandel bietet für Unternehmen Chancen und Risiken zugleich. In diesem Vortrag geben Neno Loje einen Überblick, wie sich Unternehmen optimal aufstellen können, was es mit ‘DevOps’ und ‘Business Agility’ auf sich hat und warum diese auch für Ihr Unternehmen hochgradig relevant sind. Holen sie sich wichtige Anregungen, wie Sie das Innovationspotenzial Ihrer Softwareentwicklung maximieren können.

(Level 100, 20 min)


Auf der Suche nach dem heiligen Gral: Versionstolerante Schnittstellen in .Net

Kristof Unterweger

Heutige Anwendungen wachsen immer weiter zusammen, da Daten zwischen ihnen ausgetauscht und Anwendungsfälle der einen möglichst nahtlos in die andere integriert werden sollen. Egal ob die Integration per Plugin, Addin oder Automatisierungsschnittstelle gelöst ist, irgendwo verläuft dabei immer der Bruch zwischen zwei sich unabhängig voneinander weiterentwickelnden Systemen. Dieser Bruch führt zu einem immensen Aufwand, um die entsprechenden Schnittstellen synchron zu halten.

Wie können wir hier sowohl aktuelle Features schnell ausrollen und gleichzeitig die Abwärtskompatibilität erhalten ohne die Schnittstelle unnötig aufzublähen? Dieser Vortrag gibt einen Einblick in unsere Erfahrungen, zwei unabhängige Anwendungen mit unterschiedlichen Releasezyklen zu koppeln. Er zeigt unseren aktuellen Entwicklungsstand und unsere Konzepte den Aufwand für das Generieren der nötigen Adapterschicht möglichst gering zu halten um am Ende nicht in der Versionshölle zu schmoren.

(Level 300, 20 min)


dotnet Cologne - die Community-Konferenz des dotnet Köln/Bonn e.V.

!! | -- | ++ | ^^