Archivos para la Categoría 'ADO.NET Data Services'

11
Jul
08

Introduccion a ADO.NET Data Services

la nueva ola de aplicaciones web se basa en tecnologias como AJAX y Microsoft Silverlight que permiten a los desarrolladores construir mejores y mas ricas experiencias de usuario (UX), esta tecnologia aporta un cambio en como se organizan las aplicaciones, incluida una fuerte separacion de presentacion de datos.

ADO.NET Data Services (Nombre Codigo del Proyecto ‘Astoria’) consiste en una combinacion de los patrones y las Bibliotecas que permiten almacenar todos los datos para ser expuestos como servicios de datos flexibles, naturalmente, la integracion con la web, que pueden ser consumidos por la web clientes dentro de una red corporativa o atravs de la internet. ADO.NET utiliza los servicios de datos URI para apuntar a piezas de datos sencillo, bien conocido para los formatos de datos que representan, como JSON y ATOM / APP. esto se traduce en datos que se exponen a los clientes web como un REST-Style una collecion de recursos, accesible con agentes de URI que puede interactuar con el uso de verbos estandar HTTP, como GET, POST, o DELETE

Para que el sistema pueda comprender y aprovechar la semántica sobre los datos que esta surgiendo, los servicios de datos ADO.NET son modelos de datos expuestos a traves de servicios de datos utilizando un modelo llamado ENtity Data Model (EDM), un Entity-RelationShip con derivados. Esta organiza los datos en forma de casos de “Entity Type” o “Entities”, y las asociaciones entre ellos.

10
Jul
08

ADO.NET Data Services ( III ). Cómo consumir un servicio desde una aplicación WinForm

Ahora es el turno de ver cómo se puede consumir el servicio desde una aplicación cliente, que como ya hemos comentado, podría ser cualquier tipo de aplicación..En este caso, el ejemplo lo haremos con una aplicación Windows.

  • Lo primero que haremos es crear una aplicación WinForm.
  • Añadir una referencia a Microsoft.Data.WebClient.
    • %ProgramFiles%\Reference Assemblies\Microsoft\Framework\ASP.NET 3.5 Extensions

image

  • Para poder acceder al servicio necesitamos crear una capa de objetos que nos posibiliten llamar de forma sencilla al servicio que exponemos, es decir, el proxy. Hasta la versión Release esta opción no está integrada y es necesario generarlo desde la línea de comandos.
    1. El proceso que debemos usar se llama WebDataGen.exe y se encuentra en WebDataGen.exe en %Program Files%\Microsoft ASP.NET 3.5 Extensions.
    2. WebDataGen.exe /mode:ClientClassGeneration /outobjectlayer:Northwind.cs /uri:h http://localhost:3895/NorthwindService.svc
    3. Este proceso genera un fichero cs que tenemos que incluir en el proyecto WinForm.
  • Una vez incluido en el proyecto, ya tenemos todo lo necesario.
  • Lo que haremos es llamar al servicio de ADO.NET Data Services para que nos devuelva la información de todos los clientes y mostraremos la información en un grid.
  • Arrastraremos un DataGridView al formulario.
  • Creamos un clase nueva, que le llamamos NorthwindService.cs.
    • En este clase es dónde creamos los métodos que acceden al servicio ( a través del proxy ) y devuelven la información a la interfaz de usuario.
  • Añadir dos referencias.a Microsoft.Data.WebClient y a NorthwindModel ( proxy ).
  • En el constructor de la clase añadimos el código necesario para crear el proxy, un objeto de tipo NorthwindEntities.

image
 

  • Para recuperar la información podemos hacerlo de dos maneras; usando la clase WebDataQuery o usando LINQ.

image

  • Carga DataGridView los clientes que devuelve el servicio.
    • NorthwindService ns = new NorthwindService();
    • CustomerGridView.DataSource = ns.GetCustomers();
  • Ya ya está…
    • F5 de la aplicación Windows, teniendo previamente en ejecución el servicio de ADO.NET Data Service.

 

image

Por: Ibon Landa

09
Jul
08

ADO.NET Data Services Paso a Paso ( II ) – Consultar el servicio a través del navegador.

En el post anterior veiamos cómo podíamos crear un servicio de ADO.NET Data Services de una manera sencilla.

En este post, veremos cómo esta información se puede llegar a consumir desde el navegador, usando URI con formato REST.

Arrancar el ejemplo que veíamos en el post anterior y desde el navegador prodras probar estas URI que indico a continuación.

( Para ver la información en formato XML en el navegador hay que tener desactivada los RSS Feeds en el navegador. En Tools>Internet Options>Content>Feed ).

Recuperar todo el contenido de la tabla Customers.

Recuperar todo la información del cliente con CustomerId = ‘ALFKI’

Recuperar el Campo City del cliente con CystomerId = ‘ALFKI’

Recuperar los dos primeros clientes

Recuperar los dos primeros clientes ordenador por páis.

 

Con “Web Development Helper” o con cualquier otra aplicación de este estilo se puede ver que la petición/respuesta es una petición HTTP normal. Por defecto, el formato de la información que se devuelve es XML.

image

En el siguiente post, daremos un paso más y veremos cómo podemos hacer que desde una aplicación cliente ( WinForm, WPF, Javascript…..) podemos consumir el servicio de ADO.NET Data Services.

Por : Ibon Landan

09
Jul
08

ADO.NET Data Services – Paso a Paso (I)

Anteriormente ya había comentado algunos de los conceptos que definen a ADO.NET Data Services.

En este post mostraré cómo, de una manera muy sencilla, podemos crear un servicio de ADO.NET Data Services. 

  • New Project>Crear WebApplication

image

  • Quitar Default.aspx que viene por defecto, ya que no es necesario.
  • Creamos el modelo de datos.
    • Add>New Item>ADO.NET Entity Data Model . (podría ser LINQ to Classes)
    • Le llamamos NorthwindModel.edmx.
    • Seleccionar la conexión con Northwind.

image

image

 

  • Creamos el servicio a través del cuál expondremos el modelo.
    • Add>New Item>ADO.NET Data Service.
    • Le llamamos NorthwindService.svc

 

image

image

 

  • Asociamos el modelo al servicio.
    • Abrir NorthwindService.svc.cs
    • Añadir referencia al modelo ( “using NorthwindModel”  );
    • Asociar al modelo con el servicio.
      • WebDataService<NorthwindEntities>

 

  • Configurar las entidades a exponer, a través de SetResourceContainerAccessRule.
    • Se pueden indicar las entidades expuestas.
    • Se pueden indicar las operaciones permitidas sobre las entidades.
    • Se pueden indicar las operaciones expuestas.
    • Se pueden indicar las operaciones permitidas sobre las operaciones.

image

 

  • Y ya tenemos el servicio preparado.
    • Si pulsamos F5 podremos que que sale algo como lo que se ve en la última imagen.
    • http://localhost:3895/NorthwindService.svc/
    • Por defecto, se ven todas las entidades del modelo, porque hemos puesto “*”.
    • Podrías haber puesto…
      • config.SetResourceContainerAccessRule(“Customers”, ResourceContainerRights.AllRead);
    • y sólo haber expuesto la tabla Customers.

image

En el siguiente post veremos cómo podemos, desde el navegador y usando URI estilo REST, manipular la información que expone el servicio…..y otro tercer post, mostraré cómo puede consumirse este servicio desde una aplicación cliente.

por : Ibon Landa

09
Jul
08

ADO.NET Data Services Ideas Claves

En este primer post sobre ADO.NET Data Services intentaré incluir las ideas principales que definen lo que incluye esta nueva tecnología, para posteriormente realizar varios ejemplo paso a paso para enseñar cómo empezar con ella.

  • ¿ Qué es ADO.NET Data Services ?

“ADO.NET Data Service es un framework combinación de patrones y librerías que permiten la creación y consumo de servicios de datos en la web.

El objetivo principal es facilitar la creación de servicios de datos flexibles que normalmente se integran de manera natural en la web.

ADO.NET Data Services se basa en mecanismos y tecnologías a las que se está habituado, como el uso de URLs, XML o JSON.

El resultado de los servicios es una colección de recursos con estilo REST que pueden ser consultados a través de direcciones URLs, pudiendo usar los protocolos habituales de HTTP, como GET,POST o DELETE”.

  • ¿ Está disponible ya una versión final de esta característica ?

No está en release. La versión release estará disponible con el SP1 de Visual Studio 2008.

La última versión de ADO.NET Data Services se incluye con el SP1 Beta de Visual Studio, aunque hay versiones que no requieren el SP, si quieren probarlo sin tener el SP1 Beta instalado.

  • Es independiente del formato.

Es el cliente que consume el servicio quién decide en qué formato quiere manejar la información. Actualmente se soporta XML y JSON. Por defecto, XML.

  • Independiente del almacenamiento.

Soporta diferentes modelos:

  •  
    • EDM. ( SQL, Oracle, DB2, MySql etc….)
    • LINQ to SQL Classes
    • Cualquier clase que herede de IQueryable.

  • Cualquier tipo de aplicación puede consumir un servicio ADO.NET Data Services;

WinForms, WPF, Silverlight, AJAX….

  • Para el manejo de información se usan URI con estilo REST.

Algunos ejemplos de URIs estilo REST.

o Contenido de la tabla Customers. 

http://localhost:3895/NorthwindService.svc/Customers

o Cliente con CustomerId = ‘ALFKI’

http://localhost:3895/NorthwindService.svc/Customers(‘ALFKI’)

o Campo City del cliente con CystomerId = ‘ALFKI’

http://localhost:3895/NorthwindService.svc/Customers(‘ALFKI’)/City

o Los dos primeros clientes 

http://localhost:3895/NorthwindService.svc/Customers?$top=2

o Los dos primeros clientes ordenador por país. 

http://localhost:3895/NorthwindService.svc/Customers?$top=2&$orderby=Country

  • Como mecanismos de autenticación usa los mismos que  el host que contiene el servicio.

Normalmente este host es ASP.NET.

Por : Ibon Landa