Am Tag als Bob der Baumeister starb
Friday, 07:30 - 08:30 (60 min)
Track C - 313/314, Haus 7
Level 100
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.
Web Assembly - eine Revolution des Webs
Friday, 07:30 - 08:30 (60 min)
Track A - Saal, Haus 7
Level 100
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?
Dock mal wieder!
Friday, 07:30 - 08:30 (60 min)
Track F - 2/3, Haus 6
Level 200
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.
Was ist neu in ASP.NET Core 2.x?
Friday, 07:30 - 08:30 (60 min)
Track D - 315/316, Haus 7
Level 200
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.
Become a productive .NET developer with JetBrains Rider
Friday, 07:30 - 08:30 (60 min)
Track G - 4/5, Haus 6
Level 100
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.
Was sind eigentlich Azure Functions?
Friday, 07:30 - 08:30 (60 min)
Track E - 1, Haus 6
Level 200
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.
Xamarin ohne Mac und Android SDK? So weit kommen Sie mit dem Xamarin Live Player
Friday, 07:30 - 08:30 (60 min)
Track B - 222, Haus 7
Level 200
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.
WebAssembly Revolution am Beispiel von C# und Blazor
Friday, 09:00 - 10:00 (60 min)
Track A - Saal, Haus 7
Level 200
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.
Progressive Web Apps mit Angular: das Web wird nativ(er)
Friday, 09:00 - 10:00 (60 min)
Track C - 313/314, Haus 7
Level 100
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.
SQL Server 2017 für Entwickler
Friday, 09:00 - 10:00 (60 min)
Track F - 2/3, Haus 6
Level 300
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.
Die neue Art zu Arbeiten bei Microsoft: Releases alle 3 Wochen statt 2 Jahre
Friday, 09:00 - 10:00 (60 min)
Track D - 315/316, Haus 7
Level 200
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!
Hab ich was vergessen? Ihre ultimative Checkliste für Schutz und Lizenzierung
Friday, 09:00 - 10:00 (60 min)
Track G - 4/5, Haus 6
Level 100
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.
Turn on the SWAG - mit der OpenAPI Specification 3.0
Friday, 09:00 - 10:00 (60 min)
Track E - 1, Haus 6
Level 200
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.
Keyboards? Where we're going we don't need keyboards
Friday, 09:00 - 10:00 (60 min)
Track B - 222, Haus 7
Level 200
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.
ASYNC HARDCORE
Friday, 10:15 - 11:15 (60 min)
Track A - Saal, Haus 7
Level 400
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.
Customizing ASP.NET Core
Friday, 10:15 - 11:15 (60 min)
Track C - 313/314, Haus 7
Level 300
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.
Electron: Einstieg in die Entwicklung von Cross-Platform Desktop Software
Friday, 10:15 - 11:15 (60 min)
Track F - 2/3, Haus 6
Level 100
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.
Debugging bugs and performance issues in the field
Friday, 10:15 - 11:15 (60 min)
Track D - 315/316, Haus 7
Level 300
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.
Querschnittsfunktionen in Angular gekonnt implementieren
Friday, 10:15 - 11:15 (60 min)
Track G - 4/5, Haus 6
Level 300
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.
Xamarin.Forms Apps mit CQRS und EventSourcing
Friday, 10:15 - 11:15 (60 min)
Track E - 1, Haus 6
Level 300
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.
Challenges and Surprises from Big Data and Analytics
Friday, 10:15 - 11:15 (60 min)
Track B - 222, Haus 7
Level 100
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.
Auf der Suche nach dem heiligen Gral: Versionstolerante Schnittstellen in .Net
Friday, 11:50 - 12:10 (20 min)
Track A - Saal, Haus 7
Level 300
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.
Microsoft AppCenter Quicktour
Friday, 11:50 - 12:10 (20 min)
Track B - 222, Haus 7
Level 300
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.
Electron.NET: Cross-Platform Desktop Software mit ASP.NET Core
Friday, 11:50 - 12:10 (20 min)
Track C - 313/314, Haus 7
Level 100
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.Gregor stellt sein Project was er zusammen mit Robert Mühsig ins Leben gerufen hat vor.
DevOps: Entwickeln Sie noch oder liefern Sie schon?
Friday, 11:50 - 12:10 (20 min)
Track D - 315/316, Haus 7
Level 100
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.
Hype or Hot - das ist hier die Frage
Friday, 11:50 - 12:10 (20 min)
Track F - 2/3, Haus 6
Level 100
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.
Fußball in der Cloud - der FC Basel auf Azure
Friday, 11:50 - 12:10 (20 min)
Track G - 4/5, Haus 6
Level 200
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.
Von C# 7 zu C# 8
Friday, 12:20 - 13:20 (60 min)
Track A - Saal, Haus 7
Level 300
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.
Wie RESTful ist dein API?
Friday, 12:20 - 13:20 (60 min)
Track C - 313/314, Haus 7
Level 200
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.
Serviceorientierte Architekturen
Friday, 12:20 - 13:20 (60 min)
Track F - 2/3, Haus 6
Level 300
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.
Einführung in Python.NET
Friday, 12:20 - 13:20 (60 min)
Track D - 315/316, Haus 7
Level 200
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.
Windows Performance toolkit deep dive
Friday, 12:20 - 13:20 (60 min)
Track G - 4/5, Haus 6
Level 300
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.
Azure Cosmos DB
Friday, 12:20 - 13:20 (60 min)
Track E - 1, Haus 6
Level 200
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.
Immer mit dem Strom - Datastreaming
Friday, 12:20 - 13:20 (60 min)
Track B - 222, Haus 7
Level 100
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.
Angriff der Klonkrieger - Automated Disposable Infrastructure
Friday, 13:35 - 14:35 (60 min)
Track B - 222, Haus 7
Level 300
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.
Generic <S>
Friday, 13:35 - 14:35 (60 min)
Track C - 313/314, Haus 7
Level 200
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.
Continuous Delivery in der Praxis
Friday, 13:35 - 14:35 (60 min)
Track A - Saal, Haus 7
Level 300
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.
Angular und Microservices – Wie passt das zusammen?
Friday, 13:35 - 14:35 (60 min)
Track F - 2/3, Haus 6
Level 100
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.
Wir holen Berlin nach Köln – Ein HoloLens-Hackathon
Friday, 13:35 - 14:35 (60 min)
Track D - 315/316, Haus 7
Level 200
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!
Finding your service boundaries - a practical guide
Friday, 13:35 - 14:35 (60 min)
Track G - 4/5, Haus 6
Level 300
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.
Xamarin Show
Friday, 13:35 - 14:35 (60 min)
Track E - 1, Haus 6
Level 100
"Xamarin Show" is eine Präsentation der aktuellen Möglichkeiten der App-Entwicklung mit Xamarin. Die wichtigsten Punkte der Präsentation: Installation von Visual Studio 2017 mit Xamarin Simulatoren für Android und iOS Testen auf dem Handy iOS Designer, Android Designer, Xamarin Live Player iOS Provisioning / Android App Signieren & Packaging Xamarin University Training Native Views vs. Xamarin.Forms Xamarin.Forms Rendering, Animations, SkiaSharp, ... .NET Standard Libraries mit Xamarin Prism für Xamarin.Forms Continuous Integration, Cloud Tests in Visual Studio App Center kurz darstellen
SOLID für .NET und JavaScript
Friday, 15:00 - 16:00 (60 min)
Track A - Saal, Haus 7
Level 400
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.
Intelligenz als Basis für Anwendungen der nächsten Generation
Friday, 15:00 - 16:00 (60 min)
Track C - 313/314, Haus 7
Level 200
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.
What is .NET Standard?
Friday, 15:00 - 16:00 (60 min)
Track F - 2/3, Haus 6
Level 200
.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.
Die GPU und .NET
Friday, 15:00 - 16:00 (60 min)
Track G - 4/5, Haus 6
Level 100
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.
Azure Functions Deep Dive
Friday, 15:00 - 16:00 (60 min)
Track E - 1, Haus 6
Level 400
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.
API-First: Wie Versicherungen sexy werden und sich mit House-Keeping-Aufaben rüsten
Friday, 15:00 - 16:00 (60 min)
Track B - 222, Haus 7
Level 100
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.