Interazione tra controlli e adattatori
Due tipi di interazioni si verificano durante il ciclo di vita dei controlli mobili ASP.NET e gli adattatori a questi associati, ovvero l'interazione tra controlli e adattatori di dispositivo e l'interazione tra pagine e adattatori di pagina.
Controlli e adattatori di dispositivo dei controlli
Durante il ciclo di vita di un controllo mobile, tra un controllo e l'adattatore di dispositivo ad esso associato si verificano le seguenti interazioni:
Viene innanzitutto verificato da parte di ASP.NET che sia presente una copia della pagina nella cache. Se ne esiste una, la pagina memorizzata nella cache verrà inviata la client. Per ulteriori informazioni sulle operazioni di memorizzazione nella cache, vedere la sezione relativa alla memorizzazione nella cache di output in Suggerimenti per ottimizzare il rendering dei writer mobili di testo.
Viene creato un controllo. Al primo tentativo di accesso alla proprietà Adapter del controllo, viene scelto un adattatore di controllo e viene creata una nuova istanza dell'adattatore, come descritto nella sezione relativa alle informazioni sul processo di selezione degli adattatori di dispositivo in Mapping degli adattatori.
La proprietà dell'adattatore di dispositivo del controllo Control viene impostata al momento della creazione di un nuovo adattatore.
La pagina, se memorizzata nella cache, chiama l'adattatore per determinare se è necessario modificare la memorizzazione nella cache in base alle intestazioni aggiuntive.
Viene chiamato il metodo OnInit del controllo. Il metodo OnInit dell'adattatore di dispositivo del controllo viene chiamato dall'implementazione della classe base MobileControl.
Viene caricato lo stato di visualizzazione privata del controllo, se disponibile. Se gli adattatori di dispositivo memorizzano qualsiasi stato specifico del dispositivo per il controllo, l'implementazione della classe base MobileControl del metodo LoadPrivateViewState chiamerà il metodo LoadAdapterState dell'adattatore di dispositivo del controllo.
Viene chiamato il metodo del controllo OnLoad. Il metodo OnLoad dell'adattatore di dispositivo del controllo viene chiamato dall'implementazione della classe base MobileControl.
Se il controllo implementa l'interfaccia IPostBackEventHandler e riceve un evento postback, verrà chiamato il metodo RaisePostBackEvent del controllo. Se gli eventi inviati al controllo possono variare in base al dispositivo di destinazione, l'implementazione del controllo di questo metodo chiamerà il metodo HandlePostBackEvent dell'adattatore di dispositivo del controllo. Il metodo HandlePostBackEvent restituisce i valori true o false che indicano se l'evento è stato gestito o meno dall'adattatore di dispositivo.
Viene salvato lo stato di visualizzazione privata del controllo, se disponibile. L'implementazione della classe base MobileControl del metodo SavePrivateViewState chiama il metodo SaveAdapterState dell'adattatore di dispositivo del controllo nel caso in cui sia necessario per l'adattatore memorizzare qualsiasi stato specifico del dispositivo per il controllo.
Viene chiamato il metodo del controllo OnPreRender. Il metodo OnPreRender dell'adattatore di dispositivo del controllo viene chiamato dall'implementazione della classe base MobileControl.
Viene chiamato il metodo del controllo Render. Il metodo Render dell'adattatore di controllo viene chiamato dall'implementazione della classe base MobileControl.
Viene chiamato il metodo OnUnload del controllo. Il metodo OnUnload dell'adattatore di dispositivo del controllo viene chiamato dall'implementazione della classe base MobileControl.
Pagine e adattatori di pagina
Sebbene la classe MobilePage erediti dalla classe Page Web Form di .NET Framework invece che dalla classe MobileControl, il comportamento relativo all'adattatore della classe MobilePage è molto simile a quello della classe MobileControl.
Gli adattatori di pagina Mobile in ASP.NET, ad esempio ChtmlPageAdapter, HtmlPageAdapter o WmlPageAdapter implementano l'interfaccia IpageAdapter, la quale a sua volta implementa l'interfaccia IControlAdapter. In questo modo, molti aspetti del ciclo di vita di una pagina sono simili agli aspetti del ciclo di vita di un adattatore di controllo. Una pagina mobile e il relativo adattatore di dispositivo interagiscono specificamente con la classe Page. Le fasi del ciclo di vita della pagina mobile e del relativo adattatore sono le seguenti:
- Viene creata una pagina da ASP.NET. Al primo tentativo di accesso alla proprietà Adapter della pagina, viene scelto un adattatore di pagina e viene creata un'istanza dell'adattatore, come descritto nella sezione relativa alle informazioni sul processo di selezione degli adattatori di dispositivo in Mapping degli adattatori. La proprietà Page dell'adattatore di pagina viene impostata al momento della creazione dell'adattatore.
- Viene chiamato il metodo OnInit della pagina. Il metodo OnInit dell'adattatore di pagina viene chiamato dall'implementazione della classe base MobilePage.
- Viene chiamato il metodo della pagina OnDeviceCustomize. Il metodo OnDeviceCustomize dell'adattatore di pagina viene chiamato dall'implementazione della classe base MobilePage.
- Per determinare il postback di una pagina, se disponibile, la classe base MobilePage chiama il metodo DeterminePostBackMode dell'adattatore di pagina. Questo metodo è in grado di verificare e modificare le variabili di postback per una richiesta. Questo metodo è anche responsabile della riconversione in una variabile del form di qualsiasi informazione mantenuta sullo stato di visualizzazione, nel caso in cui le informazioni non siano già state riconvertite in una variabile.
- Viene caricato lo stato di visualizzazione privata della pagina, se disponibile. La classe base MobilePage chiama il metodo LoadAdapterState dell'adattatore di pagina, nel caso in cui l'adattatore memorizzi qualsiasi stato di visualizzazione specifico del dispositivo per la pagina.
- Viene chiamato il metodo OnLoad della pagina. Il metodo OnLoad dell'adattatore di pagina viene chiamato dall'implementazione della classe base MobilePage.
- Viene salvato lo stato di visualizzazione privata della pagina, se disponibile. La classe base MobilePage chiama il metodo SaveAdapterState dell'adattatore di pagina, nel caso in cui sia necessario per l'adattaore memorizzare qualsiasi stato di visualizzazione specifico del dispositivo per la pagina.
- La classe base MobilePage chiama il metodo SaveViewState dell'adattatore di pagina. Questo metodo ha la responsabilità di verificare che lo stato passato come parametro sia serializzato nella pagina scritta.
- Durante l'impaginazione, la classe base MobilePage accede alla proprietà OptimumPageWeight dell'adattatore di pagina. L'adattatore restituisce un peso della pagina adatto al dispositivo di destinazione.
- Viene chiamato il metodo OnPreRender della pagina. Il metodo OnPreRender dell'adattatore di pagina viene chiamato dall'implementazione della classe base MobilePage.
- Viene creato un writer per l'acquisizione dell'output della pagina. È necessario che il metodo CreateTextWriter dell'adattatore di pagina chiamato dalla classe base MobilePage restituisca un writer di testo specifico della destinazione.
- Viene chiamato il metodo Render della pagina. Il metodo Render dell'adattatore di pagina viene chiamato dall'implementazione della classe base MobilePage. A un certo punto, durante l'esecuzione del rendering, l'adattatore diviene anche responsabile dell'accesso e della scrittura dello stato di visualizzazione privata della pagina mediante la proprietà ClientViewState della pagina.
- Viene chiamato il metodo OnUnload della pagina. Il metodo OnUnload dell'adattatore di pagina viene chiamato dall'implementazione della classe base MobilePage.