WebService WCF con Json + Sql Server en C# Parte 1

Estándar

En estos momentos me encuentro desarrollando una Aplicacion MultiPlataforma con SQL Server (IOS/Android/WP). Por lo cual WCF andaba bien con WP, Pero no podía hacer consultas(Buscar,Listar,Eliminar,Agregar,Actualizar) para Android, IOS. Buscando por Internet me di cuenta que estas 2 plataformas restantes se manejan con JSON. En este post veremos como crear, Configurar nuestro WS para que soporte peticiones GET y POST.

1. Requisitos

  • Visual Studio 2012 o superior
  • SQL Server
  • ISS

 

2. Pasos a seguir

Creamos una base de datos en nuestro SQL Server donde nos queda de esta forma :

Captura

 

Donde nuestra base de dato se llamara : DemoWS

Tabla : Personas
Atributos:

id_Persona (Int) = Autoincrementable (PK)
Nombre_Persona(Varchar)
Apellido_Persona(Varchar)
Login_Persona(Varchar)
Pass_Persona(Varchar)

SQL :

CREATE TABLE Personas (

id_Persona INT IDENTITY PRIMARY KEY,
Nombre_Persona varchar(50),
Apellido_Persona varchar(50),
Login_Persona varchar(50),
Pass_Persona varchar(50)

);

Dejo un video de Youtube si no sabes crear una base de datos
T
ambien documentacion aqui 

 

3. Que va a hacer nuestro WCF

  • ListadoPersonas : Método de tipo GET que retorna una lista de todos las personas
  • PersonaID : Método de tipo GET que tiene como parámetro de entrada un campo int y retorna el resultado de la busqueda por id.
  • GuardarPersona : Método de tipo POST . Este método simula un INSERT de datos, Donde se ocupa la  misma estructura  para operaciones tipo UPDATE o DELETE.
  • InicioSesionPersona : Método de tipo GET que tiene como parámetro de entrada 2 campos  string y retorna el el resultado del usuario encontrado.

 

Para probar los métodos GET puedes ocupar el navegador(Instalen el plugin de JSONView). Para los POST yo ocupo un proyecto que tengo alojado en gitHub. O si no te sientes cómodo con este proyecto puedes ocupar  Fiddler, es gratuita y esta soportada por Telerik.

4. Creando el proyecto WCF en C#

Al crear el proyecto WCF, ingresa a Visual Studio, selecciona nuevo proyecto y luego “WCF”.

Captura de pantalla (193)

4.1 Crear una clase llamada Persona_

En nuestro proyecto creamos una clase Persona_ Con estos datos :

[DataContract]
public class Persona_

{

[DataMember]
public int Id { get; set; }

[DataMember]
public string Nombres { get; set; }

[DataMember]
public string Apellidos { get; set; }

[DataMember]
public string Login { get; set; }

[DataMember]
public string Pass { get; set; }

}

 

4.2 Agregar nuestra Base de datos SQL Server

Ahora en nuestro proyecto click derecho -> Agregar -> Agregar nuevo elemento -> Datos -> Clase de LINQ to SQL

Captura de pantalla (194)

Nos quedara algo como esto :

Captura de pantalla (195)

Ahora nos conectamos a nuestra base de datos en explorador de servidores, en la parte superior del lado izquierdo.

Captura de pantalla (196)

En esta ventana tenemos varias opciones de como poder conectarnos a nuestro SQL Server.  En la parte del nombre del servidor podemos acceder de 2 formas, al sql local local, o a un servidor con sql.

1. Conectar al servidor local.

En el nombre del servidor tenemos una lista despegable donde nos dará las opciones de los servidores de Sql Server.
En la sección de autenticacion, nosotros tenemos 2 opciones, una autentificar por medio de windows y otra por usuarios. Seleccionamos la que nosotros hemos configurado al instalar SQL Server.

Y para finalizar este proceso seleccionamos la base de datos que nosotros queramos en nuestro proyecto WCF y le damos aceptar.

2. Conectar al servidor por medio de IP

Esta forma se encuentra explicada en este post anterior.

Habilitar conexiones remotas en SQL Server 2012

 

Ya teniendo estos pasos listos. ya podemos ver nuestra base de datos. en el explorador de servidores.

Captura de pantalla (197)

Arrastramos nuestras tablas, En este caso tenemos 1. Y listo ya tenemos nuestra base de datos SQL Server incluida en nuestro proyecto.

5. Agregar los metodos GET y POST a la interface IService1.cs

Los atributos WebGet se utilizaran para la peticiones GET  y WebInvoke por defecto se utiliza para peticiones tipo POST aunque también se puede utilizar para peticiones PUT y DELETE.

Tipusar WebInvoke para peticiones que implican cambio de datos y WebGet solo para obtener datos.Cada uno de estos atributos cuentan con parámetros que sirven para :  identificar si el método es POST o GET, asignar un alias al método (recuerda que los métodos en los servicios web no se pueden exponer con sobrecarga) y tambien permite especificar los parámetros de entrada en el UriTemplate. También aquí se define el formato JSON y el estilo Wrapped el cual indica que se aplicará tanto para los parametros de entrada como el resultado del servicio. Para mayor información puedes consultar WebMessageBodyStyle.

sige este post en la parte 2.

Saludos nos vemos en la próxima !🙂

 

 

18 comentarios en “WebService WCF con Json + Sql Server en C# Parte 1

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s