SlideShare a Scribd company logo
1 of 71
ASP.NET, jakiego (jeszcze) nie
znacie - co nowego dla web
developerów?
Bartłomiej Zass
Senior Technical Evangelist | Microsoft
Cel sesji
 Zobaczysz co wydarzyło się przez ostatni rok w ASP.NET i
narzędziach
 Dowiesz się co nowego dla web deweloperów w Visual Studio 2013
 Zrozumiesz czym jest OWIN i Katana
 Poznasz podstawy ASP.NET Web API 2 oraz SignalR
Plan prezentacji






Najważniejsze nowości od Visual Studio 2012
Co nowego w Visual Studio 2013?
OWIN i Katana
ASP.NET Web API v2
SignalR
ASP.NET i Web Tools
Release co ok. 6 miesięcy

Wrzesień
2012

ASP.NET
4.5
VS2012

Luty
2013

ASP.NET
& Web
Tools
2012.2

Jesień
2013

VS2013
Web Tools „Labs”
 Release co ok. 2 tygodnie
 Od lipca otwarty kod
ASP.NET 4.5 (VS 2012)
 Wspólne







Biblioteki przez NuGet
Optymalizacja transferu
Walidacja żądań
HTML 5 Web Sockets
30% szybszy start
30% mniej pamięci

 MVC
 HTML 5
 Mobile
 Async controller
ASP.NET 4.5 (c.d.)
 Web Forms








HTML 5
Szablony projektów
Request Validation
Silnie typowane kontrolki
Model Binders
Data Annotations
Unobtrusive JS validation

 Web API v1
 Framework do usług HTTP
Otwarty kod
 aspnetwebstack.codeplex.com
 ASP.NET MVC, ASP.NET Web API, ASP.NET Web Pages

 entityframework.codeplex.com
 Entity Framework

 github.com/SignalR/SignalR
 ASP.NET SignalR
Visual Studio 2012 (web)
 Ogólne
 Round tripping
 Page inspector

 Standardy
 Wsparcie dla HTML 5
 Całkowicie nowy edytor CSS
 Całkowicie nowy edytor
JavaScript

 Edytor Web Forms
 Pełne wsparcie dla kontrolek
serwerowych w edytorze .ASPX

 Publikowanie
 Publikowanie na Azure/TFS
 Database Migrations
ASP.NET & Web Tools Update 2012.2
 Web Forms
 Friendly URLs (/page/5 zamiast
page.aspx?id=5)
 Strony mobilne
(page.Mobile.aspx)

 MVC
 Single Page Applications template
 Facebook App template

 Web API
 Odata
 Tracing
 Help Page

 SignalR v1
 Visual Studio
 LESS
 Podświetlanie składni:
CoffeeScript, KnockoutJS,
Mustache, Handlebars, JSRender
 Mobile Emulator extensibility
 Selective Publishing, local/remote
diff
 Page inspector dla elementów
dynamicznych
ASP.NET & Web Tools 2013
 One ASP.NET
 Nowy interfejs zakładania projektu
 Dodawanie dowolnego frameworku do
dowolnego projektu
 Scaffolding dla wszystkich typów projektów
 Konfiguracja uwierzytelnienia

 Ogólne
 ASP.NET Identity
 Szablony z Bootstrap.js

 Azure



 Server Explorer: Web Sites, Mobile Services,
VM’s, filtrowanie
MVC 5
 Attribute Routing
 Authentication filters, filter overrides
(wyłączanie per akcja)

 Web API v2





CORS
Attribute Routing
Pełniejsze wsparcie dla OData
OAUTH

 SignalR
 OWIN, PCL, Xamarin

 Entity Framework
 Async, Stored procs, connection resilency

 Visual Studio
 Nowy edytor HTML
 Live Browser Refresh
 AngularJS intellisense
R.I.P. Cassini, FrontPage Extensions
Demo
One ASP.NET
Nowości w narzędziach
OWIN i Katana
Hello, Node.js
var http = require('http');
http.createServer(function (req, res) {
res.writeHead(200, {'Content-Type':'text/plain'});
res.end('Hello Worldn');
}).listen(1337, '127.0.0.1');
Node.js po pewnym czasie…
ASP.NET – trochę historii
 Pierwsza wersja w 2002 r. z .NET 1.0
 Zoptymalizowany dla deweloperów klasycznego ASP oraz biznesowych
aplikacji desktopowych








Monolityczna struktura (System.Web)
Zaprojektowany do działania na IIS
Część .NET – rzadkie release’y
Rozwijany wraz z rosnącymi wymaganiami
Wszystkie funkcje domyślnie włączone (trzeba ręcznie wyłączać)
Jedyna opcja hostowania - IIS
Rozwiązania
 Odłączenie od cyklu produkcji .NET Framework
 ASP.NET MVC
 Częstsze release’y

 Usuwanie zależności z System.Web
 Np. ASP.NET Web API
 Możliwość self-hostingu
 Co z hostingiem?
Self-host
 ASP.NET Web API umożliwił self-hosting aplikacji
 Inne frameworki tworzyły lub miały własne serwery…
 Nowoczesne aplikacje wymagają łączenia wielu frameworków na
jednym serwerze

 Potrzebny standardowy interfejs komunikacji między hostem i
aplikacjami!
„Katana”
 Zestaw komponentów do budowania i uruchamiania aplikacji na
otwartym interfejsie / abstrakcji hostingu

Func<IDictionary<string, object>, Task>;

http://owin.org/
Komponenty „Katana”
Application

Udostępnij model
programistyczny przez
OWIN pipeline

Application Framework
Przetwarzaj żądania przez
OWIN pipeline

Server
Uruchom aplikację OWIN
na serwerze

Host
Komponenty „Katana” (2)
Application

Application Framework

Server

Host

• SignalR
• ASP.NET Web API
• SystemWeb
• HttpListener

• IIS
• OwinHost.exe
• Custom Process
Ekostystem OWIN
Application

