Gerardo Contijoch

Experiencias del día a día trabajando con .NET – ASP.NET, C#, ASP.NET MVC y demas…

Hacer referencia a una librería de clases desde una aplicación Silverlight

Posted by Gerardo Contijoch en febrero 10, 2009

Hoy me vi en la necesidad de utilizar una librería de clases que había creado hace un tiempo, desde una aplicación hecha en Silverlight 2.0 y descubrí que no podía hacerlo. Luego de investigar un poco me entere de que Silverlight usa una versión especial del .NET Framework, lo cual explica porque no se puede referenciar a un assembly compilado con el framework estándar.

La única solución para resolver este problema es crear una nueva librería de clases Silverlight (un nuevo tipo de proyecto que se agrega al instalar Silverlight) y hacer referencia a ella. Algunas personas sugieren, para no repetir código que ya hemos escrito, agregar links los archivos de código (*) en vez de copiar todos los archivos de nuestra librería, pero no lo sugiero debido a que como los frameworks son diferentes, el código escrito en uno puede no compilar en el otro.

En la siguiente imagen se pueden ver algunos assemblies con versión 2.0.5.0 (pertenecientes a Silverlight):

referenciassilverlight-object-browser

Estos son una versión especial de los assemblies del framework 2.0 (de ahí su numeración) y se encuentran en ‘C:\Program Files\Microsoft SDKs\Silverlight\v2.0\Reference Assemblies\’. Es importante tener en cuenta la versión y ubicación de estos assemblies ya que proyectos como los de Test no hacen referencia a estos y vamos a tener que agregarlas a mano, procurando referenciar las dlls versionadas como 2.0.5.0 y no las otras.

¿En que se diferencian los frameworks? No creo que sean tantas las diferencias entre ambos, pero me parece que son las suficientes para que no nos compile la mayoría de los proyectos con los que trabajemos, en especial si procesan xmls. Entre los assemblies modificados se encuentran System, System.Xml, System.Xml.Linq, y mscorlib. Los cambios que encontré yo en mi proyecto eran de fácil solución en su mayoría debido a que se trataban de sobrecargas de métodos que no existían en el framework de Silverlight.

¡Nos vemos en el próximo post!

(*) Para agregar un link a un archivo y no una copia del mismo en el Open file dialog que aparece cuando queremos agregar un item existente hay que seleccionar la opción Add As Link desde el menú que se despliega desde el botón Add. De este modo, estaremos referenciando al archivo original y no se creará una copia del mismo en la carpeta de nuestro proyecto.

referenciassilverlight-addasalinkPublicado originalmente en https://gerardocontijoch.wordpress.com.

Una respuesta to “Hacer referencia a una librería de clases desde una aplicación Silverlight”

  1. […] posee los métodos DownloadString y DownloadStringAsync), pero en Silverlight (que tiene una versión especial del Framework), solo se permite hacerlos de la última manera. Esto generó algunas quejas en la comunidad de […]

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

 
A %d blogueros les gusta esto: