Skip to main content

Ultimos Posts:

Silverlight, vista de diseño de XAML en Visual Studio XAML no funciona
Fecha entrada: Mar 2009 Palabras Clave: Silverlight; VS 2008; .net framework 3.5; Visual Studio 2008; XAML;
Resumen post:Este es un error raro... en algunas instalacion de Visual Studio + SL Tools te puedes encontrar con que la vista de XAML no funciona (no tienes modo diseño, incluso pierdes el formato). Si te vas a las propiedades de tu IDE, tienes un error con muy mala pinta en la parte XAML(an error ocurred loading this property page)
Post:

Este es un error raro... en algunas instalacion de Visual Studio + SL Tools te puedes encontrar con que la vista de XAML no funciona (no tienes modo diseño, incluso pierdes el formato). Si te vas a las propiedades de tu IDE, tienes un error con muy mala pinta en la parte XAML(an error ocurred loading this property page)

Una solución para este problema: resetea los settings del IDE, para ello ejecuta: Start >> All Programs Visual Studio 2008 >> Visual Studio Tools >> Visual Studio 2008 Command Prompt, and ejecuta este comando:

    
devenv /resetskippkgs


Silverlight + WCF + SSL + Autenticación pequeña guia de ayuda
Fecha entrada: Nov 2008 Palabras Clave: WCF; Hosting; Security; Silverlight; Web Services; .net framework 3.5;
Resumen post:

Hace unso días tuve que desplegar mi aplicación en un IIS con SSL (HTTPS) y añadirle autenticacion.

He recopilado los problemas y soluciones que encontre, espero que te sean de ayuda.

Post:

Silverlight es un juguete muy chulo, pero... ¿ Que pasa cuando convences a tu jefe para hacer un proyecto real con esta tecnología? De repente te encuentras que la mayoaría de ejemplos que has visto y usado corrento bajo un inocenete HTTP, y lo que es pero no se preocupea de problemas reales de negocio como es la autenticacion o la seguridad, incluso puedes haberte tirado meses codificando usnado tu cassini con HTTP en tu maquina local, y... seguramente ese no se tu escenario real de negocios ¿verdad?

Ok, no entremos en modo panico :-), ¿ Se puede usar SSL + Autenticacion en Silverlight? La respuesta es SI, ¿ Soporta todos los escenario posibles? La respuesta en NO.

Si quieres usar SSL y Auth debes de configurar tus servicios como hacías con tus aplicaciones AJAX, deben tener la sesión habilitada y obtener la informacíon de contexto de allí (por ejemplo usuario logado), ¿ Qué signfica esto? Como en AJAX tendrás que hacer pings cada X tiempo para mantener la sesión viva, o tener algún mecanismo de autenticación via web service para renovar la sesión si esta caduca (hay otras soluciones más complejas, pero soy torpe y nos las entiendo bien :-)).

Ok, esto se para consumir servicios web, pero... ¿ y si queremos realizar llamadas directas a cross domains utilizando WebClient o HttpWebRequest y credentials? Facil respuesta, no es posible pasarle credenciales por HTTP en Silverlight 2 debidio a limitaciones en NPAPI. Al ser un cross domina scenario necesitas meter en un tunel la petición a traves de un servidor que haga de proxy.

Otro problema que te vas a encotnrar es que, en algunos escenarios, te hará falta tener conocimientos de como configurar WCF y IIS, así que ten encontrarás antes la pregunta maldita ¿ Esto falla por culpa de Silverlight, por culpa de IIS, o por culpa de WCF?

En mi caso, despues de googlear un rato, y obtener tambíen ayuda de las comunidades, conseguí echar a andar mi aplicación Silverlight + SSL + Autenticacíon. En este post te paso unos links y resoluciones de problemas que encontré, espero que te sean de ayuda.

Errores

Not found Error:Intentas hacer una llamada al servicio y obtienes un error “Service Not Found”.

  • Están los servicios web habilitados en tu IIS? Por defecto no lo están, echale un ojo a tu IIS management console. Are IIS Web Services enabled? By default not,check it out on your IIS management console:
    WCF 

services enabled
  • tienes WCF instalado correctamente ? Puedes intentar reinstalarlo desde la línea de comandos de MS-DOS (hazte un checkpoint antes), tambíen puedes registrar manualmente la extensión svc, mirate or register manually our svc. extension. Check este link y este otro
  • URL del servicio correct: muestra la URL del servicio que llamas en una caja de texto y asegurate de que estas llamando a la dirección correcta (copiala y pegala en tu navegador y comprueba que funciona).
  • Si no estás seguro si tu WCF está configurado correctamente, puedes probar tambíen a create un servicio web asmx, y ver si las cosas funcionan (si funcionan es tu WCF :-)).

Error de cross domain en llamadas al mismo dominio

  • Puede que tu sitio sea algo así como https://mysite.com y el servicio intente llamar a https://www.mysite.com, este es un caso raro, encontré una solución, pero perdí el link, si tienes este problema dame un toque y vemos si puedo encontrar la solucíon.
  • Otra cosa que es un tostón es ir configurando tus URL's para soportar desarrollo y producción, si no haces llamadsa cross domain, hay un truco para automatizar esto (Host.Source), mira este post
  • Otro problema es si está en HTTP y intentas hacer una llamada a un servicio que esta bajo HTTPS, te hará falta en ese caso poner un fichero de policies en el root de tu IIS (cosa mala si lo que tienes es un hosting compartido).

