17. Hasta acá hemos definido el modelo y los servicios que vamos a utilizar en nuestra aplicación de silverlight, por ejemplo tenemos esta funcionalidad, que nos permite tomar de nuestro modelo “todos” los Contactos.

post15

18. Generamos nuestra Solución y con esto habremos re-generado nuestro model y servicios, posteriormente en la pestaña de soluciones damos click en nuestro proyecto de[1] Silverlight y nos dirigimos a la carpeta [2]Views, luego en la vista[4] Home es el lugar en el que vamos a atrapar toda la funcionalidad de WCF RIA Services. Ahora vamos a entrar a otra dimensión que es el XAML WCF para VS2010 y los controles RIA de WCF RIA Toolkit versión 1.0 Mayo de 2010.

post16

19. Ahora bien, no es mi intención entrar en detalles, por lo tanto como primera medida debemos ubicarnos en el XAML y eliminar el ScrollViewer Contenedor que Visual Studio crea en esta vista, esto para efectos de Layout en nuestra aplicación. Lo que debemos es eliminar los siguientes tags XML. Lo hacemos así:

post17

20. Ahora vamos a agregar un DataGrid enlazado a datos, para esto tenemos que ir a la pestaña DataSource de nuestro Visual Studio, si esta pestaña no está habilitada, basta con teclear shift + alt + D o en la barra principal en el menú data, seleccionamos Show DataSources, si todo esta bien, luego de unos segundos en la pestaña deben apareces unos recursos de datos, nos enfocamos solo en uno, que es Contrat(El cual es una Table o mas conocido como DataGrid). Lo seleccionamos y lo arrastramos a nuestra Vista Home del Folder Views.

Image and video hosting by TinyPic

21.Luego de esto y según nuestra base de datos así debería lucir la Vista Home

post19

Y más o menos así debería lucir nuestro XAML:

post26

22. Ok si llegamos hasta aquí vas a conocer el por qué de mi post, te has ganado el derecho, no mentiras!! Jaja, pero vamos a ver que un problema te puede llevar a la desesperación profunda!!! Más aún cuando no entiendes el por qué de las cosas, pero bueno no tanto romanticismo barato, a correr nuestra aplicación, Ctrl + shift + b y luego F5 para run application :.D…. si utilizaste AdventureWorks muy seguramente ocurrirá lo siguiente :..D…….Ohhhh Diablos!!!! Pero qué es eso, maldición este tipejo me hizo seguir esta pifia para llegar a esto!!!???? No puede ser

post20

Pues si señores, niñas y personas que hasta este punto han llegado, si por algún motivo alguna vez les sucede esto, pues les cuento que están en el lugar indicado para conseguir la solución a todos sus problemas, claro que con mucho esfuerzo adicional, aunque la solución como más adelante nos daremos cuenta va a ser muy trivial, pero no tan fácil de conseguir, o bueno hablando de personas normalitas cómo yo :-P,,,Vuelvo y repito me costo 2 semanas encontrar esta solución lo cual me impulso a crear esto….Bueno si seguiste el tutorial de Chanel9 bueno mejor por ti habrás ahorrado gran tiempo, pero lo que el señor “Ian” el moderador de este WebCast obvio fue esta Issue???? Ummm yo diría que un problema que le puede suceder a cualquiera que este en búsqueda de conocimiento del bueno…Como primeras pautas mis primeras intervenciones fueron en los foros don de se dificulto un poco encontrar la solución, pregunte en Silverlight fórums Para EU y también en MSDN, que sin lugar a dudas son un referente para todo programador de cualquier categoría.

23. Luego de mucho divagar en la RED dí con la fortuna de encontrar un apartado, no la solución a mis problemas pero si una muy importante pista. Entonces, según yo, era algún problema con WCF o System.ServiceModel pero que va!! O siiiiii!!!!, lo que expresamente me estaba indicando el mensaje de error es que no hay información suficiente para saber “diagnosticar” cual es la excepción que está ocurriendo. Por lo tanto existe un name espace el cual es el encargado manejar en más detalle problemas de la pila de ejecución de una aplicación este es System.Diagnostics.

post21

Ok, Debemos agregar las siguiente sección a nuestro WebConfig….para más info: http://msdn.microsoft.com/en-us/library/ms733025.aspx, así muy generalmente lo que necesario es implementar un tracer que nos permita hacerle seguirá miento a la pila de ejecución de nuestro DomainService que soporta WCF. Ahora bien, esta sección va a crear una aplicación para el log de nuestro servicio la cual detallar Warnings, Throw Excepciones y otras, como nuestra aplicación no tenia esta funcionalidad nuevamente ejecutamos teniendo esta sección incluida.
24. Luego de correr nuevamente la aplicación y ver nuevamente el ERROR!!! Ojo yo dije que era una pista no la solución!!!:-) bueno ahora me dirijo, pues a la ruta en la cual en la sección de diagnostics del webconfig configure para que em creara el tracer de WCF, pues bien vamos a revisar y que encontramos!!!!! Algo con 0bytes????? Tan raro, sin embargo intento abrirlo y :-O sorpresa!!!!! Que hemos encontrado, pues sí para mi la joya de la corona!!! :-.)

post22

25. Me imagino que la gente de Microsoft siempre piensa en todo, jejeje aunque no sepan mucho ingles!! Pues imposible algo rojo no los alerte!!!!.

post23

Luego miramos la pestaña XML de nuestra Throwing an Exception!!

post24

Para hacer un poco más sencillo esto el mensaje de la excepción es el siguiente:
There was an error while trying to serialize parameter http://tempuri.org/:GetContactResult.
The InnerException message was ‘Maximum number of items that can be serialized or deserialized in an object graph is ‘65536’. Change the object graph or increase the MaxItemsInObjectGraph quota. ‘. Please see InnerException for more details.

A ver ¡!! Y ya no es tan difícil imaginar que estamos excediendo la capacidad de serialización de nuestro servicio. Entonces como mi entención era mostrar como poder darle una solución pronta a un problema el cual  puede frustrar nuestras intenciones de aprendizaje pues me dirigí a las clases (“Recuerdan las clase Domain Service Class”) que manejan mi servicio….. y pues solicité al motor de LINQ que me traiga menos datos así:

Photobucket

Luego de esto volvemos a correr nuestra aplicación y a ver si el pato queda mal!!!:D
Por fin los datos precioso tesoro!!!

Photobucket

Páginas: 1 2 3