SlideShare ist ein Scribd-Unternehmen logo

.NET Summit 2016 in München: ASP.NET Core 1

.NET Summit 2016 in München: ASP.NET Core 1

1 von 26
Downloaden Sie, um offline zu lesen
1
ASP.NET Core 1 (vormals ASP.NET 5):
Was ist neu? Was ist anders?
Manfred Steyer
ManfredSteyer
Über mich …
 Manfred Steyer
 SOFTWAREarchitekt.at
 Trainer & Berater
 Angular am Client
 .NET am Server
Page  2
2
Ziel
Ideen und ausgewählte Konzepte hinter
ASP.NET Core 1 anhand einer Demo-
Anwendung vermitteln
Folie 3
Inhalt
Motivation: ASP.NET heute und morgen
DEMO: Web App mit ASP.NET MVC Core 1
DEMO: Web API mit ASP.NET MVC Core 1
Folie 9
3
Didaktik
Folien
Live-Coding
Folie 10
ASP.NET HEUTE UND MORGEN
Page  11
4
Trends
HTTP-Services, Web APIs, REST
GET /flights/Graz-Frankfurt?date=2014-12-24 HTTP/1.1
Host: myserver
Accept: application/xml
HTTP/1.1 200 OK
Content-Type: text/json
[
{"Time": "1700", "FlightNumer":"LH4711", ...},
{"Time": "1800", "FlightNumer":"LH4712", ...},
…
]
5
ASP.NET HEUTE
Page  15
Status quo
MVC
Web
API
SignalR
Web
Pages
6
Stärken von ASP.NET
Vielfältige Optionen
Großes "Out-of-the-Box"-Framework
Etablierte typsichere Sprachen
Gute Werkzeuge
Stärken der Konkurrenz
Leichtgewichtigkeit
Debuggen
Minimaler Server
Side-by-Side
Plattformunabhängigkeit
Asynchronität

Recomendados

ASP.NET Core – Troublemaker oder Problemsolver?
ASP.NET Core – Troublemaker oder Problemsolver?ASP.NET Core – Troublemaker oder Problemsolver?
ASP.NET Core – Troublemaker oder Problemsolver?POINT. Consulting GmbH
 
Präsentation webservices
Präsentation webservicesPräsentation webservices
Präsentation webservicesxxtesaxx
 
EnterJS 2015 - JavaScript von Morgen schon heute
EnterJS 2015 - JavaScript von Morgen schon heuteEnterJS 2015 - JavaScript von Morgen schon heute
EnterJS 2015 - JavaScript von Morgen schon heutePhilipp Burgmer
 
Legacy WebApps mit AngularJS pimpen
Legacy WebApps mit AngularJS pimpenLegacy WebApps mit AngularJS pimpen
Legacy WebApps mit AngularJS pimpenPhilipp Burgmer
 
Einführung in ASP.NET Core Middlewares
Einführung in ASP.NET Core MiddlewaresEinführung in ASP.NET Core Middlewares
Einführung in ASP.NET Core MiddlewaresMatthias Jauernig
 
WordPress Multisite
WordPress MultisiteWordPress Multisite
WordPress MultisiteWalter Ebert
 
Einführung in die webOS Programmierung
Einführung in die webOS ProgrammierungEinführung in die webOS Programmierung
Einführung in die webOS ProgrammierungMarkus Leutwyler
 

Más contenido relacionado

Destacado

eShow 2016: Charla SiteGround "¡No sin mi hosting!: Claves imprescindibles pa...
eShow 2016: Charla SiteGround "¡No sin mi hosting!: Claves imprescindibles pa...eShow 2016: Charla SiteGround "¡No sin mi hosting!: Claves imprescindibles pa...
eShow 2016: Charla SiteGround "¡No sin mi hosting!: Claves imprescindibles pa...SiteGround España
 
English for Electronics: electricity basic
English for Electronics:  electricity basicEnglish for Electronics:  electricity basic
English for Electronics: electricity basicLimerick English TV
 
The Web as a Goldmine (for journalists)
The Web as a Goldmine (for journalists)The Web as a Goldmine (for journalists)
The Web as a Goldmine (for journalists)Guido Romeo
 
Dr bandali adam-eve كيف نفهم اليوم قصه ادم و حواء كوستى بندلى
Dr bandali adam-eve كيف نفهم اليوم قصه ادم و حواء كوستى بندلىDr bandali adam-eve كيف نفهم اليوم قصه ادم و حواء كوستى بندلى
Dr bandali adam-eve كيف نفهم اليوم قصه ادم و حواء كوستى بندلىIbrahimia Church Ftriends
 

Destacado (6)

cert
certcert
cert
 
eShow 2016: Charla SiteGround "¡No sin mi hosting!: Claves imprescindibles pa...
eShow 2016: Charla SiteGround "¡No sin mi hosting!: Claves imprescindibles pa...eShow 2016: Charla SiteGround "¡No sin mi hosting!: Claves imprescindibles pa...
eShow 2016: Charla SiteGround "¡No sin mi hosting!: Claves imprescindibles pa...
 
English for Electronics: electricity basic
English for Electronics:  electricity basicEnglish for Electronics:  electricity basic
English for Electronics: electricity basic
 
171 sadok-vishneviy-kolo-hati-187 (1)
171 sadok-vishneviy-kolo-hati-187 (1)171 sadok-vishneviy-kolo-hati-187 (1)
171 sadok-vishneviy-kolo-hati-187 (1)
 
The Web as a Goldmine (for journalists)
The Web as a Goldmine (for journalists)The Web as a Goldmine (for journalists)
The Web as a Goldmine (for journalists)
 
Dr bandali adam-eve كيف نفهم اليوم قصه ادم و حواء كوستى بندلى
Dr bandali adam-eve كيف نفهم اليوم قصه ادم و حواء كوستى بندلىDr bandali adam-eve كيف نفهم اليوم قصه ادم و حواء كوستى بندلى
Dr bandali adam-eve كيف نفهم اليوم قصه ادم و حواء كوستى بندلى
 

Ähnlich wie .NET Summit 2016 in München: ASP.NET Core 1

CodeTalks Vortrag: Automatisierung mit Ansible & Jenkins @ LeanIX Enterprise ...
CodeTalks Vortrag: Automatisierung mit Ansible & Jenkins @ LeanIX Enterprise ...CodeTalks Vortrag: Automatisierung mit Ansible & Jenkins @ LeanIX Enterprise ...
CodeTalks Vortrag: Automatisierung mit Ansible & Jenkins @ LeanIX Enterprise ...LeanIX GmbH
 
Architekturen für .NET Core-Anwendungen
Architekturen für .NET Core-AnwendungenArchitekturen für .NET Core-Anwendungen
Architekturen für .NET Core-AnwendungenRobin Sedlaczek
 
Schnelle Winkel: 10x schnellere Webapps mit AngularJS und JEE
Schnelle Winkel: 10x schnellere Webapps mit AngularJS und JEESchnelle Winkel: 10x schnellere Webapps mit AngularJS und JEE
Schnelle Winkel: 10x schnellere Webapps mit AngularJS und JEEBenjamin Schmid
 
WebAPIs mit ASP.NET MVC 6
WebAPIs mit ASP.NET MVC 6WebAPIs mit ASP.NET MVC 6
WebAPIs mit ASP.NET MVC 6Manfred Steyer
 
Überblick zu Angular2 auf DevCon der Fox-Pro-Usergroup in Frankfurt, Nov 2015
Überblick zu Angular2 auf DevCon der Fox-Pro-Usergroup in Frankfurt, Nov 2015Überblick zu Angular2 auf DevCon der Fox-Pro-Usergroup in Frankfurt, Nov 2015
Überblick zu Angular2 auf DevCon der Fox-Pro-Usergroup in Frankfurt, Nov 2015Manfred Steyer
 
Electron.NET: Cross-Platform Desktop Software mit ASP.NET Core
Electron.NET: Cross-Platform Desktop Software mit ASP.NET CoreElectron.NET: Cross-Platform Desktop Software mit ASP.NET Core
Electron.NET: Cross-Platform Desktop Software mit ASP.NET CoreGregor Biswanger
 
Web APIs mit ASP.NET Core 1
Web APIs mit ASP.NET Core 1Web APIs mit ASP.NET Core 1
Web APIs mit ASP.NET Core 1Manfred Steyer
 
Enterprise UI
Enterprise UIEnterprise UI
Enterprise UIgedoplan
 
Microservices mit Rust
Microservices mit RustMicroservices mit Rust
Microservices mit RustJens Siebert
 
Überblick zu MVC6 auf DevCon der Fox-Pro-Usergroup in Frankfurt, Nov 2015
Überblick zu MVC6 auf DevCon der Fox-Pro-Usergroup in Frankfurt, Nov 2015Überblick zu MVC6 auf DevCon der Fox-Pro-Usergroup in Frankfurt, Nov 2015
Überblick zu MVC6 auf DevCon der Fox-Pro-Usergroup in Frankfurt, Nov 2015Manfred Steyer
 
Fachreferat: Visual Studio 2012, Windows 8 und .NET 4.5
Fachreferat: Visual Studio 2012, Windows 8 und .NET 4.5Fachreferat: Visual Studio 2012, Windows 8 und .NET 4.5
Fachreferat: Visual Studio 2012, Windows 8 und .NET 4.5Digicomp Academy AG
 
Angular 2 Workshop November 2015 von der w-jax 2015
Angular 2 Workshop November 2015 von der w-jax 2015Angular 2 Workshop November 2015 von der w-jax 2015
Angular 2 Workshop November 2015 von der w-jax 2015Manfred Steyer
 
Angular 2 Workshop Oktober 2015
Angular 2 Workshop Oktober 2015Angular 2 Workshop Oktober 2015
Angular 2 Workshop Oktober 2015Manfred Steyer
 
Angular von 0 auf 100
Angular von 0 auf 100Angular von 0 auf 100
Angular von 0 auf 100Yvette Teiken
 
Open icf (open identity connector framework) @ forgerock deutsch
Open icf (open identity connector framework) @ forgerock   deutschOpen icf (open identity connector framework) @ forgerock   deutsch
Open icf (open identity connector framework) @ forgerock deutschHanns Nolan
 
Wieviel Client braucht das Web?
Wieviel Client braucht das Web?Wieviel Client braucht das Web?
Wieviel Client braucht das Web?gedoplan
 
PHP-Module in statischen Seiten - Architektur-Ansätze
PHP-Module in statischen Seiten - Architektur-AnsätzePHP-Module in statischen Seiten - Architektur-Ansätze
PHP-Module in statischen Seiten - Architektur-AnsätzeRalf Lütke
 

Ähnlich wie .NET Summit 2016 in München: ASP.NET Core 1 (20)

CodeTalks Vortrag: Automatisierung mit Ansible & Jenkins @ LeanIX Enterprise ...
CodeTalks Vortrag: Automatisierung mit Ansible & Jenkins @ LeanIX Enterprise ...CodeTalks Vortrag: Automatisierung mit Ansible & Jenkins @ LeanIX Enterprise ...
CodeTalks Vortrag: Automatisierung mit Ansible & Jenkins @ LeanIX Enterprise ...
 
Architekturen für .NET Core-Anwendungen
Architekturen für .NET Core-AnwendungenArchitekturen für .NET Core-Anwendungen
Architekturen für .NET Core-Anwendungen
 
