ASP.NET vNext: was ist alles neu? Hans Peter Bornhauser€¦ · ASP.NET MVC WPF und ... Bundling...

24
Digicomp Microsoft Evolution Day 2015 1 ASP.NET vNext: was ist alles neu? Hans Peter Bornhauser Partner:

Transcript of ASP.NET vNext: was ist alles neu? Hans Peter Bornhauser€¦ · ASP.NET MVC WPF und ... Bundling...

Page 1: ASP.NET vNext: was ist alles neu? Hans Peter Bornhauser€¦ · ASP.NET MVC WPF und ... Bundling and Minification Razor (aber nur teilweise) Internet Explorer Visual Basic (noch nicht)

Digicomp Microsoft Evolution Day 2015 1

ASP.NET vNext: was ist alles neu?

Hans Peter Bornhauser

Partner:

Page 2: ASP.NET vNext: was ist alles neu? Hans Peter Bornhauser€¦ · ASP.NET MVC WPF und ... Bundling and Minification Razor (aber nur teilweise) Internet Explorer Visual Basic (noch nicht)

2Digicomp Microsoft Evolution Day 2015

Agenda ASP.NET 5

Was enthält es?

.NET 2015 Architektur

Konfiguration

Dependendy Injection

HTML Helpers

View Components

OWIN und Katana

Page 3: ASP.NET vNext: was ist alles neu? Hans Peter Bornhauser€¦ · ASP.NET MVC WPF und ... Bundling and Minification Razor (aber nur teilweise) Internet Explorer Visual Basic (noch nicht)

3Digicomp Microsoft Evolution Day 2015

Referent: Hans Peter Bornhauser

Dipl. Ing ETH

Software Architekt, Senior Software Engineer, Beraterund Trainer bei Noser Engineering AG in Winterthur

.NET Trainer bei Digicomp

14 Jahre Erfahrung in.NET Entwicklung(seit Beta 1.0)

ASP.NET MVC

WPF und Silverlight

WCF und Entity Framework

Microsoft Certifications

MCSD Web Applications .NET 4.5

MCT (Certified Trainer)

Page 4: ASP.NET vNext: was ist alles neu? Hans Peter Bornhauser€¦ · ASP.NET MVC WPF und ... Bundling and Minification Razor (aber nur teilweise) Internet Explorer Visual Basic (noch nicht)

4Digicomp Microsoft Evolution Day 2015

Was ist ASP.NET 5?

ASP.NET vNext == ASP.NET 5 == ASP.NET MVC 6

Läuft auf .NET 4.6 und .NET Core (optimiert für Server, kleiner Footprint)

Komplett neue, flexible, cross-platform Runtime (auch auf Mac OSX und Linux)

Einheitliches Programmiermodell für MVC, Web API und Web Pages

Neue modulare HTTP Request Pipeline (OWIN)

Cloud-ready Konfiguration

Open source auf GitHub

Kommt zusammen mit EF7

Page 6: ASP.NET vNext: was ist alles neu? Hans Peter Bornhauser€¦ · ASP.NET MVC WPF und ... Bundling and Minification Razor (aber nur teilweise) Internet Explorer Visual Basic (noch nicht)

6Digicomp Microsoft Evolution Day 2015

Mehrere CLR (Common Language Runtime)

Full .NET CLR

Standard für Rückwärtskompatibilität

Core CLR (cloud-optimized)

CLR ist modular, basierend auf NuGet packages

Cross-Platform CLR

Läuft auf Linux und Mac OSX

Page 7: ASP.NET vNext: was ist alles neu? Hans Peter Bornhauser€¦ · ASP.NET MVC WPF und ... Bundling and Minification Razor (aber nur teilweise) Internet Explorer Visual Basic (noch nicht)

7Digicomp Microsoft Evolution Day 2015

Time to say good-bye to ...

Web Forms

web.config und .csproj

global.asax

Bundling and Minification

Razor (aber nur teilweise)

Internet Explorer

Visual Basic (noch nicht)

Page 8: ASP.NET vNext: was ist alles neu? Hans Peter Bornhauser€¦ · ASP.NET MVC WPF und ... Bundling and Minification Razor (aber nur teilweise) Internet Explorer Visual Basic (noch nicht)

8Digicomp Microsoft Evolution Day 2015

Demo

Page 9: ASP.NET vNext: was ist alles neu? Hans Peter Bornhauser€¦ · ASP.NET MVC WPF und ... Bundling and Minification Razor (aber nur teilweise) Internet Explorer Visual Basic (noch nicht)

9Digicomp Microsoft Evolution Day 2015

Configuration

config.json

{

"ConnectionStrings": {

"JsonConnectionString": "json connection string"

}

}

config.xml

<config>

<ConnectionStrings>

<XmlConnectionString>xml connection string</XmlConnectionString>

</ConnectionStrings>

</config>

config.ini

[ConnectionStrings]

IniConnectionString = ini connection string

