Tipi di adattatori

Per supportare più dispositivi, l'architettura delle pagine Web Forms mobili di ASP.NET si basa su un modello di adattatori di dispositivo. Mentre una pagina Web Forms mobile e un controllo mobile ASP.NET sono indipendenti dal dispositivo, un set di adattatori di dispositivo scelti in modo appropriato fornisce un livello di presentazione specifico del dispositivo per le pagine e i controlli mobili.

Gli adattatori di dispositivo sono associati a combinazioni di singoli controlli e dispositivi di destinazione. Per ogni determinato dispositivo, a ogni classe di controlli mobili può essere associata una classe univoca di adattatori di controlli, e ogni istanza di un controllo è associata all'istanza corrispondente di un adattatore.

Per ogni tipo di dispositivo è possibile definire le classi seguenti:

  • Classe base di adattatori di controllo. La classe base da cui ereditano tutti gli adattatori di dispositivo.
  • Adattatore di pagina. L'adattatore associato alla pagina.
  • Adattatore di form. L'adattatore di controllo associato a ogni form della pagina.
  • Adattatori di controllo. Le classi di adattatori di controllo che corrispondono ai controlli nel sistema.
  • Writer di testo. Una classe che eredita dalla classe HtmlTextWriter e che contiene i metodi di supporto specifici per la destinazione.

Come regola generale, se per alcune funzionalità è necessario il contesto di un controllo, è opportuno valutarne l'inserimento nella classe base di adattatori di controllo.

Nella tabella che segue vengono elencati i tipi di adattatori unitamente ad alcuni esempi di classi di implementazione specifiche di dispositivo per ogni adattatore.

Tipo e classe di adattatore Classe di controlli mobili ASP.NET Descrizione
Classe base di adattatori di controllo ControlAdapter Tutti gli adattatori di dispositivo ereditano da questa classe base.
Adattatore di pagina ChtmlPageAdapter

HtmlPageAdapter

WmlPageAdapter

Adattatore di controllo associato alla pagina.
Adattatore di form ChtmlFormAdapter

HtmlFormAdapter

WmlFormAdapter

Adattatore di controllo associato a ogni form della pagina.
Adattatore di controllo HtmlControlAdapter

WmlControlAdapter

Classi di adattatori di controllo che corrispondono ai controlli nel sistema.
Writer di testo ChtmlMobileTextWriter

HtmlMobileTextWriter

WmlMobileTextWriter

Classe che eredita dalla classe HtmlTextWriter e che contiene i metodi di supporto specifici per la destinazione.

Classe base di adattatori di controllo

In genere in ogni set di adattatori di dispositivo è inclusa una classe base per tutti gli adattatori in esso contenuti. La classe base ControlAdapter rende disponibili le funzionalità comunemente utilizzate specifiche della classe di dispositivo. In genere è costituita da metodi di supporto che richiedono il contesto di controllo o di pagina. Tali metodi di supporto includono:

  • I metodi per l'esecuzione del rendering di eventi di postback del controllo.
  • I metodi che eseguono il rendering delle proprietà di stile del controllo. Le proprietà di stile vengono gestite in modo diverso per ogni dispositivo in modo che ogni adattatore abbia un'implementazione diversa per il rendering dello stile.
  • I metodi di cui è possibile eseguire l'override che rendono disponibili le informazioni specifiche del dispositivo nel framework della pagina ASP.NET o negli adattatori del form o della pagina contenitore.
  • Le proprietà utili per accedere agli adattatori del form o della pagina contenitore.

È consigliabile che la classe base di adattatori di controllo fornita erediti anche dalla classe ControlAdapter, che in genere è la classe base generale. Tale classe rende disponibile un'implementazione predefinita dell'interfaccia IControlAdapter necessaria per tutti gli adattatori. È consigliabile che l'implementazione predefinita del rendering della classe base esegua il rendering di tutti i controlli figlio. In questo modo è possibile utilizzare la classe base come adattatore per controlli composti.

Classe di adattatori di pagina

Ogni set di adattatori di dispositivo dispone di una classe di adattatori di pagina associata alla pagina mobile stessa. Ogni istanza di una pagina mobile o classe di pagina ereditata da un oggetto MobilePage viene associata a un adattatore di pagina specifico del dispositivo di destinazione. In genere in un adattatore di pagina è contenuto quanto segue:

  • Le funzionalità di postback e di stato di visualizzazione specifiche di dispositivo.
  • I metodi che salvano e caricano lo stato del controllo specifico di dispositivo, ad esempio le informazioni sull'impaginazione.
  • Il codice di inizializzazione che prepara la risposta restituita al client, in cui è inclusa l'impostazione del tipo MIME della risposta nel formato appropriato.
  • Un metodo Render che esegue il rendering della struttura della pagina restituita al client. Gli adattatori di pagina basati su HTML, ad esempio, in genere eseguono il rendering almeno dei tag <html> di apertura e chiusura.
  • Altre funzionalità a livello pagina specifiche di dispositivo, quali l'assemblaggio di un adattatore di pagina per un dispositivo che supporta la funzionalità di restituzione di più pagine in una singola risposta.

Una classe di adattatori di pagina deve fornire un'implementazione completa dell'interfaccia IPageAdapter. In genere la classe di adattatori di pagina che viene scritta deve ereditare anche dalla classe di adattatori di controllo appropriata. Se, ad esempio, si scrive unicamente per un dispositivo basato su WML, è necessario ereditare dalla classe WmlControlAdapter. Per ulteriori informazioni sulle classi di adattatori, vedere Codice dell'adattatore di dispositivo.

Classe di adattatori di form

Ogni set di adattatori di dispositivo dispone inoltre di una classe di adattatori di form associata alla classe Form. Ogni istanza di un form è associata a un adattatore di form specifico del dispositivo di destinazione. In genere in un adattatore di form è contenuto quanto segue:

  • I metodi che gestiscono l'interattività dei form specifici di dispositivo.
  • I metodi che gestiscono l'adattamento di un singolo form a dispositivi diversi, in cui può essere incluso il codice per impaginare un form o per combinare gli elementi del form in un menu.
  • Un metodo Render che esegue il rendering della struttura del form. Gli adattatori di pagina basati su WML, ad esempio, in genere eseguono il rendering almeno dei tag <card> di apertura e chiusura.

Classe di writer di testo

La classe di writer di testo non è una classe di adattatori ma una classe che eredita dalla classe System.Web.UI.HtmlTextWriter. Un'istanza della classe di writer di testo viene creata e passata tramite ogni adattatore per l'esecuzione del rendering. Tutto il rendering viene eseguito mediante questo oggetto. In genere nel writer di testo sono contenuti i metodi di supporto per eseguire attività come ad esempio la codifica dei dati.

Vedere anche

Aggiunta di nuovi adattatori di dispositivo e supporto per dispositivi