Schnelle Winkel: 10x schnellere Webapps mit AngularJS und JEE
Schnelle Winkel: 10x schnellere Webapps mit AngularJS und JEESchnelle Winkel: 10x schnellere Webapps mit AngularJS und JEE
Schnelle Winkel: 10x schnellere Webapps mit AngularJS und JEE
 
WebAPIs mit ASP.NET MVC 6
WebAPIs mit ASP.NET MVC 6WebAPIs mit ASP.NET MVC 6
WebAPIs mit ASP.NET MVC 6
 
Überblick zu Angular2 auf DevCon der Fox-Pro-Usergroup in Frankfurt, Nov 2015
Überblick zu Angular2 auf DevCon der Fox-Pro-Usergroup in Frankfurt, Nov 2015Überblick zu Angular2 auf DevCon der Fox-Pro-Usergroup in Frankfurt, Nov 2015
Überblick zu Angular2 auf DevCon der Fox-Pro-Usergroup in Frankfurt, Nov 2015
 
Electron.NET: Cross-Platform Desktop Software mit ASP.NET Core
Electron.NET: Cross-Platform Desktop Software mit ASP.NET CoreElectron.NET: Cross-Platform Desktop Software mit ASP.NET Core
Electron.NET: Cross-Platform Desktop Software mit ASP.NET Core
 
Net@night asp.net mvc
Net@night asp.net mvcNet@night asp.net mvc
Net@night asp.net mvc
 
Web APIs mit ASP.NET Core 1
Web APIs mit ASP.NET Core 1Web APIs mit ASP.NET Core 1
Web APIs mit ASP.NET Core 1
 
Enterprise UI
Enterprise UIEnterprise UI
Enterprise UI
 
Microservices mit Rust
Microservices mit RustMicroservices mit Rust
Microservices mit Rust
 
Überblick zu MVC6 auf DevCon der Fox-Pro-Usergroup in Frankfurt, Nov 2015
Überblick zu MVC6 auf DevCon der Fox-Pro-Usergroup in Frankfurt, Nov 2015Überblick zu MVC6 auf DevCon der Fox-Pro-Usergroup in Frankfurt, Nov 2015
Überblick zu MVC6 auf DevCon der Fox-Pro-Usergroup in Frankfurt, Nov 2015
 
Fachreferat: Visual Studio 2012, Windows 8 und .NET 4.5
Fachreferat: Visual Studio 2012, Windows 8 und .NET 4.5Fachreferat: Visual Studio 2012, Windows 8 und .NET 4.5
Fachreferat: Visual Studio 2012, Windows 8 und .NET 4.5
 
Angular 2 Workshop November 2015 von der w-jax 2015
Angular 2 Workshop November 2015 von der w-jax 2015Angular 2 Workshop November 2015 von der w-jax 2015
Angular 2 Workshop November 2015 von der w-jax 2015
 
Angular 2 Workshop Oktober 2015
Angular 2 Workshop Oktober 2015Angular 2 Workshop Oktober 2015
Angular 2 Workshop Oktober 2015
 
Angular von 0 auf 100
Angular von 0 auf 100Angular von 0 auf 100
Angular von 0 auf 100
 
Ruby on Rails SS09 06
Ruby on Rails SS09 06Ruby on Rails SS09 06
Ruby on Rails SS09 06
 
Open icf (open identity connector framework) @ forgerock deutsch
Open icf (open identity connector framework) @ forgerock   deutschOpen icf (open identity connector framework) @ forgerock   deutsch
Open icf (open identity connector framework) @ forgerock deutsch
 
Wieviel Client braucht das Web?
Wieviel Client braucht das Web?Wieviel Client braucht das Web?
Wieviel Client braucht das Web?
 
PHP-Module in statischen Seiten - Architektur-Ansätze
PHP-Module in statischen Seiten - Architektur-AnsätzePHP-Module in statischen Seiten - Architektur-Ansätze
PHP-Module in statischen Seiten - Architektur-Ansätze
 
