Acceso a MySQL desde el iPhone utilizando MonoTouch C# desde cero

Hola amigos que tal, en esta entrega les traigo el como accesar a una base de datos (MySQL) desde el iPhone, a través de un WebService. En el ejemplo hago uso de DataSets, Procedimientos Almacenados, DataAdapters y DataRows, algunos se preguntaran ¿Qué son todas esas cosas? Bueno pues a continuación tratare de dar una breve explicación de cada uno de los elementos.

¿Qué es un DataSet?

Un DataSet es un modo desconectado de nuestra base de datos, los DataSets nos permiten recoger información, actualizar datos, eliminarlos, añadirlos, etc…

Como este es un modelo desconectado, los DataSets son independientes de la tecnología utilizada como base de datos. Por lo tanto podemos decir que un DataSet es un objeto independiente que no conoce ni la fuente ni el origen de los datos, esta libertad la consigue gracias al formato XML. Los DataSets pueden estar formados por varias tablas, vistas, relaciones etc.

Como ya habrán intuido un DataSet es una copia en memoria del modelo de nuestra base de datos por lo tanto tenemos tablas, renglones columnas etc. Existen 3 formas con las cuales podemos trabajar con los DataSets

  1. Creando objetos tipo DataTable para almacenarlos en el DataSet mediante programación.
  2. Llenando el DataSet con información de una base de datos utilizando un mediador entre ambos que es el DataAdapter.
  3. Trabajar con origenes de datos de tipo XML y también con un poco más de trabajo con orígenes tipo JSON.

Esta es una breve introducción al DataSet y no estoy cubriendo todo lo que puede hacer este increíble objeto, de hecho esta es una de las mayores ventajas que tiene .NET sobre cualquier otra tecnología. Si quieren buscar más información sobre este objeto, les recuerdo que Google it´s your friend, existe bastante información y ejemplos de los diferentes usos que tiene este objeto :) .

¿Qué es un DataAdapter?

Un DataAdapter no es más que un puente entre la base de datos y el DataSet, este objeto se encarga de recibir la información de la base de datos y darle el formato adecuado para llenar el DataSet.

¿Qué es un DataRow?

Un objeto DataRow como su nombre lo indica es un renglón de un DataTable, este se utiliza para extraer los valores de un reglón completo de una tabla, en el video queda creo yo un poco más claro su uso.

¿Qué son los Procedimientos Almacenados?

Los Procedimientos almacenados son características que vienen a partir de MySQL 5.0. Un procedimiento almacenado son un conjunto de comandos SQL que se almacenan en el servidor. Una vez hechos, los clientes no necesitan saber los comandos individuales para obtener la informacion necesaria si no que solo le mandan los parametros necesarios al servidor MySQL y el servidor se encarga de extraer la informacion necesaria solamente con los datos que el cliente le mando.

Algunos casos en que los procedimientos almacenados pueden ser muy útiles:

  • Cuando múltiples aplicaciones cliente se escriben en distintos lenguajes o funcionan en distintas plataformas, pero necesitan realizar la misma operación en la base de datos.
  • Cuando la seguridad es muy importante. Los bancos, por ejemplo, usan procedimientos almacenados para todas las operaciones comunes. Esto proporciona un entorno seguro y consistente, y los procedimientos pueden asegurar que cada operación se loguea apropiadamente. En tal entorno, las aplicaciones y los usuarios no obtendrían ningún acceso directo a las tablas de la base de datos, sólo pueden ejecutar algunos procedimientos almacenados.

Los procedimientos almacenados son muy parecidos a las funciones que realizamos en una clase de .NET, nosotros le mandamos los parámetros necesarios a la función, nosotros no sabemos el funcionamiento interno de esa función pero si sabemos que nos regresara la información que necesitamos. Esto reduce drásticamente el tráfico entre el servidor de base de datos y el cliente, ya que en vez de mandarle muchísimas cadenas string de consultas SQL, solo le mandamos parámetros a esa función.

Bueno espero les sirva el video para sus futuros proyectos, verán que es bastante sencillo. Ya saben cualquier duda, comentario, sugerencia la pueden poner aquí y tratare de responder lo mas rápido posible. Saludos!

 

Uso de WebServices en MonoTouch usando CSharp desde el iPhone

Hola amigos en esta entrega les tengo un ejemplo de cómo invocar un servicio web desde el iPhone, pero que es un ¿WebService? a continuación les dejo una breve explicación de lo que es y para qué sirve ;)

¿Qué es un WebService?

“Es un conjunto de protocolos y estandares que sirven para intercambiar datos entre aplicaciones de software desarrolladas en lenguajes de programacion diferentes y ejecutadas sobre cualquier plataforma.. Wikipedia

 Tratare de hacerlo un poco más entendible ( :p ).Vamos a ver a un WebService como un mayordomo, yo le pido a mi mayordomo que me traiga de comer un coctel de futas especificándole las frutas que quiero (fresa, mango y sandia). El mayordomo va a la cocina y le dice a la cocinera que quiere un coctel de frutas de fresa, mango y sandia, ella lo prepara se lo entrega al mayordomo y el mayordomo viene me lo entrega a mí.

Un ejemplo más técnico, el iPhone no tiene de manera nativa los drivers para pedir datos a un servidor de MySQL así que requiere de un intermediario para pedir los datos al servidor de MySQL, El iPhone hace la petición al WebService, el WebService pide los datos al servidor de MySQL, el servidor de MySQL regresa los datos al WebService, el WebService prepara y le da el formato a los datos para que el iPhone los entienda y manda los datos solicitados al iPhone.

Por conclusión sacamos que un WebService nos sirve para romper las barreras de interoperabilidad que existen entre los diferentes dispositivos y lenguajes de programación.

¿Cómo se logra esto?

Esto se logra a través de la adopción de estándares abiertos, las organizaciones W3C y OASIS son las encargadas de la arquitectura y reglamentación de los servicios Web, también se creó un organismo llamado WS-I que es el encargado de desarrollar diferentes perfiles para definir de una mejor manera estos estándares.

¿Que estándares se usan en los WebServices?

Al conjunto de servicios y protocolos se les llama “Web Services Protocol Stack”, los estándares utilizados son

  • SOAP (Simple Object Access Protocol) también conocido como XML-RPC
  • HTTP (Hyper Text Transfer Protocol)
  • WSDL (Web Services Description Language)
  • UDDI (Universal Description, Discovery and Integration)
  • WS-Security (Web Service Security)
  • XML (Extensible Markup Language)

Si quieren aprender un poco más sobre los WebServices y cómo funcionan internamente les recomiendo ampliamente el tutorial de W3Schools sobre los WebServices (en inglés) o como ya sobran Google es su amigo ;)

pues espero que este pequeño tutorial les sirva amigos y como siempre, cualquier duda pueden ponerla en los comentarios y tratare de responderla lo mas pronto posible.

Nos leemos despues. Saludos