sábado, 3 de septiembre de 2011

WCF Service con Linq

Windows Communication Foundation o WCF, (también conocido como Indigo) es la plataforma de .NET que nos permite el desarrollo de aplicaciones distribuidas,
Fue creado con el fin de permitir una programación rápida de sistemas distribuidos y el desarrollo de aplicaciones basadas en arquitecturas orientadas a servicios (también conocido como SOA),


Los wcf viene a reemplazar a los web service.
Comparación de los servicios web ASP.NET con el WCF basado en desarrollo


Ejemplo paso a paso.
1.) Crear el proyecto, para eso, File - new web site y mostrara la siguiente ventana, elija un nombre y precione OK.



2.) Agregar un Linq Classes, Add->New Item,  elija el  LinqToSql Classes,mostrara la siguiente ventana, agregue el nombre de Nortwind.dbml.



3.) Desde server Explorer Arrastren la tabla clientes:



4.) Creación de la interface, dirijase al ventana de Solution explorer y habra el archivo IService.cs


Abra el archivo y agregue el siguiente codigo dentro del dela  función
public interface IService Ejemplo:


[OperationContract]
List<customer>GetCustomersCountry(string Country);

5.) Implementación de la Internface, para eso abra el archivo Service.cs
Acerque el mouse a la clase y coloquelo sobre el sobre Class IService y cuando aparesca el icono en forma de hoja  precione clic en Implement interface 'IService1' Ejemplo:public class Service : IService
{




6.)  Ingresando codigo del Methodo, luego del paso 5 se habra agregado el siguiente codigo:


public List<customer> GetCustomersCountry(string Country){ 

NortwindDataContext db = new NortwindDataContext(); 
var query = from cust in db.Customers 
where cust.Country.StartsWith(Country) 
select cust; 
return query.ToList(); 
   
} 


Web Cliente - Para Utilizar el WCF

1.- Hacemos clic derecho en la Solución y agregamos un nuevo proyecto Web Asp.Net. 


File - new web site 



 
2.- Ahora añadimos un Service Reference a nuestra aplicación Web haciendo clic derecho a nuestro proyecto, luego debido a que nuestro cliente está en una misma Solución, descubrimos si existe algún servicio en la solución y la agregamos dando clic en OK, hagámoslo como se muestra a continuación:





3.- Añadiremos una pagina para utilizar la referencia.




4.- Agregaremos controles a la pagina








5.- Por ultimo el código para llamar al wcf
protected void Button1_Click(object sender, EventArgs e)
{ 
ServiceReference1.ServiceClient servicio = new ServiceReference1.ServiceClient(); 
var query = servicio.GetCustomersCountry(TextBox1.Text);
servicio.Close();
var query1 = from c in query 
select new 
{ 
c.CustomerID, 
c.CompanyName, 
c.Country, 
c.Phone, 
c.Fax 
}; 

GridView1.DataSource = query1; 
DataBind(); 
} 
Detalles de las características de WCF Nombre del Articulo Original: Using Linq To SQL With WCF Service

1 comentario:

Carlos Juan dijo...

Si List sale un error es por que les falta un:
using System.Collections.Generic;