Der diesjährige C# Workshop hat zwei Schwerpunkte: Erstens zeigt euch Rainer Stropek, was sich bei der Sprache C# in den letzten Monaten getan hat - und das ist eine Menge. Rainer wird die neuen Sprachfeatures anhand von live programmierten Codebeispielen erklären. Wir kratzen dabei nicht nur an der Oberfläche, sondern schauen uns an, was im Hintergrund passiert. Der zweite Schwerpunkt des Workshops ist diesmal Dokumentation. Ein manchmal lästiges Thema, aber ein sehr wichtiges. Rainer wird im Workshop erklären, wie man mit DocFX professionelle Dokumentationsportale aus der C#-Codedokumentation erstellt. Er zeigt, wie man Web-API-Dokumentation hinzufügt, und welche Rolle Markdown spielt. Wir beschränken uns im Workshop nicht auf API-Dokumentation, sondern besprechen auch, wie man konzeptionelle Dokumentation erstellen und in das Portal integrieren kann.
Alle reden darüber: Mobile, Apps, Webtechnologien und Cloud. Die Welt besteht nicht mehr nur aus Windows allein, und Ihr Job als Entwickler ändert sich. In diesem Workshop zeigen Thorsten Hans und Christian Weyer interessierten .NET-Entwicklern, welche architekturellen Ideen und Konzepte hinter modernen Businessanwendungen auf Basis von Web APIs, Angular und TypeScript stecken.
Lernen Sie praktische Lösungen für eine Reihe diverser Problem- und Fragestellungen kennen. Wie kann man geräte- und plattformübergreifend Businessanwendungen mit Angular bauen? Wie kann man dies für Windows, für iOS, für Android und fürs Web gleichermaßen realisieren? Wie können diese Anwendungen auf Daten und Anwendungslogik zugreifen – und zwar bitte auf Basis von serverseitigem .NET? Wie kann ich den Zugriff auf Services und Daten interoperabel und flexibel absichern? Kommen Sie und sehen Sie Antworten auf all diese interessanten Fragen. Moderne Businessanwendungen in Aktion – mit Angular, Cordova, Electron, Progressive Web Apps (PWA), ASP.NET Core und Azure.
Technologie ist vielfältig - das ist positiv and verhindert, dass Programmierer und Architekten sich langweilen. Allerdings wirft die Vielfalt auch Fragen auf: Was tut eigentlich ein Server 2018? Oder geht's jetzt ganz ohne, also serverless? Sollte man noch Client-Anwendungen schreiben? Wie sieht Datenzugriff eigentlich in der neuen verteilten Welt der modernen Apps aus? Wieso muss man plötzlich alles docken? Services? Micro? Nano?
Oliver bringt Sie in diesem ganztägigen Workshop auf den aktuellen Stand zu den Möglichkeiten und Chancen, denen sich Programmierer und Architekten gegenüber sehen. Es gibt viel Raum für Ihre Fragen und für Diskussionen.
Erfahren Sie in diesem Workshop, welche Building Blocks Angular für Ihre erfolgreichen Projekte bietet. Lernen Sie dabei, wie Sie aus .NET bekannte Konzepte wie Komponenten, Datenbindung und Dependency Injection mit Angular umsetzen und wie Sie dank TypeScript Klassen sowie statische Typisierung nutzen können. Ihr Workshoptrainer Manfred Steyer ist Entwickler und Berater mit Fokus auf Angular-Entwicklung. Er berät Firmen im gesamten deutschen Sprachraum, ist Autor zahlreicher Bücher, Sprecher auf einschlägigen Fachkonferenzen und Google Developer Expert sowie Microsoft MVP.
Die Entwicklung mobiler Apps stellt Entwickler vor einige Herausforderungen. So müssen zum Beispiel für alle Plattformen andere Programmiersprachen und APIs erlernt werden. Xamarin bietet hierfür eine elegante Lösung. Egal ob iOS, Android oder Windows Phone: Alles kann mit C# und dem .NET-Framework entwickelt werden. Trotzdem kommt am Ende eine App heraus, die alle plattformspezifischen Features nutzen kann und die Performance einer nativen App bietet.
Zusätzlich bietet das Xamarin.Forms-Framework die Möglichkeit, die UI-Schicht plattformneutral in XAML zu entwickeln. Hierbei müssen Sie nicht einmal die UI-Frameworks von iOS und co. kennen. Auf diese Weise brauchen Sie UI und Logik nur einmal zu entwickeln und können daraus native Apps für alle Plattformen kompilieren.
In diesem Workshop zeigt Ihnen Jörg Neumann, wie Xamarin funktioniert und wie Sie das Maximale aus jeder Plattform herausholen können.
Alle reden von DevOps. Neno Loje und Dr. Holger Schwichtenberg zeigen Ihnen an diesem Workshoptag live, wie es geht. Das Fallbeispiel "MiracleList" besteht aus einem .NET-Core-basierten Web-API-Backend (mit ASP.NET Core und Entity Framework Core) und einem Cross-Plattform-Client (HTML, JavaScript, Angular). Als Werkzeuge kommen Visual Studio, Visual Studio Code, Team Foundation Server bzw. Azure DevOps Services, XUnit, Postman und Selenium/Appium zum Einsatz. Nach einem Streifzug durch den Programmcode bauen die beiden Experten vor Ihren Augen den serverseitigen Build auf, inklusive der Integration von Unit-Tests. Nach dem erfolgreichen Bauen geht es dann in die Release-Pipeline. Für die Integrationstests wird in der Staging-Umgebung eine Datenbank und ein Webserver hochgezogen. Erst wenn sowohl die Tests von Logik und Datenzugriff, als auch der HTTP-Dienste sowie die Benutzeroberflächentests "grün" zeigen, legen wir das Release zur Veröffentlichung vor. Wenn der Projektleiter zufrieden ist, geht am Ende der Auslieferungskette das Release mit einem Mausklick in die Produktion. Der Workshop zeigt sowohl die Veröffentlichung in die Cloud als auch auf lokale Systeme (On-Premises).
Cloud Computing hat sich von einer Randerscheinung zu einem Fixpunkt in der IT-Strategie vieler Teams entwickelt. Da liegt es nahe, dass man Anwendungen speziell für diese Umgebung optimiert und sie damit „Cloud Native“ macht. In seiner Keynote spricht Rainer Stropek darüber, was bei Cloud Native anders läuft. Als Ausgangspunkt verwendet er die Anforderungen aus einem seiner Praxisprojekte. Darauf aufbauend zeigt er, wie eine typische Cloud-Native-Softwarearchitektur aussieht und welche Auswirkungen die Architektur- und Designentscheidungen auf die Projektorganisation und den Anwendungsbetrieb haben. Rainer wird in seiner Keynote wichtige Tipps und Tricks verraten, wie man aus der Cloud das Maximum herausholt und die Hürden, die es natürlich auch dort gibt, erfolgreich meistert.
Ständig ähnlichen Code zu schreiben ist langweilig und fehleranfällig. Lässt sich das mit Bibliotheken oder Frameworks nicht ändern, bietet sich ein modellgetriebenes Vorgehen zum Generieren von Quellcode an. Doch wie kann man diese Idee in der Welt von Angular nutzen?
Hier erhalten Sie eine Antwort auf diese Frage. Sie sehen, wie Schematics – der Codegenerator hinter dem Angular CLI – funktioniert und wie Sie Vorlagen zum Generieren eigener Codestrecken bereitstellen können. Außerdem lernen Sie die TypeScript Compiler API kennen und sehen, wie sich damit bestehender Quellcode analysieren und zielgerichtet erweitern lässt. Ein Beispiel dafür ist das Registrieren einer generierten Komponente bei bestehenden Modulen.
Basierend darauf wird ein Werkzeug, das unter Nutzung einer JSON-basierten DSL Ihre Komponenten, Services, Module und Routen generiert und sich außerdem in das Angular CLI integriert, erzeugt. Am Ende liegt eine Lösung vor, die Sie für Ihre Zwecke adaptieren können, um monotonen Episoden Ihres Projektalltags zu entfliehen. Packen wir's an!
SQL hat sich in den letzten Jahren erheblich weiterentwickelt. Denn das rein relationale Dogma wurde bereits im Jahr 1999 aufgegeben. Es folgte eine stetige Erweiterung um praktikable Lösungen für Probleme, die mit der relationalen Algebra nur sehr umständlich zu lösen sind. Heute kann man mit SQL sogar in so manchem NoSQL-System sehr komplexe Auswertungen schneller, effizienter und vor allem korrekter umsetzen als mit anderen Programmiersprachen. Seit SQL-92 hat sich einiges getan!
Hurra, alles ist nun Open Source. Ist Microsoft jetzt eine wohltätige Einrichtung? Verschenken wir nun alle unseren Code – und unsere Zeit? Was bedeutet Open Source im Microsoft-Ökosystem für Konsumenten – vor allem in einem kommerziellen Kontext? Was muss ich wissen, um selbst Open Source zu produzieren? Mein Projekt IdentityServer hat sich von einem Hobby zu einem der größten .NET-Open-Source-Projekte entwickelt. In diesem Vortrag versuche ich, alles Wichtige zu erzählen, was ich über Philosophie, Prozesse, Tools und schwierige Entscheidungen in den letzten zehn Jahren Open Source und in meiner Rolle als Advisor für die .NET Foundation gelernt habe.
Agile Softwareentwicklung bedeutet, mehr als täglich zusammen zu stehen und den Stakeholdern alle zwei Wochen den Fortschritt zu zeigen. Wenn die agilen Werte auf das Requirements Engineering angewendet werden, bleibt bezüglich der herkömmlichen Arbeitsweise kaum ein Stein auf dem anderen. In diesem Vortrag präsentiere ich meine Top-5-Punkte des agilen Requirements Engineering: Inkrementelles und iteratives RE statt langwieriges Requirements Gold Plating. Specification by Example mit automatisierten Akzeptanztests statt dicke Pflichtenhefte mit Widersprüchen. Problemzentrierte Anforderungen statt Pseudolösungen. Requirements Engineering im Team statt Einzelkämpfer und Missverständnisse. Priorisieren und Übersicht halten statt Alles-ist-wichtig. Lernen Sie von meinen Erfahrungen aus der Arbeit in und mit agilen Teams.
Cross-platform mobile development has been democratized for .NET developers – thanks to Xamarin and Microsoft. However, professional Xamarin development isn't a piece of cake. Sure, tooling has come a long way, but successful mobile apps need a lot more.
The whole Xamarin technology stack needs deep understanding. Do you know what platforms you can target and how to maximize code reuse? Let’s do a run-down of the essential tools, frameworks and utilities that should be in every Xamarin developer’s arsenal. The ubiquitous IDEs, necessary plug-ins, cloud backends, deployment tools, testing solutions, network utilities, DevOps workflows and polished UI – all ready for your app development pleasure. How about adding some cloud-powered AI or Alexa voice assistance to your app? What can you do to delight your users, maintain developer sanity and deliver high quality apps? Let’s stop reinventing wheel and ship apps faster – the right tools help!
Datenbanken erstellen, ändern und verwalten geht mit den SQL Server Data Tools direkt in Visual Studio. Damit werden alle zur Datenanwendung gehörenden Dateien in einer Projektmappe (und in der Quellcodeverwaltung) verwaltet. Es gibt Werkzeuge für den Schema- und Datenvergleich, außerdem werden Build- und Deployment-Prozesse durch automatisch erstellte Up- und Downgradeskripte wesentlich vereinfacht. Die Session verschafft einen Überblick über den Funktionsumfang und die Integration in bestehende Projekte.
Schon von Beginn an war es möglich, in .NET asynchrone Operationen durchzuführen. Im Gegensatz zu anderen Sprachen wie C/C++ war das auch recht elegant gelöst. Mit der weiteren Entwicklung der Sprache haben sich aber auch die Konzepte der asynchronen Programmierung weiterentwickelt.
War es zu Beginn das „Asynchronous Programming Model“ (APM), ist es heute die „Task Parallel Library“ (TPL) die asynchrone Programmierung sehr komfortabel gestaltet. Trotz allem ist asynchrone Programmierung weiterhin ein sehr komplexes Thema. In der Session wird anhand von Beispielen erklärt, was passiert, wenn wir "async"-Methoden und das Keyword "await" benutzen. Die etwas andere Einführung in dieses Thema wird zeigen, dass hinter async/await keine Magie steckt.
Auch wenn async/await schon seit Jahren genutzt wird, ist ein tiefgreifendes Verständnis von Vorteil und kann vor allem in Fehlerfällen oder bei unerwartetem Verhalten helfen.
C# 7.x bietet einige Erweiterungen für Value-Type-Parameter mit Referenzsemantik, wie z.B. das in Keyword, sowie Rückgabe und lokale Variablen mit ref modifier. Eine Struct kann als ref struct deklariert werden. Was Sie damit machen können, wozu das in den neuesten .NET-Core-Versionen genutzt wird und wie Sie diese Erweiterungen von .NET Core 2.1 selbst nutzen können, lernen Sie in dieser Session.
Oh Mann! Was hat Paul sich da nur eingebrockt. Eigentlich hatte er doch nur eine Idee für ein neues Produkt. Aber als er seinem Chef im Fahrstuhl davon erzählt hat, war dieser sofort von der Idee angetan. Paul soll nun der PO, also der Product Owner, für das Projekt werden, aber er hat so etwas noch nie gemacht. Was muss Paul denn jetzt eigentlich machen? Und wie kann er dafür sorgen, dass das Produkt tatsächlich erfolgreich wird? In diesem Vortrag begleiten wir Paul durch sein erstes Projekt als Product Owner. Wir beleuchten, was die Rolle des Product Owners tatsächlich für Aufgaben beinhaltet und welche Fähigkeiten ein er mitbringen sollte. Es werden verschiedene Praktiken vorgestellt, die es dem Product Owner ermöglichen, seiner Rolle gerecht zu werden und es wird darauf eingegangen, was besser zu vermeiden ist.
Anwendungsfälle für Workflow-Engines gibt es viele. Sie reichen von klassischen Workflows mit viel menschlicher Interaktion bis hin zur vollautomatischen Orchestrierung von Serverless Functions. Entsprechend vielfältig sind die Architekturmöglichkeiten: von klassicher .NET-Anwendung über polyglotte Architekturen bis hin zur Azure Cloud. Die Steuerung wird typischerweise mit dem weltweit verbreiteten ISO-Standard BPMN automatisiert, in dem Modelle nicht nur grafisch erstellt, sondern auch direkt durch eine Engine ausgeführt werden können. Im Vortrag gebe ich eine Einführung in BPMN und zeige ein lauffähiges Beispiel inklusive Live-Hacking. Darauf aufbauend bespreche ich konkrete Use Cases und Architekturbeispiele verschiedener Kunden.
Wie bitte? Ohne Server? Ähm... Ja, in der Tat. Der Serverless-Ansatz verspricht eine niedrige Hürde, um den Einstieg in Microservices zu finden und auch, um ans Ziel einer Aufgabenstellung zu kommen. In diesem Vortrag zeigt Christian Weyer die Grundlagen von Serverless mit Azure und .NET Core anhand praktischer Anwendungsfälle. Auf Basis erprobter Designpatterns können Sie mit Azure Functions, Azure Event Grid und Co. in kurzer Zeit sowohl einfache als auch komplexe Services-Anwendungen designen und implementieren – lokal und in der Cloud. Einer der Schlüssel ist hierbei das Denken in Events, über die Daten übertragen, verarbeitet und weitergeleitet werden. Wohnen Sie dieser Session bei und bilden Sie sich Ihre Meinung – eventuell lernen Sie die Basis für Ihr neues Business-Software-Backend kennen.
Irgendwann wird Softwareentwicklung funktionieren wie Spielen mit LEGO: fertige Bausteine mit standardisierten Schnittstellen werden zusammengebaut und ergeben am Ende ein sinnvolles Ganzes. Soweit die Theorie. Mit Azure Logic Apps wird ein Teil des Traums wahr: eigene und fremde APIs können mittels eines grafischen Designers verbunden werden und bilden so durchaus komplexe Workflows. Roman Schacherl zeigt anhand einer zusammenhängenden Livedemo die Funktionsweise und Architektur.
Cross-Site Scripting (XSS) ist seit Bestehen der OWASP Top 10 immer auf einem der drei vorderen Plätze vertreten gewesen. Nach über einem Jahrzehnt voller furchtbarer Angriffe und Probleme gibt es endlich Hoffnung. Mit Content Security Policy (CSP) gibt es einen aktuellen Standard, der von den meisten Browsern umgesetzt wird und XSS Einhalt gebieten kann – wenn man weiß, wie. Doch nicht jede Website kann von CSP profitieren, teilweise sind erhebliche Umbauarbeiten notwendig. In dieser Session werfen wir einen kurzen Blick auf den aktuellen Stand von XSS und analysieren dann alle wichtigen Aspekte von CSP inklusive Features, Beschränkungen, Einsatzmöglichkeiten und Browserunterstützung.
Microsoft hat seinen O/R Mapper neu implementiert und schließt in Version 2.1 von Entity Framework Core wesentliche Lücken im Produkt. Der Nachfolger von Entity Framework läuft nicht nur auf Windows, sondern auch auf Linux, Mac, iOS und Android. Neben einer höheren Geschwindigkeit, weniger RAM-Bedarf und Plattformunabhängigkeit bietet die neue Version auch zahlreiche neue Features für den Datenbankzugriff (z. B. Batchupdates, Shadow States, LINQ-Verbesserungen, globale Filter, SQLite-Unterstützung). Allerdings entfallen auch einige Features (z.B. EDMX, DB First, ObjectContext, Entity SQL). Entity-Framework-Spezialist Dr. Holger Schwichtenberg berichtet die Unterschiede zu EF 6.2 und EF Core 1.x/2.0 und gibt Ihnen Empfehlungen für den Praxiseinsatz von Entity Framework Core.
Angular ist das beliebte Single-Page-Application-Framework von Google. Es basiert auf Webtechnologien und läuft daher auf allen Plattformen, auf denen ein Browser ausgeführt werden kann: Das schließt Desktopbetriebssysteme wie Windows, macOS oder Linux, aber auch die mobilen Systeme iOS oder Android mit ein. Angular orientiert sich am bewährten Konzept der Komponentenorientierung. Entwickler aus dem .NET-Umfeld schaffen dank XAML-Hintergrundwissen einen schnellen Umstieg in die Webwelt. Christian Liebel von Thinktecture zeigt Ihnen die Basics der Angular-Entwicklung, damit Sie direkt in ihre Projekte starten können.
Softwareentwicklung und Integration von Software in vorhandene IT-Landschaften ist aufgrund der damit verbundenen Komplexität eine Expedition ins Ungewisse. Um diese Ungewissheit in den Griff zu bekommen, versuchen viele Organisationen, mit einem Pflichtenheft vorab möglichst präzise zu beschreiben, was die gewünschte Software können und was sie als Festpreis kosten soll. Im behördlichen Umfeld ist die Vergabe ohne Pflichtenheft, Festpreis und präzisen Plan für die gesamte Projektlaufzeit häufig sogar undenkbar. Die Praxis zeigt, dass dieses Vorgehen regelmäßig scheitert: Anforderungen und Schnittstellen können im Vorweg nicht eindeutig, widerspruchsfrei und vollständig beschrieben werden. Innovative Systeme, die für die Organisation neu sind und ihre Prozesse verändern werden, können eigentlich nur agil und mit einem sich im Entwicklungsprozess verändernden Ziel entwickelt werden. Hält man sich sklavisch an das fixe Pflichtenheft, dann muss an der Software über lange Zeit nachgebessert werden. Viel Geld wird verschenkt und Innovationszyklen werden verpasst. Den Ausweg aus diesem Dilemma – das agile Pflichtenheft – haben wir in den vergangenen Jahren in verschiedenen Kundenprojekten erprobt. Ich berichte von unseren Erfahrungen der letzten Jahre und wie es uns gelungen ist, Festpreisprojekte mit Pflichtenheft und das agile Vorgehen zu verheiraten.
Warehouse Solutions erfassen aktuell und in Zukunft immer weitere Bereiche von Warenströmen von E-Commerce und Paketversendung. Die dabei verwendeten logistischen Prozesse unterliegen in den verschiedenen Anwendungsbereichen großer Vielfalt und erfordern gleichzeitig die Erstellung und Inbetriebnahme solcher Systeme in sehr kurzen Zeiträumen.
Dieser Vortrag gibt einen Überblick über unsere Microservice-Architektur, basierend auf Technologien wie REST, Kafka, Docker und Kubernetes sowie die Erfahrungen und Erfolge, die wir in 365 Tagen mit der Einführung erzielt haben.
Linux ist heute überall: in Docker, in VMs, in der Cloud, sogar in Windows 10. In diesem Talk zeigt Oliver ganz praktisch, wie das System funktioniert, wie Sie mit Shells und Kommandos komfortabel administrative Aufgaben erledigen und letztlich als Entwickler eine .NET-Anwendung erzeugen und für den produktiven Betrieb vorbereiten. Diese Grundkenntnisse zu Linux sollte heute jeder haben!
Mit Azure Cosmos DB verspricht Microsoft einen global verteilten Multi-Model/Multi-API-Datenbankservice mit garantiert hohem Datendurchsatz und garantiert niedrigen Latenzen unter 15 ms. Datenkonsistenz steuert der Kunde selbst, indem er eins von fünf Konsistenzmodellen für seine Datenbank auswählt. Indizierung, Partitionierung und globale Replikation kommen out-of-the-box mit und laufen für Kunden und Entwickler vollständig transparent im Hintergrund ab. In dieser Session betrachten wir, wann ein Umstieg auf Azure Cosmos DB für eigene bestehende Softwarelösungen Sinn macht, und worauf man dabei achten muss. Im Live-Coding wird das praktisch anhand einer existierenden MongoDB-Anwendung vorgeführt.
Zu Beginn des Projekts ist noch alles im grünen Bereich. Der benutzte Speicher und die CPU-Auslastung geben keinen Grund zur Beunruhigung, und so können sich die Entwickler konzentriert den neuen Features im prall gefüllten Backlog widmen. Der Projektmanager ist von der Entwicklungsgeschwindigkeit begeistert, und auch die automatische Testabdeckung ist bei fast unglaublichen 70 Prozent angelangt. Wird das Release dieses Mal wirklich pünktlich zum Kunden gehen, und das in einer noch nie erreichten Qualität? Nur noch der Performancetest und alles wird gut. Genau jetzt zerplatzt der Traum, denn Speicher und CPU sind am Anschlag und die Stimmung der Entwickler am Tiefpunkt. Viele Entwickler wollen Code in guter Qualität abliefern, bedenken aber dabei oft nicht, wie sich bestimmte Technologien oder Patterns auf die Performance der Software auswirken. In dieser Session werden solche Technologien und Patterns aufgezeigt und mögliche Alternativen vorgeschlagen.
Web applications leverage the power of computers and Wi-Fi connections to give their users a fast, fluent experience. Nevertheless, a huge portion of web activity is done on mobile devices, which require different capabilities, such as minimizing data usage and power consumption. Native mobile applications also leverage the devices’ features to add functionality and engage the users. Modern web technologies and rapid browsers’ advancement allow us to use most of these features from within web apps and adjust them for slow connectivity and offline usage, while keeping their advantages over native apps. Moreover, we can run these applications on desktop browsers and enjoy the same enhancements. In this talk Shmuela will present the wonderful world of possibilities with Progressive Web Applications, and how to easily achieve these enhancements in an Angular application.
Agile Methoden sind vielerorts auf dem Weg aus der Softwareentwicklung in andere Unternehmensteile. Mit zunehmender Verbreitung des Begriffes geht leider nicht immer die Verbreitung des Mindsets einher. Und selbst wenn, ist das kein Allheilmittel für die Unternehmenskultur, auch wenn manche das versprechen. Entwickler verzweifeln oft, wenn die agilen Veränderungen trotz guter Vorsätze nicht einmal bis zur fachlichen Anforderungsseite reichen. Es gilt: Agiles Vorgehen löst keine Probleme, aber es macht sie transparent. Für Tobias Ranft und Karsten Glied heißt das: Auch wenn es keine Geheimrezepte und keinen „agilen Feenstaub“ gibt: Die typischen Antipatterns zu erkennen, ist ein wichtiger Schritt, um erfolgreich agil zu werden. In ihrem Vortrag zeigen sie die wichtigsten Antipatterns auf und erläutern, was man aus ihnen für eine erfolgreiche agile Entwicklung ableiten kann.
Modernes Softwaredesign bzw. Softwareentwicklung findet immer in der Gruppe und immer häufiger auch in geographisch getrennten Entwicklungsteams statt. Das bedeutet eine besondere Herausforderung für Architekten und Entwickler. Natural User Interfaces wie z. B. Inking und die Unterstützung durch Machine-Learning-Algorithmen bieten sich an, um verteilt arbeitende Teams zu unterstützen. Das MS Cognitive Toolkit, Python Scripts, die Azure Machine Learning Workbench sowie das MS bot Framework stellen hierbei das notwendige Tooling zur Verfügung, um die künstliche Intelligenz zu entwickeln. Windows 10 und dessen Ink-Funktionalitäten wie z. B. die Umwandlung von Ink in Text oder die Erkennung von grafischen Objekten stehen ebenso für eigene Applikationen zur Verfügung. Im Vortrag zeigen wir anhand von Beispielapplikationen, wie die genannten Technologien und Services in einer App verwendet werden können, um eine intelligente Applikation zu erstellen, die auch bei der Erstellung von Märchen oder alternativ Releaseplänen unterstützen kann.
Was steckt hinter dem State-Management-Pattern Redux? Woher kommt es und wann sollte man es einsetzen? Michael bietet in seinem Vortrag eine Einführung in dieses Thema und teilt seine Erfahrungen aus der Praxis. Es wird nicht nur über die Entscheidungsbasis für oder gegen Redux gesprochen, sondern auch über eine mögliche Fehlverwendung. In einer Live-Coding-Session wird das Redux-Pattern in eine Applikation implementiert und angewendet.
Ja, ein neues Zauberwort heißt Machine Learning, ich zeige konkret diverse Anwendungen mit TensorFlow in VS-Code. Anhand eines neuronalen Netzes lassen sich die Anwendungen auch grafisch darstellen.TensorFlow ist eine plattformunabhängige Open-Source-Programmbibliothek für künstliche Intelligenz bzw. maschinelles Lernen im Umfeld von Sprache, Big Data, Data Science und Bildverarbeitungsaufgaben.
Man möchte agil werden, hat das Scrum oder Kanban Board aufgesetzt, aber irgendwie läuft es nicht richtig rund. Die Entwickler arbeiten nicht wirklich als Team zusammen. Bühne frei für Pair Programming, den alten Geheimtipp aus dem Extreme Programming (XP), und das darauf aufbauende Mob Programming! Seit einigen Jahren machen wir in zahlreichen Teams aus den unterschiedlichsten Bereichen gute Erfahrungen damit, Pair Programming aktiv zu fördern, indem wir den Teams zusätzlich zum üblichen Scrum- oder Kanban-Coaching ein "Pair Programming Coaching" anbieten. Denn wenn Entwickler einfach nur zu zweit vor einen Rechner gesetzt werden, kann das nach hinten losgehen. Wenn man aber ein paar grundlegende Verhaltensweisen übt, wird diese intensive Form der Zusammenarbeit als angenehm empfunden und unterstützt das agile Vorgehen nachhaltig. So sehr, dass wir immer wieder positive Auswirkungen auf die agile Planung und das kontinuierliche Testen sehen. Mittlerweile probieren die Teams vermehrt Mob Programming aus, um auch in größeren Gruppen effizient zusammenzuarbeiten. In diesem Vortrag stelle ich kurz die Grundlagen von Pair und Mob Programming vor: worauf man achten sollte und welche typischen Fallstricke es gibt. Zudem erkläre ich den Ablauf des Coachings - als Anregung und Hilfestellung, wie ein solches Coaching im eigenen Team durchgeführt werden kann.
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. Sehen Sie 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 wichtigen Grundbegriffe, sodass dem eigenen Einstieg in diese Technologie nichts mehr im Wege steht.
.NET Standard ist nach Portable Class Libraries (PCLs) der neue und empfohlene Weg, um wiederverwendbare Libraries für die verschiedenen .NET-Plattformen wie .NET Core, .NET Framework und Xamarin zu implementieren. Neben den Grundlagen zum Erstellen von Libraries mit .NET Standard erfahren Sie in dieser Session, was .NET Standard genau ist, wie .NET Standard unter der Haube funktioniert und alles, was Sie als C#-Entwickler zum Erstellen von professionellen .NET Standard Libraries benötigen. Lernen Sie neben den Grundlagen, wie Sie .NET Framework Libraries nach .NET Standard migrieren, wie Sie plattformspezifischen Code in Ihrem Library-Projekt unterbringen und wie Sie Ihre Library als NuGet Package veröffentlichen.
Wie kann aus einem Haufen (Micro-)Services ein vollständiger Use Case oder gar ein übergreifender Geschäftsprozess abgebildet werden? Welche Art der Kommunikation zwischen den Services ist erwünscht? Synchron, asynchron oder eventgetrieben? Wie vermeide ich chaotische Spaghettikommunikation, die meinen Businessanalysten in den Wahnsinn treibt? Was bedeutet dies für uns als Entwickler, und wie gehen wir mit den Herausforderungen verteilter Systeme um? In diesem Vortrag beschreibe ich die Auswirkung verschiedener Lösungsvarianten auf die Architektur und zeige durch Live-Coding konkrete Rezepte rund um Fail Fast, Retrying und fachliche Transaktionen mit dem Saga-Pattern. Der Vortrag ist gespickt mit Praxiserfahrungen aus realen Kundenprojekten.
.NET hat höchstens noch auf dem Server eine Zukunft? Diese Aussage stimmt im modernen Web mittlerweile nicht mehr ganz: Seit der Verfügbarkeit von WebAssembly, einem Bytecode fürs Web, können nun auch etwa in C# geschriebene Programme im Browser ausgeführt werden. Das ist mitunter eine interessante Migrationsstrategie, um .NET-Berechnungskerne ins Web zu portieren und mit Single-Page Applications (SPA), zum Beispiel auf Basis von Angular, zu paaren. Mit dem Projekt Blazor vom ASP.NET-Team experimentiert Microsoft zudem mit einem eigenen SPA-Framework mitsamt Tooling, das jedoch nicht auf HTML und JavaScript, sondern auf der Templating-Sprache Razor sowie C# und .NET Core basiert. Sebastian Gingter und Christian Liebel zeigen Ihnen beide Ansätze und geben eine Einschätzung, wo Blazor eine valide Option für die Erstellung von webbasierten UIs sein kann. Klar ist: Was im Web läuft, das kann auf nahezu allen Plattformen ausgeführt werden. Und auch der Verteilung Ihrer Anwendung als Progressive Web App mit vielen nativen Features steht nichts im Wege.
Die BASTA!-Sprecher Marc Müller, Neno Loje, Oliver Sturm, Rainer Stropek, Thorsten Hans, Jörg Neumann, Sebastian Gingter und Uwe Baumann diskutieren am Abend über das Thema DevOps.
DevOps ist ein Themenfeld, das man nicht mit einem Bild oder einer Definition klar bestimmen kann. Es geht um Prozesse, um Tooling, die Menschen, eine neue Art Software zu bauen und zu verteilen. Aber engere Zusammenarbeit von Developern und Operations ist so vielfältig wie die Unternehmen und Menschen, die sie im Alltag umsetzen.
Im heutigen DevOps-Stammtisch-Panel stellen verschiedene BASTA!-Sprecher in lockerer Atmosphäre "ihre" DevOps-Facette vor, diskutieren untereinander und mit dem Publikum, was sie an DevOps wichtig finden. Daraus soll ein Mosaik von Aussagen und Mindsets über DevOps entstehen, das aus der Ferne betrachtet ein Bild ergibt, auf dem sich DevOps-Konturen erkennen lassen, die sich im Laufe der BASTA!-Woche noch klarer zeigen werden.
It’s 2018 and developers have lots of choices in how to build mobile apps. However, mobile strategy needs to be driven by type of app, platform reach and developer expertise. Is the Cordova hybrid route still an option? What are key factors that demand native mobile apps for iOS/Android/UWP? Developers also want to leverage preferred technology stacks - .NET or JavaScript. Is Xamarin the solve-it-all for .NET mobile development? How do NativeScript and React Native fare for JS Native apps?
The goal is to make truly native cross-platform mobile apps, and with the matured tooling in each stack, the technology choice should not matter anymore. Let’s recap options, glimpse into the future and equip ourselves to build amazing mobile apps.
Was kann die aktuelle SQL-Azure-Datenbank, und was hat sich in den letzten Jahren (Positives) getan? Diese Session schafft hier Klarheit und zeigt, welche Neuerungen in der Praxis bereits angekommen sind und welche wohl eine gute Chance haben. Spuren von Codebeispielen und Praxisanwendungen ausdrücklich nicht ausgeschlossen.
Microsoft hat sein Webserverframework ASP.NET komplett überholt und in weiten Teilen neu implementiert. ASP.NET Core ist nicht nur plattformunabhängig, sondern auch wesentlich leichtgewichtiger und schneller als seine Vorgänger. ASP.NET MVC und Web-API sind nun zusammengefasst. Neben MVC gibt es für Webseiten auch noch Razor Pages. Web Forms gibt es nicht mehr. Für die Entwicklerproduktivität und die Beherrschbarkeit von Webanwendungen gibt es Neuerungen: Mit Tag Helpers kann man nun auch eigene Steuerelemente in MVC schreiben. View Components verbessern daneben die Wiederverwendung. In diesem Vortrag zeigt ASP.NET-Guru Dr. Holger Schwichtenberg auf, wie Sie elegant mit dem neuen ASP.NET entwickeln können, aber auch, welche neuen APIs Sie nun lernen müssen.
You don’t have to be an expert UX designer to spot some basic and common problems in a user’s experience that, as developers, we deliver in our web views. In the end, it’s about avoiding the common pitfalls that bring about complaints. This workshop presents several golden practices to reinvent the way we collect and present data in web pages. Topics include picking items from a list, selecting a date, device detection, effective image handling, table rendering, paging, web printing, stepped forms, drop-down content and more. Though the concepts are general issues of web user interface, all the tricks and suggestions will be presented within an ASP.NET MVC application.
Geheimnisse wie API-Keys, Connection Strings oder Zertifikate sicher abzulegen, sind nicht einfach. Als Mensch verwenden die meisten dafür spezielle Passwortverwaltungssoftware. Bei Software findet man aber immer noch häufig unverschlüsselte Secrets in Konfigurationsdateien, die im schlimmsten Fall sogar in die Quellcodeverwaltung eingecheckt werden. Solche Sicherheitslücken sind insbesondere vor dem Hintergrund der Datenschutz-Grundverordnung ein echtes Problem. Der Azure-Dienst Key Vault hilft, die Herausforderung zu meistern. In dieser Session zeigt Rainer Stropek, wie man Key Vault verwendet, um Secrets in der Cloud sicher abzulegen. Er zeigt mit Codebeispielen in C# und Node.js, wie man aus seinem Programm auf die Secrets in Key Vault zugreift. Rainer erklärt, wie und warum Key Vault aus seiner täglichen Programmierpraxis nicht mehr wegzudenken ist.
In meiner Zeit als Softwareentwickler gab es immer wieder Aha-Momente, welche die Art und Weise verändert haben, wie ich Software entwerfe: Inversion-of-Control-Container machen alles unnötig kompliziert. OR-Mapper sind nur Pseudoabstraktionen. Faking-/Mocking-Frameworks sind der Tot von guten Unit-Tests. Softwarearchitekturdokumente sind Zeitverschwendung.
Ich zeige euch, mit welchen Konzepten und Methoden wir aktuell arbeiten und ein einfacheres Softwaredesign erreicht haben. Und ich wage eine Prophezeiung, was meine nächsten Lernschritte sein werden. Schärft mit mir euren Blick auf Designentscheide.
The main use case for using dynamic components is when we can only decide in run-time which component is loaded. This is also the only solution when we want to embed Angular components in non-Angular ones. In many cases, replacing in-template components with dynamic ones is beneficial to performance and code quality. In this talk we’ll learn how to create and use dynamic components and discuss several types of usages.
Softwareentwicklung im Projekt und die Entwicklung von Standardprodukten müssen kundenorientiert erfolgen und in Zusammenarbeit von Vertrieb, Marketing, Service und Entwickler - was nicht immer einfach ist. Die Verbesserung von Kommunikation und Prozessen birgt ein großes Potential für das ganze Unternehmen. Nach einer Einführung in Begriffe des CRM (Customer Relationship Management) und der Auswirkungen auf ALM‐Prozesse (Application Lifecycle Management) werden wir daher eine kleine Reise durch Integrationsszenarien von Visual Studio Online und Dynamics 365/CRM machen. Hierbei gehen wir jeweils von einem beispielhaften mit BPMN modellierten Prozess aus. Es wird demonstriert, wie die verschiedenen beteiligten Systeme (CTI, E‐Mail, CRM, ALM/VSO) dabei den Prozess unterstützen und wie die beteiligten Personen diese nutzen können. Dieses Vorgehen entlastet Entwickler und erhöht die Wirksamkeit von Service‐ und Vertriebsmitarbeitern.
Reaktive Programmierung und RxJs gewinnt in letzter Zeit immer mehr an Bedeutung. Was macht diese Technologien so reizvoll und relevant? Dieser Vortrag gibt eine Einführung in die Grundlagen der reaktiven Programmierung mit RxJs und zeigt die Anwendung in einer Live-Coding-Session. Lernen Sie, wie Sie mit RxJs komplexe Probleme mit HTTP, Events, User-Eingaben und WebSockets einfach und elegant in nur wenigen Zeilen Code lösen können.
Speicheroptimierte Tabellen und Columnstore-Indizes sind spätestens seit dem SQL-Server 2016 erwachsen geworden. Bei all den theoretischen Möglichkeiten, die diese Technologien mit sich bringen, lohnt sich nach einiger Zeit des produktiven Einsatzes auch ein Blick zurück. Welche Vorteile hat der Einsatz dieser Features in der Praxis wirklich gebracht, und welche Hindernisse galt es zu überwinden, damit die Technologien überhaupt genutzt werden konnten? Diese Session liefert einen Erfahrungsbericht, nach dem Sie leichter entscheiden können, ob speicheroptimierte Tabellen und/oder Columnstore-Indizes auch Ihrer OLTP-Anwendung helfen können und worauf Sie bei der Einführung achten müssen.
Erfolgreiche Apps sehen nicht nur gut aus, sondern bieten vor allem eine exzellente Usability. Besonders im Enterprise-Umfeld spielen intuitive Bedienung und die proaktive Unterstützung der Anwender eine entscheidende Rolle. Jörg Neumann zeigt Ihnen an Beispielen aus der Praxis, wie gute UX entworfen wird und welche Faktoren hierbei eine Rolle spielen. Zudem gibt er Tipps, wie Sie Ihr Design ohne Reibungsverluste in die Implementierung überführen.
Sie möchten Ihre Docker-basierten .NET-Core-Anwendungen effizient betreiben und dynamisch – entsprechend Ihren Anforderungen – skalieren? Dann benötigen Sie einen so genannten Orchestrator. Ein Orchestrator übernimmt die wichtigen Aufgaben im Lebenszyklus einer containerbasierten Anwendung und unterstützt Sie bei alltäglichen Problemstellungen wie Updates oder dem Outscaling einzelner Anwendungsartefakte. Das Open-Source-Projekt Kubernetes ist aktuell der wohl populärste Orchestrator. Microsoft Azure bietet mit Azure Container Services (AKS) einen komplett verwalteten Kubernetes-Dienst an. Doch wie stellen Sie Ihre Anwendung in Kubernetes bereit? Was sind die Vorteile von AKS? Wie lassen Sie Ihre Anwendung automatisch basierend auf der aktuellen Auslastung skalieren? Diese und viele weitere Fragen beantwortet Thorsten Hans in seinem Vortrag anhand von vielen praktischen Beispielen.
Wer stehen bleibt, wird abgehängt! In der IT haben wir ständig mit neuen Technologien, Praktiken, Frameworks und komplexen Problemstellungen tun. Nur mit einem Höchstmaß an Exzellenz können wir diesen Herausforderungen gerecht werden und gute Qualität auf allen Ebenen liefern. Das bedeutet: wir Entwickler (und alle anderen natürlich auch) müssen kontinuierlich lernen. Die Qualität der Weiterbildung definiert hierbei grundlegend die Qualität der Software, denn richtig gute Qualität schaffen nur Könner. Hier haben sich Methoden wie Katas, Randoris, Pair und Mob Programming, Communities of Practice und Gilden etabliert. Doch wie überzeuge ich meine Chefs, wie spielt das mit meinem Alltag zusammen, und wie hilft das beim Üben? Oder müssen wir vielleicht sogar trainieren – denn das ist dann Üben mit System?
Applikationen werden immer intelligenter und übernehmen für den Benutzer immer komplexere Aufgaben. Big Data und die Verwendung großer Rechencluster sind Themen, die eher im Business-Intelligence- und Analytics-Umfeld als in der klassischen Anwendungsentwicklung angesiedelt sind. Wie Azure Databricks mit seinen Möglichkeiten hilft, den Brückenschlag zwischen Applikationen und rechenintensiven mathematischen Anwendungen zu erreichen, zeigt dieser Vortrag.
HTML5 ist überall - im Web, Mobile und natürlich auch auf dem Desktop. Die große Stärke von HTML5 ist nicht nur, dass diese Plattform übergreifend unterstützt wird, sondern dass sie immer mehr Features aus der Desktopwelt bietet. Dennoch erfordert die Entwicklung von Desktopanwendungen auf Basis von HTML und JavaScript neue Frameworks und Sprachen. Das Open-Source-Projekt Electron.NET verbindet Ihr bekanntes C#- und ASP.NET-Core-Know-how mit den Möglichkeiten von Electron. In Kombination von C# und HTML5 können hoch performante Desktopgeschäftsanwendungen 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-Plattform-Entwickler mit .NET auf.
Das populäre SPA-Framework Angular aus der Feder von Google bietet sich für große Geschäftsanwendungen an. Doch wie strukturiert man die damit umgesetzten Projekte am besten, um eine langfristige Wartbarkeit und Wiederverwendbarkeit zu gewähren? Diese Session gibt unter Verwendung einer Fallstudie gleich mehrere Antworten auf diese Frage. Sie erfahren, wie Sie Anwendungen in einzelne wiederverwendbare npm-Pakte zerteilen und über eine hausinterne oder öffentliche Registry bereitstellen. Zusätzlich lernen Sie den Monorepo-Ansatz kennen und sehen, welche Vorteile er gegenüber npm-Paketen bringen kann. Als weitere Möglichkeit wird der Einsatz von Angular in Microservice-Umgebungen diskutiert. Dabei werden einige Realisierungsoptionen für sogenannte Micro Frontends aufgezeigt und deren Vor- und Nachteile aufgezeigt. Am Ende haben Sie einen Überblick über Möglichkeiten zum Strukturieren großer Angular-Applikationen und können diese vor dem Hintergrund Ihrer eigenen Projekte bewerten.
IoT ist ohne Zweifel seit Jahren ein Megatrend. Viele Unternehmen sind schon längst auf dem Weg, mit IoT neue Geschäftsmodelle zu etablieren. Dies stellt Entwickler vor neue Herausforderungen, Anwendungen zu implementieren, die keine Grenzen zwischen traditionellen Lösungen und Cloud kennen. In dieser Session lernen Sie, welche Technologien und Dienste .NET-Entwicklern IoT zur Verfügung stehen, moderne IoT- und Industrie-4.0-Lösungen einfach und effizient zu implementieren. Durch viele praxisorientierten Beispiele lernen Sie, wie die typischen IoT-Lösungen mithilfe von verschiedenen IoT-Lösungen implementiert werden können. Dienste im Fokus: IoT Hub, Event Hub, Azure Stream Analytics, Windows IoT Core, Azure Functions usw.
Eine moderne App bietet nicht nur eine schicke Oberfläche, sondern auch eine gute Usability. Doch wie können Design und UX auf unterschiedlichen Plattformen effizient entwickelt werden? Jörg Neumann stellt in seiner Session konkrete Lösungsansätze vor und zeigt beispielweise wie Custom Controls entwickelt werden, die nicht nur auf dem Desktop, sondern auch auf iOS und Android nativ gerendert werden.
Die ganze Welt spricht (fast) nur noch von Angular und es scheint, als käme niemand an dem Framework vorbei. Einmal mehr sind die klassischen Windows-Entwickler mit der Attraktivität der Webwelt konfrontiert. Manch einem WPF- oder WinForms-Entwickler graust es noch immer vor HTML und JavaScript. Dabei ist JETZT der ideale Zeitpunkt für den Umstieg! Schaut man sich die Entwicklung mit Angular im Detail an, so stellt man fest, dass die Unterschiede zu den klassischen Disziplinen immer kleiner werden. Dank der sprachlichen Unterstützung durch TypeScript und dergleichen Konzepte, wie zum Beispiel Data Binding, kommen die Frameworks sich immer mehr entgegen. In dieser Session vergleichen wir die Entwicklung mit WPF und Angular und geben Ihnen die Basics mit, um im Web durchzustarten.
Testwerkzeuge für JavaScript gibt es wie Sand am Meer - hier den Überblick zu behalten, fällt oft nicht leicht. Doch in den Grundsätzen unterscheiden sich die verschiedenen Frameworks kaum. Gruppierungen von Tests, Setup- und Teardown-Routinen sowie die Überprüfung von Bedingungen zählen zum kleinen Einmaleins. An dieser Stelle setzt dieser Vortrag an und stellt Bibliotheken und Vorgehensweisen zum Umgang mit Asynchronität, Datenströmen und externen Abhängigkeiten vor. Neben Unittests wird auch auf die Implementierung und Strukturierung von Integrationstests und deren Vorteile eingegangen. Dieser Vortrag vermittelt dem Publikum einen Eindruck über die Möglichkeiten moderner Testwerkzeuge zur Qualitätssicherung in JavaScript-Applikationen.
Sie wollen mit Ihrem Team auf git umsteigen und dabei von Anfang an die volle Power des aktuell erfolgreichsten Versionskontrollsystems nutzen sowie Stolperfallen und Frustsituationen vermeiden? Dieses Quickstart-Lab bietet dafür die ideale Grundlage: Von den Basis über fortgeschrittene Operationen zum Repository-Management bis hin zu Teamworkflows, Best Practices und natürlich dem Umstieg von Team Foundation Version Control (TFVC) und Subversionen - hier git es zur Sache!
Unit-Tests, Integrationstests und Co. machen es möglich, zu überprüfen, ob entwickelte Software den funktionalen Anforderungen entspricht. Durch die zunehmende Vernetzung von Softwaresystemen und die Auslagerung von Anwendungen in die Cloud und das Internet werden aber auch Securityanforderungen immer relevanter. Traditionelle Qualitätssicherungsmethoden laufen hier oft ins Leere. Wenn überhaupt, wird meist nur am Ende stichprobenartig getestet, ob eine Software sicher ist. Fallen Sicherheitsmängel erst so spät auf, sind sie in der Regel aber nur schwierig zu beheben, und schlimmstenfalls müssen sogar ganze Anwendungsteile neu entwickelt werden. Deshalb ist es sinnvoll, IT-Sicherheit möglichst früh im Entwicklungsprozess zu berücksichtigen, um teure Schwachstellen zu vermeiden. Aber wie können Sicherheitsrisiken frühzeitig ermittelt und bei der agilen Entwicklung berücksichtigt werden? Eine Lösung ist ein Security Aware Development, bei dem IT-Sicherheitsanforderungen fest in den agilen Entwicklungsprozess integriert werden.
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 (AOT) sowie Tree Shaking besprochen und aufgezeigt, welche zusätzlichen Möglichkeiten Angular 6 hier dank der neuen Rendering Engine ngIvy mit sich bringt. Anschließend erfahren Sie, wie die Wahl der eingesetzten Datenstrukturen – darunter Immutables und Observables – die Datenbindungsperformance drastisch beeinflussen kann. Zusätzlich wird auf die Themen Lazy Loading und Preloading eingegangen und die Implementierung von Caching Strategien mittels Service Worker und der dazu mit Angular 5 eingeführten Bibliothek @angular/service-worker behandelt. Zum Schluss erfahren Sie, wie das ebenfalls mit Version 5 stark verbesserte serverseitige Rendering die Startgeschwindigkeit erhöhen kann, aber auch, wo die Nachteile dieses Ansatzes liegen.
Die Popularität von Docker hat in den letzten Jahren massiv zugenommen. Was sind also die Vorteile für Entwicklung und Betrieb? Dieser Vortrag bietet Ihnen eine gute Einführung in das Thema und beantwortet Ihre Fragen rund um die Unterschiede zwischen Linux- und Windows-Containern, den Entwicklungs-Workflow und Enterprise-Grade-Hosting-Szenarien.
The traditional 'box' layout model was designed to layout documents, not apps. Many hours have been lost endlessly tinkering with the positioning of HTML elements, but the joy at achieving perfect alignment is short-lived. Everything looks great until the page is loaded on a mobile device, and it looks like you threw things on a page from across the room. There's a better way! In this talk I will teach you about the flexbox layout model and CSS grid. We will cover these concepts at a high level, discuss why they are a better approach, and I will show you how to use them effectively. Used in tandem, these widely supported techniques can make your pages responsive, more accessible, and easier to build.
Wünschen Sie sich auch eine Bereitstellungsmöglichkeit für Microservices mit automatischer Skalierung, ähnlich wie bei Azure Functions? Möchten Sie auch möglichst keine Betriebskosten für eine ungenutzte Anwendung haben? Service Fabric Mesh verspricht diese Probleme zu lösen. Tobias Meier zeigt in diesem Vortrag, wie mit Service Fabric Mesh Microservices-Anwendungen entwickelt und – genauso einfach wie Azure Functions – in der Azure Cloud bereitgestellt werden. Zusätzlich wird auch ausführlich auf die Unterschiede zu Service Fabric Native eingegangen.
Verglichen mit der nativen App-Entwicklung mit den Hersteller-SDKs und -werkzeugen spart der Einsatz von Xamarin Zeit. Während der täglichen Arbeit mit dem Framework bemerkt man jedoch schnell, dass die Entwicklung nicht ganz so flüssig von der Hand geht, wie man es sich wünschen würde. Zu oft wartet man auf den Emulator oder das Endgerät und zu häufig führen Unterschiede in den Plattformen zu Doppelimplementierungen. Dank Xamarin Live Player, Xamarin Live Reload und Xamarin.Essentials ist damit nun Schluss. In seinem Vortrag demonstriert André Krämer, wie Sie Wartezeit mit dem Live Player und Live Reload verkürzen und Doppelimplementierungen mit Xamarin.Essentials verringern können.
In this session, Microsoft MVP Don Wibier will tell you why you should use Dependency Injection (DI) in your applications. He will next tell about how this is done in .NET Core 2 and by coding examples, he’ll show you how easy it is to start using this yourself.
In diesem Talk zeigen wir exemplarisch, wie man TypeScript-Features wie statische Typisierung, Union Types, Decorators und Metadata Reflection verwendet, um aus einem Objektmodell ein Abfrageschema und eine typsichere Abfragesprache zu generieren. Ein kurzer Vergleichsblick auf Facebook GraphQL ist auch dabei.
Wer heutzutage in die Webentwicklung einsteigt, wird von den vielen Varianten und Tools erschlagen, die die Frontend-Entwicklung mittlerweile hergibt. Es gibt für fünf verschiedene Probleme mindestens doppelt so viele Lösungen, und welches Framework für welches Problem verwendet werden sollte, verschwimmt wöchentlich hinter neuen Keywords. In diesem Talk haben wir Zeit, um mit Begriffen aufzuräumen und zu definieren, welches Tool wo angewandt werden kann. Wir werfen einen Blick auf die Vielfalt der Frameworks im JavaScript-Bereich und bringen Licht in den Dschungel voller Helferlein und Tools.
Zeit und Geld (aber vor allem Zeit!) sparen, wer möchte das nicht? Insofern bietet es sich an zu prüfen, ob man Dinge nicht auslagern kann, die andere besser oder günstiger tun können und die nicht Kernbestandteil der eigenen Aufgaben sind. Damit wären wir auch schon beim Thema: den TFS zu Microsoft outsourcen.
Seit einigen Jahren betreibt Microsoft den Team Foundation Server fix und fertig in der Cloud – seit neustem unter dem Namen Azure DevOps Services (ehemals: Visual Studio Team Services – und ja, das ist das gleiche Produkt mit zwei Namen). Das ist auch die gleiche Umgebung, die Microsoft für die eigene Softwareentwicklung verwendet, z. B. für die Entwicklung von Windows.
In diesem Vortrag geht es darum, wie der Weg vom eigenen TFS zu Azure DevOps Services aussieht und wo aktuell die Chancen und Limitationen von Azure DevOps Services liegen.
Die PowerShell ist spätestens mit der Version 5.1 erwachsen und für viele Anwender zum Alltag geworden. Sie ist nicht nur ein Hilfsmittel für Administratoren, sondern in erster Linie eine Scripting-Umgebung, die sich längst nicht mehr unter Windows flexibel einsetzen lässt. Ihre Stärken liegen in ihrer weitestgehend konsistenten Syntax, ihrer Interaktivität, einem flexiblen Typensystem und der konsequenten Verwendung von Objekten.
Die traditionelle Hacking Night School präsentiert regelmäßig aktuelle Angriffstechniken, erläutert neue Bedrohungen und stellt mögliche Gegenmaßnahmen dar. In dieser Iteration werden wir uns mit
Sicherheitsmaßnahmen und -schwachstellen unter Linux beschäftigen. Mit der Verfügbarkeit von .NET Core auf Linux ergibt sich für viele .NET-Entwickler und -Architekten erstmals die Notwendigkeit, sich mit
(Sicherheits-)Features der Linux-Plattform auseinanderzusetzen. Wir werden daher diverse Fehlkonfigurationen, Antipatterns und Schwachstellen unter Linux beleuchten und klare Hardening-Anweisungen geben, die für den sicheren Linux-Betrieb (mit einem besonderen Fokus auf .NET Core) notwendig sind.
Sie haben ein Alexa-Gerät zu Hause? Nein? Kein Problem. Sehen wir uns gemeinsam an, wie man einen Alexa Skill mit C# entwickeln kann – mit oder ohne Alexa-Device. In dieser Session werden wir uns mit den Basics der Skill-Entwicklung beschäftigen: Wie funktioniert ein Skill? Wie kann ich einen Skill mit C# entwickeln? Wie kann ich ihn testen? Wie (lokal) debuggen? Was muss man sonst noch beachten? Sie sind ein Azure-(Functions)-Fan? Wir werden im Zuge der Skill-Entwicklung auch einen Blick auf AzureFunctions werfen und uns ansehen, wie wir unseren Alexa Skill als AzureFunctions-App umsetzen können. The perfect match? – Wir werden es gemeinsam herausfinden!
Seit über 12 Jahren ist der Team Foundation Server – der Herzstück von Microsofts Application Lifecycle Management (ALM)-Plattform – auf dem Markt. Nun hat Microsoft eine Veränderungen angekündigt – unter anderem soll sich der Name ändern. Die Cloud-Variante – bisher bekannt als Visual Studio Team Services (VSTS) – hört ab sofort auf den Namen "Azure DevOps Services". Der Team Foundation Server soll dann mit der nächsten Hauptversion seinen Namen ändern und dann dazu passend "Azure DevOps Server" heißen.
Traditionell erschien bisher einmal im Jahr eine neue Hauptversion von Microsofts ALM-Plattform – dem Team Foundation Server (TFS). Dabei gibt es nicht nur viele neue Features zu entdecken, die einem helfen sollen den Alltag produktiver zu gestalten – sondern vieles, auch Altbewährtes und Liebgewonnenes, wird dadurch auch anders.
Dieser Vortrag gibt einen Überblick über die wichtigsten Änderungen und Neuerungen und eignet sich gleichermaßen für alte TFS-Hasen sowie für Interessierte.
Was haben Bootstrap, Foundation oder Material Design gemeinsam? Richtig, sie bieten ein Framework, um unsere HTML5-Anwendung “entwicklerhübsch” darzustellen. Werden auf dieser Basis UI-Komponenten entwickelt, sind sie meist stark verwoben mit dem Konzept und Design des Frameworks. Eigene, oftmals durch Corporate Identity vorgegebene UI-Semantiken, Bedienkonzepte und Designkonzepte lassen sich nur schwer mit einem bestehenden Framework verheiraten. Die Portier- und Wiederverwendbarkeit leidet darunter. Doch moderne Konzepte wie Web Components, Shadow DOM und Custom HTML-Elemente können helfen, eigene, wiederverwendbare und gutaussehende UI-Komponenten zu entwickeln. In dieser Session wollen Jörg Neumann und Manuel Rauber ein Konzept zur Entwicklung von Web Components mit dem Angular-Komponentenmodell vorstellen und zeigen, mit welchem Workflow man vom Design bis hin zur stylisch umgesetzten App kommt.
In der Welt der digitalen Transformation ist fast jede moderne Lösung gezwungen, die Daten zwischen verschiedenen Komponenten, Anwendungen und Systemen auszutauschen. Die traditionellen Ansätze wie Service-Oriented-Architekturen (SOA) und Enterprise Service Bus (ESB) haben sich - abgesehen von hohen Kosten und Komplexität - in geschlossenen On-Premises-Umgebungen mehr oder weniger bewährt. Die neuen Cloud-basierten Messagingdienste und Serverless Computing bieten ungeahnte Möglichkeiten, die verteilten serviceorientierten Systeme als Microservices einfacher zu gestalten. In dieser Session lernen Sie durch viele Demos, wie die Daten zwischen verschiedensten Anwendungen - egal ob in der Cloud oder On-Prem (hybride Umgebungen) und fast ohne Anpassung der Infrastruktur - einfach und sicher ausgetauscht werden können. Dienste im Fokus sind Azure Service Bus, Azure Functions, Logic Apps und EventGrid.
GRASP ist ein System, das dabei hilft, im objektorientierten Entwurf sinnvolle Klassen zu formen, die das Ziel – hohe Kohäsion, geringe Kopplung – möglichst gut erfüllen. Craig Larmann hat es in seinem viel gelobten Buch vor einigen Jahren zusammengestellt. Es beruht auf einer Taxonomie der Klassen mit Kategorien wie Information Expert, Creator, Controller etc. und soll uns durch die Orientierung an Archetypen das Bilden des Modells erleichtern. Eine einfach zu erlernende und im Alltag praktikable Hilfe für ein besseres Softwaredesign.
TypeScript erfreut sich als client- und serverseitige Universalsprache großer Beliebtheit und die Tendenz ist steigend. Doch wie passt es mit Azure zusammen? Wie genau läuft TypeScript auf Node.js auf Azure? Welche Deployment-Mechanismen gibt es und wie funktioniert das Application-Management? Wie findet man schnell Probleme und wie monitort man die serverseitige TypeScript-Applikation und ihre Performance? Antworten darauf finden Sie in diesem Talk.
In zehn Jahren werden wir Blockchains so selbstverständlich nutzen wie heute Datenbanken – und das nicht wegen seltsamer Kryptowährungen, die schon heute mehr an Tulpenkrise als an seriöses Software-Engineering denken lassen. In dieser Session präsentiert Ingo Rammer die konkreten technischen Motivationen, Hintergründe und Zusammenhänge, die den Hype überstehen werden. Sie lernen die fundamentalen Elemente, Arten und Betriebsmodi von öffentlichen und privaten Blockchains kennen und werden wissen, warum Smart Contracts weder "smart" noch "Verträge", sondern einfach Regeln zur Prüfung von replizierten Transaktionen sind. Nach diesem Vortrag haben Sie eine solide Basis, um zu beurteilen, ob – und in welchen Bereichen – Ihre Anwendungsfälle von der Nutzung von Blockchain-Technologien profitieren könnten.
Obwohl React wesentlich erfolgreicher ist als Angular, gibt es gerade unter den Entwicklern von Geschäftsanwendungen viele, die React und dessen Infrastruktur nur theoretisch kennen. In dieser Session stellt Oliver Patterns und Praxis von React anhand einiger praktischer Beispiele vor. Sie werden die Flexibilität und Einfachheit von React zu schätzen lernen und herausfinden, ob die Plattform auch für Ihr nächstes Projekt in die engere Wahl kommen sollte.
In den meisten Entwicklungsteams gibt es gemeinsam genutzte Funktionalität, die in Form von Bibliotheken in mehreren Projekten genutzt wird. Dabei gibt es aber oft Verbesserungspotenzial. Herausforderungen sind unter anderem mangelnde Transparenz („Gibt es eine neue Version einer gemeinsam genutzten Komponente?“), fehlendes Abhängigkeitsmanagement („Wird diese neue Version der betreffenden Komponente mit meinem bestehenden Code funktionieren?“), suboptimale Performance („Muss ich die Komponente eigentlich jedes Mal mitkompilieren? Das kostet viel Zeit!“) und Schwierigkeiten beim Debugging („Wenn ich nicht direkt den Sourcecode der Komponente einbinde, wie kann ich dann effizient debuggen?“).
Mit Microsoft Team Foundation Server/Service ab Version 2017 wird es dank des neuen Package-Management-Moduls für Entwicklerteams noch einfacher, Komponenten zu erstellen, diese als Pakete in eine zentrale Bibliothek innerhalb des Servers hochzuladen und dann in Projekten konsumieren. Und das mit allem Komfort, inklusive Updatebenachrichtigungen, Information über Qualität und Kompatibilität, und ohne Kompromisse beim Debugging. Das hört sich gut an? Dann sind sie in dieser Session richtig: In einer End-to-End-Demo bauen, kompilieren, veröffentlichen, konsumieren und debuggen wir eine gemeinsam genutzte Komponente – und schieben gleich ein Update hinterher. So werden Sie zum erfolgreichen Paketmanager!
Responsive UIs sind in aller Munde, vor allem weil Frameworks wie Twitter Bootstrap oder Angular Material einfache Möglichkeiten dafür bieten. Doch nicht immer ist ein einfaches Umsortieren von UI-Elementen die beste Lösung, um aus einer Desktopanwendung eine mobile App zu machen. Unterschiedliche Plattformen bedeuten häufig auch unterschiedliche Anwendungsszenarien. Genau hier können adaptive UIs zum Einsatz kommen, die basierend auf der Plattform und dem Szenario die bestmögliche UX bieten. Doch wie können verschiedene Views erstellt werden, ohne doppelten Code zu produzieren oder das Routing der Anwendung zu zerstören? In dieser Session werden u. a. diese Fragen anhand konkreter Beispiele beantwortet und mögliche Lösungen aufgezeigt.
Mit Windows ML bietet Microsoft ein Framework, um trainierte Modelle unabhängig von der zur Verfügung stehenden Hardware auf einer Vielzahl von Geräten auszuführen. Dabei übernimmt das Framework nicht nur die Evaluation auf CPU, GPU oder speziellen Silikon, sondern kann auch ggf. Bild-, Video- und Kameradaten aufbereiten. Seit dem Juni-Update für die HoloLens kann Windows ML auch „auf dem Kopf“ ausgeführt werden, das ermöglicht spannende Echtzeitanwendungen, deren Entwicklung in dieser Session vorgestellt werden.
Die schöne neue Welt von JavaScript ermöglicht komfortable Cross-Plattform-Lösungen. Die große Erwartung: So viel Code wie möglich wiederverwenden. Die Praxis zeigt jedoch unterschiedliche Eigenheiten. Dieser Vortrag zeigt eine fertige Hybrid-App basierend auf einer Angular Progressive Web App, die im Web, auf dem Desktop mit Electron und als mobile App auf Cordova läuft. Wir entdecken gemeinsam die neuen Möglichkeiten und Schwierigkeiten. Mit diesen Infos können Sie sich gegen zukünftige Schmerzen schützen.
Aufbauend auf den Grundlagen aus der Session "Blockchain für Architekten & Entwickler" von Ingo Rammer, lernen Sie in diesem Vortrag, wie sie die dort gezeigten Konzepte in der Praxis in einer privaten Blockchain umsetzen können. Sie lernen die technischen Grundlagen der Konfiguration einer Permissioned Blockchain auf Basis von Ethereum kennen, sehen wie Smart Contracts auf Basis von Solidity entwickelt und deployed werden, und wie deren primäres Identifikations- und Berechtigungssystem funktioniert. Im nächsten Schritt sehen sie, wie Sie ausgehend von Ihren .NET-Anwendungen mit vorhandenen .NET-Bibliotheken mit den Funktionen Ihrer Smart Contracts interagieren können.
Progressive Web Apps (PWA) sind das Anwendungsmodell der Zukunft: Webanwendungen werden per Fingertippen zur auf dem Gerät installierten App – ganz ohne Ballast wie die nativen Wrapper Cordova oder Electron. Die zentralen Eigenschaften einer PWA sind Offlinefähigkeit und die Unterstützung von Push-Kommunikation. Christian Liebel von Thinktecture stellt Ihnen die Mechanik hinter der Cache und Push API vor, damit auch Ihre PWA es problemlos mit ihren nativen Gegenstücken aufnehmen kann. Dabei kommt das Google-Tool Workbox 3.0 zum Einsatz. Gezeigt werden unterschiedliche Caching-Strategien, die Möglichkeit der Hintergrundaktualisierung von Daten sowie Pushbenachrichtigungen, wie man sie von jeder nativen App kennt.
Ein zentraler Baustein agiler Softwareentwicklung ist die Fähigkeit eines Teams, die Software in kurzen Abständen ausliefern zu können. Somit bekommt das Team häufiger wertvolles Feedback und kann dieses direkt in die weitere Produktentwicklung mit einfließen lassen.
Wer Continuous Delivery leben möchte, kommt um die Automatisierung der Auslieferungskette – inklusive Builds, Deployments und Tests – nicht herum. Mit dem Visual Studio Team Foundation Server/Team Services bietet Microsoft die dafür passenden Werkzeuge an.
In diesem Vortrag geht es um Best Practices bei der Automatisierung mithilfe vom Team Foundation Server (on-prem) bzw. Azure DevOps Services (Cloud).
Hinweis: Azure DevOps Services ist der neue Name für den TFS in der Cloud, welches ehemals als Visual Studio Team Services (VSTS) und noch davor als Visual Studio Online (VSO) bezeichnet wurde.
TypeScript hat die .NET-Welt vollumfänglich erfasst. Ob nun für Web-Applications oder für die Entwicklung von mobilen Apps. Diese Session führt .NET-Entwickler an das Thema TypeScript und Angular heran und zeigt, mit welchen aus der .NET-Welt bekannten Patterns gearbeitet werden kann, sodass der Umstieg schnell und reibungslos abläuft.
Mit den Version 2.1 und 2.2 von .NET Core, ASP.NET Core und Entity Framework Core hat Microsoft zahlreiche bisher vermisste Klassen und Funktionen nachgeliefert. Für alle, die bisher skeptisch waren, lohnt sich ein erneuter Blick auf den aktuellen Entwicklungsstand auf die Core-Familie und vor allem auch die angekündigte Version 3.0, denn dort wird auch wieder mit WPF und sogar Windows Forms (!) programmieren können. Sogar das klassische Entity Framework wird auf .NET Core portiert. Zudem arbeitet Microsoft mit "ASP.NET Blazor" an einem vielversprechenden Ansatz, um browser- und platformneutrale Single-Page-Web-Applications mit C#, .NET und HTML im Browser (fast) ohne JavaScript zu erstellen. DOTNET-DOKTOR Holger Schwichtenberg diskutiert in diesem Vortrag nicht nur den aktuellen Status, sondern auch die Perspektiven von .NET Core, ASP.NET Core, Entity Framework Core und Welt von .NET-basierten Cross-Platforms-WebApps.
Seit Jahren findet sich funktionale Programmierung immer wieder im Fokus. Manchmal sind es aktuelle Trends in Programmiersprachen, für eine Weile ging es um Parallelisierbarkeit, dann werden Vergleiche mit REST und MVC angestellt. In dieser Session beschreibt Oliver anhand praktischer Beispiele, wie funktionale Programmierung mit JavaScript sowie .NET Core alltäglich geworden ist. Nehmen Sie Anregungen mit, um effizienter und kompakter zu programmieren - egal, in welchem Umfeld!
Angular gibt Webentwicklern eine Plattform, mit der Applikationen nicht nur für das Web geschrieben werden können. Auch durch mobile Endgeräte wie Smartphones oder Tablets sowie durch den Desktop werden Line-of-Business-(LOB-)Apps von Benutzern konsumiert und sind nicht mehr wegzudenken. Hat man den Angular-Code einmal geschrieben, braucht es nicht mehr viel, um die Applikation auf das Smartphone oder den Desktop zu bringen. In diesem Talk zeigt Fabian Gosebrink, wie man eine bestehende Angular-Applikation mit wenigen Schritten mittels Cordova auf ein mobiles Endgerät portieren und auch native Features von Smartphones verwenden kann. Mithilfe von Electron wird auch der Desktop als Plattform adressiert, sodass am Ende eine Angular-Codebasis alle Plattformen bedienen und die Anwendung über jedes Endgerät genutzt werden kann. Echtes Cross-Plattform eben.
Nicht jede Anwendung ist eine Webanwendung. Manchmal haben klassische Windows-Desktop-Anwendungen noch ihre Berechtigung oder sind schlichtweg aufgrund historischer Gründe noch im Einsatz.
Hier auf der BASTA! konzentrieren sich die meisten Vorträge auf die "neue" Welt – mit Webseiten, Web-Services und Mobile Apps. Dabei lassen sich die verschiedenen Konzepte und die damit einhergehenden Vorteile – wie Continuous Integration, automatisierte Builds, Tests und Deployments auf Test- und Zielumgebungen, Feature Flags u.v.m. auch für klassische Anwendungen – ob WinForms, WPF oder Mischanwendungen – nutzen.
Dieser Vortrag zeigt anhand von Live-Beispielen, wie sowas aussehen kann und wie man von den Vorteilen moderner DevOps-Techniken auch in der Desktopwelt profitieren kann.
Gerade auf dem Gebiet der Templates hat sich in modernem C++ seit Version 11 viel getan. Als herausstechender Punkt seien hier nur die variadischen Templates genannt. In dieser Session wird die gesamte Templateprogrammierung in C++ aus heutiger Sicht zusammengefasst und mit Beispielen erläutert. Auch C++/CLI wird dabei nicht vergessen.
Das Update (geplant für Q4/2018, also noch vor .NET Core 3.0) für ASP.NET Core und den Entity Framework Core bringt eine ganze Reihe von Neuerungen und Verbesserungen. Für den O/R-Mapper wird zum Beispiel der Database-First-Ansatz um Sichten erweitert und der lange erwartete Treiber für Azure Cosmos DB wird geliefert. Auf der ASP.NET-Seite wird als Beispiel ein auf OpenID-Connect basierender Authorization-Server, besser Swagger-OpenAPI-Unterstützung und HTTP/2 geboten.
Sehen Sie, was für Sie dabei ist und lassen Sie sich auf den neuesten Stand bringen.
Mittels WebHooks können die unterschiedlichsten Dienste miteinander kommunizieren, ohne zwingend genaue Eigenheiten, APIs oder gar den Verwendungszweck dieser einzelnen Dienste kennen zu müssen. Dieses Prinzip der Kommunikation wird von immer mehr Services verwendet. Doch wie genau funktionieren WebHooks und wie kann diese Architektur dabei helfen, eigene Software und Services miteinander kommunizieren zu lassen? In dieser Session wird nicht nur die Architektur und das Prinzip "WebHooks" erläutert, sondern auch anhand zweier kleiner ASP.NET Core Web-APIs demonstriert, wie diese Architektur mit eigenen Anwendungen umzusetzen ist.
Das kontinuierliche Ausliefern von Software ist durch die breite Adaption agiler Prozesse und DevOps mittlerweile in Teams unterschiedlichster Größe angekommen. Bei den Themen Continuous Integration und Delivery sowie agile Prozesse herrscht dabei weitestgehend Einigkeit über das Was, Wie, Wieviel. Ein Thema wird dabei aber gerne nur als Randnotiz betrachtet: Wie geht man mit Qualitätssicherung bei kontinuierlicher Auslieferung um?
Continuous Delivery kann mehrere Releases pro Tag oder sogar pro Stunde bedeuten. Lokale Testumgebungen und -methoden können mit dieser Taktung nicht umgehen.
Build-, Deployment- und Testautomatisierung sind Grundvoraussetzungen dafür. Im Vortrag wird darüber hinaus gezeigt, wie unabkömmlich das Monitoring der Anwendung ist, um möglichst früh aktiv werden zu können, bevor der Anwender ein Fehlverhalten feststellt. Außerdem werden Ansätze vorgestellt, mittels Canary-Rings, Feature Flags, A/B-Tests und Applikations-Telemetrie in den Testprozess zusätzlich kleine Anwendergruppen mit einzubeziehen, um die Produktivumgebung somit deutlich schneller zu erreichen und damit Wert für den Nutzer zu generieren.
Microsoft Office ist aus dem Alltag vieler Menschen nicht mehr wegzudenken. Neben den altbekannten Desktopanwendungen für Windows und macOS sowie mobilen Apps für iOS und Android bietet Microsoft die Office Suite auch als Web-Apps an. Damit sind die Produkte überall verfügbar. Seit der Version 2013 haben Sie die Möglichkeit, all diese Produkte durch sogenannte Add-ins zu erweitern. Möchten Sie Ihre existierende Webanwendung um neue Features durch Integration von Office erweitern? Befinden Sie sich in der Planungsphase und möchten das Potenzial der Office-Integration kennenlernen? Oder geht es Ihnen darum, Ihr Produkt optimal in etablierte Arbeitsprozesse zu integrieren? Dann besuchen Sie diesen Vortrag von Thorsten Hans und lernen, wie Sie Office-Add-ins pragmatisch und lösungsorientiert mit Angular erstellen können. Egal ob Sie Office 365 benutzen oder eine On-Premises-Installation betreiben, mit Office-Add-ins erweitern Sie jede Office-Installation.
Stellen Sie sich vor, Sie schreiben Ihre moderne Businessanwendung genau einmal – und sie läuft auf Windows, macOS, Linux, Android, iOS und in Ihrem Browser. Diese Anwendungen werden per Fingertippen aus dem Browser auf dem Gerät installiert, können Pushbenachrichtigungen empfangen und funktionieren auch dann, wenn das Wi-Fi im Zug gerade mal wieder nicht funktioniert. Das klingt fantastisch? Dank Progressive Web Apps (PWA) wird all das Wirklichkeit. Mithilfe moderner Webtechnologien wird aus einer Webanwendung eine App, welche einer nativen App in nichts nachsteht. In diesem Workshop zeigen wir in nur einem Tag die PWA-Basics anhand einiger Aufgaben, bei denen Sie mitentwickeln können. Jeder geht mit einer PWA nach Hause!
Microsoft hat seinen O/R Mapper neu implementiert und schließt in Version 2.1 von Entity Framework Core wesentliche Lücken im Produkt, sodass man heutzutage nur wenige Gründe hat, noch mit dem klassischen Entity Framework zu arbeiten. An diesem Tag erhalten Sie von dem Entity-Framework-Experten Dr. Holger Schwichtenberg einen umfassenden Streifzug durch die Möglichkeiten von Entity Framework Core, sowohl für das Forward Engineering mit Datenbankschemagenerierung als auch für das Reverse Engineering bestehender Datenbanken. Zunächst geht es um das Basiswissen: Entitätsklassen, Kontextklassen, Schemamigrationen, LINQ, die CRUD-Operationen und die Handhabung von Beziehungen. Im Laufe des Nachmittags steigt der Workshop tiefer in das Entity Framework ein mit Architekturfragen sowie Tipps und Tricks: Ladestrategien, Performanceoptimierung durch No-Tracking, Caching, direkte Verwendung von SQL, Stored Procedures und Table Valued Functions anstelle von LINQ, Konfliktfeststellung und -behandlung. Der Workshop behandelt insbesondere auch die Unterschiede zwischen Entity Framework 6.2 und Entity Framework Core 2.1 und ist daher auch für Umsteiger sehr geeignet. Natürlich gibt es auch Hinweise auf die bestehenden Schwächen im Produkt und zugehörige Workarounds. Hinweis: Dieser Workshop ist eine reine Vorführung des Experten inklusive Möglichkeiten, individuelle Fragen zu stellen. Aufgrund der Stoffmenge sind Teilnehmerübungen am PC nicht sinnvoll und daher nicht vorgesehen.
In diesem Deep-dive Workshop lernen Teilnehmer mit Grundkenntnissen in Angular, wie sich große und skalierbare Geschäftsanwendungen mit Angular entwickeln lassen. Im ersten Teil erfahren Sie, wie Sie mit npm-Paketen, dem Monorepo-Ansatz und Microservices eine Angular-Anwendung strukturieren können und welche Möglichkeiten zur Umsetzung existieren.
Der zweite Teil dreht sich um Performanceoptimierungen für große Anwendungen. Hier kommt Lazy Loading, OnPush sowie AOT und Tree Shaking zum Einsatz. Der dritte Teil dreht sich um die Realisierung von Querschnittsfunktionen wie Authentifizierung und Internationalisierung.
In diesem Ganztagesworkshop zeigt Ihnen Ingo Rammer, wie Sie – ganz ohne CPU-intensives Mining und ohne Kryptowährungen – auf der Basis aktueller Technologien eine private ("permissioned") Blockchain zwischen Geschäftspartnern aufbauen, Smart Contracts dafür entwickeln und diese mit Ihren .NET-Anwendungen nutzen können. Nach einer kurzen Zusammenfassung der technischen Blockchain-Grundlagen sehen Sie, wie eine private Blockchain auf Basis der Ethereum VM konfiguriert und betrieben wird. Danach lernen Sie die Besonderheiten von Solidity zur Entwicklung von Smart Contracts kennen, sowie Tools, die Sie zum Deployen, Debuggen und Verwalten Ihrer Solidity-Anwendungen nutzen können. Neben den typischen Sicherheitsaspekten von Blockchain-Anwendungen im Geschäftsumfeld lernen Sie auch verschiedene Versionierungs- und Governance-Strategien zum langfristigen Betrieb Ihrer Smart Contracts kennen. Zu guter Letzt sehen Sie, wie Sie zwischen .NET-Anwendungen und den entstandenen Smart Contracts bidirektional kommunizieren können, um den Datenaustausch zwischen Ihren existierenden Systemen und der Blockchain-Umgebung zu erlauben.