martes, 20 de septiembre de 2016

Conectando una app de Xamarin con SQL Server

ACTUALIZACIÓN: Esta publicación NO es la forma recomendada de comunicar una app móvil con una base de datos. El esquema ideal es crear un Web Api que se conecta a tu base de datos, exponiendo métodos que serán accesibles para tu aplicación móvil. Dicho lo anterior, esta publicación es un mero ejercicio ilustrativo y NO se recomienda para producción sobre todo por esquemas de seguridad.

Aquí tienes un ejemplo de cómo hacerlo con SQL Server (solo quedaría publicarlo y accederlo desde Xamarin) y aquí va otro ejemplo con MySQL

---------------------------------------

¡Hola! En la semana me preguntaron acerca de cómo conectar una base de datos SQLServer en una red local con una app móvil en Xamarin, lo cual es posible a través de la clase SQLConnection que se encuentra en el espacio de nombres System.Data pero nunca lo había hecho, así que me dí a la tarea de intentarlo ayer porque es interesante. A continuación, les comparto la experiencia por si les sirve en alguna ocasión.

Parte 1. Creación de la base de datos, tablas e información
Inicia SQL Server Management Studio. En mi caso, tengo instalado SQL Server 2012, pero no debería haber diferencia si utilizas otra versión.

Para este ejemplo, he creado la base de datos Empresa con la tbla Empleados. Le he agregado 3 registros. Fácil, ¿no?

CREATE DATABASE Empresa
GO

USE Empresa
GO

CREATE TABLE Empleados(
ID INT IDENTITY(1,1) PRIMARY KEY NOT NULL,
Nombre VARCHAR(100) NOT NULL,
Salario DECIMAL(12, 4) NOT NULL
)

INSERT INTO Empleados VALUES ('Ana Mendez', 7812.45)
INSERT INTO Empleados VALUES ('Juan Pérez', 10000.51)
INSERT INTO Empleados VALUES ('Raúl Rico', 4703.12)


Parte 2. Inicio de sesión y Configuración del servidor
A fin de que otros dispositivos se puedan conectar a nuestra base de datos a través de aplicaciones (en este caso, una app móvil), tenemos que configurar ciertos permisos en el servidor.

a) Inicio de sesión
El primer paso es que SQL Server acepte la autenticación mixta (la que nos interesa en realidad es la autenticación de SQL Server, no tanto la de Windows).


Esta propiedad se establece cuando instalas SQL Server, pero si elegiste la autenticación de Windows, simplemente realiza lo siguiente: