E' disponibile da qualche settimana la tanto attesa beta 2 di ASP.NET 2.0, slittata di una quindicina di giorni rispetto alla data prevista di rilascio prevista inizialmente.
Ci siamo già occupati in passato di questa nuova versione, per il lancio della prima versione pubblica di ASP.NET, durante l'ottobre 2003 con la preview alpha 1 rilasciata durante PDC 03.
In questo articolo ci soffermeremo, soprattutto, sulle differenze con l'alpha/beta 1, in modo da poterci concentrare sulle funzionalità che saranno effettivamente disponibili per la RTM, ovvero per la versione definitiva.
Il nuovo (vecchio) compilation model
Se è vero che una delle novità più apprezzate delle prime build è stato il nuovo compilation model , la beta 2 si è resa famosa, ancora prima di essere pubblicamente disponibile, per un ritorno alle origini.
Ufficialmente il cambio è stato fatto per consentire, da ASP.NET 1.x, una migrazione più semplice , introducendo quindi meno concetti specifici per ASP.NET 2.0 rispetto a quanto offre già oggi la famiglia 1.x.
Tra l'altro questo cambio di programma rende immediata la conversione di soluzioni 1.x, non appena queste vengono aperte in Visual Studio 2005 (o Visual Web Developer 2005, che è in realtà la costola di VS 2005 dedicata allo sviluppo web). Bisogna prestare attenzione perché il processo non è bidirezionale ed una volta che si è proceduti alla conversione, non è più possibile tornare indietro.
Fermo restando che il supporto per il code inline rimane supportato, anche se non è più quello di default, le modifiche più sostanziali riguardano il code behind .
Nella beta 1 la dichiarazione delle proprietà della pagina, per quanto riguarda la compilazione, avveniva all'incirca così:
<%@ Page compilewith="webform1.aspx.cs" classname="WebForm1 %>
Dalla beta 2, invece, si tornerà ad un più familiare:
<%@ Page codefile="webform1.aspx.cs" inherits="WebForm1" %>
Allo stesso modo, nel file del code behind, dal corrispondente della beta 1:
public partial class Webform1// nessuna parent class
si arriva all'equivalente della beta 2:
public partial class WebForm1:
System.Web.UI.Page
Come si può facilmente notare, l'unica differenza con la sintassi della 1.x, peraltro prettamente stilistica e dal dubbio uso pratico, è la comparsa della marcatore partial nella definizione della classe di base. Questo marcatore indica al compilatore che la classe non è completa, perché contiene solo una parte della definizione della stessa e sfrutta una caratteristica propria del .NET Framework 2.0.
Dato che però è stato nuovamente introdotta la necessità, come si può notare nella definizione, di indicare una base class per la pagina, sono in molti ad interrogarsi sull'effettivo utilizzo, da parte del compilatore, di questa nuova funzionalità, dato che il nuovo compilation model richiama molto da vicino quello della 1.x, dove le partial classes non sono presenti.
La buona notizia è che, come nella beta 1, non è necessario definire (o lasciarlo fare a VS.NET) tutti gli oggetti della pagina come protected all'interno del code behind.
Questa modifica, ovviamente, impatta su tutti gli oggetti che sfruttano la separazione di codice da struttura, per cui le modifiche riguardano anche le MasterPages, la cui base class è System.Web.UI.MasterPage .
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Personalizzare l'errore del rate limiting middleware in ASP.NET Core
Load test di ASP.NET Core con k6
Implementare il throttling in ASP.NET Core
Effettuare il deploy di immagini solo da container registry approvati in Kubernetes
Short-circuiting della Pipeline in ASP.NET Core
Usare ASP.NET Core dev tunnels per testare le applicazioni su internet
Cache policy su route groups di Minimal API in ASP.NET Core 7