asp .net training | asp.net course | asp.net training online | learn asp.net
ITAD BB 2014 - ASP.NET 5 - What's new?
-
Upload
michal-dudak -
Category
Software
-
view
164 -
download
2
Transcript of ITAD BB 2014 - ASP.NET 5 - What's new?
![Page 1: ITAD BB 2014 - ASP.NET 5 - What's new?](https://reader030.fdocuments.us/reader030/viewer/2022032504/55c1e1bcbb61eb41408b45cd/html5/thumbnails/1.jpg)
Michał Dudak
future-processing.pl
ASP.NET 5Co nowego?
![Page 2: ITAD BB 2014 - ASP.NET 5 - What's new?](https://reader030.fdocuments.us/reader030/viewer/2022032504/55c1e1bcbb61eb41408b45cd/html5/thumbnails/2.jpg)
O mnie
Technical Advisor & Internal Trainer
@doodack github.com/doodackhttp://blog.dudak.pl
![Page 3: ITAD BB 2014 - ASP.NET 5 - What's new?](https://reader030.fdocuments.us/reader030/viewer/2022032504/55c1e1bcbb61eb41408b45cd/html5/thumbnails/3.jpg)
Agenda
1 2 3 4 5 6
Trochę historii OWIN
PodsumowanieASP.NET dzisiaj ASP.NET 5
MVC 6
![Page 4: ITAD BB 2014 - ASP.NET 5 - What's new?](https://reader030.fdocuments.us/reader030/viewer/2022032504/55c1e1bcbb61eb41408b45cd/html5/thumbnails/4.jpg)
Trochę historii
Obecnie: .NET 4.5, MVC 5, WebAPI 2
(classic) ASP
ASP.NET 1.0 (WebForms)
ASP.NET MVC
WebAPI
1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014
![Page 5: ITAD BB 2014 - ASP.NET 5 - What's new?](https://reader030.fdocuments.us/reader030/viewer/2022032504/55c1e1bcbb61eb41408b45cd/html5/thumbnails/5.jpg)
ASP.NET dzisiaj
• MVC i WebAPI – de facto standard• Problemy:– Zduplikowane API
• Routing, DI, filtry…
– Zależność od System.Web• Framework ma 12 lat
![Page 6: ITAD BB 2014 - ASP.NET 5 - What's new?](https://reader030.fdocuments.us/reader030/viewer/2022032504/55c1e1bcbb61eb41408b45cd/html5/thumbnails/6.jpg)
ASP.NET dzisiaj
Request pipeline• Moduły– Wpinane w proces przetwarzania żądania– np. cache, uwierzytelnianie
• Handlery– Obsługują żądanie– np. Web Forms, Web Service, itp.
![Page 7: ITAD BB 2014 - ASP.NET 5 - What's new?](https://reader030.fdocuments.us/reader030/viewer/2022032504/55c1e1bcbb61eb41408b45cd/html5/thumbnails/7.jpg)
ASP.NET dzisiaj
![Page 8: ITAD BB 2014 - ASP.NET 5 - What's new?](https://reader030.fdocuments.us/reader030/viewer/2022032504/55c1e1bcbb61eb41408b45cd/html5/thumbnails/8.jpg)
ASP.NET dzisiaj
Problemy?• Za dużo „magii”• Powiązanie aplikacji i serwera
Rozwiązanie?OWIN
![Page 9: ITAD BB 2014 - ASP.NET 5 - What's new?](https://reader030.fdocuments.us/reader030/viewer/2022032504/55c1e1bcbb61eb41408b45cd/html5/thumbnails/9.jpg)
OWIN
Open Web Interface for .NET
„OWIN defines a standard interface between .NET web servers and web applications. The goal of the OWIN interface is to decouple server and application, encourage the development of simple modules for .NET web development, and, by being an open standard, stimulate the open source ecosystem of .NET web development tools.” (http://owin.org)
![Page 10: ITAD BB 2014 - ASP.NET 5 - What's new?](https://reader030.fdocuments.us/reader030/viewer/2022032504/55c1e1bcbb61eb41408b45cd/html5/thumbnails/10.jpg)
OWIN
• Niezależność od frameworków, bibliotek, itp.• Obiekt environment: IDictionary<string, object>– owin.RequestBody– owin.RequestMethod– owin.ResponseBody– …
• Asynchroniczność
![Page 11: ITAD BB 2014 - ASP.NET 5 - What's new?](https://reader030.fdocuments.us/reader030/viewer/2022032504/55c1e1bcbb61eb41408b45cd/html5/thumbnails/11.jpg)
OWIN – Middleware
• Funkcja wpinana w cykl życia żądania• Można budować łańcuchy middleware’ów
async (env, next) => {// do sth…await next();// do sth more…
}
![Page 12: ITAD BB 2014 - ASP.NET 5 - What's new?](https://reader030.fdocuments.us/reader030/viewer/2022032504/55c1e1bcbb61eb41408b45cd/html5/thumbnails/12.jpg)
OWIN – Middleware chain
![Page 13: ITAD BB 2014 - ASP.NET 5 - What's new?](https://reader030.fdocuments.us/reader030/viewer/2022032504/55c1e1bcbb61eb41408b45cd/html5/thumbnails/13.jpg)
OWIN – implementacje
• Katana• ASP.NET 5
![Page 14: ITAD BB 2014 - ASP.NET 5 - What's new?](https://reader030.fdocuments.us/reader030/viewer/2022032504/55c1e1bcbb61eb41408b45cd/html5/thumbnails/14.jpg)
ASP.NET 5• Implementacja OWIN• Uniezależnienie od System.Web• Nowa struktura projektów• Zależności do paczek nugeta• Kompilacja w locie• Hostowanie poza IIS• Wieloplatformowość• Open source• Narzędzia konsolowe• Szeroko używany DI• Entity Framework 7• MVC 6
![Page 15: ITAD BB 2014 - ASP.NET 5 - What's new?](https://reader030.fdocuments.us/reader030/viewer/2022032504/55c1e1bcbb61eb41408b45cd/html5/thumbnails/15.jpg)
Uniezależnienie od System.Web
• Brak handlerów, modułów, Global.asax, itp.• Obsługa żądań realizowana przez
middleware• Brak obsługi WebForms• Brak (prawie) plików web.config• Cały ASP.NET poza corem .NETa• Serwerowa wersja .NETa - CoreCLR
![Page 16: ITAD BB 2014 - ASP.NET 5 - What's new?](https://reader030.fdocuments.us/reader030/viewer/2022032504/55c1e1bcbb61eb41408b45cd/html5/thumbnails/16.jpg)
Nowa struktura projektów
• Project.json– Konfiguracja zależności– Ustawienia specyficzne dla frameworków
• Wszystkie pliki są domyślnie w projekcie• Folder wwwroot• Bower• Możliwość dołączenia CLR do projektu
![Page 17: ITAD BB 2014 - ASP.NET 5 - What's new?](https://reader030.fdocuments.us/reader030/viewer/2022032504/55c1e1bcbb61eb41408b45cd/html5/thumbnails/17.jpg)
Kompilacja w locie
• Roslyn – nowa platforma kompilatorów C# i Visual Basic (open source)
• Rekompilacja przy odświeżeniu strony• Build w Visual Studio jedynie sprawdza
poprawność kodu• Brak fizycznych DLLek• Assembly trzymane w pamięci operacyjnej
![Page 18: ITAD BB 2014 - ASP.NET 5 - What's new?](https://reader030.fdocuments.us/reader030/viewer/2022032504/55c1e1bcbb61eb41408b45cd/html5/thumbnails/18.jpg)
Hostowanie poza IIS
• Self-hosting• Custom host• Kestrel
IIS nadal pozostaje rekomendowanym serwerem
![Page 19: ITAD BB 2014 - ASP.NET 5 - What's new?](https://reader030.fdocuments.us/reader030/viewer/2022032504/55c1e1bcbb61eb41408b45cd/html5/thumbnails/19.jpg)
Wieloplatformowość
• Działa na Mono– Linux, Mac
• Kestrel– Serwer oparty o libuv
![Page 20: ITAD BB 2014 - ASP.NET 5 - What's new?](https://reader030.fdocuments.us/reader030/viewer/2022032504/55c1e1bcbb61eb41408b45cd/html5/thumbnails/20.jpg)
Narzędzia konsolowe
• k – uruchamia polecenia zdefiniowane w project.json
• kpm – (k package manager) umożliwia ściągnięcie brakujących zależności i budowanie paczki do publikacji
• kvm – (k version manager) zarządza wersjami frameworka
Visual Studio nie będzie wymagane do tworzenia aplikacji
![Page 21: ITAD BB 2014 - ASP.NET 5 - What's new?](https://reader030.fdocuments.us/reader030/viewer/2022032504/55c1e1bcbb61eb41408b45cd/html5/thumbnails/21.jpg)
Open source
• Development prowadzony na GitHubie– Kod i issue tracker
• Otwartość na istniejące narzędzia używane przez społeczność– Grunt– Gulp– Bower– Node.js
![Page 22: ITAD BB 2014 - ASP.NET 5 - What's new?](https://reader030.fdocuments.us/reader030/viewer/2022032504/55c1e1bcbb61eb41408b45cd/html5/thumbnails/22.jpg)
MVC 6• Połączone MVC, WebAPI i WebPages
– Zunifikowane typy, routing, DI
• Zgodność z OWIN• Szerzej wykorzystywane DI
– Brak staticów (RouteTable, GlobalConfiguration, itd.)
• Większa modularność• Kontrolery niewymagające klasy bazowej• Wszystko działa asynchronicznie• Uproszczony routing• Tag Helpers
@Html.TextBoxFor(m => m.Name, new { @class = ”form-control” })<input for=”Name” class=”form-control” />
![Page 23: ITAD BB 2014 - ASP.NET 5 - What's new?](https://reader030.fdocuments.us/reader030/viewer/2022032504/55c1e1bcbb61eb41408b45cd/html5/thumbnails/23.jpg)
Prosta aplikacja – przykładpublic class Startup{ public void ConfigureServices(IServiceCollection services) { services.AddMvc(); }
public void Configure(IApplicationBuilder app) { app.UseStaticFiles(); app.Use(async (ctx, next) => { await ctx.Response.WriteAsync("Hello"); await next(); }); }}
![Page 24: ITAD BB 2014 - ASP.NET 5 - What's new?](https://reader030.fdocuments.us/reader030/viewer/2022032504/55c1e1bcbb61eb41408b45cd/html5/thumbnails/24.jpg)
Aplikacja z MVC 6
app.UseMvc(routes =>{ routes.MapRoute( name: "default", template: "{controller}/{action}/{id?}", defaults: new { controller = "Home", action = "Index" });});
![Page 25: ITAD BB 2014 - ASP.NET 5 - What's new?](https://reader030.fdocuments.us/reader030/viewer/2022032504/55c1e1bcbb61eb41408b45cd/html5/thumbnails/25.jpg)
Podsumowanie
• Będzie rewolucja• Przewidywany czas wydania: połowa 2015r.
![Page 26: ITAD BB 2014 - ASP.NET 5 - What's new?](https://reader030.fdocuments.us/reader030/viewer/2022032504/55c1e1bcbb61eb41408b45cd/html5/thumbnails/26.jpg)
Do zabawy
Obraz maszyny wirtualnej na Azure http://blogs.msdn.com/b/visualstudioalm/archive/2014/06/04/visual-
studio-14-ctp-now-available-in-the-virtual-machine-azure-gallery.aspx
Obraz dysku z Visual Studio 2015 Preview
http://www.visualstudio.com/en-us/downloads/visual-studio-2015-
downloads-vs
![Page 27: ITAD BB 2014 - ASP.NET 5 - What's new?](https://reader030.fdocuments.us/reader030/viewer/2022032504/55c1e1bcbb61eb41408b45cd/html5/thumbnails/27.jpg)
Do poczytania/obejrzenia• http://asp.net/vnext
• https://github.com/aspnet/
• http://davidfowl.com/
• http://channel9.msdn.com/events/TechEd/NorthAmerica/2014/
DEV-B385
• http://
channel9.msdn.com/events/TechEd/NorthAmerica/2014/DEV-B
411
• http://owin.org/
![Page 28: ITAD BB 2014 - ASP.NET 5 - What's new?](https://reader030.fdocuments.us/reader030/viewer/2022032504/55c1e1bcbb61eb41408b45cd/html5/thumbnails/28.jpg)
Pytania
Rozwiń skrót OWIN
Jakie frameworki integruje MVC 6?
W jakim formacie jest nowy plik projektu?
![Page 29: ITAD BB 2014 - ASP.NET 5 - What's new?](https://reader030.fdocuments.us/reader030/viewer/2022032504/55c1e1bcbb61eb41408b45cd/html5/thumbnails/29.jpg)
Michał Dudak
future-processing.pl
Dziękuję za uwagę