Page 10: ASP.NET vNext: was ist alles neu? Hans Peter Bornhauser€¦ · ASP.NET MVC WPF und ... Bundling and Minification Razor (aber nur teilweise) Internet Explorer Visual Basic (noch nicht)

10Digicomp Microsoft Evolution Day 2015

Startup.cs

public class Startup

{

public void ConfigureServices(IServiceCollection services)

{

// Definition der verwendeten Services

}

public void Configure(IApplicationBuilder app)

{

// Definition der Middleware (Request Pipeline)

}

}

Page 11: ASP.NET vNext: was ist alles neu? Hans Peter Bornhauser€¦ · ASP.NET MVC WPF und ... Bundling and Minification Razor (aber nur teilweise) Internet Explorer Visual Basic (noch nicht)

11Digicomp Microsoft Evolution Day 2015

Dependency Injection

Eingebauter Mini-IoC (Inversion of Control)

1. Injection in Constructor: public HomeController(ITimeService timeService)

2. Injection in Razor Views @inject

4 Varianten um Objekt zu erzeugen

1. Transient: neue Instanz bei jeder Verwendung

2. Scoped: Instanz per Scope (Session)

3. Instance: Einmal erzeugen beim Programstart

4. Singleton: Instanz automatisch anlegen bei erstmaliger Verwendung

Page 12: ASP.NET vNext: was ist alles neu? Hans Peter Bornhauser€¦ · ASP.NET MVC WPF und ... Bundling and Minification Razor (aber nur teilweise) Internet Explorer Visual Basic (noch nicht)

12Digicomp Microsoft Evolution Day 2015

Demo Dependency Injection

Page 13: ASP.NET vNext: was ist alles neu? Hans Peter Bornhauser€¦ · ASP.NET MVC WPF und ... Bundling and Minification Razor (aber nur teilweise) Internet Explorer Visual Basic (noch nicht)

13Digicomp Microsoft Evolution Day 2015

HTML Helpers => Tag Helpers

@Html.ValidationSummary(true, "", new { @class = "text-danger" })

<div class="form-group">

@Html.LabelFor(m => m.UserName, new { @class = "col-md-2 control-label" })

<div class="col-md-10">

@Html.TextBoxFor(m => m.UserName, new { @class = "form-control" })

@Html.ValidationMessageFor(m => m.UserName, "", new { @class = "text-danger" })

</div>

</div><div asp-validation-summary="ModelOnly" class="text-danger" /><div class="form-group">

<label asp-for="UserName" class="col-md-2 control-label" /><div class="col-md-10">

<input asp-for="UserName" class="form-control" /><span asp-validation-for="UserName" class="text-danger" />

</div></div>

Page 14: ASP.NET vNext: was ist alles neu? Hans Peter Bornhauser€¦ · ASP.NET MVC WPF und ... Bundling and Minification Razor (aber nur teilweise) Internet Explorer Visual Basic (noch nicht)

14Digicomp Microsoft Evolution Day 2015

View Components

Ähnlich wie Partial Views, aber viel leistungsfähiger

View Components sind wie Mini Controllers; rendern nur einen Teil, nicht eine ganze Seite

Dynamische Menus für Navigation

Tag cloud

Login Panel

Shopping Cart

View Fragmente dazu liegen im Ordner Components

Page 15: ASP.NET vNext: was ist alles neu? Hans Peter Bornhauser€¦ · ASP.NET MVC WPF und ... Bundling and Minification Razor (aber nur teilweise) Internet Explorer Visual Basic (noch nicht)

15Digicomp Microsoft Evolution Day 2015

Demo View Components

@Html.Action("widget") => @Component.Invoke("widget")

Page 16: ASP.NET vNext: was ist alles neu? Hans Peter Bornhauser€¦ · ASP.NET MVC WPF und ... Bundling and Minification Razor (aber nur teilweise) Internet Explorer Visual Basic (noch nicht)

16Digicomp Microsoft Evolution Day 2015

Resource und Exception Filter

Page 17: ASP.NET vNext: was ist alles neu? Hans Peter Bornhauser€¦ · ASP.NET MVC WPF und ... Bundling and Minification Razor (aber nur teilweise) Internet Explorer Visual Basic (noch nicht)

17Digicomp Microsoft Evolution Day 2015

ExceptionFilter

public class CustomLoggingExceptionFilter : ExceptionFilterAttribute{

private readonly ILogger _logger;

public CustomLoggingExceptionFilter(ILoggerFactory loggerFactory){

_logger = loggerFactory.CreateLogger("CustomOneLoggingExceptionFilter");}

public override void OnException(ExceptionContext context){

_logger.LogInformation("OnActionExecuting");base.OnException(context);

}

//public override Task OnExceptionAsync(ExceptionContext context)//{// _logger.LogInformation("OnActionExecuting async");// return base.OnExceptionAsync(context);//}

}

