Con la cantidad de características nuevas (y entretenidas) que trae el SP1 de .NET y Visual Studio 2008 no es de extrañar que alguna de ellas nos pase desapercibidas. Seguro que la mayoría de vosotros sabéis que el SP1 trae mejoras en el rendimiento de WPF, que viene Dynamic Data, Data Services (codename astoria), el entity framework, ASP.NETMVC… pero seguro que a alguno el client profile le pilla por sorpresa 🙂
¿En qué consiste?
El .NET Framework Client Profile es una distribución del framework optimizada para aplicaciones cliente. Es sencillo, no trae las librerías orientadas a hacer trabajo en el servidor. Esta reducción hace que ocupe tan solo unos 26Mb y haga la instalación, despliegue, etcétera… más rápido y sencillo.
¿Cómo hago que mi aplicación compile utilizando ese framework?
Fácil, fácil… vamos a probarlo. Crea una nueva aplicación WPF, cuando esté creada, en el explorador de soluciones, abre las propiedades del proyecto recién creado y vete a la pestaña de aplicación
¿Ves el checkbox de «Client-only framework subset» ? Pues márcalo y listo. Estás utilizando el .NET Framework Client Profile.
¿Implicaciones?
El compilador contrastará los assemblies referenciados con una lista para ver si la aplicación cumple con los requisitos del Client Profile. En caso de encontrar un assembly no presente en el Client Profile nos mostrará un warning. Tanto en el explorador de soluciones…
como en la vista de errores…
Además habrá una modificación en el archivo de configuración de la aplicación, incluirá la sigueinte línea
<startup><supportedRuntime version=»v2.0.50727″ sku=»Client»/></startup>
En el caso de que la máquina cliente NO tenga .net instalado, se le pedirá que instale la parte cliente (más ligera y rápida de instalar para empezar a funcionar. Se actualizará a la full más adelante como actualización de la máquina). En caso de que este instalado .NET framework, ignorará la parte de sku=»client»
Aquí tenéis el enlace a la lista completa de espacios de nombres que están presentes en el Client Profile
http://msdn.microsoft.com/en-us/library/aa187917.aspx
OJO yo puedo referenciar un assembly que NO este disponible en el Client Profile y luego asegurarme que esta en la máquina cliente de uno u otro modo 🙂
Happy Hacking!
Algunos Recursos
Client Profile Q&A : http://windowsclient.net/wpf/wpf35/wpf-35sp1-client-profile.aspx
Crack,
¿Puedes explicar un pelín esa última oración («puedo referenciar un assembly…)?
Abrazo – Octavio
Hola!
No lo he probado, pero tengo una suposición… 🙂
Veo que David en el post comenta que la referencia a un assembly que no pertenece al Client Profile, genera un warning, no un error. Entiendo entonces que el proyecto compila.
Y también entiendo que si desplegamos este proyecto en un ordenador que tenga el assembly referenciado instalado, en proyecto se ejecutará correctamente.
Pero lo dicho… es una suposición 😉
Eduard,
Sí, eso lo he probado, si el ensamblado existe, la aplicación funcionará. Pero si despliegas tu aplicación (con el Client Profile) en un XP que no tuviera .NET previamente, la aplicación fallará, claro!
Mucho tiene que adelgazar hasta que tenga el tamaño del runtime de C… jejejje… pero bueno, poco a poco… 😛
Hola, estoy usando VS2008 con net 3.5 SP1 y no aparecer por ningún sitio la casilla «Client-only framework subset», ni en la pestaña aplicación ni en la de compilar, ni en opciones avanzadas de compilacion
En este blog me encontre algunos tips interesantes sobre dietas, si quieres checalo