Application Framework

Server

Host

•
•
•
•
•
•
•
•
•

SignalR
ASP.NET Web API
NancyFx
Fubu MVC
Service Stack
OpenRasta
Simple.Web
Gate
Custom Framework

• SystemWeb
• HttpListener
• Custom Server

• IIS
• OwinHost.exe
• Custom Process
Demo
Katana – Hello, World!
Katana 2.0: middleware do
uwierzytelniania








Microsoft.Owin.Security.Cookies
Microsoft.Owin.Security.Facebook
Microsoft.Owin.Security.Google
Microsoft.Owin.Security.MicrosoftAccount
Microsoft.Owin.Security.OAuth
Microsoft.Owin.Security.Twitter
Microsoft.Owin.Security.WindowsAzure
Konfiguracja middleware
app.UseOAuthBearerAuthentication(new
OAuthBearerAuthenticationOptions());
app.UseExternalSignInCookie();
app.UseMicrosoftAccountAuthentication("Client Id",
"Client Secrect");
app.UseTwitterAuthentication("Consumer Key", "Consumer Secret");
app.UseFacebookAuthentication("App ID", "App Secret");

app.UseGoogleAuthentication();
Demo
Middleware uwierzytelniający w ASP.NET MVC
Wymiana komponentów
Your Application

Web API + SignalR + static files
SystemWeb
IIS
Windows (local or remote)
Elastyczność Host/Server
Your Application

Web API + SignalR + static files
HttpListener
SystemWeb

OwinHost.exe
IIS
Windows (local or remote)
Do chmury!
Your Application

Web API + SignalR + static files
WebListener

OwinHost.exe
Windows Azure Worker Role
Windows (local or remote)
Demo
Self-hosting Katana (OwinHost)
Mono??
ASP.NET Web API
ASP.NET Web API 2
 Skalowalna platforma usług HTTP dla stron internetowych, urządzeń,
telefonów, tabletów, …
 Dystrybucja przez NuGet
 Instalowane wraz z Visual Studio 2013
 Supportowane na .NET 4.5+
 Kod - http://aspnetwebstack.codeplex.com
Demo
ASP.NET Web Api - podstawy
Nowości w ASP.NET Web API 2








Attribute Routing
Integracja z OWIN
Prostsze unit testy (IHttpActionResult)
Klient Web API wspierany przez Portable Class Library
ODATA: $select, $expand, $batch
Request batching
Web API security (CORS, OAUTH 2.0)
Attribute routing
 Definiowanie
tras bliżej
zasobów

config.Routes.MapHttpRoute(
name: “TodosForTodoList",
routeTemplate: "api/todolists/{id}/todos",
defaults: new { controller = “todolists”, action = “GetTodos” }
);

public IEnumerable<TodoItem> GetTodos() { … }
Attribute routing
 Definiowanie
tras bliżej
zasobów

config.MapHttpAttributeRoutes();

[HttpGet("api/todolists/{id}/todos")]
public IEnumerable<TodoItem> GetTodos(int id) { … }
Attribute routing
 Opcjonalne
parametry

 Domyślne
parametry

 Constraints

