Con ASP.NET 1.0 avremmo dovuto avere una feature davvero interessante: l'adpative rendering, ovvero la capacità dei controls di adattare il proprio contenuto rispetto al browser che effettua la richiesta.
Dopo qualche anno di utilizzo, ci siamo accorti che in realtà seppure molto interessante, l'adpative rendering nella versione 1.0 è più fonte di problemi che di vantaggi. Primo tra tutti, sicuramente il fatto che molti browser moderni, come Mozilla o Opera, sono trattati alla stregua di IE 4. Ricevono, in parole povere, HTML 3.2. Si può, ovviamente, porre rimedio a questo problema, come spiegato qui.
Seppure la cosa sia possibile attraverso il web.config, il posto migliore dove fare queste modifiche è il machine.config, in modo che tutte le web application presenti sul server possano beneficiarne. Tralasciando il rischio di modificare un file così importante per il funzionamento di tutto il Framework, è sicuramente scomodo, oltre a richiedere all'amministratore di intervenire sul file per innestare le modifiche. E' questa, probabilmente, la ragione principale per cui su molti hosting di livello medio-basso non si trovano applicati gli aggiornamenti delle liste dei mobile device. Anche se utile, il problema è che in questo modo molti browser nuovi vengono semplicemente tenuti fuori da queste liste. E' il caso di Safari o FireFox, che comunque con l'intervento manuale segnalato prima possono essere elevati al rango di browser "degni".
Tutto questo discorso per dire cosa? Che finalmente nella versione 2.0 di ASP.NET questo incubo dovrebbe passare. A parte il supporto già annunciato per XHTML, l'adaptive rendering in questo caso sarà supportato, grazie a definizioni aggiornate, sulla maggior parte dei browser sulla faccia della terra.
Già questo basterebbe, se non fosse che ora le definizioni sono in file separati, con un estensione .browser, in una directory particolare sotto la dir config del .NET Framework.
Il formato è all'incirca identico e le definizioni molto curate. In questi giorni ho portato avanti una ricerca particolare sugli user agent dei mobile device in grado di supportare HTML (o varianti, come cHTML di i-mode o XHTML transitional di alcuni Sony Ericsson) per la versione 1.0 (a breve, nel lab, ci sarà del materiale a riguardo) e queste definizioni servirebbero già ora con ASP.NET 1.0 (anche se poi alla fine, molte proprietà presenti nei file non sono mai usate, come il supporto per tabelle, per javascript o cookie).
Il fatto di usare file separati ha un impatto sul deployment notevole. Fare un install che copia un file è un conto, farne uno che si mette a modificare un file XML, con il rischio di far perdere personalizzazioni, è un altro.
Insomma, questa volta l'adaptive rendering promette di migliorare il supporto cross-browser dei web controls di ASP.NET, considerato che gli stessi mobile controls ormai non esistono più, perchè tutti i controls possono essere dotati di adapters per fornire output nei vari formati supportati. E, tra l'altro, basta scriversi un adapter per generare l'output, a partire da un control, nel formato desiderato. Vi ricorda niente? :)
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
- ASP.NET 5 e ASP.NET MVC 6: le cose da sapere, il 27 febbraio 2015 alle 09:10
- .NET Framework 4.6, .NET Core 5, ASP.NET 4.6 e ASP.NET 5: un po' di chiarezza, il 13 novembre 2014 alle 10:55
- La lunga strada verso la prossima versione di ASP.NET, il 29 settembre 2014 alle 17:24
- Visual Studio 11 beta: le novità di ASP.NET 4.5, l'1 marzo 2012 alle 19:53
- Inside ModelVirtualCasting #10: tutti pazzi per il web mobile, il 5 luglio 2010 alle 18:47
- Inside ModelVirtualCasting #9: Cache con Windows Server AppFabric, il 2 luglio 2010 alle 12:05