Xamarin.Forms Introducción a los servicios web
En este tema se proporciona un tutorial de la aplicación de ejemplo que Xamarin.Forms muestra cómo comunicarse con diferentes servicios web. Aunque cada servicio web usa una aplicación de ejemplo independiente, son funcionalmente similares y comparten clases comunes.
La aplicación de lista de tareas de ejemplo que se describe a continuación se usa para mostrar cómo acceder a diferentes tipos de back-end de servicio web con Xamarin.Forms . Proporciona funcionalidad para:
- Ver una lista de tareas.
- Agregar, editar y eliminar tareas.
- Establezca el estado de una tarea en "listo".
- Diga el nombre de la tarea y los campos de notas.
En todos los casos, las tareas se almacenan en un back-end al que se accede a través de un servicio web.
Cuando se inicia la aplicación, se muestra una página que muestra todas las tareas recuperadas del servicio web y permite al usuario crear una nueva tarea. Al hacer clic en una tarea, la aplicación se desplaza a una segunda página donde la tarea se puede editar, guardar, eliminar y hablar. A continuación se muestra la aplicación final:


Cada tema de esta guía proporciona un vínculo de descarga a una versión diferente de la aplicación que muestra un tipo específico de back-end de servicio web. Descargue el código de ejemplo pertinente en la página relacionada con cada estilo de servicio web.
Comprender la anatomía de la aplicación
El proyecto de código compartido para cada aplicación de ejemplo consta de tres carpetas principales:
| Carpeta | Propósito |
|---|---|
| data | Contiene las clases e interfaces usadas para administrar elementos de datos y comunicarse con el servicio web. Como mínimo, esto incluye la clase , que se expone a través de una TodoItemManager propiedad de la clase para invocar operaciones de servicio App web. |
| Modelos | Contiene las clases de modelo de datos para la aplicación. Como mínimo, esto incluye la TodoItem clase , que modela un único elemento de datos usado por la aplicación. La carpeta también puede incluir clases adicionales usadas para modelar los datos de usuario. |
| Vistas | Contiene las páginas de la aplicación. Normalmente, consta de las clases TodoListPage y y de las clases TodoItemPage adicionales que se usan con fines de autenticación. |
El proyecto de código compartido para cada aplicación también consta de varios archivos importantes:
| Archivo | Propósito |
|---|---|
| Constants.cs | Clase Constants , que especifica las constantes usadas por la aplicación para comunicarse con el servicio web. Estas constantes requieren actualización para acceder al servicio back-end personal creado en un proveedor. |
| ITextToSpeech.cs | Interfaz ITextToSpeech , que especifica que el método debe ser proporcionado por cualquier clase de Speak implementación. |
| Todo.cs | Clase responsable de crear instancias de la primera página que mostrará la aplicación en cada plataforma y la clase que se usa para invocar operaciones AppTodoItemManager de servicio web. |
Ver páginas
La mayoría de las aplicaciones de ejemplo contienen al menos dos páginas:
- TodoListPage: esta página muestra una lista de instancias y un icono de tic si
TodoItem.Donela propiedad estrue. Al hacer clic en un elemento, se navega aTodoItemPage. Además, se pueden crear nuevos elementos haciendo clic en el + símbolo. - TodoItemPage: esta página muestra los detalles del seleccionado y permite editarlo, guardarlo, eliminarlo y hablarlo.
Además, algunas aplicaciones de ejemplo contienen páginas adicionales que se usan para administrar el proceso de autenticación de usuario.
Modelado de los datos
Cada aplicación de ejemplo usa la clase para modelar los datos que se muestran y TodoItem se envían al servicio web para el almacenamiento. En el ejemplo de código siguiente se muestra la clase 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 propiedad se usa para identificar de forma única cada instancia y cada servicio web lo usa para identificar los datos que IDTodoItem se actualizarán o eliminarán.
Invocación de operaciones de servicio web
Se accede a las operaciones de servicio web a través de la clase y se puede acceder a una instancia de la clase TodoItemManager a través de la propiedad App.TodoManager . La TodoItemManager clase proporciona los métodos siguientes para invocar operaciones de servicio web:
- GetTasksAsync: este método se usa para rellenar el control en con las instancias
TodoListPageTodoItemrecuperadas del servicio web. - SaveTaskAsync: este método se usa para crear o actualizar una instancia en el servicio web.
- DeleteTaskAsync: este método se usa para eliminar una instancia en el servicio web.
Además, algunas aplicaciones de ejemplo contienen métodos adicionales en la TodoItemManager clase , que se usan para administrar el proceso de autenticación de usuario.
En lugar de invocar las operaciones de servicio web directamente, los métodos invocan métodos en una clase dependiente que TodoItemManager se inserta en el TodoItemManager constructor. Por ejemplo, una aplicación de ejemplo inserta la clase en el constructor para proporcionar la implementación que usa RestService las API REST para acceder a los TodoItemManager datos.
Descarga del ejemplo