Sesja z konferencji Microsoft Technology Summit 2013 na temat nowości, które pojawiły się w ASP.NET 4.5.1 oraz Visual Studio 2013 dla web deweloperów. Poruszane zagadnienia to m.in.: zmiany w IDE / Web Essentials, Web Forms, ASP.NET MVC 5, OWIN, SignalR, Web API 2
ASP.NET, jakiego (jeszcze)nie
znacie - co nowego dla web
developerów?
Bartłomiej Zass
Senior Technical Evangelist | Microsoft
2.
Cel sesji
Zobaczyszco 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
ASP.NET 4.5 (VS2012)
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 & WebTools 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 & WebTools 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
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 odcyklu 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 WebAPI 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ówdo budowania i uruchamiania aplikacji na
otwartym interfejsie / abstrakcji hostingu
Func<IDictionary<string, object>, Task>;
http://owin.org/
ASP.NET Web API2
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
Nowości w ASP.NETWeb 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)
Unit testing
Miejscamibył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
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
ASP.NET Web APIOData
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
Żądania cross-origin
Przeglądarkinie 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
Zabezpieczanie usług WebAPI
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
Frameworkkontrolują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 –wsparcie dla Bearer token
Autoryzacja przez OAuth 2.0 Bearer tokens
Walidacja i konwersja tokenu na claims
Client
Protected
Resource
57.
ASP.NET Web Api2 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
SignalR
Prosty sposób narealizację komunikacji real-time po HTTP
Instalowane przez NuGet, oficjalne wsparcie (wersja 2.0)
Wydajność
Skalowalność
62.
Przykładowe scenariusze
Każdyscenariusz, 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
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)
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