Lambdas, Func, Expressions => Wer braucht das?!
Friday, 07:30 - 08:30 (60 min)
Track A - Saal, Haus 7
Level 300
Jeder Entwickler der mit LINQ schon in Berührung kam, kennt das ominöse Pfeilchen in seinem Code. Doch dennoch gibt es noch Entwickler die Berührungsängste vor solchen Ausdrücken haben und sich unsicher sind bei der Verwendung. Doch was steckt hinter solch einem Pfeilchen? Wofür kann ein Entwickler dieses Nutzen und was ist nun eine Expression bzw. LambdaExpression in der CLR? In 60 Minuten werden Sie aber gerade auf diesem Gebiet Meister, und selbst als Kenner fallen hier Details auf die für Sie neu sein werden
Azure DevTest Labs
Friday, 07:30 - 08:30 (60 min)
Track B - 222, Haus 7
Level 300
Mit den Azure DevTest Labs lassen sich in kürzester Zeit komplexe Testumgebungen in Azure anlegen. Wie kann ich die DevTest Labs nutzen und welche Möglichkeiten habe ich? Wie lege ich die DevTest Labs mittels Azure Resource Manager Templates (ARM) an? Und wie behalte ich Kontrolle über meine Kosten? Anhand einiger Demos wird gezeigt, wie man die DevTest Labs für sich optimal nutzen kann.
Von 0 auf 100 mit Git und Visual Studio
Friday, 07:30 - 08:30 (60 min)
Track C - 313/314, Haus 7
Level 100
In einer knackigen Stunde werden sie die Befehle lernen, die Sie wirklich benötigen. Git ist zurzeit die angesagte Versionsverwaltung. Sie werden es nicht bereuen von TFSVC nach Git zu migrieren! Allerdings hat sie eine ganz eigene Philosophie, welche ich Ihnen vorstellen möchte. Dazu werden Sie die Verwendung sowohl im Visual Studio 2015 als auch in der Kommandozeile kennen lernen. Es erwartet Sie ein Crashkurs ohne viel Schnickschnack, griffig und mit nachvollziehbaren Beispielen.
Authentifizierung und Autorisierung mit Angular
Friday, 07:30 - 08:30 (60 min)
Track D - 315/316, Haus 7
Level 300
Die wenigsten Anwendungen kommen ohne Authentifizierung und Autorisierung aus. Damit Benutzer nicht für jede Anwendung ein eigenes Passwort pflegen müssen, gilt es bestehende Identity-Lösungen zu berücksichtigen. Im Web-Umfeld sind das Dienste, wie Facebook oder Twitter und Enterprise-Anwendungen müssen meist Verzeichnisdienst, wie Active Directory, einbinden. Diese Session zeigt, wie Sie diese Anforderung in Ihren Angular-Anwendungen umsetzen können. Dazu geht sie auf die populären Standards OAuth 2 und OpenId Connect ein und zeigt, wie diese mit Angular und dem neuen Router genutzt werden können.
TFS ohne Aufwand in der Cloud nutzen - taugt das was?
Friday, 07:30 - 08:30 (60 min)
Track E - 1, Haus 6
Level 200
Microsoft bietet den Team Foundation Server (TFS) nun auch fix und fertig in der Cloud an, gehostet auf Webservern in Westeuropa, bei null Installationsaufwand und kaum Admin-Aufwand. Und fünf Benutzer sind gratis sowie alle MSDN-Abonnenten und Stakeholder. Klingt doch soweit verlockend, finden Sie nicht auch? Der Vortrag zeigt, was der TFS in der Cloud kann, und zeigt Vorteile und Schwächen der Lösung auf sowie Best Practices, wenn Sie sich für den Weg in die Cloud entscheiden. Bringen Sie gerne Ihre Fragen mit!
Docker Container im Microsoft Universum
Friday, 07:30 - 08:30 (60 min)
Track F - 2/3, Haus 6
Level 200
Linux-VMs mit Docker in Azure, die neuen Azure Container Services (ACS), Docker auf Windows - Microsoft hat die durch Docker populär gewordene Containertechnologie lieb gewonnen. In dieser Session gibt Rainer Stropek, langjähriger Azure MVP und Microsoft Regional Director, einen Überblick über den aktuellen Stand der Dinge in Sachen Docker-Container im Microsoft-Universum. Er erklärt, wie man auf seiner Windows-Maschine Docker lokal einsetzen kann, geht auf die Unterstützung von Docker in Azure ein und zeigt anhand von Demos Windows Server Container in Verbindung mit Docker.
1 Firma. 45 Mitarbeiter in 15 Zeitzonen. So funktioniert erfolgreiches Remote Working
Friday, 07:30 - 08:30 (60 min)
Track G - 4/5, Haus 6
Level 200
Bist du nicht im Büro so hast du nicht gearbeitet. Punkt, Aus, Ende Schluss! So tönt es aus den Management Etagen in vielen Unternehmen. International denkt man anders. Als Solution Architect für Particular Software Ltd. habe ich das Glück für eine Unternehmung zu arbeiten, die auf der ganzen Welt zerstreut ist. Zusammen mit 45 anderen «Particles» in 15 Zeitzonen bauen wir ein Softwareprodukt für verteilte Systeme für über 1000 Kunden weltweit. Ich zeige euch wie wir als zerstreute Firma unseren Arbeitsalltag gestalten und die Herausforderungen des Remote Workings meistern. Komm vorbei, ich zeige dir warum aus meiner Sicht Remote Working die Zukunft ist.
Application Monitoring mit Application Insights
Friday, 09:00 - 10:00 (60 min)
Track B - 222, Haus 7
Level 200
Application Insights verspricht Monitoring ohne viel Code schreiben oder Server aufsetzen zu müssen. Klingt zu gut um wahr zu sein? In dieser Session stellt Rainer Stropek, langjähriger Azure MVP und MS Regional Director, Application Insights vor. Er zeigt, wie man die Plattform in .NET und JavaScript einbaut und mit Hilfe der APIs erweitert. Anschließend demonstriert er, wie man die gesammelten Daten auswertet, in Dashboards darstellt und darauf basierende Alerts aufsetzt.
Wer braucht schon guten Code, wenn es Sch*** Code gibt?
Friday, 09:00 - 10:00 (60 min)
Track A - Saal, Haus 7
Level 200
Erzählen Sie lieber niemanden, dass Sie in diese Session gehen. Nachdem sich jahrelange die verschiedensten Experten den Kopf zerbrochen haben, wie guter Code aussieht, drehen wir in dieser Session den Spieß um. Wenn es guten Code gibt, wie sieht denn so richtig, richtig „schlechter“ (bzw. Sch***) Code aus? Eine Session zum Schmunzeln, Lachen, ja auch Weinen, aber vor allem – „Oh,.. das habe ich auch schon mal gemacht“…
Von Siedlern und Entdeckern
Friday, 09:00 - 10:00 (60 min)
Track C - 313/314, Haus 7
Level 200
"Wo ist meine Änderung von gestern schon wieder hin? Den Fix hab ich gestern erst eingecheckt!" "Was ist das denn jetzt für ein Framework hier? Wer hat das wieder gezogen? So kann ich nicht arbeiten!" Kennst du das, wenn ihr euch im Team einfach nicht einig werdet? Welches Framework ihr benutzt? Oder wie groß so eine Klasse sein darf? Man kann doch nicht ständig Neues ausprobieren. Oder, wir müssen doch auch mal mit der Zeit gehen. Entwickler sind, wie alle Menschen, unterschiedlich. Und gleichzeitig sitzen sie Tag für Tag zusammen und müssen gemeinsam etwas auf die Beine stellen. Dadurch ist Streit natürlich vorprogrammiert. Mit zusammen 47 Jahren Erfahrung in der Softwareentwicklung haben Janek und Dennis so manchen Konflikt erlebt. Sie erzählen dir anhand des Beispiels der Siedler und Entdecker, warum wir Menschen so unterschiedlich sind und warum wir uns gegenseitig trotzdem so sehr brauchen.
Die Liga der außergewöhnlich kurzsichtigen Agile-Superleaders
Friday, 09:00 - 10:00 (60 min)
Track D - 315/316, Haus 7
Level 200
Leadership ist eine Aufgabe für Superhelden! Um Leute zu motivieren, zu begeistern und es möglich zu machen gemeinsam mehr als die Summe der einzelnen Personen zu sein, braucht man Superkräfte: Motivation, Delegation, Empowerment, Micro-Management, Information-Retention, Schutz usw. Manche dieser Superkräfte sind eher positiv, andere negativ geprägt - je nach Situation. Einsetzbar sind sie grundsätzlich immer... solange man weiß was man tut. In diesem Vortrag werden wir einer Truppe außergewöhnlich kurzsichtiger Superhelden folgen, die solche Superkräfte rücksichtlos verwendet. Die Superkräfte helfen und Problemen können wirklich gelöst werden, aber gleichzeitig werden andere geschaffen; mit manch schlimmen Effekten. Jede Superkraft wird mit Erfahrungsberichten und Kampf-Narben präsentiert. Zuletzt werden verschiedene Ideen vorgeschlagen wie die Liga der außergewöhnlich kurzsichtigen Agile-Superleaders als Verbesserungsmittel in euren Teams verwendet werden könnte.
Scaling to the sky - with Azure Functions
Friday, 09:00 - 10:00 (60 min)
Track E - 1, Haus 6
Level 100
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.
Web Performance-Optimierung
Friday, 09:00 - 10:00 (60 min)
Track F - 2/3, Haus 6
Level 300
Websites werden immer langsamer und Benutzer immer ungeduldiger - vereinfacht gesprochen. Also: Was kann man tun, wo kann man optimieren? Wir starten mit Metriken, analysieren Architekturen und schließen mit Browser-Interna.
XAML Expertise – Top-XAML-Tipps aus den letzten fünf Jahren
Friday, 09:00 - 10:00 (60 min)
Track G - 4/5, Haus 6
Level 300
XAML Expertise – Top-XAML-Tipps aus den letzten fünf Jahren
Lohnt sich .NET Core, ASP.NET Core, EF Core?
Friday, 10:15 - 10:35 (20 min)
Track A - Saal, Haus 7
Level 100
Microsoft hat das .NET Framework inklusive ASP.NET und dem Entity Framework noch einmal von Grunde auf neu implementiert. Wir haben jetzt Plattformunabhängigkeit, viel Modularität und ein paar neue Features. Was ist anders und was bedeutet das für uns? Wie weit ist die Entwicklung der Core-Produkte? Für welche Softwareentwicklungsprojekte lohnt es sich, jetzt auf die Core-Produkte zu setzen oder sogar bestehende Projekte umzustellen? DOTNET-DOKTOR Holger Schwichtenberg geht auf diese Fragen in seinem Kurzvortrag ein.
Rider – A powerful cross-platform .NET IDE
Friday, 10:15 - 10:35 (20 min)
Track B - 222, Haus 7
Level 200
Rider is a new cross-platform .NET IDE from JetBrains. In this talk we’ll see what it is, what it does and how you can use it to be productive and efficient with it.
Ein Einblick in das Windows Subsystem For Linux
Friday, 10:15 - 10:35 (20 min)
Track C - 313/314, Haus 7
Level 100
Das Windows Subsystem For Linux ist gerade in aller Munde und es macht Spaß damit zu arbeiten. Aber was habe ich davon? Wie funktioniert es und was ist der Unterschied zu einer klassischen VM? Nach 15 Minuten werden Sie damit arbeiten können und wissen, wo Sie was finden. Wir werden mit Windows Forms ein Programm für Linux schreiben und es im WSL auf einem Windows-Rechner über Mono ausführen.
Continuous Integration mit TeamCity
Friday, 10:15 - 10:35 (20 min)
Track D - 315/316, Haus 7
Level 100
Continuous Integration, also automatische Builds, Tests und evtl. auch Deployment sind für moderne (nicht nur agile) Software Entwicklung ein Muss! Team City ist ein Continuous Integration Tool von Jet Brains. Speziell für .Net Projekte hat es bereits "out of the box" einen großen Funktionsumfang, der durch eine Vielzahl an Plugins noch erweitert werden kann. Und das Beste: Für kleinere Installationen ist es sogar umsonst. In diesem Vortrag wird das Tool mit seinen wichtigsten Features kurz vorgestellt.
Geheimnisse sichern mit Azure KeyVault
Friday, 10:15 - 10:35 (20 min)
Track E - 1, Haus 6
Level 200
Azure KeyVault ist ein Dienst von Microsoft Azure, mit dem man sicher Geheimnisse wie Kennwörter, Zertifikate speichern kann. Dies verhindert unter anderem, dass Kennwörter in der Konfiguration liegen und ermöglicht Szenarien wie Key Rotation. Dieser Lightning Talk gibt einen Überblick über die Möglichkeiten des Azure KeyVault, wie man ihn im Betrieb über Skripte mit Geheimnissen "füttert" und diese ihm später in der Anwendung wieder entlockt.
Bildererkennung für Apps mit OpenCV / EmguCV für Xamarin
Friday, 10:15 - 10:35 (20 min)
Track F - 2/3, Haus 6
Level 100
Die Bildererkennung ist ein spannendes Thema und wird immer öfter angewendet. Meistens sind das Programme, die auf einem PC laufen. Um die Algorithmen auf dem Handy nutzen zu können, muss man viele Faktoren berücksichtigen. Diese Session zeigt Ihnen, wie man mit der OpenCV Bibliothek Bilder auf dem Handy erkennen kann, welche Probleme damit verbunden sind und welche Ergebnisse Sie erwarten können.
Lucene - die Volltext-Suchmaschine
Friday, 10:15 - 10:35 (20 min)
Track G - 4/5, Haus 6
Level 200
Apache Lucene ist eine hoch performante Library für die Textsuche, die in vielen bekannten Produkten eingesetzt wird. Dieser Kurzvortrag soll folgende Fragen beantworten: Was ist Apache Lucene und wie funktioniert die Suche? Wie kann man Lucene.net in eigenen Projekten einsetzen? Wie kann man die Suchmaschine für Datenobjekte verwenden? Lucene Search mit Luke debuggen (eventuell, je nach Zeit) Referenzen, Links und Bücher
Webentwicklung mit Visual Studio Code - Tipps und Tricks
Friday, 10:45 - 11:05 (20 min)
Track A - Saal, Haus 7
Level 100
Visual Studio ist ein leichtgewichtiger und performanter Code Editor, der seine Stärken vor allem in Webprojekten ausspielt. Der plattformunabhängige Open-Source Editor unterstützt hierfür eine Vielzahl an Sprachen, wie C#, PHP, Java, Ruby, JavaScript, TypeScript, CoffeeScript, HTML, CSS und viele mehr. VSCode unterstützt IntelliSense und bietet neben einem eingebauten Debugger auch eine Git-Integration. Durch eine große Auswahl an Extensions hat man zudem die Möglichkeit, den Editor sehr leicht auf die eigenen Bedürfnisse anzupassen. Dieser Vortrag bietet eine Einführung in die Webentwicklung mit dem Editor und stellt die hierfür wichtigsten Funktionen, sowie nützliche Tipps und Tricks vor.
Lizenzierung leicht gemacht mit CodeMeter
Friday, 10:45 - 11:05 (20 min)
Track B - 222, Haus 7
Level 100
Jeder Softwareentwickler kennt die Herausforderung. Wie kann ich meine Applikation verkaufen ohne zu viel Aufwand in einen selbstentwickelten Lizenzierungsmechanismus zu stecken? Dabei ist die Integration in die Software nur die eine Seite. Zusätzlich muss einerseits flexible Lizenzmodelle abdecken können andererseits den ganzen Mechanismus aber auch so schützen, dass er nicht gehackt werden kann. Und wie kommen die Lizenzen eigentlich nachher zum Endkunden? Ein kurzer Exkurs in die Welt der Softwarelizenzierung.
Hot, Hotter, Hottest
Friday, 10:45 - 11:05 (20 min)
Track C - 313/314, Haus 7
Level 100
Inzwischen könnte man meinen persönlichen Raketenflug durch die heißen Themen des Jahres schon als Tradition der dotnet Cologne bezeichnen. Auch in diesem Jahr möchte ich mit Euch über die Tops, Flops und Hypes der Branche diskutieren. Das Ziel ist eine hoffentlich kurzweilige und sehr interaktive Session, in der ich meine persönliche Liste an heißen Themen aus den Vorjahren wieder aufgreife und, ergänzt um einige neue Trends, mit Euch reflektiere. Und natürlich werde ich darstellen welche dieser Themen ich für wirklich relevant halte und warum.
Windows Holographic: Next Level UX für die Industrie
Friday, 10:45 - 11:05 (20 min)
Track D - 315/316, Haus 7
Level 100
Wirft man heute einen Blick auf die Benutzeroberflächen der dargebotenen Industrielösungen, erkennt auch der Laie einen massiven Nachholbedarf. Während viele Industriehersteller den Mehrwert einer ansprechenden und gut nutzbaren Benutzeroberfläche verschlafen, beflügeln bereits neue technische Errungenschaften, wie beispielsweise die HoloLens, die Erwartungshaltung der Nutzer. David gibt Ihnen einen spannenden Einblick in die Welt des Holographic Computing, der Mixed Reality sowie den dazugehörigen Designprozess. Die HoloLens bietet weit mehr als nur Augmented Reality und stellt für den Industriesektor eine unglaubliche Innovation dar. Werfen Sie einen Blick über den Tellerrand und erhalten Sie neue Impulse!
MahApps & Co
Friday, 10:45 - 11:05 (20 min)
Track E - 1, Haus 6
Level 300
Open Source hat durch Microsoft noch einmal einen Schub bekommen. In diesem Lightning Talk möchte ich über meine Open Source Aktivitäten und Projekte sprechen und zeigen was mit WPF noch alles möglich ist. MahApps.Metro MahApps.Metro.IconPacks GongSolutions.WPF.DragDrop ControlzEx
Lust auf Cake? Man nehme etwas C# und fertig gebaut ist die Solution!
Friday, 10:45 - 11:05 (20 min)
Track F - 2/3, Haus 6
Level 100
Der Code ist in C# geschrieben - warum dann nicht auch das Build Script zum Bauen nutzen? Software "richtig" zu bauen erfordert meist etwas mehr zutun als im Visual Studio auf "Build" zu klicken. In dem Talk möchte ich ein Einstieg in die Welt von Cake (C# Make) geben und zeigen wie ihr es in euren .NET Projekten einsetzen könnt.
IoT mit dem Wlan Chip ESP8266
Friday, 10:45 - 11:05 (20 min)
Track G - 4/5, Haus 6
Level 200
Internet of Things und Home Automation sind die großen Themen des Jahres. Der Mikrocontroller ESP8266 bietet mit seiner Wlan Schnittstelle einen günstigen und einfachen Einstieg in diese Themen. Wir möchten euch diesen Vorstellen und eine praktische Einführung geben, damit ihr eure eigenen Projekte starten könnt.
Feingranulare Komponenten per NuGet - Eine Herausforderung?
Friday, 11:15 - 11:35 (20 min)
Track A - Saal, Haus 7
Level 300
Komponentenbasierte Entwicklung ist ein Schlagwort das mehr Wiederverwendbarkeit und damit eine höhere Produktivität verspricht. Wie sieht das in der Praxis aus? Entwickler stehen erstmal vor neuen Problemen: Verteiltes Entwickeln, Verwaltung von Abhängigkeiten sowie neue Tools und Konzepte sind ungewohnte Herausforderungen, gerade bei feingranularen Komponenten. Dieser Vortrag zeigt einige Ansätze, wie man mit diesen Herausforderungen umgehen kann. NuGet bildet die Basis, aber darauf aufbauend kommt ein hoher Grad von Automatisierung zum Einsatz. Das Ziel dabei ist, dass das Entwickeln von Komponenten möglichst dem Entwickeln direkt in der Anwendung ähnelt und typische Fehlerquellen so weit es geht ausgeschlossen werden.
downr - ASP.NET Core basierte Blog Engine
Friday, 11:15 - 11:35 (20 min)
Track B - 222, Haus 7
Level 200
Statische Webseiten und Blogs erfreuen sich einer großen Beliebtheit. Sie bieten bei einem minimalen Aufwand und bei minimalen Kosten einen so hohen Nutzen, dass auch Microsoft auf statische Content-Generatoren wie Jekyll und GitHub Pages zurück greift. Mit downr gibt es nun auch im .NET Core-Umfeld einen hybriden Content-Generator. In diesem Lighting Talk möchte ich anhand einer Live-Demo zeigen, wie einfach und schnell ein eigener ASP.NET Core und .NET Core basierter Blog mit statischen Inhalten aufzusetzen ist.
Windows 10 IoT Core
Friday, 11:15 - 11:35 (20 min)
Track C - 313/314, Haus 7
Level 100
Dieser Lightning Talk soll einen kurzen Überblick zu Windows 10 IoT Core geben und die folgenden Fragen beantworten: Was ist eigentlich dieses "Windows 10 IoT Core"? Wie unterscheidet es sich zum herkömmlichen Windows 10? Welche Möglichkeiten bietet es? Wie entwickelt man Software für Windows 10 IoT Core?
Bash Shell auf Windows
Friday, 11:15 - 11:35 (20 min)
Track D - 315/316, Haus 7
Level 200
Windows 10 hat eine native Bash Shell eingebaut, wusstest du das? Damit lassen sich native, Linux-basierende Entwicklungstools ohne VM oder externen Linux-Rechner wunderbar in den Entwicklungsalltag auf einem Windows 10-Rechner einbinden. In der Session erklärt Rainer, wie die Bash Shell unter Windows 10 funktioniert, zeigt die Anwendung anhand einiger Beispiele und geht auch auf ihre Grenzen ein.
Spaß, Verwirrung, Furcht und Basketball - User Experience unter Stress
Friday, 11:15 - 11:35 (20 min)
Track E - 1, Haus 6
Level 100
Ein UX-Spezialist mit Hintergrund als Software-Entwickler, der eine selbstgeschriebene Software im realen Einsatz bedient - was kann da schon groß schiefgehen? Eine Menge! Roland Weigelt spricht in seinem Vortrag aus eigener Erfahrung darüber, wie Stress und Nervosität beeinflussen, wie man eine Software sieht und erlebt. Anhand von konkreten Beispielen berichtet er über Tunnelblick, schädliches Nachdenken und was passiert, wenn technische Details in die Bedienoberfläche durchsickern. Die Software kommt bei den Heimspielen des Basketball-Bundesligisten Telekom Baskets Bonn in der Veranstaltungstechnik zum Einsatz, die gewonnenen Erkenntnisse gelten universell
Von Code-Sharing zu Xamarin Forms, ein Erfahrungsbericht
Friday, 11:15 - 11:35 (20 min)
Track F - 2/3, Haus 6
Level 100
Eine (mobile) App, mehrere Plattformen, wie geht das ? Angefangen habe ich mit gemeinsamen Source Code und bedingter Kompilierung in Windows Phone und Windows Desktop Projekten. Deutlich einfacher war dann Xamarin mit portablen Class Librarys für Model und View Model. Mit Xamarin Forms ist es jetzt auch möglich, die View's zu teilen, aber natürlich gibt es auch dabei Probleme. In diesem Talk gebe ich einen Eindruck aus der Praxis, mit vielen Problemen aber keiner perfekten Lösung.
Authentication Cookie Sharing zwischen ASP.NET und ASP.NET Core
Friday, 11:15 - 11:35 (20 min)
Track G - 4/5, Haus 6
Level 300
Gelegentlich ist es nötig, das Authentifizierungs-Cookie zwischen einer ASP.NET und einer ASP.NET Core Anwendung zu teilen. Ralf Karle gibt am Beispiel OpenID Connect eine kurze Anleitung, wie man das bewerkstelligt.
Codebasen zu async/await refaktorisieren
Friday, 12:25 - 13:25 (60 min)
Track A - Saal, Haus 7
Level 300
Deine Geschäfts- und Infrastrukturlogik wird sich Richtung asynchroner Quellcode entwickeln. Große Codebasen zu async/await zu refaktorisieren, erscheint einen monumentalen Aufwand zu beinhalten. Das muss nicht sein! In diesem Vortrag wird ein Vierphasen-Prozess vorgestellt, mit dem bestehender Quellcode um async/await erweitert werden kann. In der „Identifikations“-Phase werden die Komponenten klassifiziert, welche von async/await profitieren. In der „Entdeckungs“-Phase werden Hindernisse auf dem Weg zu async/await identifiziert. In der „Hindernis“-Phase wird gezeigt, wie Teile des Codes redesigned werden können, um die Hindernisse zu entfernen. In der „Bringe alles zusammen“-Phase wird der Quellcode refaktorisiert, der von Asynchronität profitiert. Alles in kleinen Schritten, ohne Big Bang. Der Vortrag ist ein Abenteuer mit async/await und eine Motivation für die Kraft von asynchronem Quellcode für die cloudbasierten APIs von heute und morgen.
Übergreifende SSO-Lösung mit Azure AD B2C
Friday, 12:25 - 13:25 (60 min)
Track B - 222, Haus 7
Level 300
Mit zunehmender Nutzung von Cloud-, Webtechnologien und mobilen Apps wird eine Single-Sign-On-Funktion immer interessanter für Unternehmen. Eine vereinheitlichte Zugangskontrolle schafft großen Mehrwert für User und Unternehmen. Die Anforderungen dabei sind kundenseitig eigentlich immer klar: Ein durchgehend stabiles SSO über alle Plattformen, so einfach wie möglich in der Nutzung, Wartung und Betrieb, zudem skalierbar, performant, sicher und natürlich kosteneffizient. Doch wie genau kommt man zu so einer Lösung? Mittels Azure Active Directory B2C. In dieser Session erklärt Stefan Kießig, wie mit Azure Active Directory B2C eine übergreifende SSO Lösung aufgebaut und an die spezifischen Bedürfnisse angepasst werden kann. Auf ein Branding der SignUp- und SignIn-Page wird ebenso eingegangen. Natürlich gibt’s in dieser Session auch viele praktische Beispiele (inkl. Code) und eine Demo, um das Ganze zu veranschaulichen.
Vom 'Big Ball of Mud' zu unabhängigen Services
Friday, 12:25 - 13:25 (60 min)
Track C - 313/314, Haus 7
Level 300
Wenn Softwaresysteme und Entwicklerteams größer werden, wird ein monolithisches System schnell problematisch. Scrum-Teams sollten Software unabhängig voneinander entwickeln, testen und ausrollen können. In diesem Vortrag behandeln wir verschiedene Arten, große Softwaresysteme zu strukturieren und in voneinander unabhängige Services zu unterteilen. Dabei diskutieren wir den Einsatz von APIs gegenüber Messaging, die Versionierung, Anforderungen an die Datenbankschemamigration sowie Testmethoden anhand eines realen Beispiels. Schauen Sie vorbei, wenn Sie mehr darüber herausfinden wollen, wie große Teams gemeinsam an einem großen Softwaresystem arbeiten und gleichzeitig kurze Releasezyklen realisieren können. Beachten Sie, wie wir an dieser Stelle den Begriff Microservice vermieden haben.
Testing untestable code using BDD
Friday, 12:25 - 13:25 (60 min)
Track D - 315/316, Haus 7
Level 200
Ever had someone tell you that your feature is broken, even though all your Unit Tests were green? Has that made you wonder about the ROI for all that time you spent writing the tests? Truth be told, there are projects that are harder to test than others, or even impossible altogether... Does that mean that you should not write automated tests and instead rely on manual QA, or are there cases where the significant investments in testing are worthwhile after all? In OzCode we’ve used BDD to write strong, robust yet readable tests that thoroughly exercise features end-to-end, without succumbing to writing brittle UI-testing code, nor rationalizing it away as "too hard". In this session, I’ll explain our test automation strategy and how we’ve harnessed the power of BDDfy, an open source library, to write beautiful, maintainable and concise tests. In short, BDDfy makes testing great again.
Connecting local data and the cloud - Hybride Lösungen mit Microsoft Azure
Friday, 12:25 - 13:25 (60 min)
Track E - 1, Haus 6
Level 200
"Die Cloud ist toll aber meine Daten gehören mir." Wer hat diesen Satz nicht schon von Kunden oder Arbeitskollegen gehört. Dabei muss sich beides nicht ausschließen. Microsoft Azure bietet viele Möglichkeiten für hybride Szenarien aus lokalen Daten und Services in der Cloud. Dieser Track zeigt anhand einiger Beispiele aus der Praxis wie das konkret aussehen kann.
Durch die Schallmauer: Hochperformante Single Page Applications am Beispiel Angular
Friday, 12:25 - 13:25 (60 min)
Track F - 2/3, Haus 6
Level 300
Gerade bei großen Unternehmensanwendungen spielt Performance eine besondere Rolle. In dieser Session erfahren Sie am Beispiel einer Angular-Anwendung, mit welchen Maßnahmen Sie bei der Entwicklung von Single Page Applications dieses Architekturziel erreichen können. Dabei werden zunächst die Themen Ahead-of-Time-Compilation sowie Tree Shaking besprochen. Anschließend erfahren Sie, wie die Wahl der eingesetzten Datenstrukturen – darunter Immutables und Observables – die Datenbindungsperformance drastisch beeinflussen können. Zusätzlich wird auf die Themen Lazy Laoding und Preloading eingegangen und serverside Rendering sowie Service Worker beleuchtet.
Vom Bildschirm in die Notaufnahme
Friday, 12:25 - 13:25 (60 min)
Track G - 4/5, Haus 6
Level 100
25 Jahre in der Software-Industrie haben Dennis an die Grenzen seiner Leistungsfähigkeit gebracht. Sein nervlicher Zusammenbruch kam unerwartet, und war in Wirklichkeit doch längst abzusehen. Aber er war auch dringend nötig. Denn so konnte Dennis schließlich erkennen, dass er schon ein halbes Leben lang nicht mehr auf sich selbst geachtet hat, sondern nur noch auf das, was er glaubte, das andere von ihm erwarten. Seit seinem Burnout verbringt Dennis wesentlich mehr Zeit mit den Dingen, die ihm wirklich wichtig sind. Dazu gehört neben seiner Freizeit und seiner Familie auch, über seine Erfahrungen zu sprechen. Und über das negative Selbstbild, das so viele von uns plagt. Gleichzeitig spricht er jedoch darüber, wie wir trotz all der Anforderungen, nämlich alles immer noch besser, noch schneller, noch perfekter machen zu müssen, zu uns selbst zurückfinden, wie wir ab und zu den Kopf wieder freibekommen für das, was uns wirklich wichtig ist.
KISS, im Prinzip ganz einfach
Friday, 13:45 - 14:45 (60 min)
Track A - Saal, Haus 7
Level 300
Keep It Simple Stupid, dieses vielzitierte und oft missverstandene Prinzip der Clean Code Developer wird in seiner Wirkung all zu oft unterschätzt. Einfachheit ist gewünscht und gefordert. Sie spart Zeit und Nerven. Doch wo beginnt sie, wo wird aus Einfachheit Komplexität oder hat das am Ende gar nicht so viel damit zu tun? Diesen und weiteren Fragen wird in diesem Talk nach gegangen und was das schönste ist, endlich kommen Lösungen auf den Tisch.
Data Platform für die Cloud
Friday, 13:45 - 14:45 (60 min)
Track B - 222, Haus 7
Level 200
Daten stehen im Zentrum fast aller Anwendungen und im Cloud-Zeitalter gibt es nicht nur neue Regeln für Software - Stichwort Apps - sondern auch für die benötigten Technologien und Services einer Data Platform, die die Basis für diese modernen Anwendungen sein soll. Kein Wunder also, dass sich kaum ein anderer Bereich in Microsoft Azure so schnell verändert wie die Cloud Data Platform. Und dabei geht es keinesfalls nur um “SQL Server in the cloud”. Ganz im Gegenteil. Im Bereich “Data & Storage” hat sich DocumentDB als NoSQL-Dokumentendatenbankdienst hinzugesellt. Neue Angebote wie Azure Data Lake haben das Licht der Welt erblickt und speziell der “Analytics” Bereich wartet mit Machine Learning, Stream Analytics, Data Factory und nicht zuletzt Event Hubs mit zahlreichen interessanten neuen Services auf. Gewinnen Sie in dieser Session einen Überblick über die Plattform und lernen Sie mögliche Einsatzszenarien kennen, damit Sie für Ihre nächsten Datenherausforderungen gewappnet sind.
Welten verbinden: der Datenfluss von Entity Framework über ASP.NET WebAPI bis in den Browser mit Angular
Friday, 13:45 - 14:45 (60 min)
Track C - 313/314, Haus 7
Level 300
In Zeiten von serverseitigem Databinding und modellgetriebenen Views war es einfach, Daten anzuzeigen und in Formularen zur Veränderung anzubieten. In modernen AJAX-Webanwendungen mit ASP.NET WebAPIs und Angular ist hier mehr zu tun. Webexperte Dr. Holger Schwichtenberg zeigt in diesem Vortrag auf, wie man dennoch möglichst effizient stark datengetriebene CRUD-Szenarien implementieren kann. Neben Entity Framework, ASP.NET WebAPI, RESTier und der aktuellen Version von Angular kommen dabei auch TypeScript und diverse Tools zum Einsatz.
Aktuelle Software-Client-Architekturen: Native, Hybrid oder Web mit SPA, AMP oder besser PWA?!?
Friday, 13:45 - 14:45 (60 min)
Track D - 315/316, Haus 7
Level 200
"Heute schon ne' App gemacht? Ja? Was für Eine?". Genau, die Entscheidung für eine Software-Client-Architektur ist nicht einfach. Moderne Anwendungen sollen auf verschiedenen Geräten mit unterschiedlichen Betriebssystemen laufen. Eine „Ein-Plattform-Strategie“ ist nicht mehr die Lösung, oder? Der Vortrag zeigt die aktuellen technischen Möglichkeiten, um moderne Software-Client-Architekturen aufzubauen und präsentiert auch die Vor- und Nachteile dieser Ansätze. And the winner is...
Jekyll, Markdown & co. - wir bauen uns eine Projekt Dokumentation
Friday, 13:45 - 14:45 (60 min)
Track E - 1, Haus 6
Level 100
Dokumentieren ist nicht des Entwicklers Lieblingsthema, jedoch für die Langlebigkeit eines Projekts unerlässlich. Nutzt man Tools die Entwickler jedoch mögen, kann es die Dokumentationsbereitschaft enorm steigern. In diesem Talk möchte ich daher eine Einführung in Jekyll und Markdown geben und auch Dokumentationswerkzeuge aus dem Microsoft Technologieumfeld zeigen.
The Art of XAML Styling
Friday, 13:45 - 14:45 (60 min)
Track F - 2/3, Haus 6
Level 200
Mit der Einführung der deklarativen Programmierung per XAML hat Microsoft einen wahren Meilenstein des modernen User Interface Engineering abgeliefert! Egal ob WPF oder UWP - gerade mit Styles und Control Templates kann jedes beliebige Control in seinem visuellen Auftreten völlig frei angepasst werden. Mit fortgeschrittenen Techniken wie Attached Properties ergeben sich in der Kombination unglaubliche Möglichkeiten. Dabei zählt jeder Pixel sowie jede Kante und ebenso Konsistenz, Performance und Struktur. David zeigt Ihnen in einem Mix aus Präsentation und Live-Coding einen Einblick in die Arbeit eines professionellen UI Engineers und was es bedeutet Controls mit XAML zu stylen. Verpassen Sie diese Gelegenheit nicht und werfen Sie auch einen Blick in das Thema User Experience Design!
Lokale Datenhaltung in Xamarin-Apps
Friday, 13:45 - 14:45 (60 min)
Track G - 4/5, Haus 6
Level 300
In den meisten Apps besteht die Notwendigkeit, Daten lokal zu speichern. Dies fängt bei kleinen Datenmengen, wie zum Beispiel Authentication Tokens, an und endet bei größeren Datenmengen, wie beispielsweise offline erfassten Daten, oder gecachten Antworten eines Web-API-Aufrufs. In diesem Vortrag lernen Sie welche Optionen Sie zur lokalen Datenhaltung haben. Sie werden dabei nicht nur erfahren, wo Sie Ihre Daten auf dem Gerät speichern können, sondern anhand praxisnaher Beispiele auch lernen, wann sich ein textbasiertes Format wie JSON oder XML anbietet und wann Sie besser zu einer lokalen Datenbank wie SQLite greifen. Abgerundet wird der Vortrag mit einer Diskussion über den aktuellen Stand der Implementierung des Entity Framework Core auf der Xamarin
Hochskalierbare, Relationale Datenbanken in Microsoft Azure
Friday, 15:15 - 16:15 (60 min)
Track G - 4/5, Haus 6
Level 200
Die meisten Softwareprojekte fangen mit einer einfachen relationalen Datenbank an. Doch was soll man machen, wenn die Anforderungen an die Datenbank wachsen? Was, wenn die Datenbankgröße und die Anzahl der gleichzeitigen Abfragen stetig wächst? Was, wenn aus einzelnen Datenbanken ein Data Warehouse entsteht? Sascha Dittmann zeigt in dieser Session wie solche und ähnliche Szenarien mit Microsoft Azure umsetzbar sind. Er stellt dabei Technologien wie Azure SQL Database Elastic Pools und Azure SQL Data Warehouse im Detail vor und gibt Beispiele aus der Praxis.
SQL Server 2014+: Locks verstehen und Problem aufspüren
Friday, 15:15 - 16:15 (60 min)
Track F - 2/3, Haus 6
Level 300
In jeder SQL Server Datenbank kommt es zu unzähligen Locks auf Ressourcen unterschiedlichster Art, damit (meist) ein reibungsloser Paraellelbetrieb möglich wird. Diese Session stellt die Funktionsweisen von Locks dar und zeigt Mittel stichhalte Analyse zubereiten, wenn’s mal nicht so reibungslos läuft- d.h. feststellen welcher Prozess welchen andere Prozesse blockiert
Abo-Modelle für Software
Friday, 15:15 - 16:15 (60 min)
Track E - 1, Haus 6
Level 200
Abo-Modelle erfreuen sich einer stark wachsenden Beliebtheit. Für den Softwareanbieter bieten sie eine regelmäßige Einnahmequelle. Für den Anwender vereinen sie einen kostengünstigen Einstieg mit flexibler Laufzeit und einer Aktualitätsgarantie. Im B2C-Segment sind Abo-Modelle bereits seit Jahren etabliert. Virenscanner sind ein sehr einfaches Beispiel, aber auch Online-Spiele, Mitgliedschaften in Communities und Büro-Anwendungen kann man bereits seit Jahren abonnieren. Auch im B2B-Segment sind Abo-Modelle im stetigen Vormarsch. Doch Abo-Modell ist nicht gleich Abo-Modell. Einige Anwendungsfälle beinhalten lediglich die Benutzung der Software. Nach Ablauf oder Kündigung des Abonnements erlischt das Recht zur Benutzung. Andere Anwendungsfälle beinhalten alle Produkte und Versionen, die innerhalb des Abonnements erschienen sind. Nach Ende des Abonnements besitzt der Anwender diese und kann sie weiterhin verwenden, ähnlich bei Zeitschriften oder Sammlungen. CodeMeter kann selbstverständlich beide Arten von Abonnements abbilden. Der Vortrag zeigt, wie Sie einfach Abo-Modelle umsetzen können. Mittels einer eCommerce Lösung wie Cleverbridge oder eines ERP-Systems wie SAP kann auch die Abwicklung der Bezahlung automatisiert werden
Der Parser-Generator ANTLR4
Friday, 15:15 - 16:15 (60 min)
Track D - 315/316, Haus 7
Level 100
Die Grundlage für Programmiersprachen sind häufig sogenannte Grammatiken. Genau genommen kontextfreie Sprachen, die durch eine kontextfreie Grammatik definiert werden. Diese Sprachen zu analysieren, zu verarbeiten und zu transformieren ist seit Jahrzehnten festes Geschäft der Informatik. Nun möchte nicht gleich jeder eine neue Programmiersprache definieren. Das ist in einer Vielzahl der Anwendungsfälle auch völlig übertrieben. Allerdings kann eine kontextfreie Grammatik noch viel mehr. Zum Beispiel das Eingabeformat einer Importdatei validieren oder die Einhaltung eines Kommunikationsprotokolls zwischen zwei verteilten Parteien. Und wenn es doch mal eine vollständige Programmiersprache sein soll, dann freut sich dein Kunde beim Customizing darüber, eine wohldefinierte Sprache verwenden zu können, anstelle von mit eval() und sonstigen Methoden evaluierten Snippets. Diese Session gibt einen Überblick über den Parser-Generator ANTLR4, den Target-Frameworks und zeigt, wie mit wenig Aufwand eine formale Sprache zu C# überführt werden kann.
Sag mir was du kannst - RESTful API Dokumentation mit Swagger & Co.
Friday, 15:15 - 16:15 (60 min)
Track C - 313/314, Haus 7
Level 200
Auf den Prinzipien von REST basierende APIs sind mittlerweile weit verbreitet. Gerade im Bezug auf die Einhaltung der REST-Forderungen, der Verwendung von standardisierten Datenformaten und der Dokumentation weisen jedoch viele APIs zum Teil erheblichen Lücken auf. Grund genug, sich über einen methodischen Ansatz von Entwurf, Dokumentation und Implementierung von REST-APIs Gedanken zu machen. Hier kommen Frameworks ins Spiel, die einen ganzheitlichen Ansatz zur Gestaltung des gesamten Lebenszyklus einens APIs bieten wollen. Namhafte Vertreter dieser Gattung sind zum Beispiel Swagger, RAML oder API-Blueprint. Allesamt handelt es sich um Spezifikationsformate, mit denen ein RESTful-API beschrieben und dokumentiert werden kann. Die Idee ist neben einer Dokumentation auch automatisch Artefakte für die Implementierung und das Testen der Dienste abzuleiten zu können. In der Session wird der Entwurfsprozess eines API am Beispiel von Swagger aufgezeigt. Ausgehend von der Beschreibung eines API soll gezeigt werden, wie man aus dieser Beschreibung einen Mock-Server zum Testen des API aufsetzen kann. Außerdem soll aus der Beschreibung eine rudimentäre Implementierung des Dienstes in APS.NET Core Web Api sowie eines Clients abgeleitet werden. Abgerundet wird das ganze durch einen Ausblick auf die beiden anderen Spezifikationsformate RAML und API-Blueprint, die sich beide einer gewissen Beliebtheit erfreuen. Jedes Format hat seine eigenen Stärken und Schwächen die herausgestellt werden sollen, so dass der Zuhörer später in der Lage ist, für seine Anforderungen das passende Framework auszuwählen.
Projekt Werner: Leben ermöglichen mit WPF und einer 3D-Kamera
Friday, 15:15 - 16:15 (60 min)
Track B - 222, Haus 7
Level 100
Mein schwerbehinderter Bruder Werner ist Spastiker. Er sitzt im Rollstuhl und hat keine Kontrolle über seine Arme, und deutlich sprechen kann er auch nicht. Gefangen im eigenen Körper, ist es ihm nur extrem schwer möglich, mit anderen Menschen zu kommunizieren. Inspiriert von der Software für Stephen Hawking wurde die Open-Source-Software „Projekt Werner“ geboren. Dank dieser ist es schwerbehinderten Menschen möglich, mit Gesichtsgesten über den Computer zu kommunizieren. Der Vortrag geht zum einen auf technische Details zu 3-D-Kameras und Eye Tracking ein. Zum anderen stellt er die modulare WPF-Architektur der Software vor, dank der zahlreiche Entwickler daran mitwirken können, was auch für andere Projekte mit größeren Teams interessant sein kann. Der Vortrag ist ideal für alle, die mit ihrem Können etwas Gutes vollbringen wollen
Exploring .NET’s memory management – a trip down memory lane
Friday, 15:15 - 16:15 (60 min)
Track A - Saal, Haus 7
Level 300
The .NET Garbage Collector (GC) is really cool. It helps providing our applications with virtually unlimited memory, so we can focus on writing code instead of manually freeing up memory. But how does .NET manage that memory? What are hidden allocations? Are strings evil? It still matters to understand when and where memory is allocated. In this talk, we’ll go over the base concepts of .NET memory management and explore how .NET helps us and how we can help .NET – making our apps better. Expect profiling, Intermediate Language (IL), ClrMD and more!
Verlosung und Abschluss
Friday, 16:30 - 17:00 (30 min)
Track A - Saal, Haus 7
Level 100
Verlosung und Abschluss