poniedziałek, 18 czerwca 2012

ASP.NET MVC 4 - co nowego

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

 

image

  • 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

image

image

Wygenerowany kod źródłowy strony

image

  • 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

image

image

image

 

URL Resolution Enhancements

Razor: zamiast @Url.Content(“~/Scripts/Site.js”) można teraz prościej:  ~/Scripts/Site.js

image

image

 

Web APIs

Dla szerokiego spectrum klientów webowych i mobilnych

image

image

JSON

image

XML

image

OData

image

image

image

image

image

Wywoływanie z poziomu JS

image

image

Unit testy

image

Hostowanie

  • w aplikacjach ASP.NET (IIS, IIS Express, VS Web Server)
  • własny hosting w innych aplikacjach (konsolowe, Windows Service, itd.)

image

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)

image

 

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/)

image

image

image

 

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

image

image

Brak komentarzy: