Abstract:
Il motore di rendering del web browser di Visual Studio NON è lo stesso di quello dell'Internet Explorer.
La storia completa:
Devo dire che non ho mai usato molto la visualizzazione di pagine web da dentro Visual Studio, anche se alle volte può risultare comodo, ad esempio per visualizzare una pagina web relativa ad un link contenuto in un commento del sorgente.
Proprio stamattina mi è capitato di aprire un link relativo alla homepage di Modernizr dal sorgente di BundleConfig.cs :
E fin qui, nulla di strano:
Poi, però, quando ho provato ad eseguire il test (Modernizr test suite), mi sono accorto di una cosa singolare:
Ovvero che l'user-agent è:
Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.3; WOW64; Trident/7.0; .NET4.0E; .NET4.0C; Tablet PC 2.0; .NET CLR 3.5.30729; .NET CLR 2.0.50727; .NET CLR 3.0.30729; InfoPath.3)
Se invece apro Internet Explorer 11 (sul mio device ho Windows 8.1) ed eseguo lo stesso test, ottengo:
Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; Touch; .NET4.0E; .NET4.0C; Tablet PC 2.0; .NET CLR 3.5.30729; .NET CLR 2.0.50727; .NET CLR 3.0.30729; InfoPath.3; rv:11.0) like Gecko
Perché questa differenza? Inizialmente ho pensato fosse un'impostazione di Visual Studio, che avviava IE11 in compatibility mode, ma poi, cercando su internet, ho finalmente trovato la spiegazione su Microsoft Connect:
The internal VS browser is actually using the IE7 compact rendering engine instead of the IE8 engine. Updating it to IE8 was a significant work item and we weren't able to fit it in the schedule. I'd recommend to use the external browsers for Web Site previews.
Thanks,
Weston Hutchins
Program Manager - VS Platform
http://blogs.msdn.com/b/visualstudio
That's all folks!