LINQ TO AMAZON IN SILVERLIGHT
Presentación del Producto
Agenda
Conceptos Básicos Principales Requerimientos Alcance comprometido y logrado Arquitectura Evaluación del Producto
Fortalezas y debilidades, limitaciones y carencias Mejoras y extensiones posibles Errores conocidos, corregidos y remanentes, cuantificados por
prioridad Demo
Conceptos Básicos
Amazon Amazon es una compañía de USA dedicada al comercio
electrónico y considerada una de las librerías mas populares del mundo.
LINQ Proyecto Microsoft que agrega consultas nativas similares a
SQL a los lenguajes de .Net Framework. Silverlight
Plugin para navegadores Web similar a Flash y que agrega funcionalidades de Windows Presentation Foundation como la reproducción de videos, gráficos, animaciones y otros elementos.
Principales Requerimientos ( I ) Provider Linq to Amazon
Se espera que se extienda Linq, mediante la creación de un provider que consuma los servicios de un Webservice Amazon.
Búsqueda de items La aplicación debe permitir la búsqueda de items,
principalmente de libros. Aplicación Silverlight
Se debe construir una aplicación innovadora, amigable y visualmente atractiva.
Estándares Microsoft Se espera que el código cumpla con ciertos estándares a la
hora del diseño y la codificación.
Principales Requerimientos ( II ) Manual de usuario
Se debe crear un manual de usuario al estilo “Paso a paso” de cómo crear un Provider Linq.
Calidad y prolijidad del código Dado que el código se usara como ejemplo este debe estar
prolijo y con suficientes comentarios.
Tecnología variable El proyecto se debe ir actualizando a los cambios en la
tecnología usada.
Alcance comprometido y logrado Consultas que debe manejar el Provider:
Select (sobre atributos y objetos) Where First FirstOrDefault Last LastOrDefault Count OrderBy (por título y precio) OrderByDescending (por título y precio)
Take Skip ElementAt ElementAtOrDefault Any
Además debe soportar: operaciones combinadas consultas anidadas
FuncionalidadesLa categoría para las búsquedas será solamente la de libros y DVDs
El Alcance fue totalmente implementado
Arquitectura ( I )1. Capa de Presentación 2. Capa de Negocio 3. Capa de Datos
Servidor de DatosClientes
Servidor de Negociación
Es una arquitectura de tres capas (presentación, lógica, datos) y dos niveles (presentación+lógica, datos) El objetivo primordial es la separación de la lógica de negocios de la lógica de diseño
LinqToAmazonInSilverlight
LinqToSilverlight
LinqToAmazonSL SoapProxyComponent
GUI
IQueryProvider
Arquitectura ( II )
El subsistema LinqToAmazonSL, es la implementación de un query provider de Linq compilado bajo el framework de Silverlight. El objetivo de este provider es proveer al usuario de una forma sencilla de consultar ítems de Amazon.
El subsistema LinqToSilverlight contiene la aplicación Silverlight, que hace de interfaz gráfica a los servicios de Amazon accedidos mediante el Provider LINQ.
El subsistema SoapProxyComponent surgió por la dificultad de comunicación entre la aplicación y el webservice. El funcionamiento general es simple, la request a Amazon no es llevada a cabo directamente por el provider, sino que pasa a través del proxy.
Arquitectura ( III )
Arquitectura ( IV )
Evaluación del productoFORTALEZAS, DEBILIDADES, LIMITACIONES Y CARENCIAS
Fortalezas: La interfaz de usuario desarrollada es un punto importante a
destacar del producto, ya que según el cliente, lo obtenido excedió las expectativas.
Búsqueda de DVD como de Libros, es un extra a los requerimientos básicos.
El Provider posee un diseño modularizado, lo que permite su fácil expansión.
Se desarrollo una aplicación con los test automatizados que facilitaron las pruebas funcionales.
Evaluación del productoFORTALEZAS, DEBILIDADES, LIMITACIONES Y CARENCIAS
Debilidades: Susceptible a la disponibilidad de los servicios de Amazon.
Limitaciones y carencias: Búsqueda de sólo dos items. La performance depende fuertemente del ancho de banda del
consumidor.
Evaluación del productoMEJORAS Y EXTESIONES POSIBLES
Agregado de otros items de búsqueda. Agregado de funcionalidades al Provider que ofrece
Amazon y aún no son soportadas actualmente por nuestro desarrollo.
Se puede adaptar la interfaz desarrollada a otra fuente de datos sin muchas dificultades. De la misma manera, se puede desarrollar una nueva interfaz en Silverlight que consuma el Provider.
Evaluación del productoERRORES CONOCIDOS, CORREGIDOS Y REMANENTES
Todos los bugs encontrados fueron corregidos durante el desarrollo.
Algunos cambios sugeridos por la herramienta “FxCop” no se realizaron y fueron aceptados por el cliente por considerar que no se podían solucionar.
DEMO