31
ASP.NET 5 (formerly ASP.NET vNext) Lean .NET stack for building modern web apps Telerik Academy Plus http://academy.telerik.com Visual Studio 2015 and ASP.NET 5

(formerly ASP.NET vNext) Lean.NET stack for building modern web apps Telerik Academy Plus Visual Studio 2015 and ASP.NET 5

Embed Size (px)

Citation preview

Page 1: (formerly ASP.NET vNext) Lean.NET stack for building modern web apps Telerik Academy Plus  Visual Studio 2015 and ASP.NET 5

ASP.NET 5(formerly ASP.NET vNext)

Lean .NET stack for building modern web apps

Telerik Academy Plushttp://academy.telerik.com

Visual Studio 2015 and ASP.NET 5

Page 2: (formerly ASP.NET vNext) Lean.NET stack for building modern web apps Telerik Academy Plus  Visual Studio 2015 and ASP.NET 5

Caution At the time of this presentation, we are using KRE-CLR-x86 1.0.0-beta1 (ASP.NET 5 beta 1) As things are moving really fast in

this new world, it’s very likely that the things explained here will have been changed as you read/watch

Also this lecture requires good knowledge of the ASP.NET MVC technology

2

Page 3: (formerly ASP.NET vNext) Lean.NET stack for building modern web apps Telerik Academy Plus  Visual Studio 2015 and ASP.NET 5

Table of Contents Introduction to ASP.NET 5 What is Different in ASP.NET 5?

Rewritten, Flexible, Cross-Platform

Middlewares and IoC built-in

Grunt and Bower in ASP.NET 5 templates

View Components

Web API in ASP.NET MVC 6 Entity Framework 7 ASP.NET WebForms 4.6 3

Page 4: (formerly ASP.NET vNext) Lean.NET stack for building modern web apps Telerik Academy Plus  Visual Studio 2015 and ASP.NET 5

Software and Useful Links

Windows 10 (Tech Preview) Visual Studio 2015 Preview

visualstudio.com/en-us/news/vs2015-preview-vs

Documentation and Roslyn source code https://github.com/aspnet/Home

https://github.com/aspnet/Home/wiki

https://github.com/aspnet/mvc

Demo code available in GitHub: github.com/NikolayIT

/ASP.NET-5-Research

4

Page 5: (formerly ASP.NET vNext) Lean.NET stack for building modern web apps Telerik Academy Plus  Visual Studio 2015 and ASP.NET 5

Introduction to ASP.NET 5

Page 6: (formerly ASP.NET vNext) Lean.NET stack for building modern web apps Telerik Academy Plus  Visual Studio 2015 and ASP.NET 5

Introduction to ASP.NET 5

Lean .NET stack for building modern web apps Built from the ground up

Unified programming model that combines MVC, Web API, and Web Pages

Consists of modular components with minimal overhead

Open source in GitHub from the biginning https://github.com/aspnet/Mvc

Changes based on customer requests and feedback

6

Page 7: (formerly ASP.NET vNext) Lean.NET stack for building modern web apps Telerik Academy Plus  Visual Studio 2015 and ASP.NET 5

Introduction to ASP.NET 5

Lean .NET stack for building modern web apps New flexible and cross-platform

runtime

New modular HTTP request pipeline

Cloud-ready environment configuration

Ability to self-host or host on IIS

Ability to see changes without re-building the project

Side-by-side versioning of the .NET Framework

New tools in Visual Studio 2015

7

Page 8: (formerly ASP.NET vNext) Lean.NET stack for building modern web apps Telerik Academy Plus  Visual Studio 2015 and ASP.NET 5

What is Different in ASP.NET 5?

Page 9: (formerly ASP.NET vNext) Lean.NET stack for building modern web apps Telerik Academy Plus  Visual Studio 2015 and ASP.NET 5

Flexible, Cross-Platform In the past, the .NET Framework was delivered as a single, all-encompassing installation Features were added but rarely

removed

The size of the framework continually grew

ASP.NET 5 can be run on Full .NET CLR – 200 MB, update

everything Best for backward compatibility

Core CLR (cloud-optimized runtime) – 11 MB Include only those features that you

need Cross-Platform CLR – Not ready, yet.

Use Mono.

9

Page 10: (formerly ASP.NET vNext) Lean.NET stack for building modern web apps Telerik Academy Plus  Visual Studio 2015 and ASP.NET 5

Choosing Runtime By default, new Visual Studio projects use the full .NET CLR