[HttpGet(“Demographics/{zipcode?}")]
public Demographics Get(int? zipcode) { … }

[HttpGet("Demographics/{zipcode=98052}")]
public Demographics Get(int zipcode) { … }

[HttpGet("people/{id:int}")]
public Person Get(int id) { … }
[HttpGet("people/{name:alpha}")]
public Person Get(string name) { … }
Demo
Attribute routing
Unit testing
 Miejscami było trudniejsze niż mogło być (np. post)…
 Teraz sprowadza się do:
 Utworzenie kontrolera
 Ustawienie właściwości (Request, Configuration, itp.)
 Wywołanie akcji

 IHttpActionResult
 Wywoływane zaraz po zwróceniu wartości – reszta widzi zwrócony obiekt
Demo
Testowanie z IHttpActionResult
Integracja z OWIN
 OWIN – Open Web Interface for .NET (http://owin.org)
 Wspólny interfejs komunikacji między aplikacjami webowymi a serwerem
 Inspirowany przez node.js, Rack, WSGI

 Middleware pipeline
 Zintegrowany z ASP.NET
 np. uwierzytelniane użytkownika

 ASP.NET zgodne z OWIN – działa na dowolnym hoście OWIN
Demo
Własny host OWIN z ASP.NET Web API
ASP.NET Web API OData
 Komponenty do implementacji usług Odata
 Model builders, formatery (Atom/JSON/XML), parsery, generator wyrażeń
LINQ, itp.

 Bazuje na ODataLib
 Te same podstawy co WCF Data Services

 Pierwsza wersja – VS 2012 Update 2
 top, skip, orderby, filter

 Wsparcie dla $select, $expand, $batch, $value
Demo
ASP.NET Web API Odata v2
Żądania cross-origin
 Przeglądarki nie pozwalają na wysyłanie żądań
do innych domen
 Origin = scheme + host + port

 CORS = Cross-Origin Resource Sharing
 W3C Candidate Recommendation
 Implementowane przez wszystkie nowe przeglądarki

 Wspierane przez Web API 2
 EnableCorsAttribute
Demo
ASP.NET Web API i CORS
Zabezpieczanie usług Web API
 Użytkownicy mogą nie ufać aplikacji klienckiej proszącej o hasło
 Aplikacje i serwery hostujące nie chcą przechowywać danych
logowania
 Dostęp powinien być podzielony na zakresy, z możliwością
odwołania
 Wsparcie dla wielu typów klientów i przeglądarek
 Zabezpieczenie przed CSRF
Oauth 2.0
 Framework kontrolujący dostęp do określonych chronionych
zasobów użytkownika
 Standard IETF (RFC 6749, 6750)

 Zaprojektowany do pracy z usługami HTTP
OAuth 2.0
Żądanie dostępu

Przyznanie dostępu
Przyznanie uprawnień

Access Token
Access Token
Chroniony zasób
OAuth 2.0 – przyznanie dostępu
Authorization Server
user

2
User

Browser

<Client ID>

Authorization
Endpoint

Token
Endpoint

CODE 302 3

<Client ID>
302
1

Client

Protected Resource
OAuth 2.0 – token request
Authorization Server
Authorization
Endpoint

client

<Client ID>

CODE

Client

1

Token
Endpoint

2
refresh token
access token

Protected Resource
OAuth 2.0 – resource request
authorization server
Authorization
Endpoint

1

Token
Endpoint

Authorization: Bearer

refresh token

2
access token

Client

Protected Resource
OAuth 2.0 – odświeżenie access tokenu
Authorization Server
Authorization
Endpoint

Token
Endpoint

client

2

<Client ID>

refresh token

1

access token

refresh token

Client

Protected Resource
OAuth 2.0 – wsparcie dla Bearer token
 Autoryzacja przez OAuth 2.0 Bearer tokens
 Walidacja i konwersja tokenu na claims

Client

Protected
Resource
ASP.NET Web Api 2 i Bearer token
public class Startup
{
public void ConfigureAuth(IAppBuilder app)
{
// Włącz wsparcie dla OAuth 2.0 bearer tokens
app.UseOAuthBearerAuthentication(new OAuthBearerAuthenticationOptions());
}
}
Oauth 2.0 – serwer autoryzacyjny
 Własny serwer
 Prosty serwer w szablonie Web API 2
 W przyszłości – wsparcie przez OWIN middleware

 Skorzystaj z istniejącego
 Windows Azure Active Directory
 Active Directory Federation Services w Windows Server 2012 R2
Demo
Zabezpieczanie dostępu do usług ASP.NET Web API
SignalR
SignalR





Prosty sposób na realizację komunikacji real-time po HTTP
Instalowane przez NuGet, oficjalne wsparcie (wersja 2.0)
Wydajność
Skalowalność
Przykładowe scenariusze
 Każdy scenariusz, w którym korzystamy z pollingu lub konieczne jest
odświeżanie strony
 Monitorowanie, dashboardy
 Współpraca z innymi
 Postęp pracy
 Formularze wypełniane w czasie rzeczywistym przez kilka osób
 Gry
Demo
Podstawy SignalR
SignalR i przeglądarki
 SignalR działa zawsze!





Najpierw próba z WebSockets
Fallback do Server Sent Events
Forever Frame
Long Polling
Klienci SignalR
 Obecnie









JavaScript (jQuery)
.NET 4.0 / 4.5
Silverlight 5
Windows Store apps
Windows Phone 8
Portable Class Library
MonoTouch
MonoDroid

 W przyszłości







C++
„Goły” JavaScript (bez jQuery)
iOS natywnie
Java
.NET Micro Framework
…
Demo
SignalR i WPF
Wydajność i skalowanie
 Przepustowość
 Bardzo wysoka wydajnośc
 Setki tysięcy komunikatów na sekundę
 Bardzo niskie zapotrzebowanie na pamięć

 Skalowanie
 W pełni asynchroniczny
 Tysiące połączen per serwer
 Skalowanie przez message bus (Azure Service Bus, Redis, SQL)
Skalowanie
backplane

web nodes

clients
Signalr 2 – co nowego?
 OWIN – brak zależności z System.Web!
 Portable .NET Client Library
 .NET 4.5, Silverlight 5, WinRT, Windows Phone 8






CORS
Wsparcie dla iOS i Android (MonoTouch, MonoDroid)
Komunikaty dla pojedynczego użytkownika
Zachowane wsparcie dla starszych klientów
Podsumowanie
 „One ASP.NET” – MVC, Web Forms (i inne) razem
 Browser Link
 OWIN
 Luźne wiązanie komponentów
 Wymienność
 Szybciej i elastyczniej

 Nowości w świecie usług ASP.NET
 Web API 2
 SignalR 2
© 2013 Microsoft Corporation. Wszelkie prawa zastrzeżone.
Microsoft, Windows oraz inne nazwy produktów są lub mogą być znakami towarowymi lub zastrzeżonymi znakami towarowymi firmy Microsoft w Stanach Zjednoczonych i innych krajach. Zamieszczone informacje mają
charakter wyłącznie informacyjny. FIRMA MICROSOFT NIE UDZIELA ŻADNYCH GWARANCJI (WYRAŻONYCH WPROST LUB DOMYŚLNIE), W TYM TAKŻE USTAWOWEJ RĘKOJMI ZA WADY FIZYCZNE I PRAWNE, CO DO
INFORMACJI ZAWARTYCH W TEJ PREZENTACJI.

More Related Content

What's hot

Środowisko testowe pod REST-a
Środowisko testowe pod REST-aŚrodowisko testowe pod REST-a
Środowisko testowe pod REST-aFuture Processing
 
Budowa poprawnego i intuicyjnego api REST HATEOAS devfest@2013
Budowa poprawnego i intuicyjnego api REST HATEOAS devfest@2013Budowa poprawnego i intuicyjnego api REST HATEOAS devfest@2013
Budowa poprawnego i intuicyjnego api REST HATEOAS devfest@2013Mateusz Stępniak
 
Budowa RESTowego api w oparciu o HATEOAS
Budowa RESTowego api w oparciu o HATEOASBudowa RESTowego api w oparciu o HATEOAS
Budowa RESTowego api w oparciu o HATEOASMateusz Stępniak
 
Bohater UI bez front end developera ?
Bohater UI bez front end developera ?Bohater UI bez front end developera ?
Bohater UI bez front end developera ?Quick-Solution
 
Wprowadzenie do implementacji architektur plug-in w PHP
Wprowadzenie do implementacji architektur plug-in w PHPWprowadzenie do implementacji architektur plug-in w PHP
Wprowadzenie do implementacji architektur plug-in w PHPPHPCon Poland
 
"Administrator z przypadku" - Jak działa SQL Server i jak o niego dbać
"Administrator z przypadku" - Jak działa SQL Server i jak o niego dbać"Administrator z przypadku" - Jak działa SQL Server i jak o niego dbać
"Administrator z przypadku" - Jak działa SQL Server i jak o niego dbaćBartosz Ratajczyk
 
MvvmCross na przykładach w Xamarin.Android
MvvmCross na przykładach w Xamarin.AndroidMvvmCross na przykładach w Xamarin.Android
MvvmCross na przykładach w Xamarin.AndroidIn'saneLab
 
AADays 2015 - Jak to zrobic w JavaScript
AADays 2015 - Jak to zrobic w JavaScriptAADays 2015 - Jak to zrobic w JavaScript
AADays 2015 - Jak to zrobic w JavaScriptJacek Okrojek
 
Co nowego w ASP.NET MVC 4?
Co nowego w ASP.NET MVC 4?Co nowego w ASP.NET MVC 4?
Co nowego w ASP.NET MVC 4?tkryskiewicz
 
Tomasz Kopacz, Cloud computing na bazie Windows Azure
Tomasz Kopacz, Cloud computing na bazie Windows AzureTomasz Kopacz, Cloud computing na bazie Windows Azure
Tomasz Kopacz, Cloud computing na bazie Windows AzureWebhosting.pl
 
[PLCUG] Power shell (PL)
[PLCUG] Power shell (PL)[PLCUG] Power shell (PL)
[PLCUG] Power shell (PL)Jaroslaw Sobel
 
Angular 4 pragmatycznie
Angular 4 pragmatycznieAngular 4 pragmatycznie
Angular 4 pragmatycznieSages
 
Seam framework in_action
Seam framework in_actionSeam framework in_action
Seam framework in_actionMichał Orman
 
My littlemvc 2008 official
My littlemvc 2008 officialMy littlemvc 2008 official
My littlemvc 2008 officialskowronkow
 
Błędy userów, niedoróbki koderów
Błędy userów, niedoróbki koderówBłędy userów, niedoróbki koderów
Błędy userów, niedoróbki koderówArkadiusz Stęplowski
 

What's hot (19)

Środowisko testowe pod REST-a
Środowisko testowe pod REST-aŚrodowisko testowe pod REST-a
Środowisko testowe pod REST-a
 
Budowa poprawnego i intuicyjnego api REST HATEOAS devfest@2013
Budowa poprawnego i intuicyjnego api REST HATEOAS devfest@2013Budowa poprawnego i intuicyjnego api REST HATEOAS devfest@2013
Budowa poprawnego i intuicyjnego api REST HATEOAS devfest@2013
 
Budowa RESTowego api w oparciu o HATEOAS
Budowa RESTowego api w oparciu o HATEOASBudowa RESTowego api w oparciu o HATEOAS
Budowa RESTowego api w oparciu o HATEOAS
 
Bohater UI bez front end developera ?
Bohater UI bez front end developera ?Bohater UI bez front end developera ?
Bohater UI bez front end developera ?
 
Wprowadzenie do implementacji architektur plug-in w PHP
Wprowadzenie do implementacji architektur plug-in w PHPWprowadzenie do implementacji architektur plug-in w PHP
Wprowadzenie do implementacji architektur plug-in w PHP
 
"Administrator z przypadku" - Jak działa SQL Server i jak o niego dbać
"Administrator z przypadku" - Jak działa SQL Server i jak o niego dbać"Administrator z przypadku" - Jak działa SQL Server i jak o niego dbać
"Administrator z przypadku" - Jak działa SQL Server i jak o niego dbać
 
AJAX - wdw1
AJAX - wdw1AJAX - wdw1
AJAX - wdw1
 
MvvmCross na przykładach w Xamarin.Android
MvvmCross na przykładach w Xamarin.AndroidMvvmCross na przykładach w Xamarin.Android
MvvmCross na przykładach w Xamarin.Android
 
AADays 2015 - Jak to zrobic w JavaScript
AADays 2015 - Jak to zrobic w JavaScriptAADays 2015 - Jak to zrobic w JavaScript
AADays 2015 - Jak to zrobic w JavaScript
 
Co nowego w ASP.NET MVC 4?
Co nowego w ASP.NET MVC 4?Co nowego w ASP.NET MVC 4?
Co nowego w ASP.NET MVC 4?
 
Silverlight i PHP
Silverlight i PHPSilverlight i PHP
Silverlight i PHP
 
Tomasz Kopacz, Cloud computing na bazie Windows Azure
Tomasz Kopacz, Cloud computing na bazie Windows AzureTomasz Kopacz, Cloud computing na bazie Windows Azure
Tomasz Kopacz, Cloud computing na bazie Windows Azure
 
[PLCUG] Power shell (PL)
[PLCUG] Power shell (PL)[PLCUG] Power shell (PL)
[PLCUG] Power shell (PL)
 
Angular 4 pragmatycznie
Angular 4 pragmatycznieAngular 4 pragmatycznie
Angular 4 pragmatycznie
 
Seam framework in_action
Seam framework in_actionSeam framework in_action
Seam framework in_action
 
My littlemvc 2008 official
My littlemvc 2008 officialMy littlemvc 2008 official
My littlemvc 2008 official
 
Błędy userów, niedoróbki koderów
Błędy userów, niedoróbki koderówBłędy userów, niedoróbki koderów
Błędy userów, niedoróbki koderów
 
Wprowadzenie do PHPUnit
Wprowadzenie do PHPUnitWprowadzenie do PHPUnit
Wprowadzenie do PHPUnit
 
Behat
BehatBehat
Behat
 

Similar to Co nowego w VS 2013 dla programistów ASP.NET?

Wprowadzenie Do Asp
Wprowadzenie Do AspWprowadzenie Do Asp
Wprowadzenie Do AspKelut
 
Cloud computing na bazie Windows Azure, Tomek Kopacz, Microsoft
Cloud computing na bazie Windows Azure, Tomek Kopacz, MicrosoftCloud computing na bazie Windows Azure, Tomek Kopacz, Microsoft
Cloud computing na bazie Windows Azure, Tomek Kopacz, MicrosoftBiznes 2.0
 
Websites vs Cloud Services - OLMUG
Websites vs Cloud Services - OLMUGWebsites vs Cloud Services - OLMUG
Websites vs Cloud Services - OLMUGBart Zaremba
 
Jak zostać mobile deweloperem w 1 dzień
Jak zostać mobile deweloperem w 1 dzieńJak zostać mobile deweloperem w 1 dzień
Jak zostać mobile deweloperem w 1 dzieńPaweł Kondraciuk
 
Developing native-like Windows application using JavaScript, SSE, eZ Platform...
Developing native-like Windows application using JavaScript, SSE, eZ Platform...Developing native-like Windows application using JavaScript, SSE, eZ Platform...
Developing native-like Windows application using JavaScript, SSE, eZ Platform...Piotr Nalepa
 
PHP i Microsoft - kto się lubi, ten się czubi
PHP i Microsoft - kto się lubi, ten się czubiPHP i Microsoft - kto się lubi, ten się czubi
PHP i Microsoft - kto się lubi, ten się czubiPHPCon Poland
 
Jak podwoić wartość kodu .NET?
Jak podwoić wartość kodu .NET?Jak podwoić wartość kodu .NET?
Jak podwoić wartość kodu .NET?javOnet
 
4Developers 2015: .NET 2015 - co nowego? - Michał Dudak, Future Processing
4Developers 2015: .NET 2015 - co nowego? - Michał Dudak, Future Processing4Developers 2015: .NET 2015 - co nowego? - Michał Dudak, Future Processing
4Developers 2015: .NET 2015 - co nowego? - Michał Dudak, Future ProcessingPROIDEA
 
Automatyczne testy end-to-end aplikacji JavaScript.
Automatyczne testy end-to-end aplikacji JavaScript.Automatyczne testy end-to-end aplikacji JavaScript.
Automatyczne testy end-to-end aplikacji JavaScript.Future Processing
 
Nowe Trendy W Projektowaniu Aplikacji Webowych
Nowe Trendy W Projektowaniu Aplikacji WebowychNowe Trendy W Projektowaniu Aplikacji Webowych
Nowe Trendy W Projektowaniu Aplikacji WebowychMarcin Daczkowski
 
ASP.NET. Vademecum profesjonalisty
ASP.NET. Vademecum profesjonalistyASP.NET. Vademecum profesjonalisty
ASP.NET. Vademecum profesjonalistyWydawnictwo Helion
 
Jak zbudować aplikacje z wykorzystaniem funkcjonalności windows server 2016...
Jak zbudować aplikacje z wykorzystaniem funkcjonalności windows server 2016...Jak zbudować aplikacje z wykorzystaniem funkcjonalności windows server 2016...
Jak zbudować aplikacje z wykorzystaniem funkcjonalności windows server 2016...Lukasz Kaluzny
 
ASP.NET 3.5 dla programistów PHP
ASP.NET 3.5 dla programistów PHPASP.NET 3.5 dla programistów PHP
ASP.NET 3.5 dla programistów PHPWydawnictwo Helion
 
Citrix NetScaler Gateway i Azure MFA
Citrix NetScaler Gateway i Azure MFACitrix NetScaler Gateway i Azure MFA
Citrix NetScaler Gateway i Azure MFAPawel Serwan
 
Seminarium - Tworzenie Aplikacji Mobilnych 2004
Seminarium - Tworzenie Aplikacji Mobilnych 2004Seminarium - Tworzenie Aplikacji Mobilnych 2004
Seminarium - Tworzenie Aplikacji Mobilnych 2004Tomasz Cieplak
 

Similar to Co nowego w VS 2013 dla programistów ASP.NET? (20)

Wprowadzenie Do Asp
Wprowadzenie Do AspWprowadzenie Do Asp
Wprowadzenie Do Asp
 
Cloud computing na bazie Windows Azure, Tomek Kopacz, Microsoft
Cloud computing na bazie Windows Azure, Tomek Kopacz, MicrosoftCloud computing na bazie Windows Azure, Tomek Kopacz, Microsoft
Cloud computing na bazie Windows Azure, Tomek Kopacz, Microsoft
 
Websites vs Cloud Services - OLMUG
Websites vs Cloud Services - OLMUGWebsites vs Cloud Services - OLMUG
Websites vs Cloud Services - OLMUG
 
Jak zostać mobile deweloperem w 1 dzień
Jak zostać mobile deweloperem w 1 dzieńJak zostać mobile deweloperem w 1 dzień
Jak zostać mobile deweloperem w 1 dzień
 
Developing native-like Windows application using JavaScript, SSE, eZ Platform...
Developing native-like Windows application using JavaScript, SSE, eZ Platform...Developing native-like Windows application using JavaScript, SSE, eZ Platform...
Developing native-like Windows application using JavaScript, SSE, eZ Platform...
 
PHP i microsoft
PHP i microsoftPHP i microsoft
PHP i microsoft
 
Php i Microsoft
Php i MicrosoftPhp i Microsoft
Php i Microsoft
 
PHP i Microsoft - kto się lubi, ten się czubi
PHP i Microsoft - kto się lubi, ten się czubiPHP i Microsoft - kto się lubi, ten się czubi
PHP i Microsoft - kto się lubi, ten się czubi
 
Jak podwoić wartość kodu .NET?
Jak podwoić wartość kodu .NET?Jak podwoić wartość kodu .NET?
Jak podwoić wartość kodu .NET?
 
4Developers 2015: .NET 2015 - co nowego? - Michał Dudak, Future Processing
4Developers 2015: .NET 2015 - co nowego? - Michał Dudak, Future Processing4Developers 2015: .NET 2015 - co nowego? - Michał Dudak, Future Processing
4Developers 2015: .NET 2015 - co nowego? - Michał Dudak, Future Processing
 
Automatyczne testy end-to-end aplikacji JavaScript.
Automatyczne testy end-to-end aplikacji JavaScript.Automatyczne testy end-to-end aplikacji JavaScript.
Automatyczne testy end-to-end aplikacji JavaScript.
 
Nowe Trendy W Projektowaniu Aplikacji Webowych
Nowe Trendy W Projektowaniu Aplikacji WebowychNowe Trendy W Projektowaniu Aplikacji Webowych
Nowe Trendy W Projektowaniu Aplikacji Webowych
 
ASP.NET. Vademecum profesjonalisty
ASP.NET. Vademecum profesjonalistyASP.NET. Vademecum profesjonalisty
ASP.NET. Vademecum profesjonalisty
 
Jak zbudować aplikacje z wykorzystaniem funkcjonalności windows server 2016...
Jak zbudować aplikacje z wykorzystaniem funkcjonalności windows server 2016...Jak zbudować aplikacje z wykorzystaniem funkcjonalności windows server 2016...
Jak zbudować aplikacje z wykorzystaniem funkcjonalności windows server 2016...
 
ASP.NET 3.5 dla programistów PHP
ASP.NET 3.5 dla programistów PHPASP.NET 3.5 dla programistów PHP
ASP.NET 3.5 dla programistów PHP
 
Citrix NetScaler Gateway i Azure MFA
Citrix NetScaler Gateway i Azure MFACitrix NetScaler Gateway i Azure MFA
Citrix NetScaler Gateway i Azure MFA
 
Serwery WWW - wykład
Serwery WWW - wykładSerwery WWW - wykład
Serwery WWW - wykład
 
Seminarium - Tworzenie Aplikacji Mobilnych 2004
Seminarium - Tworzenie Aplikacji Mobilnych 2004Seminarium - Tworzenie Aplikacji Mobilnych 2004
Seminarium - Tworzenie Aplikacji Mobilnych 2004
 
Testowanie na 101 sposobów
Testowanie na 101 sposobówTestowanie na 101 sposobów
Testowanie na 101 sposobów
 
WF w zastosowaniach Web
WF w zastosowaniach WebWF w zastosowaniach Web
WF w zastosowaniach Web
 

Co nowego w VS 2013 dla programistów ASP.NET?

  • 1. ASP.NET, jakiego (jeszcze) nie znacie - co nowego dla web developerów? Bartłomiej Zass Senior Technical Evangelist | Microsoft
  • 2. Cel sesji  Zobaczysz co wydarzyło się przez ostatni rok w ASP.NET i narzędziach  Dowiesz się co nowego dla web deweloperów w Visual Studio 2013  Zrozumiesz czym jest OWIN i Katana  Poznasz podstawy ASP.NET Web API 2 oraz SignalR
  • 3. Plan prezentacji      Najważniejsze nowości od Visual Studio 2012 Co nowego w Visual Studio 2013? OWIN i Katana ASP.NET Web API v2 SignalR
  • 4.
  • 5. ASP.NET i Web Tools Release co ok. 6 miesięcy Wrzesień 2012 ASP.NET 4.5 VS2012 Luty 2013 ASP.NET & Web Tools 2012.2 Jesień 2013 VS2013
  • 6. Web Tools „Labs”  Release co ok. 2 tygodnie  Od lipca otwarty kod
  • 7. ASP.NET 4.5 (VS 2012)  Wspólne       Biblioteki przez NuGet Optymalizacja transferu Walidacja żądań HTML 5 Web Sockets 30% szybszy start 30% mniej pamięci  MVC  HTML 5  Mobile  Async controller
  • 8. ASP.NET 4.5 (c.d.)  Web Forms        HTML 5 Szablony projektów Request Validation Silnie typowane kontrolki Model Binders Data Annotations Unobtrusive JS validation  Web API v1  Framework do usług HTTP
  • 9. Otwarty kod  aspnetwebstack.codeplex.com  ASP.NET MVC, ASP.NET Web API, ASP.NET Web Pages  entityframework.codeplex.com  Entity Framework  github.com/SignalR/SignalR  ASP.NET SignalR
  • 10. Visual Studio 2012 (web)  Ogólne  Round tripping  Page inspector  Standardy  Wsparcie dla HTML 5  Całkowicie nowy edytor CSS  Całkowicie nowy edytor JavaScript  Edytor Web Forms  Pełne wsparcie dla kontrolek serwerowych w edytorze .ASPX  Publikowanie  Publikowanie na Azure/TFS  Database Migrations
  • 11. ASP.NET & Web Tools Update 2012.2  Web Forms  Friendly URLs (/page/5 zamiast page.aspx?id=5)  Strony mobilne (page.Mobile.aspx)  MVC  Single Page Applications template  Facebook App template  Web API  Odata  Tracing  Help Page  SignalR v1  Visual Studio  LESS  Podświetlanie składni: CoffeeScript, KnockoutJS, Mustache, Handlebars, JSRender  Mobile Emulator extensibility  Selective Publishing, local/remote diff  Page inspector dla elementów dynamicznych
  • 12. ASP.NET & Web Tools 2013  One ASP.NET  Nowy interfejs zakładania projektu  Dodawanie dowolnego frameworku do dowolnego projektu  Scaffolding dla wszystkich typów projektów  Konfiguracja uwierzytelnienia  Ogólne  ASP.NET Identity  Szablony z Bootstrap.js  Azure   Server Explorer: Web Sites, Mobile Services, VM’s, filtrowanie MVC 5  Attribute Routing  Authentication filters, filter overrides (wyłączanie per akcja)  Web API v2     CORS Attribute Routing Pełniejsze wsparcie dla OData OAUTH  SignalR  OWIN, PCL, Xamarin  Entity Framework  Async, Stored procs, connection resilency  Visual Studio  Nowy edytor HTML  Live Browser Refresh  AngularJS intellisense R.I.P. Cassini, FrontPage Extensions
  • 15. Hello, Node.js var http = require('http'); http.createServer(function (req, res) { res.writeHead(200, {'Content-Type':'text/plain'}); res.end('Hello Worldn'); }).listen(1337, '127.0.0.1');
  • 16. Node.js po pewnym czasie…
  • 17. ASP.NET – trochę historii  Pierwsza wersja w 2002 r. z .NET 1.0  Zoptymalizowany dla deweloperów klasycznego ASP oraz biznesowych aplikacji desktopowych       Monolityczna struktura (System.Web) Zaprojektowany do działania na IIS Część .NET – rzadkie release’y Rozwijany wraz z rosnącymi wymaganiami Wszystkie funkcje domyślnie włączone (trzeba ręcznie wyłączać) Jedyna opcja hostowania - IIS
  • 18. Rozwiązania  Odłączenie od cyklu produkcji .NET Framework  ASP.NET MVC  Częstsze release’y  Usuwanie zależności z System.Web  Np. ASP.NET Web API  Możliwość self-hostingu  Co z hostingiem?
  • 19. Self-host  ASP.NET Web API umożliwił self-hosting aplikacji  Inne frameworki tworzyły lub miały własne serwery…  Nowoczesne aplikacje wymagają łączenia wielu frameworków na jednym serwerze  Potrzebny standardowy interfejs komunikacji między hostem i aplikacjami!
  • 20. „Katana”  Zestaw komponentów do budowania i uruchamiania aplikacji na otwartym interfejsie / abstrakcji hostingu Func<IDictionary<string, object>, Task>; http://owin.org/
  • 21. Komponenty „Katana” Application Udostępnij model programistyczny przez OWIN pipeline Application Framework Przetwarzaj żądania przez OWIN pipeline Server Uruchom aplikację OWIN na serwerze Host
  • 22. Komponenty „Katana” (2) Application Application Framework Server Host • SignalR • ASP.NET Web API • SystemWeb • HttpListener • IIS • OwinHost.exe • Custom Process
  • 23. Ekostystem OWIN Application Application Framework Server Host • • • • • • • • • SignalR ASP.NET Web API NancyFx Fubu MVC Service Stack OpenRasta Simple.Web Gate Custom Framework • SystemWeb • HttpListener • Custom Server • IIS • OwinHost.exe • Custom Process
  • 25. Katana 2.0: middleware do uwierzytelniania        Microsoft.Owin.Security.Cookies Microsoft.Owin.Security.Facebook Microsoft.Owin.Security.Google Microsoft.Owin.Security.MicrosoftAccount Microsoft.Owin.Security.OAuth Microsoft.Owin.Security.Twitter Microsoft.Owin.Security.WindowsAzure
  • 26. Konfiguracja middleware app.UseOAuthBearerAuthentication(new OAuthBearerAuthenticationOptions()); app.UseExternalSignInCookie(); app.UseMicrosoftAccountAuthentication("Client Id", "Client Secrect"); app.UseTwitterAuthentication("Consumer Key", "Consumer Secret"); app.UseFacebookAuthentication("App ID", "App Secret"); app.UseGoogleAuthentication();
  • 28. Wymiana komponentów Your Application Web API + SignalR + static files SystemWeb IIS Windows (local or remote)
  • 29. Elastyczność Host/Server Your Application Web API + SignalR + static files HttpListener SystemWeb OwinHost.exe IIS Windows (local or remote)
  • 30. Do chmury! Your Application Web API + SignalR + static files WebListener OwinHost.exe Windows Azure Worker Role Windows (local or remote)
  • 34. ASP.NET Web API 2  Skalowalna platforma usług HTTP dla stron internetowych, urządzeń, telefonów, tabletów, …  Dystrybucja przez NuGet  Instalowane wraz z Visual Studio 2013  Supportowane na .NET 4.5+  Kod - http://aspnetwebstack.codeplex.com
  • 35. Demo ASP.NET Web Api - podstawy
  • 36. Nowości w ASP.NET Web API 2        Attribute Routing Integracja z OWIN Prostsze unit testy (IHttpActionResult) Klient Web API wspierany przez Portable Class Library ODATA: $select, $expand, $batch Request batching Web API security (CORS, OAUTH 2.0)
  • 37. Attribute routing  Definiowanie tras bliżej zasobów config.Routes.MapHttpRoute( name: “TodosForTodoList", routeTemplate: "api/todolists/{id}/todos", defaults: new { controller = “todolists”, action = “GetTodos” } ); public IEnumerable<TodoItem> GetTodos() { … }
  • 38. Attribute routing  Definiowanie tras bliżej zasobów config.MapHttpAttributeRoutes(); [HttpGet("api/todolists/{id}/todos")] public IEnumerable<TodoItem> GetTodos(int id) { … }
  • 39. Attribute routing  Opcjonalne parametry  Domyślne parametry  Constraints [HttpGet(“Demographics/{zipcode?}")] public Demographics Get(int? zipcode) { … } [HttpGet("Demographics/{zipcode=98052}")] public Demographics Get(int zipcode) { … } [HttpGet("people/{id:int}")] public Person Get(int id) { … } [HttpGet("people/{name:alpha}")] public Person Get(string name) { … }
  • 41. Unit testing  Miejscami było trudniejsze niż mogło być (np. post)…  Teraz sprowadza się do:  Utworzenie kontrolera  Ustawienie właściwości (Request, Configuration, itp.)  Wywołanie akcji  IHttpActionResult  Wywoływane zaraz po zwróceniu wartości – reszta widzi zwrócony obiekt
  • 43. Integracja z OWIN  OWIN – Open Web Interface for .NET (http://owin.org)  Wspólny interfejs komunikacji między aplikacjami webowymi a serwerem  Inspirowany przez node.js, Rack, WSGI  Middleware pipeline  Zintegrowany z ASP.NET  np. uwierzytelniane użytkownika  ASP.NET zgodne z OWIN – działa na dowolnym hoście OWIN
  • 44. Demo Własny host OWIN z ASP.NET Web API
  • 45. ASP.NET Web API OData  Komponenty do implementacji usług Odata  Model builders, formatery (Atom/JSON/XML), parsery, generator wyrażeń LINQ, itp.  Bazuje na ODataLib  Te same podstawy co WCF Data Services  Pierwsza wersja – VS 2012 Update 2  top, skip, orderby, filter  Wsparcie dla $select, $expand, $batch, $value
  • 47. Żądania cross-origin  Przeglądarki nie pozwalają na wysyłanie żądań do innych domen  Origin = scheme + host + port  CORS = Cross-Origin Resource Sharing  W3C Candidate Recommendation  Implementowane przez wszystkie nowe przeglądarki  Wspierane przez Web API 2  EnableCorsAttribute
  • 49. Zabezpieczanie usług Web API  Użytkownicy mogą nie ufać aplikacji klienckiej proszącej o hasło  Aplikacje i serwery hostujące nie chcą przechowywać danych logowania  Dostęp powinien być podzielony na zakresy, z możliwością odwołania  Wsparcie dla wielu typów klientów i przeglądarek  Zabezpieczenie przed CSRF
  • 50. Oauth 2.0  Framework kontrolujący dostęp do określonych chronionych zasobów użytkownika  Standard IETF (RFC 6749, 6750)  Zaprojektowany do pracy z usługami HTTP
  • 51. OAuth 2.0 Żądanie dostępu Przyznanie dostępu Przyznanie uprawnień Access Token Access Token Chroniony zasób
  • 52. OAuth 2.0 – przyznanie dostępu Authorization Server user 2 User Browser <Client ID> Authorization Endpoint Token Endpoint CODE 302 3 <Client ID> 302 1 Client Protected Resource
  • 53. OAuth 2.0 – token request Authorization Server Authorization Endpoint client <Client ID> CODE Client 1 Token Endpoint 2 refresh token access token Protected Resource
  • 54. OAuth 2.0 – resource request authorization server Authorization Endpoint 1 Token Endpoint Authorization: Bearer refresh token 2 access token Client Protected Resource
  • 55. OAuth 2.0 – odświeżenie access tokenu Authorization Server Authorization Endpoint Token Endpoint client 2 <Client ID> refresh token 1 access token refresh token Client Protected Resource
  • 56. OAuth 2.0 – wsparcie dla Bearer token  Autoryzacja przez OAuth 2.0 Bearer tokens  Walidacja i konwersja tokenu na claims Client Protected Resource
  • 57. ASP.NET Web Api 2 i Bearer token public class Startup { public void ConfigureAuth(IAppBuilder app) { // Włącz wsparcie dla OAuth 2.0 bearer tokens app.UseOAuthBearerAuthentication(new OAuthBearerAuthenticationOptions()); } }
  • 58. Oauth 2.0 – serwer autoryzacyjny  Własny serwer  Prosty serwer w szablonie Web API 2  W przyszłości – wsparcie przez OWIN middleware  Skorzystaj z istniejącego  Windows Azure Active Directory  Active Directory Federation Services w Windows Server 2012 R2
  • 59. Demo Zabezpieczanie dostępu do usług ASP.NET Web API
  • 61. SignalR     Prosty sposób na realizację komunikacji real-time po HTTP Instalowane przez NuGet, oficjalne wsparcie (wersja 2.0) Wydajność Skalowalność
  • 62. Przykładowe scenariusze  Każdy scenariusz, w którym korzystamy z pollingu lub konieczne jest odświeżanie strony  Monitorowanie, dashboardy  Współpraca z innymi  Postęp pracy  Formularze wypełniane w czasie rzeczywistym przez kilka osób  Gry
  • 64. SignalR i przeglądarki  SignalR działa zawsze!     Najpierw próba z WebSockets Fallback do Server Sent Events Forever Frame Long Polling
  • 65. Klienci SignalR  Obecnie         JavaScript (jQuery) .NET 4.0 / 4.5 Silverlight 5 Windows Store apps Windows Phone 8 Portable Class Library MonoTouch MonoDroid  W przyszłości       C++ „Goły” JavaScript (bez jQuery) iOS natywnie Java .NET Micro Framework …
  • 67. Wydajność i skalowanie  Przepustowość  Bardzo wysoka wydajnośc  Setki tysięcy komunikatów na sekundę  Bardzo niskie zapotrzebowanie na pamięć  Skalowanie  W pełni asynchroniczny  Tysiące połączen per serwer  Skalowanie przez message bus (Azure Service Bus, Redis, SQL)
  • 69. Signalr 2 – co nowego?  OWIN – brak zależności z System.Web!  Portable .NET Client Library  .NET 4.5, Silverlight 5, WinRT, Windows Phone 8     CORS Wsparcie dla iOS i Android (MonoTouch, MonoDroid) Komunikaty dla pojedynczego użytkownika Zachowane wsparcie dla starszych klientów
  • 70. Podsumowanie  „One ASP.NET” – MVC, Web Forms (i inne) razem  Browser Link  OWIN  Luźne wiązanie komponentów  Wymienność  Szybciej i elastyczniej  Nowości w świecie usług ASP.NET  Web API 2  SignalR 2
  • 71. © 2013 Microsoft Corporation. Wszelkie prawa zastrzeżone. Microsoft, Windows oraz inne nazwy produktów są lub mogą być znakami towarowymi lub zastrzeżonymi znakami towarowymi firmy Microsoft w Stanach Zjednoczonych i innych krajach. Zamieszczone informacje mają charakter wyłącznie informacyjny. FIRMA MICROSOFT NIE UDZIELA ŻADNYCH GWARANCJI (WYRAŻONYCH WPROST LUB DOMYŚLNIE), W TYM TAKŻE USTAWOWEJ RĘKOJMI ZA WADY FIZYCZNE I PRAWNE, CO DO INFORMACJI ZAWARTYCH W TEJ PREZENTACJI.