<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>El Blog de Fox &#187; Blend</title>
	<atom:link href="http://blog.foxandxss.net/tag/blend/feed" rel="self" type="application/rss+xml" />
	<link>http://blog.foxandxss.net</link>
	<description>Fomentando el desarrollo libre bajo .NET</description>
	<lastBuildDate>Tue, 01 Nov 2011 23:32:17 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Expression Blend 4 Beta y Silverlight 4 RC</title>
		<link>http://blog.foxandxss.net/expression-blend-4-beta-y-silverlight-4-rc</link>
		<comments>http://blog.foxandxss.net/expression-blend-4-beta-y-silverlight-4-rc#comments</comments>
		<pubDate>Tue, 16 Mar 2010 11:57:09 +0000</pubDate>
		<dc:creator>Fox</dc:creator>
				<category><![CDATA[Noticias]]></category>
		<category><![CDATA[Blend]]></category>
		<category><![CDATA[Silverlight]]></category>

		<guid isPermaLink="false">http://blog.foxandxss.net/?p=188</guid>
		<description><![CDATA[Los que usamos Visual Studio 2010 RC estamos de enhorabuena. La release de Visual Studio 2010 RC tenia 2 grandes puntos negros: Silverlight 4 Beta no funcionaba en VS 2010 RC sabes dios por qué, la cosa es que nos dijeron que esperasemos a una nueva release de Silverlight, y claro, ahora que estos días [...]]]></description>
			<content:encoded><![CDATA[<p>Los que usamos Visual Studio 2010 RC estamos de enhorabuena.</p>
<p>La release de Visual Studio 2010 RC tenia 2 grandes puntos negros:</p>
<p>Silverlight 4 Beta no funcionaba en VS 2010 RC sabes dios por qué, la cosa es que nos dijeron que esperasemos a una nueva release de Silverlight, y claro, ahora que estos días es el MIX 2010 pues han aprovechado para anunciar Silverlight 4 RC el cual es compatible con el último VS.</p>
<p>Os dejo aquí el enlace de la descarga:<br />
<a href="http://go.microsoft.com/fwlink/?LinkID=141284"><br />
Herramientas de Silverlight 4 para Visual Studio 2010</a><br />
<a href="http://go.microsoft.com/fwlink/?LinkID=169408"><br />
SDK de Silverlight 4</a></p>
<p><a href="http://silverlight.codeplex.com/">Silverlight toolkit (Opcional)</a></p>
<p>Por otro lado había una Preview de Blend 3 con soporte para WPF 4 y Silverlight 4, pero esta preview dejó de funcionar con Visual Studio 2010 RC así que sólo tocaba esperar para una versión con soporte que según los desalladores, saldría pronto y claro han aprovechado el MIX 2010 también. Así que ahora tenemos Blend 4 Beta disponible para todos <img src='http://blog.foxandxss.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=6f014e07-0053-4aca-84a7-cd82f9aa989f">Blend 4 Beta</a></p>
<p>Y por favor, no seais tan tontos como yo que me volví loco con la key que pide&#8230; Solo has de hacer click en el enlace que os da el instalador cuando os pide la key, ahí podeis crear una.</p>
<p>Por último, han sacado un add-in para Windows Phone 7 para Blend 4 y aunque el telefono no está en la calle, trae un emulador por si quiereis ir probando:</p>
<p><a href="http://www.microsoft.com/expression/try-it/Default.aspx#PageTop">Paquetes necesarios</a></p>
<p>Un saludo.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.foxandxss.net/expression-blend-4-beta-y-silverlight-4-rc/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>TwitFox 1.0</title>
		<link>http://blog.foxandxss.net/twitfox-1-0</link>
		<comments>http://blog.foxandxss.net/twitfox-1-0#comments</comments>
		<pubDate>Sun, 20 Dec 2009 13:52:01 +0000</pubDate>
		<dc:creator>Fox</dc:creator>
				<category><![CDATA[Mis Programas]]></category>
		<category><![CDATA[Blend]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[MVP]]></category>
		<category><![CDATA[WPF]]></category>

		<guid isPermaLink="false">http://blog.foxandxss.net/?p=174</guid>
		<description><![CDATA[Hola! He creado un cliente de Twitter, es un cliente sencillito que he hecho con el proposito de aprender y de divertirme un poco. Os dejo una screen: Mi primera intención era la de crear un artículo explicando paso por paso como crear un cliente Twitter, pero la verdad es que aunque simple el cliente, [...]]]></description>
			<content:encoded><![CDATA[<p>Hola!</p>
<p>He creado un cliente de <b>Twitter</b>, es un cliente sencillito que he hecho con el proposito de aprender y de divertirme un poco.</p>
<p>Os dejo una screen:</p>
<p><a href="http://blog.foxandxss.net/misprogramas/twitfox/principal.PNG"><img alt="ScreenTwitFox" src="http://blog.foxandxss.net/misprogramas/twitfox/principal.PNG" class="alignnone" width="467" height="720" /></a><br />
<span id="more-174"></span></p>
<p>Mi primera intención era la de crear un artículo explicando paso por paso como crear un cliente Twitter, pero la verdad es que aunque simple el cliente, ha terminado con más código del que pensaba.</p>
<p>Aun así os daré algunos detalles para que cuando mirés el código pues sepais más o menos qué hace cada cosa.</p>
<p>No he usado ninguna librería concreta para desarrollar esta primera versión del cliente de Twitter. Simplemente he usado el <b>REST API</b> el cual es bastante limitado.</p>
<p>La clase <i>TwitterClient</i> es la que nos permitirá descargar nuestros Tweets y cambiar nuestro estado. No hace nada más. Cuando cambie la librería, añadiré más opciones a la interfaz de dicha clase sin modificar las opciones que ya hay.</p>
<p>Podeis observar que la clase lo que hace es descargar un XML con los tweets y parsearlos.</p>
<p>Por otro lado, podéis ver que la estructura del proyecto es MVP aunque le he añadido tambien la clase <i>DelegateCommand</i> para usar comandos siempre que sea posible.</p>
<p>Lo más complejo del proyecto es la UI, en la cual he usado <b>Data Templates</b>, <b>Fake DataContext</b> (Dos cosas que habéis aprendido aquí), además de un botón custom con una pequeña animación.</p>
<p>El código de la UI quizá sea un poco guarrete, pero es la primera aplicación que hago usando <b>Blend 3</b> como aplicación de diseño principal.</p>
<p>Nada más, os dejo aquí el enlace a la aplicación:</p>
<p><a href="http://www.foxandxss.net/misprogramas/twitfox/twitfox.php">TwitFox</a></p>
<p>Un saludo!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.foxandxss.net/twitfox-1-0/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[WPF] Datos en tiempo de diseño (Design-time DataContext)</title>
		<link>http://blog.foxandxss.net/datos-en-tiempo-de-diseno-design-datacontext</link>
		<comments>http://blog.foxandxss.net/datos-en-tiempo-de-diseno-design-datacontext#comments</comments>
		<pubDate>Wed, 09 Dec 2009 15:13:22 +0000</pubDate>
		<dc:creator>Fox</dc:creator>
				<category><![CDATA[Articulos]]></category>
		<category><![CDATA[Blend]]></category>
		<category><![CDATA[WPF]]></category>

		<guid isPermaLink="false">http://www.foxandxss.net/?p=125</guid>
		<description><![CDATA[¡Hola! Para seguir este artículo necesitaréis de Microsoft Expression Blend 3 o Visual Studio 2010 Beta 2. Además necesitaréis una copia del proyecto del artículo &#8220;Data Templates&#8220;. Antes de explicaros qué significa exactamente eso de Datos en tiempo de diseño quiero que veais el problema en vuestras carnes y así buscarle una solución idónea. Yo [...]]]></description>
			<content:encoded><![CDATA[<p>¡Hola!</p>
<p>Para seguir este artículo necesitaréis de <b>Microsoft Expression Blend 3</b> o <b>Visual Studio 2010 Beta 2</b>. Además necesitaréis una copia del proyecto del artículo &#8220;<a href="http://www.foxandxss.net/index.php/2009/08/wpf-data-templates/">Data Templates</a>&#8220;.</p>
<p>Antes de explicaros qué significa exactamente eso de <i>Datos en tiempo de diseño</i> quiero que veais el problema en vuestras carnes y así buscarle una solución idónea.</p>
<p>Yo usaré <b>Blend 3</b> así que las imágenes y las instrucciones serán usando este soft, pero se pueden aplicar con Visual Studio 2010 sin ningún problema.</p>
<p>Imaginad esta situación:</p>
<p>Queréis modificar el <i>Data Template</i> que habíamos creado del ejemplo citado. No sé, el borde ese verde que tiene cada item no os gusta y queréis ir probando colores hasta encontrar uno que os guste más. Ningún problema, abres el proyecto con el <b>Blend 3</b> y&#8230;.<br />
<span id="more-125"></span><br />
<a href="http://blog.foxandxss.net/cosasblog/FakeDataContext/1.png"><img alt="Screenshot" src="http://blog.foxandxss.net/cosasblog/FakeDataContext/1.png" title="Imagen 1" class="alignnone" width="485" height="484" /></a></p>
<p>Vaya tela, nos sale una bonita ventana en blanco&#8230; ¿Por qué no sale el contenido? No nos sale porque ni Blend ni Visual studio ni nadie sabe qué ha de representar ahí, o mejor dicho, nosotros estamos <i>&#8216;bindeando&#8217;</i> ese contenido a una propiedad del DataContext, o sea del ViewModel. Blend no sabe nada sobre ese DataContext que hemos establecido en código, así que el no sabe que ha de mostrar ahi ni nada. Si bien sabe como dibujar el Data Template, no sabe qué <i>&#8216;Data&#8217;</i> tiene que reprentar ahi.</p>
<p>Entonces con <b>Blend 3</b> llegó una nueva cosita llamada <i>Datos en tiempo de diseño</i>, o lo que es lo mismo, ofrecerle unos datos <i>&#8216;de mentira&#8217;</i> a <b>Blend 3</b> a fin de que los use para dibujar los Data Template en la ventana.</p>
<p>¿Qué quiero decir con eso de ofrecerle unos datos de mentira? Fácil, el <i>ItemsControl</i> está asociado a una lista llamada <i>ListaPersonas</i>, pero dicha lista &#8216;viene&#8217; del <i>DataContext</i> y como ya os he dicho, el editor visual no puede mostrar nada que venga de ahi, por eso nos aparece la ventana en blanco, porque ignora el DataContext.</p>
<p>Aquí es donde entra el <i>Datos en tiempo de diseño</i> (Design-time Data). es digamos un <i>DataContext</i> especial sólo para diseñar, así podemos mostrar datos &#8216;Fake&#8217; y ver como quedaría sin ejecutar la aplicación ni nada. Por ejemplo:</p>
<p>Imaginad que estais haciendo una aplicación de Twitter. Cuando la aplicación se conecta a la red, descarga tus tweets, y crea una instancia de la clase <i>Tweet</i> por cada tweet que recoja. ¿Cómo diseñarías la ventana principal del programa? ¿Creas un no sé, <i>ItemsControl</i> y creas un DataTemplate para los Tweet? Es una idea, pero es un coñazo, tienes que crear un template, abrir el programa, conectarte a tu Twitter, que descargue tus Tweets y ver que&#8230; oh mierda, ese borde no moooola nada. Cierras la aplicación, modifica el borde y otra vez a probarlo. Si tienes que hacer eso 50 veces para dejar el estilo a tu gusto, mueres.</p>
<p>¿Qué hacer entonces? Creas una clase llamada&#8230; FakeTweets por ejemplo que herede de la clase que usa tu ventana de DataContext, ahí instancias la lista del datacontext, creas unos cuantos tweets de mentira y usas la técnica que explicaré a continuación <img src='http://blog.foxandxss.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Este ejemplo es algo muy común, porque donde dices Twitter, dices aplicación de msn y su ventana de contactos, etc.</p>
<p>Vamos a nuestra aplicación que ya está abierta en Blend, y añadimos lo siguiente dentro del <i>Tag</i> de la ventana&#8230;</p>
<pre class="brush: xml;">
xmlns:d=&quot;http://schemas.microsoft.com/expression/blend/2008&quot;
xmlns:mc=&quot;http://schemas.openxmlformats.org/markup-compatibility/2006&quot;
xmlns:local=&quot;clr-namespace:DataTemplates&quot;
mc:Ignorable=&quot;d&quot;
</pre>
<p>Con lo que quedaría así:</p>
<pre class="brush: xml;">
&lt;Window x:Class=&quot;DataTemplates.Window1&quot;
    xmlns=&quot;http://schemas.microsoft.com/winfx/2006/xaml/presentation&quot;
    xmlns:x=&quot;http://schemas.microsoft.com/winfx/2006/xaml&quot;
	xmlns:d=&quot;http://schemas.microsoft.com/expression/blend/2008&quot;
	xmlns:mc=&quot;http://schemas.openxmlformats.org/markup-compatibility/2006&quot;
    xmlns:local=&quot;clr-namespace:DataTemplates&quot;
	mc:Ignorable=&quot;d&quot;
    Title=&quot;Data Templates&quot; Height=&quot;600&quot; Width=&quot;600&quot;
    Background=&quot;#f8fffb&quot;&gt;
</pre>
<p>Voy a detallar para qué sirve cada uno:</p>
<pre class="brush: xml;">
xmlns:d=&quot;http://schemas.microsoft.com/expression/blend/2008&quot;
xmlns:mc=&quot;http://schemas.openxmlformats.org/markup-compatibility/2006&quot;
xmlns:local=&quot;clr-namespace:DataTemplates&quot;
</pre>
<p>Los 3 son namespace como podeis ver, cada uno con una idea en mente.</p>
<p>El primero es el que añade todo el tema de <i>Datos en tiempo de diseño</i>.<br />
El tercero es para importar el namespace de nuestra aplicación (luego veremos por qué)<br />
El segundo va en conjunto con:</p>
<pre class="brush: xml;">
mc:Ignorable=&quot;d&quot;
</pre>
<p>El namespace &#8216;mc&#8217; que hemos importando antes nos sirve para usar el <i>Ignorable</i>. ¿Para qué sirve esto? Sirve para excluir todo lo que sea del namespace indicado a la hora de compilar. ¿Por qué ignoramos el namespace &#8216;d&#8217;? Porque lo que nos ofrece son cosas que nos facilitan la vida a la hora de diseñar la aplicación, pero que a la hora de ejecutarla ya no nos sirve. Así que la aplicación compilada no contendrá nada de lo que coloquemos de cara a ayudarnos a diseñar.</p>
<p>¿Y ahora qué? Ahora tenemos que cargar en el XAML la clase con los datos &#8216;fake&#8217; (como por ejemplo la clase con tweets de mentira), en nuestro caso nos basta con cargar el <i>Presenter</i> ya que trae datos de ejemplos que nos servirá para el caso.</p>
<p>Para esto podemos usar por ejemplo un <i>ObjectDataProvider</i>:</p>
<pre class="brush: xml;">
&lt;Window.Resources&gt;
	&lt;ObjectDataProvider ObjectType=&quot;{x:Type local:Presenter}&quot; x:Key=&quot;FakeVM&quot; /&gt;
&lt;/Window.Resources&gt;
</pre>
<p>Como ves, he cargado el Presenter (usando el namespace <i>local</i> que cargué antes) y le he dado el nombre de <i>FakeVM</i>.</p>
<p>Ya solo nos quedaría cargar dicho objeto dentro del <i>Data Context</i> en tiempo de diseño, el cual está en el namcespace &#8216;d&#8217;.</p>
<p>En nuestro ejemplo, se lo asignaremos al <i>ItemsControl</i> como era de esperar:</p>
<pre class="brush: xml;">
&lt;ItemsControl ItemsSource=&quot;{Binding ListaPersonas}&quot; d:DataContext=&quot;{StaticResource FakeVM}&quot;&gt;
</pre>
<blockquote><p>NOTA: El método que he descrito aquí, inclusive los namespaces de blend, sirve tanto para <b>Blend 3</b> como para <b>Visual Studio 2010</b> (Beta 2 en adelante)</p></blockquote>
<p>ahora, si vamos al modo diseño&#8230;</p>
<p><a href="http://blog.foxandxss.net/cosasblog/FakeDataContext/2.png"><img alt="Screenshot" src="http://blog.foxandxss.net/cosasblog/FakeDataContext/2.png" title="Imagen 1" class="alignnone" width="485" height="484" /></a></p>
<p>Ya se ve!! Pero dirás&#8230; ¿Y ahora qué? ¿Puedo modificar el template en modo diseño y en ver los resultados en tiempo real? Claro que sí!</p>
<p>En <b>Blend 3</b>, abajo a la izquierda nos aparecerá el arbol de objetos de nuestra aplicación:</p>
<div class="wp-caption alignnone" style="width: 293px"><a href="http://blog.foxandxss.net/cosasblog/FakeDataContext/3.png"><img alt="Screenshot" src="http://blog.foxandxss.net/cosasblog/FakeDataContext/3.png" width="283" height="158" /></a><p class="wp-caption-text">Screenshot</p></div>
<p>Ahi hacemos click derecho en ItemsControl y luego <i>Edit Aditional Templates -> Edit Generated Items (ItemTemplate) -> Edit Current</i>. Al hacer esto vemos como se señala el primer objeto del <i>ItemsControl</i> (ya que realmente editando uno, cambian todos).</p>
<p>Ya solo nos queda hacer los cambios pertinentes, por ejemplo cambiando el borde de cada objeto por uno con gradiente Negro <-> Blanco. Comprobareis con alegría que mientras moveis el cursor en la paleta de colores, el resultado se va viendo en tiempo real, y no necesitaréis ejecutar la aplicación con cada cambio.</p>
<p><a href="http://blog.foxandxss.net/cosasblog/FakeDataContext/4.png"><img alt="Screenshot" src="http://blog.foxandxss.net/cosasblog/FakeDataContext/4.png" title="Imagen 1" class="alignnone" width="485" height="484" /></a></p>
<p>Así que en resumen, teneis una manera de poder diseñar los <i>Data Templates</i> de forma visual usando datos &#8216;fake&#8217; y que no afectará para nada a la aplicación compilada.</p>
<p>Espero vuestros comentarios <img src='http://blog.foxandxss.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://blog.foxandxss.net/datos-en-tiempo-de-diseno-design-datacontext/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