You can specify the Core CLR in the configuration properties for your project

10

Page 11: (formerly ASP.NET vNext) Lean.NET stack for building modern web apps Telerik Academy Plus  Visual Studio 2015 and ASP.NET 5

Demo: Different RuntimesASP.NET 5 (CLR) and ASP.NET Core 5

(CoreCLR)

Page 12: (formerly ASP.NET vNext) Lean.NET stack for building modern web apps Telerik Academy Plus  Visual Studio 2015 and ASP.NET 5

Flexible, Cross-Platform (2)

ASP.NET 5 – Faster Development Cycle Features are shipped as packages

Use just features needed

Framework ships as part of the application

Zero-day security bugs patched

Same code runs in development and production

Edit code and refresh browser Develop with VS, third-party or cloud editors

12

Page 13: (formerly ASP.NET vNext) Lean.NET stack for building modern web apps Telerik Academy Plus  Visual Studio 2015 and ASP.NET 5

Host Anywhere The ASP.NET 5 applications can be deployed on IIS or can be self-hosted (in own process)

If Core CLR is used every single dependency is bundled within the deployment package Not dependent on .NET framework

version

Different versions of .NET side-by-side Different applications may work

on different runtime versions

To run different versions,you must target the Core CLR

13

Page 14: (formerly ASP.NET vNext) Lean.NET stack for building modern web apps Telerik Academy Plus  Visual Studio 2015 and ASP.NET 5

Better Performance Faster startup times Lower memory The platform (ASP.NET 5) is modular You can turn features on and off as

you want

14

Page 15: (formerly ASP.NET vNext) Lean.NET stack for building modern web apps Telerik Academy Plus  Visual Studio 2015 and ASP.NET 5

Package Management ASP.NET 5 introduces a new, lightweight way to manage dependencies in your projects No more assembly references

Instead referencing NuGet packages

project.json file

15

Page 16: (formerly ASP.NET vNext) Lean.NET stack for building modern web apps Telerik Academy Plus  Visual Studio 2015 and ASP.NET 5

Middlewares Improved HTTP performance

New HTTP request pipeline that is lean and fast The new pipeline also supports OWIN

You choose what to use in your application By registering middlewares

public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerfactory){ app.UseErrorHandler("/Home/Error"); app.UseStaticFiles(); app.UseIdentity(); app.UseMvc(routes => ...)} 16

Page 17: (formerly ASP.NET vNext) Lean.NET stack for building modern web apps Telerik Academy Plus  Visual Studio 2015 and ASP.NET 5

Custom Middleware Create middleware class

Register in Startup.cs (IApplicationBuilder)

public class AppHeaderMiddleware { private readonly RequestDelegate next; public AppHeaderMiddleware(RequestDelegate next) { this.next = next; } public async Task Invoke(HttpContext context) { context.Response.Headers.Append("X-Application", "ASP.NET 5 Sample App"); await this.next.Invoke(context); }}

app.UseMiddleware<AppHeaderMiddleware>();// Register before app.UseMvc(...);

17

Page 18: (formerly ASP.NET vNext) Lean.NET stack for building modern web apps Telerik Academy Plus  Visual Studio 2015 and ASP.NET 5

Demo: Custom Middleware

Page 19: (formerly ASP.NET vNext) Lean.NET stack for building modern web apps Telerik Academy Plus  Visual Studio 2015 and ASP.NET 5

Other Improvements Made cloud-ready

Configuration, session and cache

No code changes for cloud environments

Dependency injection is built into ASP.NET Register services in Startup.cs

