24
ASP.NET 5 Александр Шевнин, Аркадия

2015-12-12 | AzovDevMeetup 2015 | ASP.NET 5 | Александр Шевнин

Embed Size (px)

Citation preview

Page 1: 2015-12-12 | AzovDevMeetup 2015 | ASP.NET 5 | Александр Шевнин

ASP.NET 5

Александр Шевнин, Аркадия

Page 2: 2015-12-12 | AzovDevMeetup 2015 | ASP.NET 5 | Александр Шевнин

2

About myselfAlexander ShevninJSC “Arcadia Inc.”[email protected]

In Arcadia from 2012, last 2 years work mostly with ASP.NET, C#, AngularJS and TypeScript

Page 3: 2015-12-12 | AzovDevMeetup 2015 | ASP.NET 5 | Александр Шевнин

3

Web Development with Microsoft• ASP – Active Server Pages – 1996 – VBScript, Jscript

Page 4: 2015-12-12 | AzovDevMeetup 2015 | ASP.NET 5 | Александр Шевнин

4

Web Development with Microsoft• ASP – Active Server Pages – 1996 – VBScript, Jscript• XSP ( because everything cool starts with X) – prototype, written in Java

Page 5: 2015-12-12 | AzovDevMeetup 2015 | ASP.NET 5 | Александр Шевнин

5

Web Development with Microsoft• ASP – Active Server Pages – 1996 – VBScript, Jscript• XSP ( because everything cool starts with X) – prototype, written in Java • ASP.NET – 2002• ASP.NET MVC – 2007• ASP.NET MVC 3 – 2011 – Razor introduced• ASP.NET 5 RC – November 2015

Page 6: 2015-12-12 | AzovDevMeetup 2015 | ASP.NET 5 | Александр Шевнин

New stack• VS2015• ASP .NET 5 (ex-vNext)• MVC 6• .NET Core vs .NET Framework vs Mono• DNVM (.NET Version Manager)• DNX (.NET Execution Environment)• DNU (.NET Development Utilities)• Kestrel

Page 7: 2015-12-12 | AzovDevMeetup 2015 | ASP.NET 5 | Александр Шевнин

.NET Core• Primary goal: provide a single, modular, cross-platform version of .NET that works the

same across all platforms (Linux, Mac, iOS, Android)• Consists of:

• CoreFX (libraries)• CoreCLR (Microsoft.CoreCLR)

• Distributed via NuGet• Portable

Page 8: 2015-12-12 | AzovDevMeetup 2015 | ASP.NET 5 | Александр Шевнин

DNX (.NET Execution Environment)• New project.json• Can cross-compile for both .NET Framework and .NET Core

• Recommendation from ASP.NET team: target both frameworks

Page 9: 2015-12-12 | AzovDevMeetup 2015 | ASP.NET 5 | Александр Шевнин

DNX

Page 10: 2015-12-12 | AzovDevMeetup 2015 | ASP.NET 5 | Александр Шевнин

Hosting model• dnu build & dnu pack & dnu publish• It’s possible to publish on Docker host (Azure or custom)• Kestrel Web server (https://github.com/aspnet/KestrelHttpServer/), based on libuv• IIS

• Helios up to beta7 (Microsoft.AspNet.Server.IIS) – uses existing System.Web• Kestrel from beta8 through IIS HTTP Platform Handler (https://

github.com/aspnet/Announcements/issues/69

Page 11: 2015-12-12 | AzovDevMeetup 2015 | ASP.NET 5 | Александр Шевнин

11

HTTP Platform Handler

Page 12: 2015-12-12 | AzovDevMeetup 2015 | ASP.NET 5 | Александр Шевнин

12

Benefits/Consequences of Kestrel• IIS 7.5 at least (Win7)• Eases development for Microsoft• IIS AppPool does not need to run any managed code• No need in Windows Server• Existing modules still can run in IIS alongside the HttpPlatformHandler• No web.config (only app.config)• Unified servicing and boot-up• Integration with existing modules might be HARD

Page 13: 2015-12-12 | AzovDevMeetup 2015 | ASP.NET 5 | Александр Шевнин

Client-Side Development• Gulp, Grunt support• Bower, npm support• Yeoman templates

Page 14: 2015-12-12 | AzovDevMeetup 2015 | ASP.NET 5 | Александр Шевнин

RIP• No more Web Forms• HttpHandler-related features: e.g. Bundles• MVC – WebAPI separation • NuGet install.ps1/uninstall.ps1/content https://github.com/NuGet/Home/issues/627 • System.Web.HttpContext and so on

Page 15: 2015-12-12 | AzovDevMeetup 2015 | ASP.NET 5 | Александр Шевнин

Startup• Startup class – entry point

Page 16: 2015-12-12 | AzovDevMeetup 2015 | ASP.NET 5 | Александр Шевнин

Owin

Page 17: 2015-12-12 | AzovDevMeetup 2015 | ASP.NET 5 | Александр Шевнин

17

Owin Middleware

Page 18: 2015-12-12 | AzovDevMeetup 2015 | ASP.NET 5 | Александр Шевнин

Dependency Inversion• Both Dependency Injection and Service Locator support• Lifetimes:

• Transient• Scoped• Singleton• Instance

• Default implementation can be replaced with any other IoC container (e.g. Autofac)

Page 19: 2015-12-12 | AzovDevMeetup 2015 | ASP.NET 5 | Александр Шевнин

19

Tag Helpers• Replacement of HTML Helpers• Can be used as:

• Can be asynchronous

Page 20: 2015-12-12 | AzovDevMeetup 2015 | ASP.NET 5 | Александр Шевнин

Tag Helpers

Page 21: 2015-12-12 | AzovDevMeetup 2015 | ASP.NET 5 | Александр Шевнин

Html.Action -> View Components

Page 22: 2015-12-12 | AzovDevMeetup 2015 | ASP.NET 5 | Александр Шевнин

22

Html.Action -> View Components

Page 23: 2015-12-12 | AzovDevMeetup 2015 | ASP.NET 5 | Александр Шевнин

xUnit.net

Page 24: 2015-12-12 | AzovDevMeetup 2015 | ASP.NET 5 | Александр Шевнин

Q & A