El documento describe las nuevas características y capacidades que Microsoft está desarrollando para mejorar el soporte de HTML5, CSS3 y otras tecnologías web emergentes en Internet Explorer y otras plataformas. Entre las mejoras se incluyen nuevos elementos de marcado HTML5, canvas, audio, video, almacenamiento local, mensajería entre ventanas, selección de texto, renderizado SVG en HTML, transformaciones 2D, CSS3, consultas de medios y más.
6. Site Ready
HTML5
El enfoque de Microsoft a HTML5
Under Development
Features
Emerging Standards
beautyoftheweb.com ietestdrive.com html5labs.com
IE9 IE Platform Previews HTML5 Labs
7. HTML5
• New Markup Elements
• Canvas
• Audio
• Video
• Local Storage
• Cross-Window
Messaging
• Text Selection APIs
• Parsing SVG in HTML
CSS3
• 2D Transforms
• Border Radius
• Box-Shadow
• Fonts (WOFF)
• Media Queries
• Multiple Backgrounds
• Namespaces
• Opacity
• rgba(), hsl(), hsla()
• Selectors (IE8)
SVG
• Shapes
• Clipping, Masking, and
Compositing
• Transforms
• Extensibility
• Gradients
• Interactivity
• Linking and Views
• Painting and Colors
• Paths
• Text
Others
• ECMA Script 5 (all but Strict
Mode)
• Native JSON support (IE8)
• Performance API
• Geo-Location
• Data-uri (IE8)
• DOM L2, L3
• Selectors API L2
• AJAX Navigation (IE8)
• DOMParser and
XMLSerializer
• ICC v2 and Color Profile
• ARIA
http://bit.ly/IE9Guide
Hardware Acceleration
8. HTML5 en IE10 Platform Previews
HTML5
• Drag&Drop
• File API
• Forms Validation
• Sandbox
• Web Workers
• Web Sockets
• Async
• AppCache
CSS3
• Grid
• Flexbox
• Gradient
• Multi-Column
• Floats
• Transforms
• Animations
• Gradients
• Transitions
Others
• Web Performance APIs
• ECMA Script 5 Strict
Mode
• Advanced Hit Testing
APIs
• Media Queries
Listeners
• Removal of Style Sheet
Limits
http://bit.ly/IE10Guide
15. Bundling y Minification
Mejora la performance de carga de JavaScript y CSS
Reduciendo # y tamaño de requests HTTP
Funciona por convención (no requiere configuración)
Totalmente adaptable y extensible
22. Mobile web con ASP.NET MVC 4
Adaptive Rendering
Vía CSS Media Queries
Display Modes
Vistas adaptadas por dispositivos
Mobile Template
Utilizando jQuery.Mobile
Adaptive
Rendering
Display Modes Mobile Template
25. Asynchronous Support
Porque async en el server?
Porque nos permite usar de manera mas eficiente los recurso del Server
Y como funciona?
Al momento de invocar a un resource remoto, el controller le cede el control permitiendole reutilizar el
thread mientras espera la respuesta.
Cuando la llamada remota se completa, el controller es re-scheduleado para completar su ejecución.
Menor # de threads corriendo -> aumenta la escalabilidad
El uso de async en el servicio no se expone a
browsers/clientes
http://myserver.com/products -> la misma URL puede ser implementada en ASP.NET usando un
controller sincrónico o asincronico.
26. public class Products : AsyncController {
public void IndexAsync() {
WebClient wc1 = new WebClient();
AsyncManager.OutstandingOperations.Increment();
wc1.DownloadStringCompleted += (sender, e) => {
AsyncManager.Parameters[“result"] = e.Result;
AsyncManager.OutstandingOperations.Decrement();
};
wc1.DownloadStringAsync(new Uri("http://www.bing.com/"));
}
public ActionResult IndexCompleted(string result) {
return View();
}
}
27. public class Products : Controller {
public async Task<ActionResult> IndexAsync() {
WebClient web = new WebClient();
string result = await web.DownloadStringTaskAsync("www.bing.com/");
return View();
}
}
Notas del editor
Microsoft is actively engaged with three large standards organizations: W3C, IETF and ECMA International. Each organization is divided into Working Groups.
Taking the HTML5 Working Group as an example, Paul Cotton (Microsoft Corp) is a co-chair of the group – we’ve been leading this space for many years!
In addition to Paul, more than 16 people from Microsoft are working just on this working group – plus many others involved in other WGs.
Building a standard is like planning a building. You go through different steps and it’s important to plan all levels carefully – or you risk to hit issues along the road.
Microsoft has three channels:
IE9 is all about “Site Ready HTML5”. It’s based on a stable and interoperable implementation of HTML5. It offers the best experience to Windows users, thanks to the native hardware acceleration support.
IE Platform Previews focus on under development features. With PP, we wanted to be transparent with the community over the internal progress – allowing them to provide feedbacks and us to act on these feedbacks
HTML5 Labs are about emerging standards that still require more time and further analysis before they can be safely and interoperably adopted across browsers.
List of the main (not all!) HTML5 features supported in IE9.
More info at: http://bit.ly/IE9Guide
List of the main (not all!) HTML5 features supported in IE10.
More info at: http://bit.ly/IE10Guide
At this point, there should be no doubt that Microsoft is seriously committed to HTML5.
Today you can start building HTML5 applications on top of IE9, leveraging the hardware acceleration and the integration with Windows 7.
With Mango, (the same!) IE9 will be available to Windows Phone 7 devices.
On Windows 8, you will be able to build Windows applications using HTML5 and JavaScript.
Come to the Build conference (www.buildwindows.com) in September to learn more about the new exciting Windows8 platform.
At this point, there should be no doubt that Microsoft is seriously committed to HTML5.
Today you can start building HTML5 applications on top of IE9, leveraging the hardware acceleration and the integration with Windows 7.
With Mango, (the same!) IE9 will be available to Windows Phone 7 devices.
On Windows 8, you will be able to build Windows applications using HTML5 and JavaScript.
Come to the Build conference (www.buildwindows.com) in September to learn more about the new exciting Windows8 platform.
Add
Implement Get() for all and Get() for single
Show Content Negotiation
Show Odata Support
Show using Post()
Content-Type: application/json
{
"Name":"blah4",
"UnitPrice":45.56
}
// POST /api/products
public HttpResponseMessage<Product> Post(Product product) {
db.Products.Add(product);
db.SaveChanges();
var result = new HttpResponseMessage<Product>(product, HttpStatusCode.Created);
result.Headers.Location = new Uri(Request.RequestUri, "/api/products/" + product.ID.ToString());
return result;
}
Add
Implement Get() for all and Get() for single
Show Content Negotiation
Show Odata Support
Show using Post()
Content-Type: application/json
{
"Name":"blah4",
"UnitPrice":45.56
}
// POST /api/products
public HttpResponseMessage<Product> Post(Product product) {
db.Products.Add(product);
db.SaveChanges();
var result = new HttpResponseMessage<Product>(product, HttpStatusCode.Created);
result.Headers.Location = new Uri(Request.RequestUri, "/api/products/" + product.ID.ToString());
return result;
}
Add
Implement Get() for all and Get() for single
Show Content Negotiation
Show Odata Support
Show using Post()
Content-Type: application/json
{
"Name":"blah4",
"UnitPrice":45.56
}
// POST /api/products
public HttpResponseMessage<Product> Post(Product product) {
db.Products.Add(product);
db.SaveChanges();
var result = new HttpResponseMessage<Product>(product, HttpStatusCode.Created);
result.Headers.Location = new Uri(Request.RequestUri, "/api/products/" + product.ID.ToString());
return result;
}