Dziś przegląd nowości wprowadzanych przez ASP.NET MVC 4 na podstawie świetnej prezentacji Scotta Guthrie A look at ASP.NET MVC 4. Najbardziej przykuwają moją uwagę:
- Automatyczne łączenie plików JS, CSS czy innych, optymalizacja ich objętości, cachowanie (czemu zostało to wymyślone dopiero teraz ?)
- Web API - genialnie prosty sposób na zbudowanie usługi, z którą można rozmawiać na różne sposoby i którą można hostować w różny sposób. Zero kodu zajmujący się techniką obsługi, jedynie kod z funkcjonalnością, brawo!
- mobilny Web - dziś coraz więcej odbiorców mobilnych niż desktopowych, jak najbardziej słuszny krok, wykorzystanie możliwości HTML i CSS po stronie klienta, a także przełączanie widoków po stronie serwera na podstawie typu klienta oraz dedykowane szablony z myślą o mobilnych (sensowne wykorzystanie jQuery Mobile)
- Async - metody async w kontrolerach, po prostu coś pięknego!
- Komunikacja w czasie rzeczywistym
Nowe możliwości
- Bundling/Minification Support
- Database Migrations (z EF 4.3)
- Web APIs
- Mobile Web
- Real Time Communication
- Asynchronous Support
VS 2010/.NET 4 oraz wbudowane w VS 2012
- Poprawa wydajności ładowania JavaScript i CSS (np. poprzez scalenie plików, tworzenie “skompresowanego”, niesformatowanego kodu JS)
- Redukuje ilość i wielkość żądań HTTP
- Opiera się o konwencje (nie wymaga konfiguracji)
- Pełna modyfikowalność i rozszerzalność
Predefiniowane helpery
Wygenerowany kod źródłowy strony
- Cachowanie przez wybrany okres czasu
- Po zmiany zawartości w plikach automatyczne pobranie nowszej wersji przez przeglądarkę
Global.asax.cs
Rejestracja domyślnych przez konwencje oraz możliwość jawnego definiowania pakietów plików
URL Resolution Enhancements
Razor: zamiast @Url.Content(“~/Scripts/Site.js”) można teraz prościej: ~/Scripts/Site.js
Web APIs
Dla szerokiego spectrum klientów webowych i mobilnych
JSON
XML
OData
Wywoływanie z poziomu JS
Unit testy
Hostowanie
- w aplikacjach ASP.NET (IIS, IIS Express, VS Web Server)
- własny hosting w innych aplikacjach (konsolowe, Windows Service, itd.)
Wszędzie ten sam kod!
Mobilny Web
- Adaptatywny rendering (viewport, CSS Media Queries w domyślnych szablonach)
- Tryby wyświetlania (różne widoki w zależności od urządzeń)
- Szablony zoptymalizowane dla urządzeń mobilnych (z wykorzystaniem jQuery Mobile)
SignalR - komunikacja w czasie rzeczywistym
Client to Server persistent connection over HTTP
- Easily build multi-user, real-time web applications
- Allows server-to-client push and RPC
- Built async to scale to 000’s of connections
Auto-negotiates transport
- WebSockets (ASP.NET 4.5 on Windows 8)
- Server Sent Events (EventSource)
- Forever Frame
- Ajax Long Polling
Open Source on GitHub (https://github.com/signalr/)
Async
Why use async on a server?
- Enables more efficient use of threads and server resources
How does it work?
- Your controller class yields to ASP.NET when calling a remote resource, allowing the server thread to be re-used while you wait
- When remote call returns, controller is re-scheduled to complete
- Reduces # of threads running -> increases scalability
Use of async on server is not exposed to browsers/clients
Brak komentarzy:
Prześlij komentarz