Automatisierung mit grunt
Automatisierung mit gruntAutomatisierung mit grunt
Automatisierung mit grunt
 

Mehr von Manfred Steyer

The newst new Router for Angular 2 - Talk at @angular_berlin, July 2016
The newst new Router for Angular 2 - Talk at @angular_berlin, July 2016The newst new Router for Angular 2 - Talk at @angular_berlin, July 2016
The newst new Router for Angular 2 - Talk at @angular_berlin, July 2016Manfred Steyer
 
Angular 2 - Routing Jax2016
Angular 2 - Routing Jax2016Angular 2 - Routing Jax2016
Angular 2 - Routing Jax2016Manfred Steyer
 
Moderne Web-Anwendungen mit Angular 2
Moderne Web-Anwendungen mit Angular 2Moderne Web-Anwendungen mit Angular 2
Moderne Web-Anwendungen mit Angular 2Manfred Steyer
 
Datenbasierte Services mit MVC Core 1 und EF Core 1
Datenbasierte Services mit MVC Core 1 und EF Core 1Datenbasierte Services mit MVC Core 1 und EF Core 1
Datenbasierte Services mit MVC Core 1 und EF Core 1Manfred Steyer
 
Datengetriebene Web APIs mit Entity Framework
Datengetriebene Web APIs mit Entity FrameworkDatengetriebene Web APIs mit Entity Framework
Datengetriebene Web APIs mit Entity FrameworkManfred Steyer
 
Angular 2: Custom Components
Angular 2: Custom ComponentsAngular 2: Custom Components
Angular 2: Custom ComponentsManfred Steyer
 
Web APIs mit ASP.NET Core MVC 1
Web APIs mit ASP.NET Core MVC 1Web APIs mit ASP.NET Core MVC 1
Web APIs mit ASP.NET Core MVC 1Manfred Steyer
 
Angular 2 and 1.5 Routing
Angular 2 and 1.5 RoutingAngular 2 and 1.5 Routing
Angular 2 and 1.5 RoutingManfred Steyer
 

Mehr von Manfred Steyer (9)

The newst new Router for Angular 2 - Talk at @angular_berlin, July 2016
The newst new Router for Angular 2 - Talk at @angular_berlin, July 2016The newst new Router for Angular 2 - Talk at @angular_berlin, July 2016
The newst new Router for Angular 2 - Talk at @angular_berlin, July 2016
 
Angular 2 - Routing Jax2016
Angular 2 - Routing Jax2016Angular 2 - Routing Jax2016
Angular 2 - Routing Jax2016
 
Moderne Web-Anwendungen mit Angular 2
Moderne Web-Anwendungen mit Angular 2Moderne Web-Anwendungen mit Angular 2
Moderne Web-Anwendungen mit Angular 2
 
Datenbasierte Services mit MVC Core 1 und EF Core 1
Datenbasierte Services mit MVC Core 1 und EF Core 1Datenbasierte Services mit MVC Core 1 und EF Core 1
Datenbasierte Services mit MVC Core 1 und EF Core 1
 
Datengetriebene Web APIs mit Entity Framework
Datengetriebene Web APIs mit Entity FrameworkDatengetriebene Web APIs mit Entity Framework
Datengetriebene Web APIs mit Entity Framework
 
Angular 2: Custom Components
Angular 2: Custom ComponentsAngular 2: Custom Components
Angular 2: Custom Components
 
Web APIs mit ASP.NET Core MVC 1
Web APIs mit ASP.NET Core MVC 1Web APIs mit ASP.NET Core MVC 1
Web APIs mit ASP.NET Core MVC 1
 
Microservices
MicroservicesMicroservices
Microservices
 
Angular 2 and 1.5 Routing
Angular 2 and 1.5 RoutingAngular 2 and 1.5 Routing
Angular 2 and 1.5 Routing
 