Las llamadas SSL fallan

  • Configura tu servicio WCF para utilizar SSL (transport...): como hacerlo
  • Te harán falta tambíen tener certificados validos, hay tambíen una forma de generar tu mismo unos de prueba para desarrollo.

Autenticación: tienes que tirar de sesion ASP .net + Autenticacion

  • Aquí puede encontrar un ejemplo de como integrar autenticacion via LiveID en tu aplicacíon Silverlight:
  • Sobre como integrar ASP .net Membership, mira este link para empezar, roles este sobre roles and an y este es un tutorial paso a paso.
  • Sobre como configurar tu servicio web para que tenga la sesión habilitada:
      
        [ServiceContract(Namespace = "")]
        [AspNetCompatibilityRequirements(RequirementsMode = 
    
    AspNetCompatibilityRequirementsMode.Allowed)]
        public class MyService    
        
          
        [OperationContract]
        public EntityAccountsShared GetSharedAccountsForGivenFolder()
        {
        // Accesing HTTP Context session content
        HttpContext.Current(...)
        (...)
        }
        

Otros Errores:

Espero que esto te sea de ayuda.



Silverlight 2.0 Beta 2 no se integra correctamente con ADO .net Entity Framework
Fecha entrada: Aug 2008 Palabras Clave: WCF; ADO .net; Silverlight; VS 2008; Visual Studio 2008; XAML;
Resumen post:

No hace mucho que Microsoft publicó el Service Pack 1 de Visual Studio 2008, uno de las características más esperadas de este service pack es la RTM de ADO .net Entity Framework. ¿ Se integra esta tecnología con Silverlight + WCF? En teoría si, en la práctica...

Post:

No hace mucho que Microsoft publicó el Service Pack 1 de Visual Studio 2008, uno de las características más esperadas de este service pack es la RTM de ADO .net Entity Framework,

En el número de Julio de la revista MSDN Magazine, hay un artículo muy interesante escrito por John Papa: The Entity Framework In Layered Architectures Hay puedes encontrar como montar una arquitectura de ultima generación, utilizando: there you will find how to build up a cutting

  • --> Front End / UI (capa de presentación): WPF (Windows Presentation Foundation).

  • --> Service Layer (capa de servicios): WCF (Windows Communication Foundation).

  • --> DAL / Data Access Layer (capa de acceso a datos): ADO .net Entity Framework.

La mayoría de los frikis que leimos este artículo, pensamos: ¡¡ TOOMAAA !! seguro que esto se puede portar a Silverlight, en vez de preguntarnos... Por qué los ejemplos no se han hecho utilizando Silverlight ?.

El tema es que... tu empiezas a construir tu solucion: generas la capa de presentación, expones servicios de WCF y hacemos que se comuniquen con tu frontend Silverlight Beta 2, pero el problema viene cuando intentas serializar entitdades ADO .net, ¿ Por qué es tan importante esta serializacion?:

  • --> Una de las características más potentes de ADO .net entity framework es que los objetos de entidad se pueden serializar

  • --> Esto quiere decir que los podemos pasar entre capas, incluso via servicios web.

  • --> Guarda un montón de informacíon util acerca de tu entidad.

  • --> Te libera de tener que hacerte mano tus propias clases de entidad.

Te das cuenta de que las cosas no funciona, cuando añades a tu proyecto Silverlight añades la referencia al servicio WCF e intentas compilar, obtienes el siguiente mensaje de error:

'System.Runtime.Serialization.DataContractAttribute' does not contain a definition for 'IsReference'

Qué corresponde al código autogenerado del proxy:

  
[System.Runtime.Serialization.DataContractAttribute(Name="StructuralObject", 
Namespace="http://schemas.datacontract.org/2004/07/System.Data.Objects.DataClasses", 
IsReference=true)]

Si empiezas a buscar por google, encuentras algunas respuesta a los foros que tienen peligro: desinstala todo tu visual studio y todo lo que pilles y vuelve a reinstalar, NO HAGAS ESO, ESPERA A TERMINAR DE LEER ESTE POST

¿ Qué dicen los chicos de MS sobre sto ?

Commentario 1:

The mismatch of the Client library and the Server dll is fixed in later releases of the Silverlight SDK. You will be able to use the EF generated types in your SIlverlight application in the near future . Unfortunately , I can't give you a date of when the next Silverlight SDK is gonna be released , but rest assured , this scenario WILL work when the next Silverligtht SDK ships

Comentario 2:

Hi, as discussed earlier, support for IsReference will be added in RTW.

¿ Hay algun truco para evitar esto?

Si quieres que tu codigo compile puede quitar del código autogenerado IsReference=True, pero entonces te encontrarás con inconsistencias en los objetos serializados :-(..

Parece que tendremos que esperar a la version RTW.

Mi opinión: es normal que una versión Beta de un producto tenga fallos, es normal que el equipo de desarrollo de Ms no pueda estar sacando parches en caliente cada dos por tres, y se tiene que centrar en su iteraciones y sprints, pero deberían de tener una página oficial actualizada cada día que informara de errores conocidos en la versión actual, es decepcionante encontrarte con un error, mirar en un foro, reinstalar tu Visual Studio de cabo a raro, y al rato darte cuenta de que.. "uy... pero si era un bug".

Mas informacion:

Ms ADO .net Entity Framework forum (Patrick Magee MSFT)

Silverlight forum (Yin-Lun Luo MSFT)



<< Post anteriores Page (2) Of 7 Post siguientes >>