Building Enterprise Applications with AngularJS (GDG DevFest Karlsruhe 2014)Christian Janz
Oft hört man die Aussage, dass man mit JavaScript keine professionellen Geschäftsanwendungen entwickeln kann. In dieser Session möchte ich versuchen, diese Aussage zu widerlegen. Hierzu werde ich zeigen, wie bewährte Konzepte, wie z.B. Continuous Integration, für eine AngularJS-Anwendung verwendet und umgesetzt werden können.
UI5 Custom Controls (German language!) - Präsentation von den DSAG Thementage...Andreas Kunz
(find the English version here: https://www.slideshare.net/andreaskunz/ui5-controls-ui5con-2016)
Enhanced German-language version of the previously shown control development slides.
Das Konzept von UI5-Controls wird erklärt und anhand einfacher Code-Beispiele und Live-Demos veranschaulicht.
Das Build-Tool Apache Maven hält zunehmend Einzug in Projekte. Es ist aber mehr als "nur" ein Build-Tool. In seinem Vortrag „Automatischer Build mit Maven“ stellt Stefan Scheidt Maven vor und beleuchtet einige fortgeschrittene Themen.
Building Enterprise Applications with AngularJS (GDG DevFest Karlsruhe 2014)Christian Janz
Oft hört man die Aussage, dass man mit JavaScript keine professionellen Geschäftsanwendungen entwickeln kann. In dieser Session möchte ich versuchen, diese Aussage zu widerlegen. Hierzu werde ich zeigen, wie bewährte Konzepte, wie z.B. Continuous Integration, für eine AngularJS-Anwendung verwendet und umgesetzt werden können.
UI5 Custom Controls (German language!) - Präsentation von den DSAG Thementage...Andreas Kunz
(find the English version here: https://www.slideshare.net/andreaskunz/ui5-controls-ui5con-2016)
Enhanced German-language version of the previously shown control development slides.
Das Konzept von UI5-Controls wird erklärt und anhand einfacher Code-Beispiele und Live-Demos veranschaulicht.
Das Build-Tool Apache Maven hält zunehmend Einzug in Projekte. Es ist aber mehr als "nur" ein Build-Tool. In seinem Vortrag „Automatischer Build mit Maven“ stellt Stefan Scheidt Maven vor und beleuchtet einige fortgeschrittene Themen.
Taugt AngularJS wirklich was? Erfahrungsbericht und AusblickPhilipp Burgmer
Slides for my presentation at WebTechCon/IPC 2014.
Visit us at http://www.thecodecampus.de
Folien zu meinem Vortrag bei der WebTechCon/IPC 2014.
AngularJS verspricht, die Entwicklung moderner Single-Page-Webanwendungen radikal zu vereinfachen. Doch kann dieses Versprechen auch bei Anwendungen, die über eine Demoanwendung (To-do-App) hinausgehen, gehalten werden? In diesem Vortrag zeigen wir die Stärken und Schwächen von AngularJS anhand unserer Erfahrungen aus mehreren Projekten und unserer Schulungen. Wie meistert man den Einstieg? Was sind die Gefahren, und wie minimiert man sie? Ist AngularJS bereit für den Einsatz in großen Anwendungen? Wir geben Antworten. Zusätzlich geben wir einen Ausblick auf AngularJS 2.0, wie die bekannten Schwächen dort behoben werden sollen und was an Neuerungen zu erwarten ist.
Spring Boot - Wird Spring jetzt wirklich einfach?jenspresser
Spring ist ein verbreitetes Framework, hat aber den Ruf sehr komplex zu sein und eine steile Lernkurve zu erfordern. Spring Boot will hier ansetzen und den Einstieg für Spring Projekte massiv vereinfachen.
In dem Vortrag will ich das Spring Boot Framework vorstellen, was es bietet, welche Ziele es anstrebt und welche Ansätze diese erfüllen sollen. Am Ende sollte jeder für sich die Frage im Titel beantworten können.
Diese Folien beschreiben die wichtigsten Informationen rund um das Thema MVVM mit WPF. Dazu gehört ein Vergleich von Frameworks, die Erläuterung von IoC Containern, die Klärung was MVVM ist und vieles mehr.
Nur wenn Softwaretests einfach durchzuführen sind, werden sie im Projekt auch wirklich eingesetzt und verhelfen zu mehr Softwarequalität. Idealerweise geschieht dies automatisiert.
Pack of 7 Online Event vom 14.05.2020
Thema: Async JS/TS am Beispiel SharePoint Framework (SPFx)
Speaker: Christoph Häckel
Source files: https://github.com/Packof7/learnrx/tree/gh-pages/packof7/night-of-the-pack-2020/
DWX 2017 - Alternativen zu Visual-Studio-Testtools: Wann lohnt es sich auch m...Marc Müller
Mittlerweile haben sich im VS-Umfeld immer mehr Nicht-MSTest-Testframeworks etabliert. Im Vortrag wollen wir auf mögliche Alternativen zu MSTest und Coded UI eingehen (z. B. Selenium, Ranorex, Protractor, …). Es geht dabei um Vor-/Nachteile, sinnvolle Szenarien und wie man es geschickt in die TFS-Werkzeugwelt integriert. Das Ziel ist dabei, das Beste aus beiden Welten zu bekommen
EnterJS 2015 - JavaScript von Morgen schon heutePhilipp Burgmer
Präsentation zu meinem Vortrag bei der EnterJS 2015.
ECMAScript 2015, der Standard, der als Grundlage für die Implementierung von JavaScript dient, nimmt immer konkretere Formen an. Viele Teile der Spezifikation sind so gut wie fertig, und neuere Browser setzen sie bis zu einem gewissen Grad bereits um. Dennoch kann man heute und auch in naher Zukunft noch keine Anwendung mit ES 2015 ausliefern, da es eben nicht alle relevanten Browser unterstützen. In diesem Vortrag erfahren Sie, wie sich heute schon mit Transpilern und Polyfills in ES 2015 entwickeln lässt und welche Vorteile das bietet. Anhand von Codebeispielen wird gezeigt, wie man proprietäre Lösungen wie RequireJS und Promises durch neue Standards ersetzen kann und seinen Code dadurch zukunftssicher macht.
In diesen Folien erfahren Entwickler, ob es sich lohnt, bereits jetzt auf die neueste Version Visual Studio 2012 zu setzen. Wie gewohnt bringt Microsoft eine Fülle von neuen Features. Aber welche davon sind im Alltag wirklich relevant? Was wird nicht mehr unterstützt?
Taugt AngularJS wirklich was? Erfahrungsbericht und AusblickPhilipp Burgmer
Slides for my presentation at WebTechCon/IPC 2014.
Visit us at http://www.thecodecampus.de
Folien zu meinem Vortrag bei der WebTechCon/IPC 2014.
AngularJS verspricht, die Entwicklung moderner Single-Page-Webanwendungen radikal zu vereinfachen. Doch kann dieses Versprechen auch bei Anwendungen, die über eine Demoanwendung (To-do-App) hinausgehen, gehalten werden? In diesem Vortrag zeigen wir die Stärken und Schwächen von AngularJS anhand unserer Erfahrungen aus mehreren Projekten und unserer Schulungen. Wie meistert man den Einstieg? Was sind die Gefahren, und wie minimiert man sie? Ist AngularJS bereit für den Einsatz in großen Anwendungen? Wir geben Antworten. Zusätzlich geben wir einen Ausblick auf AngularJS 2.0, wie die bekannten Schwächen dort behoben werden sollen und was an Neuerungen zu erwarten ist.
Spring Boot - Wird Spring jetzt wirklich einfach?jenspresser
Spring ist ein verbreitetes Framework, hat aber den Ruf sehr komplex zu sein und eine steile Lernkurve zu erfordern. Spring Boot will hier ansetzen und den Einstieg für Spring Projekte massiv vereinfachen.
In dem Vortrag will ich das Spring Boot Framework vorstellen, was es bietet, welche Ziele es anstrebt und welche Ansätze diese erfüllen sollen. Am Ende sollte jeder für sich die Frage im Titel beantworten können.
Diese Folien beschreiben die wichtigsten Informationen rund um das Thema MVVM mit WPF. Dazu gehört ein Vergleich von Frameworks, die Erläuterung von IoC Containern, die Klärung was MVVM ist und vieles mehr.
Nur wenn Softwaretests einfach durchzuführen sind, werden sie im Projekt auch wirklich eingesetzt und verhelfen zu mehr Softwarequalität. Idealerweise geschieht dies automatisiert.
Pack of 7 Online Event vom 14.05.2020
Thema: Async JS/TS am Beispiel SharePoint Framework (SPFx)
Speaker: Christoph Häckel
Source files: https://github.com/Packof7/learnrx/tree/gh-pages/packof7/night-of-the-pack-2020/
DWX 2017 - Alternativen zu Visual-Studio-Testtools: Wann lohnt es sich auch m...Marc Müller
Mittlerweile haben sich im VS-Umfeld immer mehr Nicht-MSTest-Testframeworks etabliert. Im Vortrag wollen wir auf mögliche Alternativen zu MSTest und Coded UI eingehen (z. B. Selenium, Ranorex, Protractor, …). Es geht dabei um Vor-/Nachteile, sinnvolle Szenarien und wie man es geschickt in die TFS-Werkzeugwelt integriert. Das Ziel ist dabei, das Beste aus beiden Welten zu bekommen
EnterJS 2015 - JavaScript von Morgen schon heutePhilipp Burgmer
Präsentation zu meinem Vortrag bei der EnterJS 2015.
ECMAScript 2015, der Standard, der als Grundlage für die Implementierung von JavaScript dient, nimmt immer konkretere Formen an. Viele Teile der Spezifikation sind so gut wie fertig, und neuere Browser setzen sie bis zu einem gewissen Grad bereits um. Dennoch kann man heute und auch in naher Zukunft noch keine Anwendung mit ES 2015 ausliefern, da es eben nicht alle relevanten Browser unterstützen. In diesem Vortrag erfahren Sie, wie sich heute schon mit Transpilern und Polyfills in ES 2015 entwickeln lässt und welche Vorteile das bietet. Anhand von Codebeispielen wird gezeigt, wie man proprietäre Lösungen wie RequireJS und Promises durch neue Standards ersetzen kann und seinen Code dadurch zukunftssicher macht.
In diesen Folien erfahren Entwickler, ob es sich lohnt, bereits jetzt auf die neueste Version Visual Studio 2012 zu setzen. Wie gewohnt bringt Microsoft eine Fülle von neuen Features. Aber welche davon sind im Alltag wirklich relevant? Was wird nicht mehr unterstützt?
AndroMDA - Einführung in eine Open Source Model Driven Architecture LösungEduard Hildebrandt
AndroMDA ist ein freiverfügbarer erweiterbarer Generatorbaukasten in Anlehnung an die Spezifikationen zur Model Driven Architecture (MDA) der Object Management Group (OMG). Aus UML-Modellen wird Code für beliebige Zielplattformen erzeugt. Anders als andere MDA-Toolkits bringt AndroMDA fertige Cartridges für aktuelle Entwicklungsplattformen wie Struts, JSF, Spring, Hibernate, EJB und jBPM mit. Weiterhin besteht zusätzlich die Möglichkeit zur Erstellung eigener Cartridges.
Nach einer kurzen Einführung in MDA gibt der Vortrag einen Überblick über AndroMDA und erläutert die Architektur und Grundprinzipien. Die Möglichkeiten des Toolkits werden anhand einer Web-Anwendung für Pizza-Bestellungen erklärt. Anschließend besteht die Möglichkeit zur Diskussion und zum Erfahrungsaustausch aus Projekten.
Eine Sammlung von Best Practices für Applikationen mit AngularJS. Der Vortrag stellt Strukturen und Konventionen vor, mit denen sich auch umfangreiche Applikationen wartbar und erweiterbar halten lassen.
Hands-on Workshop: API-Dokumentation mit OpenAPI / Swagger in ASP.NET CoreGregor Biswanger
Das Dokumentieren einer API wird oft als mühsame, aber wesentliche Aufgabe angesehen. Mit OpenAPI / Swagger können wir eine API-Dokumentation angenehm einfach in ASP.NET Core integrieren. Gregor Biswanger zeigt, wie eine API-Dokumentation mit einer Benutzeroberfläche hinzugefügt wird, mit der wir die API testen können.
Als Nächstes erfahren wir, wie wir Attribute und Konventionen verwenden, um die generierte OpenAPI-Spezifikation zu verbessern. Abschließend wird gezeigt, wie wir mit der Authentifizierung, Versionierung und Anpassung der Benutzeroberfläche umgehen.
Diese Präsentation zeigt wie man Hybrid Apps mit dem Ionic 2 Framework erstellt kann. Dazu wird eine Beispielapp auf Basis der Open Movie Database programmiert.
Slides from my presentation about application architectures for .NET Core applications. It covers desktop application, web applications, mobile applications as well as container-based applications. It's a roundup of the Microsoft Architecture Guides.
.NET Core, .NET Standard & ASP.NET Core - Eine ÜbersichtJürgen Gutsch
.NET Core 2.0 ist seit kurzem released, ebenso wie ASP.NET Core 2.0 und der .NET Standard 2.0.
Aber was ist das genau?
Was ist der .NET Standard und was hat er für Auswirkungen auf die Entwicklung mit .NET?
In diesem Vortrag möchte ich euch zeigen was das .NET Core ist, was für Chancen und Möglichkeiten ASP.NET Core bietet und was der .NET Standard damit alledem zu tun hat.
Slides from Softwerkskammer Hamburg (SokaHH) Meetup in October 2014.
It explains in detail the Wait-Pattern introduced for UI-Tests at CoreMedia as well as the Selenium Grid infrastructure chosen to run the tests with focus on Firefox running in xvfb/openbox.
Das Interesse an Microservice Architekturen scheint ungebrochen. Eine Sonderform sind die sogenannten Self Contained Systems (SCS), als vollumfängliche Microservice Variante (Microservice mit UI).
Im Zuge eines Kundenprojektes hatten wir die Chance eine Portallösung zu entwickeln mit deren Hilfe Self Contained Systems auf einfache Art und Weise integriert werden sollen.
Spannende Aspekte waren dabei der MEAN Stack (MongoDB, Express, Angular, NodeJS) und Microsoft Azure als Cloudplattform.
Dieser Talk zeigt, wie sich diese Aspekte zu einem großen Ganzen zusammengefügt haben und welche Erfahrungen wir auf dem Weg dorthin machen durften.
Presentation bei der CodeTalks Developer Conference in Hamburg zum Thema: "Kopf frei für's Produkt - Automatisierung mit Ansible und Jenkins" von LeanIX CTO André Christ und SW Architekt Dr. Daniel Pozzi.
Vom ersten Einrichten einer Maschine bis zum Ausliefern der Anwendung ist es ein weiter Weg, der in einem Startup viele menschliche und technische Ressourcen abverlangt. Neue Kundenwünsche und Skalierung erfordern immer mehr Server, Dienste („best tool for the job“) oder Anwendungsinstanzen, die verwaltet werden wollen.
Der SaaS-Anbieter LeanIX aus Bonn hat den manuellen Prozess in wenigen Wochen gegen eine vollständig automatisierte Provision-, Build- und Deploy-Kette mit ansible und Jenkins getauscht, um den Rücken für die Produktentwicklung frei zu haben.
2. Matthias Jauernig
Sourcecode zum Vortrag
https://github.com/JauernigIT/aspnetcore_middlewares
Demo für Run/Use/Map
Demo für Angular 4 mit ASP.NET Core inkl. 2 Middlewares (SPA Routing, Old Browser Detection)
Demo für Response-Veränderung (Filtern von Schimpfwörtern)
26.06.2017 Matthias Jauernig - ASP.NET Core Middlewares 2
3. Matthias Jauernig
Wer ich bin
Freiberuflicher Webentwickler/-architekt
Raum Frankfurt / Rhein-Main
10 Jahre Erfahrung in professioneller Softwareentwicklung
C#/.NET, .NET Core, ASP.NET MVC, TypeScript, Angular 4, Kendo UI
Wie ich zu .NET Core komme
Privat & aktuelles Projekt (Bank, öffentliche Webseite)
Frontend: Single Page Application (SPA)
Backend: .NET Core als leichtgewichtige Hosting-Lösung
20 genutzte Middlewares, davon 12 eigenentwickelt
26.06.2017 Matthias Jauernig - ASP.NET Core Middlewares 3
www.jauernig-it.de
5. Was ist eine Middleware?
26.06.2017 Matthias Jauernig - ASP.NET Core Middlewares 5
Argonne National Laboratory
CC BY-SA 2.0, @Wikimedia
?
6. Was ist eine Middleware?
Das ist eine Middleware:
26.06.2017 Matthias Jauernig - ASP.NET Core Middlewares 6
app.Run(async context =>
{
await context.Response
.WriteAsync("Hello World!");
});
7. Was ist eine Middleware?
Definition
“Middleware is software that is
assembled into an application pipeline
to handle requests and responses.”
26.06.2017 Matthias Jauernig - ASP.NET Core Middlewares 7
Quelle: ASP.NET Core Docs, Microsoft
8. Was ist eine Middleware?
ASP.NET Core Middleware Request Delegate
26.06.2017 Matthias Jauernig - ASP.NET Core Middlewares 8
public Task Invoke(HttpContext context)
{
// do something
}
10. ASP.NET Core Middlewares
Basierend auf Best Practices der WebDev Community
Node.js Express
Rails on Rack
…
Evolution aus OWIN Middlewares
Konzept der Middleware-Pipeline zur Verarbeitung von Requests/Responses
Einfacher als OWIN Middlewares (zusätzliche Abstraktionen), verbessertes DI
Nutzbarkeit von OWIN Middlewares in ASP.NET Core (app.UseOwin())
26.06.2017 Matthias Jauernig - ASP.NET Core Middlewares 10
11. ASP.NET Core Middlewares
Ablösung von HTTP-Handlern und HTTP-Modulen
26.06.2017 Matthias Jauernig - ASP.NET Core Middlewares 11
Authorization
Module Andere Module
MVC
HTTP Handler
.report
HTTP Handler
Unauthorized
request
Request for
/Home/Index
Request for
/sales.report
Quelle: ASP.NET Core Docs, Microsoft
12. Middlewares vs. HTTP-Handler/Module
HTTP-Handler/Module
Handler: Request-Verarbeitung abhängig von Dateiname/Dateiendung
Module:
für jeden Request ausgeführt
Reihenfolge abhängig von Lifecycle Events und web.config
ASP.NET Core Middlewares
Ablösung/Vereinheitlichung beider Konzepte
Einfacher und verständlicher als HTTP-Handler/Module (keine magic classes)
Pipeline-Definition und Reihenfolge per Code (keine magic web.config)
Flexibilität in Pipeline-Aufbau (Verzweigungen, etc.)
26.06.2017 Matthias Jauernig - ASP.NET Core Middlewares 12
16. Die Request-Pipeline aufbauen
Request-Verarbeitung: Map()
auf eine andere Pipeline verzweigen, abhängig von einer festgelegten Bedingung
26.06.2017 Matthias Jauernig - ASP.NET Core Middlewares 16
Run()Map()Use()
Use()
Use()
19. Die Request-Pipeline aufbauen
Reihenfolge ist entscheidend!
Verhalten: wird das Gewünschte getan?
Sicherheit: wird zu viel Information preisgegeben?
Performance: wird zu viel ausgeführt?
Verbesserung der Performance
Häufig ausgeführte Operationen weiter oben
Ressourcenintensive Operationen weiter unten
Nur möglich, wenn Verhalten nicht beeinträchtigt wird
26.06.2017 Matthias Jauernig - ASP.NET Core Middlewares 19
27. Eigene Middlewares schreiben
Response verändern - Achtung!
Response (Header, Body) kann nur vor dem ersten Schreiben verändert werden
Response wird aus Performancegründen gestreamt
Beim ersten Schreiben des Response Bodies beginnt der Server die Header zu senden
Header, Status Code etc. können nur vor dem ersten Schreiben geändert werden
Generelle Regel: beim Schreiben des Response die Pipeline beenden
Response nicht mehr nach dem Aufruf der nächsten Middleware ändern
26.06.2017 Matthias Jauernig - ASP.NET Core Middlewares 27
28. Eigene Middlewares schreiben
Response verändern - Was tun?
Beispiel: alle „Schimpfwörter“ sollen aus dem Response-Content entfernt werden
Möglichkeit 1: nicht durch Middleware lösen, sondern tiefer in der Businesslogik
Möglichkeit 2: temporärer MemoryStream (Achtung Performance!)
Beispiel: Header-Feld ändern (Cache, StatusCode, Encoding, …)
context.Response.OnStarting() abonnieren
26.06.2017 Matthias Jauernig - ASP.NET Core Middlewares 28
31. Anwendungsfälle
Einsatz im aktuellen Projekt
Angular/SPA Routing
Mobile Device Detection
Prerendering der SPA (prerender.io)
Proxy (z.B. zu Web API)
Dynamische sitemap.xml und robots.txt-Builder
Detektion alter Browser
Caching mit speziellen Caching-Regeln
Filterung von Requests
Autorisierung/Authentifizierung
…
26.06.2017 Matthias Jauernig - ASP.NET Core Middlewares 31
32. Zusammenfassung
Warum Middlewares nutzen?
Zentrales Konzept von ASP.NET Core
Cross-Platform
Einfach zu implementieren
Pipeline-Aufbau: Volle Flexibilität und Transparenz
Performance! https://www.techempower.com/blog/2016/11/16/framework-benchmarks-round-13/
um ein Vielfaches schneller als ASP.NET oder Mono
26.06.2017 Matthias Jauernig - ASP.NET Core Middlewares 32