.NET Summit 2016 in München: ASP.NET Core 1

  • 1. 1 ASP.NET Core 1 (vormals ASP.NET 5): Was ist neu? Was ist anders? Manfred Steyer ManfredSteyer Über mich …  Manfred Steyer  SOFTWAREarchitekt.at  Trainer & Berater  Angular am Client  .NET am Server Page  2
  • 2. 2 Ziel Ideen und ausgewählte Konzepte hinter ASP.NET Core 1 anhand einer Demo- Anwendung vermitteln Folie 3 Inhalt Motivation: ASP.NET heute und morgen DEMO: Web App mit ASP.NET MVC Core 1 DEMO: Web API mit ASP.NET MVC Core 1 Folie 9
  • 4. 4 Trends HTTP-Services, Web APIs, REST GET /flights/Graz-Frankfurt?date=2014-12-24 HTTP/1.1 Host: myserver Accept: application/xml HTTP/1.1 200 OK Content-Type: text/json [ {"Time": "1700", "FlightNumer":"LH4711", ...}, {"Time": "1800", "FlightNumer":"LH4712", ...}, … ]
  • 5. 5 ASP.NET HEUTE Page  15 Status quo MVC Web API SignalR Web Pages
  • 6. 6 Stärken von ASP.NET Vielfältige Optionen Großes "Out-of-the-Box"-Framework Etablierte typsichere Sprachen Gute Werkzeuge Stärken der Konkurrenz Leichtgewichtigkeit Debuggen Minimaler Server Side-by-Side Plattformunabhängigkeit Asynchronität
  • 7. 7 Was hindert uns daran, die Vorteile der Konkurrenz in ASP.NET zu übernehmen? Folie 19 Gründe Kopplung an IIS • Plattformunabhängigkeit • Leichtgewichtigkeit Architektur • Debuggen • Side-by-Side Folie 20 Komplexität • Plattformunabhängigkeit
  • 8. 8 Warum Kopplung an IIS ? Folie 21 ASP.NET Frameworks System.Web IIS ASP.NET CORE 1 Page  22
  • 9. 9 .NET Core Folie 24 Plattformunabhängigkeit  Neu-Implementierung ohne System.Web  Neues Projektsystem  Self-Hosting  Open Source Leichtgewichtigkeit  Modular (NuGet)  Side-by-Side  Weniger Platzbedarf  Projekt == NuGet-Paket  Compile-to-RAM Folie 25 Eigenschaften
  • 10. 10 System.Web Features von System.Web müssen neu implementiert werden Sessions, Caching, Konfiguration, Routing Konsequenz: Breaking-Changes Folie 26 Mehrgleisigkeiten heute Web API MVC Web Pages
  • 11. 11 ASP.NET MVC Core 1 Vereinheitlichung von MVC, Web API und Web Pages Keine Unterscheidung zwischen (MVC-)Controller und ApiController Einheitliche Konzepte für Dependency-Injection, Routing, Filter etc. Migration Code muss abgeändert werden Bestehende Framework-Versionen existieren nach wie vor, werden jedoch nicht auf Core CLR migriert Das selbe gilt für WCF und Web Forms WCF Web Forms Web API 2MVC 5 "Klassisches" .NET Framework / "Full CLR"
  • 12. 12 ASP.NET CORE 1: BOOTSTRAPPING Page  30 Middleware-Komponenten Folie 31 Server Web-Framework Web-Application Middleware1 Middleware2 Middleware… Middlewaren Anfrage Antwort Host-Prozess HTTP
  • 13. 13 Konfiguration der Pipeline Folie 32 public class Startup { public void ConfigureServices(IServiceCollection services) { […] services.AddMvc() […] } public void Configure(IApplicationBuilder app) { […] app.UseIISPlatformHandler(); app.UseStaticFiles(); app.UseMvc(); […] } } Konfiguration Abhängig von der Umgebung Folie 33 public void Configure(IApplicationBuilder app, IHostingEnvironment env) { […] if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); } else { app.UseExceptionHandler("/Home/Error"); } […] }
  • 14. 14 Hosting Kestrel (X-Plattform, Self-Host) WebListener (Windows, Self-Host) IIS  Kestrel Nginx  Kestrel Folie 34 DEMO Page  35
  • 15. 15 LAYOUT-SEITEN Page  36 Layout-Seiten Folie 37 <html> <head> <title>@ViewBag.Title</title> </head> <body> <div id="main"> <div>@RenderSection("links", required:true)</div> <div>@RenderBody()</div> </div> </body> </html>
  • 16. 16 Standard-Layout Für gewöhnlich:  Views/Shared/_Layout.cshtml Definiert in Views/_ViewStart.cshtml:  Layout = "_Layout"; Folie 38 DEMO Page  39
  • 17. 17 TAG-HELPER Page  40 @model IEnumerable<MvcApplication.Models.Flug> […] @foreach (var item in Model) { <tr> <td> @item.Von </td> <td> @item.Nach </td> <td> <a asp-controller="Home" asp-action="Edit" asp-route-id="1" class="navbar-brand">Edit</a> </td> </tr> } Beispiel für View
  • 18. 18 Nutzung von TagHelper  Pakete  Microsoft.AspNet.Mvc.TagHelpers  Microsoft.AspNet.Tooling.Razor  Views/_ViewImports.cshtml  @addTagHelper "*, Microsoft.AspNet.Mvc.TagHelpers" Folie 42 DEMO Page  43
  • 19. 19 WEB APIS MIT MVC CORE 1 Page  44 Web APIs in MVC Core 1 Kein eigenes Routing für Web APIs Selbe Konzept, wie für MVC-Anwendungen Routing berücksichtigt keine URL-Parameter zur Wahl der Methode Folie 45
  • 20. 20 Web API mit Attribut-basierten Routen Folie 46 [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) { […] } } DEMO Page  47
  • 21. 21 Formatter konfigurieren Folie 48 public class Startup { public void ConfigureServices(IServiceCollection services) { services.AddMvc() .AddJsonOptions(options => { […] }) .AddMvcOptions(options => { […] }); } } XML-Formatter Paket: Microsoft.AspNet.Mvc.Formatters.Xml  XmlDataContractSerializerInputFormatter  XmlDataContractSerializerOutputFormatter Folie 49
  • 22. 22 DEMO Page  50 META-DATEN VIA SWAGGER Page  51
  • 23. 23 Swagger JSON-basierte Metadatenformat für Web APIs Weit verbreitet Kein offizieller Standard Folie 52 Swagger Folie 53 JSON-Schema für Datentypen Operationen (Verb, Url, Datentypen für Anfrage und Antworten)
  • 24. 24 SWASHBUCKLE Page  54 Swashbuckle  Swagger-Implementierung für ASP.NET MVC Core 1  Installation via NuGet  Startup.ConfigureServices:  services.AddSwaggerGen();  Startup.Configure  app.UseSwaggerGen(); -- Swagger-Dokument via /swagger  app.UseSwaggerUi(); -- Swaager-UI via /swagger/ui Folie 55
  • 25. 25 DEMO Page  56 Fazit  Aktuelle Trends werden besser unterstützt  Abstand zur Konkurrenz wird aufgeholt ohne auf eigene Vorteile zu verzichten  Plattformunabhängigkeit  Leichtgewichtigkeit  Vereinheitlichung, aber Breaking Changes  Aber: Bestehende Versionen bleiben erhalten Folie 69
  • 26. 26 Fazit Neue Features  Leichtgewichtiges Hosting  Self-Hosting  Dependency Injection  Tag Helper MVC: Web Apps & Web APIs Interessant auch für Desktop/Mobile-Entwickler (Services) Folie 70 manfred.steyer@SOFTWAREarchitekt.at SOFTWAREarchitekt.at ManfredSteyer Contact