public void ConfigureServices(IServiceCollection services){ // ... services.AddScoped<ITimeProvider, TimeProvider>();}

19

Page 20: (formerly ASP.NET vNext) Lean.NET stack for building modern web apps Telerik Academy Plus  Visual Studio 2015 and ASP.NET 5

Demo: IoC in ASP.NET 5

Page 21: (formerly ASP.NET vNext) Lean.NET stack for building modern web apps Telerik Academy Plus  Visual Studio 2015 and ASP.NET 5

Grunt and Bower in ASP.NET 5

Visual Studio 2015 is integrating with Bower Similar to NuGet for client side

packages JS libraries and CSS packages

Integrating with Grunt Provide build tasks for client-side

purposes

Similar to MS Build for the client side Compile LESS, SASS

Bundling

Minification, etc.

21

Page 22: (formerly ASP.NET vNext) Lean.NET stack for building modern web apps Telerik Academy Plus  Visual Studio 2015 and ASP.NET 5

Demo: Grunt and Bower in Visual

Studio 2015

Page 23: (formerly ASP.NET vNext) Lean.NET stack for building modern web apps Telerik Academy Plus  Visual Studio 2015 and ASP.NET 5

View Components Similar to partial views, but much more powerful Something like mini-controller Responsible for rendering a chunk Some examples for view

components usage: Dynamic navigation menus Tag cloud Login panel Recently published articles Sidebar 23

Page 24: (formerly ASP.NET vNext) Lean.NET stack for building modern web apps Telerik Academy Plus  Visual Studio 2015 and ASP.NET 5

View Components (2) Consists of two parts:

The class (derived from ViewComponent)

The Razor view located in: /Views/Home/Components/SideBar/

Default.cshtml or

/Views/Shared/Components/SideBar/Default.cshtml

More information www.asp.net/vnext/overview/aspnet

-vnext/vc

public class SideBarViewComponent : ViewComponent { public IViewComponentResult Invoke(int numbers) { return View(); }}

24

Page 25: (formerly ASP.NET vNext) Lean.NET stack for building modern web apps Telerik Academy Plus  Visual Studio 2015 and ASP.NET 5

Demo: View Components

Page 26: (formerly ASP.NET vNext) Lean.NET stack for building modern web apps Telerik Academy Plus  Visual Studio 2015 and ASP.NET 5

Web API in ASP.NET MVC 6

MVC, Web API, and Web Pages are merged into a single framework called MVC 6 This merging removes duplication

In ASP.NET MVC 5 there are overlapping features with different implementations MVC routing –

System.Web.Mvc.Routing

WebAPI routing – System.Web.Http.Routing

Currently only MVC and WebAPI are unified Web Pages will be added in a later

release

26

Page 27: (formerly ASP.NET vNext) Lean.NET stack for building modern web apps Telerik Academy Plus  Visual Studio 2015 and ASP.NET 5

Demo: Web APIin ASP.NET MVC 6

Page 28: (formerly ASP.NET vNext) Lean.NET stack for building modern web apps Telerik Academy Plus  Visual Studio 2015 and ASP.NET 5

Entity Framework 7 New platforms (in addition to .NET)

Windows Phone, Windows Store ASP.NET 5 (.NET core) Mac and Linux

New data stores (in addition to relational) Non-relational data stores Not a magic abstraction but option

to use common EF functionality in all data stores SQL Server, SQLite, Azure Table

Storage, Redis, In Memory (for testing)

https://github.com/aspnet/EntityFramework

28

Page 29: (formerly ASP.NET vNext) Lean.NET stack for building modern web apps Telerik Academy Plus  Visual Studio 2015 and ASP.NET 5

ASP.NET WebForms 4.6 HTTP/2

Roslyn Code Dom Compilers Leverage the new C# 6 features

Async Model Binding (Leverage EF async)

29

Page 30: (formerly ASP.NET vNext) Lean.NET stack for building modern web apps Telerik Academy Plus  Visual Studio 2015 and ASP.NET 5

Demo: HTTP/2 inASP.NET WebForms

Page 31: (formerly ASP.NET vNext) Lean.NET stack for building modern web apps Telerik Academy Plus  Visual Studio 2015 and ASP.NET 5

форум програмиране, форум уеб дизайнкурсове и уроци по програмиране, уеб дизайн – безплатно

програмиране за деца – безплатни курсове и уроцибезплатен SEO курс - оптимизация за търсачки

уроци по уеб дизайн, HTML, CSS, JavaScript, Photoshop

уроци по програмиране и уеб дизайн за ученициASP.NET MVC курс – HTML, SQL, C#, .NET, ASP.NET MVC

безплатен курс "Разработка на софтуер в cloud среда"

BG Coder - онлайн състезателна система - online judge

курсове и уроци по програмиране, книги – безплатно от Наков

безплатен курс "Качествен програмен код"

алго академия – състезателно програмиране, състезания

ASP.NET курс - уеб програмиране, бази данни, C#, .NET, ASP.NETкурсове и уроци по програмиране – Телерик академия

курс мобилни приложения с iPhone, Android, WP7, PhoneGap

free C# book, безплатна книга C#, книга Java, книга C#Дончо Минков - сайт за програмиранеНиколай Костов - блог за програмиранеC# курс, програмиране, безплатно

?

? ? ??

?? ?

?

?

?

??

?

?

? ?

Questions?

?

ASP.NET 5

http://academy.telerik.com/seminars/software-engineering