Xamarin.Forms Introduzione ai servizi Web

In questo argomento viene fornita una procedura dettagliata dell'applicazione Xamarin.Forms di esempio che illustra come comunicare con diversi servizi Web. Mentre ogni servizio Web usa un'applicazione di esempio separata, sono funzionalmente simili e condividono classi comuni.

L'applicazione elenco attività di esempio descritta di seguito viene usata per illustrare come accedere a diversi tipi di back-end del servizio Web con Xamarin.Forms. Offre funzionalità per:

  • Visualizzare un elenco di attività.
  • Aggiungere, modificare ed eliminare attività.
  • Impostare lo stato di un'attività su 'done'.
  • Pronunciare i campi nome e note dell'attività.

In tutti i casi, le attività vengono archiviate in un back-end a cui si accede tramite un servizio Web.

Quando l'applicazione viene avviata, viene visualizzata una pagina che elenca tutte le attività recuperate dal servizio Web e consente all'utente di creare una nuova attività. Facendo clic su un'attività, l'applicazione viene spostata in una seconda pagina in cui l'attività può essere modificata, salvata, eliminata e pronunciata. L'applicazione finale è riportata di seguito:

Applicazione Todo - prima paginaApplicazione Todo - seconda pagina

Ogni argomento di questa guida fornisce un collegamento di download a una versione diversa dell'applicazione che illustra un tipo specifico di back-end del servizio Web. Scaricare il codice di esempio pertinente nella pagina relativa a ogni stile di servizio Web.

Comprendere l'anatomia dell'applicazione

Il progetto di codice condiviso per ogni applicazione di esempio è costituito da tre cartelle principali:

Cartella Scopo
Dati Contiene le classi e le interfacce usate per gestire gli elementi di dati e comunicare con il servizio Web. Come minimo, include la TodoItemManager classe , esposta tramite una proprietà nella classe per richiamare le operazioni del App servizio Web.
Modelli Contiene le classi del modello di dati per l'applicazione. È inclusa almeno la TodoItem classe , che modella un singolo elemento di dati usato dall'applicazione. La cartella può includere anche eventuali classi aggiuntive usate per modellare i dati utente.
Visualizzazioni Contiene le pagine per l'applicazione. Questo è in genere costituito dalle TodoListPage classi e TodoItemPage e da eventuali classi aggiuntive usate a scopo di autenticazione.

Il progetto di codice condiviso per ogni applicazione è costituito anche da numerosi file importanti:

file Scopo
Constants.cs Classe Constants , che specifica le costanti utilizzate dall'applicazione per comunicare con il servizio Web. Queste costanti richiedono l'aggiornamento per accedere al servizio back-end personale creato in un provider.
ITextToSpeech.cs Interfaccia ITextToSpeech che specifica che il Speak metodo deve essere fornito da qualsiasi classe di implementazione.
Todo.cs Classe App responsabile della creazione di un'istanza della prima pagina che verrà visualizzata dall'applicazione in ogni piattaforma e della TodoItemManager classe usata per richiamare le operazioni del servizio Web.

Pagine di visualizzazione

La maggior parte delle applicazioni di esempio contiene almeno due pagine:

  • TodoListPage : questa pagina visualizza un elenco di TodoItem istanze e un'icona di graduazione se la TodoItem.Done proprietà è true. Facendo clic su un elemento si passa a TodoItemPage. Inoltre, è possibile creare nuovi elementi facendo clic sul + simbolo .
  • TodoItemPage : questa pagina visualizza i dettagli per l'oggetto selezionato TodoIteme consente di modificarlo, salvare, eliminare e parlare.

Inoltre, alcune applicazioni di esempio contengono pagine aggiuntive usate per gestire il processo di autenticazione utente.

Modellare i dati

Ogni applicazione di esempio usa la TodoItem classe per modellare i dati visualizzati e inviati al servizio Web per l'archiviazione. L'esempio di codice seguente visualizza la classe TodoItem:

public class TodoItem
{
    public string ID { get; set; }
    public string Name { get; set; }
    public string Notes { get; set; }
    public bool Done { get; set; }
}

La ID proprietà viene utilizzata per identificare in modo univoco ogni TodoItem istanza e viene utilizzata da ogni servizio Web per identificare i dati da aggiornare o eliminare.

Richiamare le operazioni del servizio Web

È possibile accedere alle operazioni del servizio Web tramite la TodoItemManager classe e accedere a un'istanza della classe tramite la App.TodoManager proprietà . La TodoItemManager classe fornisce i metodi seguenti per richiamare le operazioni del servizio Web:

  • GetTasksAsync : questo metodo viene usato per popolare il ListView controllo in TodoListPage con le TodoItem istanze recuperate dal servizio Web.
  • SaveTaskAsync : questo metodo viene usato per creare o aggiornare un'istanza TodoItem nel servizio Web.
  • DeleteTaskAsync : questo metodo viene usato per eliminare un'istanza TodoItem nel servizio Web.

Inoltre, alcune applicazioni di esempio contengono metodi aggiuntivi nella TodoItemManager classe , che vengono usati per gestire il processo di autenticazione utente.

Anziché richiamare direttamente le operazioni del servizio Web, i TodoItemManager metodi richiamano metodi su una classe dipendente inserita nel TodoItemManager costruttore. Ad esempio, un'applicazione di esempio inserisce la RestService classe nel TodoItemManager costruttore per fornire l'implementazione che usa le API REST per accedere ai dati.