Page 18: ASP.NET vNext: was ist alles neu? Hans Peter Bornhauser€¦ · ASP.NET MVC WPF und ... Bundling and Minification Razor (aber nur teilweise) Internet Explorer Visual Basic (noch nicht)

18Digicomp Microsoft Evolution Day 2015

Resource Filter

public class CustomResourceFilter : IResourceFilter{

private readonly ILogger _logger;

public CustomResourceFilter(ILoggerFactory loggerFactory){

_logger = loggerFactory.CreateLogger("CustomResourceFilter");}

public void OnResourceExecuting(ResourceExecutingContext context){

_logger.LogInformation("OnResourceExecuting");}

public void OnResourceExecuted(ResourceExecutedContext context){

_logger.LogInformation("OnResourceExecuted");}

}

Page 19: ASP.NET vNext: was ist alles neu? Hans Peter Bornhauser€¦ · ASP.NET MVC WPF und ... Bundling and Minification Razor (aber nur teilweise) Internet Explorer Visual Basic (noch nicht)

19Digicomp Microsoft Evolution Day 2015

Was sind OWIN und Katana?

OWIN: Open Web Interface for .NET

Definiert eine Standard-Schnittstelle zwischen .NET Webserver und Webapplikationen

Ziel: Entkopplung der Webapplikation vom Server mit einer Abstraktionsschicht

Definiert eine Pipeline von Modulen, die ein Request durchläuft

Katana: OWIN Implementation für Microsoft Servers und Frameworks

Komponenten von Microsoft, welche die OWIN-Spezifikationen erfüllen

Page 20: ASP.NET vNext: was ist alles neu? Hans Peter Bornhauser€¦ · ASP.NET MVC WPF und ... Bundling and Minification Razor (aber nur teilweise) Internet Explorer Visual Basic (noch nicht)

20Digicomp Microsoft Evolution Day 2015

Was ist mit Web Forms?

Nur noch in .NET 4.6

Unterstützung von HTTP2

Fokus auf bessere Performance

Nur noch eine TCP-Verbindung

Header-Kompression

Kann Antworten zum Client pushen (z.B. Bilder)

Async Model Binding

Roslyn CodeDOM Compilers

Page 21: ASP.NET vNext: was ist alles neu? Hans Peter Bornhauser€¦ · ASP.NET MVC WPF und ... Bundling and Minification Razor (aber nur teilweise) Internet Explorer Visual Basic (noch nicht)

21Digicomp Microsoft Evolution Day 2015

Wann kommt ASP.NET 5?

15.10.15: Beta 8 Feature Complete

Nov. 15: RC1

Q1 / 2016: Release 1.0

danach

Visual Basic Support

SignalR 3

Web Pages 4

Page 22: ASP.NET vNext: was ist alles neu? Hans Peter Bornhauser€¦ · ASP.NET MVC WPF und ... Bundling and Minification Razor (aber nur teilweise) Internet Explorer Visual Basic (noch nicht)

22Digicomp Microsoft Evolution Day 2015

F&A

Page 23: ASP.NET vNext: was ist alles neu? Hans Peter Bornhauser€¦ · ASP.NET MVC WPF und ... Bundling and Minification Razor (aber nur teilweise) Internet Explorer Visual Basic (noch nicht)

23Digicomp Microsoft Evolution Day 2015

Weiterführende Kurse

Neues in .NET 4.6 und Visual Studio 2015 (CN6)

1 Tag

CHF 800.-

Nächster Termin: 17.11.2015

https://www.digicomp.ch/weiterbildung/softwareentwicklung/microsoft-net/microsoft-net-framework/neues-in-net-4-6-und-visual-studio-2015

Entwicklung von Webapplikationen mit ASP.NET MVC 5 (MVC)

2 Tage

CHF 1’700.-

Nächster Termin: 12.-13.11.2015

https://www.digicomp.ch/weiterbildung/softwareentwicklung/microsoft-net/web-entwicklung-mit-net/entwicklung-von-webapplikationen-mit-mvc-5

Page 24: ASP.NET vNext: was ist alles neu? Hans Peter Bornhauser€¦ · ASP.NET MVC WPF und ... Bundling and Minification Razor (aber nur teilweise) Internet Explorer Visual Basic (noch nicht)

24Digicomp Microsoft Evolution Day 2015

Referenzen

http://www.asp.net/vnext

http://blogs.msdn.com/b/webdev/archive/2015/02/23/aspnet-5-updates-for-feb-2015.aspx

http://www.tugberkugurlu.com/archive/exciting-things-about-asp-net-vnext-series-the-ultimate-guide

ASP.NET 5 Runtime https://msdn.microsoft.com/de-de/magazine/dn913182.aspx

http://channel9.msdn.com/Shows/Web+Camps+TV/5-Things-about-ASPNET-5-that-will-Blow-your-Mind

Client Dev. mit Gulp, Grunt, ... http://docs.asp.net/en/latest/client-side/index.html