Was kann man machen, um Angular-1.x-Code auf Angular 2 vorzubereiten? Welche Möglichkeiten werden in der nächsten Zeit aufkommen, um einen Parallelbetrieb zu realisieren.
GWT wird verwendet um moderne, komplexe Rich Internet Applications zu erstellen. Durch die Generierung von JavaScript aus Java Code können alle Vorteile von Java genützt und gleichzeitig die immer größer werdenden Anforderungen der Web-Benutzer in Bezug auf Style, Performance, Interaktion und Browser-Kompatibilität von Webseiten abgedeckt werden. In dem Vortrag wird GWT vorgestellt und auf dessen Einsatz in der Praxis eingegangen.
Was kann man machen, um Angular-1.x-Code auf Angular 2 vorzubereiten? Welche Möglichkeiten werden in der nächsten Zeit aufkommen, um einen Parallelbetrieb zu realisieren.
GWT wird verwendet um moderne, komplexe Rich Internet Applications zu erstellen. Durch die Generierung von JavaScript aus Java Code können alle Vorteile von Java genützt und gleichzeitig die immer größer werdenden Anforderungen der Web-Benutzer in Bezug auf Style, Performance, Interaktion und Browser-Kompatibilität von Webseiten abgedeckt werden. In dem Vortrag wird GWT vorgestellt und auf dessen Einsatz in der Praxis eingegangen.
Angular 2 Upgrade: Migration von AngularJS 1.x zu 2.0Manfred Steyer
This document outlines an approach for upgrading an AngularJS 1.x application to Angular 2. It discusses setting up the environment with NodeJS and Visual Studio Code. It then covers different upgrade strategies like the ostrich strategy, microservices approach, and incremental migration using ngUpgrade. It also discusses preparing the AngularJS 1.x application by writing it in the best modern way. Key concepts when moving to Angular 2 like components, directives, and TypeScript are explained. The document concludes with a demonstration of ngUpgrade and an exercise for attendees.
The newst new Router for Angular 2 ("Version 3")Manfred Steyer
The document discusses the new Component Router for Angular 2, including its support for lazy loading modules, hierarchical routing, guards, and auxiliary routes. The Component Router activates components instead of templates and allows lazy loading of feature modules. It also supports hierarchical routing through nested child routes. Guards can prevent activation or deactivation of components based on authentication checks. Auxiliary routes provide additional placeholder content without interfering with the main router outlet. The presentation includes demos of these features.
Databinding and Performance-Tuning in Angular 2Manfred Steyer
This document summarizes a presentation about improving performance in Angular 2 applications. It discusses how databinding works through property and event bindings. It recommends using immutable objects and Observables to improve change detection performance. Components can set ChangeDetectionStrategy.OnPush to tell Angular to only check for changes if input properties are new immutable objects rather than traversing the whole component tree by default.
Modern authentication solutions in Angular 2 with OAuth 2.0 and OpenId ConnectManfred Steyer
This document provides an overview of modern authentication solutions using OAuth 2.0 and OpenId Connect for authenticating users in Angular applications. It discusses how OAuth 2.0 allows clients to securely delegate user access rights to resources stored on a resource server, and how OpenId Connect extends OAuth 2.0 to provide authentication by defining how to query user profile information from an authorization server. It also covers how to implement guards in Angular to protect routes and components by controlling activation and deactivation based on authentication status. Code examples and a demo are provided.
This document discusses building progressive web apps with Angular 2. It covers using service workers to enable offline functionality through caching, implementing an app shell architecture for immediate loading, and other features like background syncing and push notifications. The last section describes the Angular Mobile Toolkit for generating starter code and manifest files to help develop progressive web apps.
Der neueste neue Router (Version 3) für Angular 2Manfred Steyer
The document discusses the new Component Router for Angular 2 and 1.x. The Component Router allows for activating components based on routes, lazy loading of components, hierarchical routing of components with child routes, guards to prevent component activation, and auxiliary routes to add additional components to routes. It provides examples of routing configuration and usage of guards and auxiliary routes. The Component Router is the new routing solution that replaces previous lifecycle hooks and provides additional capabilities over prior routing implementations.
The document provides an overview of changes for developers moving to ASP.NET Core 1 from MVC and Web API. Key changes include ASP.NET Core 1 being cross-platform and lightweight, unifying MVC and Web API concepts, and reworking low-level APIs. The middleware pipeline is configured to route requests and add services. Tag helpers replace HTML helpers for view rendering. Web APIs use attribute routing but no longer have conventions for HTTP verbs; the WebApiCompatShim can be added to support conventions.
This document discusses Entity Framework Core 1, which is a new version of Entity Framework designed for .NET Core. It highlights some key changes and new features in Entity Framework Core 1 compared to the previous EF 6 version. These include a focus on Code First development, removal of the ObjectContext API, and support for additional database providers and platforms like NoSQL, Linux, and Universal Windows Apps. While EF Core 1 brings new capabilities, the document recommends continuing to use EF 6 for most applications for now due to some limitations in the initial EF Core 1 release.
This document discusses various migration paths from AngularJS 1.x to Angular 2.0. It begins by outlining general approaches like the ostrich strategy of ignoring Angular 2, or taking a microservice approach. It then covers preparation steps like using components in AngularJS 1.5. Next it explains how to use the component router in AngularJS 1.x to more easily migrate to Angular 2. It also discusses using TypeScript and ES6 features. The document concludes by explaining ngUpgrade which allows building an application with both AngularJS 1.x and Angular 2 modules.
Angular 2.0 focuses on performance, mobile, and modern web capabilities. It uses TypeScript and ES6 for cleaner code and emphasizes building applications with reusable components. The growing Angular ecosystem includes tools for development, debugging, and mobile/desktop installation.
ASP.NET Web API Deep Dive - SSD 2016 LondonManfred Steyer
This document provides an overview of advanced features in ASP.NET Web API, including configuring formatters, custom formatters, streaming, versioning, OData, Swagger metadata, security with HTTP Basic and tokens. The document outlines these topics and indicates there will be demos of formatters, streaming, versioning, OData, Swagger, and security. It is intended to show advanced features of ASP.NET Web API.
1. 1
Web APIs mit ASP.NET Core MVC 1.0
Manfred Steyer
twitter.com/ManfredSteyer
ManfredSteyer
Über mich …
Manfred Steyer
Trainer & Berater
Angular & ASP.NET
Page 2
2. 2
Ziel
Erweiterte Aspekte von Web APIs mit MVC
Core 1 anhand eines Beispiels kennen lernen.
Folie 3
Zielgruppe
Personen mit grundlegender Erfahrung mit
Web APIs unter .NET
Folie 4
6. 6
Was ist Routing?
Url Action-Methode
Folie 11
Web APIs in MVC Core 1
Kein eigenes Routing für Web APIs
Selbe Konzept, wie für MVC-Anwendungen
/controller/action
Routing berücksichtigt keine URL-Parameter
Folie 13
7. 7
Web API mit Attribut-basierten Routen
Folie 18
[Route("api/[controller]")]
public class FlugController: Controller
{
[HttpGet("{id}")]
public Flug GetById(int id) { […] }
[HttpGet("byRoute")]
public List<Flug> GetByRoute(string von, string nach) { […] }
[HttpPost]
public void PostFlug([FromBody] Flug flug) { […] }
}
Web API mit Attribut-basierten Routen
Folie 19
[Route("api/[controller]")]
public class FlugController: Controller
{
// GET api/flug/{id}
[HttpGet("{id}")]
public Flug GetById(int id) { […] }
[HttpGet("byRoute")]
public List<Flug> GetByRoute(string von, string nach) { […] }
[HttpPost]
public void PostFlug([FromBody] Flug flug) { […] }
}
8. 8
Web API mit Attribut-basierten Routen
Folie 20
[Route("api/[controller]")]
public class FlugController: Controller
{
// GET api/flug/{id}
[HttpGet("{id}")]
public Flug GetById(int id) { […] }
// GET api/flug/byRoute?von=...&nach=...
[HttpGet("byRoute")]
public List<Flug> GetByRoute(string von, string nach) { […] }
[HttpPost]
public void PostFlug([FromBody] Flug flug) { […] }
}
Web API mit Attribut-basierten Routen
Folie 21
[Route("api/[controller]")]
public class FlugController: Controller
{
// GET api/flug/{id}
[HttpGet("{id}")]
public Flug GetById(int id) { […] }
// GET api/flug/byRoute?von=...&nach=...
[HttpGet("byRoute")]
public List<Flug> GetByRoute(string von, string nach) { […] }
// POST api/flug
[HttpPost]
public void PostFlug([FromBody] Flug flug) { […] }
}
12. 12
Authentication via Benutzer/Passwort
HTTP-Basic via IIS oder HttpListener
Eigene HTTP-Middleware
Folie 36
Authentication via Tokens
JwtBearerAuthentication-Middleware
Prüft JWT-Tokens
Übernimmt Inhalt aus JWT-Token in User-Objekt
Folie 37
13. 13
OAuth 2 – Prinzipieller Ablauf
Folie 38
Client
Authorization-Server
Resource-Server
3. Token
Ein zentrales Benutzerkonto
Auth. von Client entkoppelt
Flexibilität durch Token
DEMO
(IDENTITYSERVER3)
Page 39
14. 14
UserSecrets
Anwendungs-Einstellungen, die Entwickler nicht ins
Projekt aufnehmen möchte
Personenbezogener Connection-String
Passwort
Kann am Rechner abgelegt und von dort geladen
werden
Nur für Entwicklung sinnvoll!
Folie 40
DEMO
Page 41
15. 15
META-DATEN VIA SWAGGER
Page 42
Swagger
JSON-basierte Metadatenformat für Web APIs
Weit verbreitet
Kein offizieller Standard
Folie 43