<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>Windows Presentation Foundation</title><link>http://blogs.clearscreen.com/nandy/category/271.aspx</link><description>Windows Presentation Foundation</description><managingEditor>Fernando Cortés Hierro</managingEditor><dc:language>es-ES</dc:language><generator>.Text Version 0.95.2004.102</generator><item><dc:creator>Fernando Cortés Hierro</dc:creator><title>Composite Application for WPF</title><link>http://blogs.clearscreen.com/nandy/archive/2008/10/15/13944.aspx</link><pubDate>Wed, 15 Oct 2008 06:04:00 GMT</pubDate><guid>http://blogs.clearscreen.com/nandy/archive/2008/10/15/13944.aspx</guid><wfw:comment>http://blogs.clearscreen.com/nandy/comments/13944.aspx</wfw:comment><comments>http://blogs.clearscreen.com/nandy/archive/2008/10/15/13944.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blogs.clearscreen.com/nandy/comments/commentRss/13944.aspx</wfw:commentRss><trackback:ping>http://blogs.clearscreen.com/nandy/services/trackbacks/13944.aspx</trackback:ping><description>&lt;p&gt;Windows Presentation Foundation esta siendo tomado más en serio para la creación de aplicaciones cliente ricas a nivel empresarial, diferenciadoras y pensadas en el usuario final (aqui me diran que siempre se piensa en el usuario final y yo digo que tararí!!). Bueno a lo que vamos, nos piden que desarrollemos una aplicación con WPF que mejore la interfaz de usuario, experiencia del usuario, y en ocasiones su productividad (provocando acciones naturales que redundan en facilidad y rapidez de uso), y lógicamente que mantenga la funcionalidad de la aplicación predecesora.&lt;/p&gt; &lt;p&gt;Estamos en un escenario real, el cual ya no es una aplicación piloto sencillita realizada por dos o tres personas, sino una en la que necesitamos la participación de un equipo de desarrollo o varios, trabajando conjuntamente y bien orquestados. Aqui es donde entran los chicos del equipo de patterns &amp;amp; practices que han desarrollado una serie de recursos que facilitan precisamente esto que hemos planteado, el desarrollo de aplicaciones WPF modulares donde intervienen varios equipos ayudando a los arquitectos de software a plantear una arquitectura modular, escalable y donde la nueva funcionalidad sea sencilla de añadir.&lt;/p&gt; &lt;p&gt;Entre los activos que tenemos disponibles destacan:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;Una guía explicativa donde se centran en diferentes aspectos de arquitectura  &lt;/li&gt;&lt;li&gt;Hands-on-Lab  &lt;/li&gt;&lt;li&gt;Ejemplo de aplicación WPF utilizando estas prácticas  &lt;/li&gt;&lt;li&gt;Framework arquitectural&lt;/li&gt;&lt;/ul&gt; &lt;p&gt; &lt;/p&gt; &lt;p&gt;La dirección de principal de codeplex es la siguiente: &lt;a title="http://www.codeplex.com/CompositeWPF" href="http://www.codeplex.com/CompositeWPF"&gt;http://www.codeplex.com/CompositeWPF&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/cc707819.aspx" target="_blank"&gt;Mas información&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;img src="http://i.msdn.microsoft.com/Cc707819.practices(en-us,MSDN.10).png" /&gt;&lt;/p&gt;&lt;img src ="http://blogs.clearscreen.com/nandy/aggbug/13944.aspx" width = "1" height = "1" /&gt;</description><body xmlns="http://www.w3.org/1999/xhtml"><p>Windows Presentation Foundation esta siendo tomado más en serio para la creación de aplicaciones cliente ricas a nivel empresarial, diferenciadoras y pensadas en el usuario final (aqui me diran que siempre se piensa en el usuario final y yo digo que tararí!!). Bueno a lo que vamos, nos piden que desarrollemos una aplicación con WPF que mejore la interfaz de usuario, experiencia del usuario, y en ocasiones su productividad (provocando acciones naturales que redundan en facilidad y rapidez de uso), y lógicamente que mantenga la funcionalidad de la aplicación predecesora.</p> <p>Estamos en un escenario real, el cual ya no es una aplicación piloto sencillita realizada por dos o tres personas, sino una en la que necesitamos la participación de un equipo de desarrollo o varios, trabajando conjuntamente y bien orquestados. Aqui es donde entran los chicos del equipo de patterns &amp; practices que han desarrollado una serie de recursos que facilitan precisamente esto que hemos planteado, el desarrollo de aplicaciones WPF modulares donde intervienen varios equipos ayudando a los arquitectos de software a plantear una arquitectura modular, escalable y donde la nueva funcionalidad sea sencilla de añadir.</p> <p>Entre los activos que tenemos disponibles destacan:</p> <ul> <li>Una guía explicativa donde se centran en diferentes aspectos de arquitectura  </li><li>Hands-on-Lab  </li><li>Ejemplo de aplicación WPF utilizando estas prácticas  </li><li>Framework arquitectural</li></ul> <p> </p> <p>La dirección de principal de codeplex es la siguiente: <a title="http://www.codeplex.com/CompositeWPF" href="http://www.codeplex.com/CompositeWPF">http://www.codeplex.com/CompositeWPF</a></p> <p><a href="http://msdn.microsoft.com/en-us/library/cc707819.aspx" target="_blank">Mas información</a></p> <p><img src="http://i.msdn.microsoft.com/Cc707819.practices(en-us,MSDN.10).png" /></p><img src ="http://blogs.clearscreen.com/nandy/aggbug/13944.aspx" width = "1" height = "1" /></body></item><item><dc:creator>Fernando Cortés Hierro</dc:creator><title>User Experience Driven Design</title><link>http://blogs.clearscreen.com/nandy/archive/2008/10/10/13905.aspx</link><pubDate>Fri, 10 Oct 2008 06:54:00 GMT</pubDate><guid>http://blogs.clearscreen.com/nandy/archive/2008/10/10/13905.aspx</guid><wfw:comment>http://blogs.clearscreen.com/nandy/comments/13905.aspx</wfw:comment><comments>http://blogs.clearscreen.com/nandy/archive/2008/10/10/13905.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blogs.clearscreen.com/nandy/comments/commentRss/13905.aspx</wfw:commentRss><trackback:ping>http://blogs.clearscreen.com/nandy/services/trackbacks/13905.aspx</trackback:ping><description>&lt;p&gt;El pasado julio, &lt;a href="http://www.cynergysystems.com/blogs/page/carsonhager?entry=lunch_with_steve_ballmer" target="_blank"&gt;Carson Hager&lt;/a&gt;, el presidente y fundador de &lt;a href="http://www.cynergysystems.com" target="_blank"&gt;Cynergy&lt;/a&gt; empresa dedicada al desarrollo RIA con Adoble Flex/Air y Microsoft Silverlight/WPF, nos cuenta pequeños detalles de una comida organizada en la Microsoft Worldwide Partner Conference donde participó el propio Steve Ballmer.  &lt;/p&gt;&lt;p&gt;De sus palabras escritas se extraen dos interesantes puntos:  &lt;/p&gt;&lt;ul&gt; &lt;li&gt;Que Microsoft está trabajando muy duro para ponerse a la par (y superar si puede) el trabajo realizado en el mundo Adobe y reproducirlo en el mundo Microsoft.&lt;/li&gt; &lt;li&gt;Las altas instancias de Microsoft creen y por tanto apostarán, por que el diseño de software dirigido hacia la mejora de la experiencia del usuario será el futuro del desarrollo de software. &lt;/li&gt;&lt;/ul&gt; &lt;p&gt;Yo también opino que el año próximo será muy interesante en el mundo UX. &lt;/p&gt;&lt;p&gt;PD: Que pena que Cynergy no este en España :) &lt;/p&gt;&lt;img src ="http://blogs.clearscreen.com/nandy/aggbug/13905.aspx" width = "1" height = "1" /&gt;</description><body xmlns="http://www.w3.org/1999/xhtml"><p>El pasado julio, <a href="http://www.cynergysystems.com/blogs/page/carsonhager?entry=lunch_with_steve_ballmer" target="_blank">Carson Hager</a>, el presidente y fundador de <a href="http://www.cynergysystems.com" target="_blank">Cynergy</a> empresa dedicada al desarrollo RIA con Adoble Flex/Air y Microsoft Silverlight/WPF, nos cuenta pequeños detalles de una comida organizada en la Microsoft Worldwide Partner Conference donde participó el propio Steve Ballmer.  </p><p>De sus palabras escritas se extraen dos interesantes puntos:  </p><ul> <li>Que Microsoft está trabajando muy duro para ponerse a la par (y superar si puede) el trabajo realizado en el mundo Adobe y reproducirlo en el mundo Microsoft.</li> <li>Las altas instancias de Microsoft creen y por tanto apostarán, por que el diseño de software dirigido hacia la mejora de la experiencia del usuario será el futuro del desarrollo de software. </li></ul> <p>Yo también opino que el año próximo será muy interesante en el mundo UX. </p><p>PD: Que pena que Cynergy no este en España :) </p><img src ="http://blogs.clearscreen.com/nandy/aggbug/13905.aspx" width = "1" height = "1" /></body></item><item><dc:creator>Fernando Cortés Hierro</dc:creator><title>Movimiento Circular: Senos y Cosenos</title><link>http://blogs.clearscreen.com/nandy/archive/2008/06/15/12012.aspx</link><pubDate>Sun, 15 Jun 2008 01:18:00 GMT</pubDate><guid>http://blogs.clearscreen.com/nandy/archive/2008/06/15/12012.aspx</guid><wfw:comment>http://blogs.clearscreen.com/nandy/comments/12012.aspx</wfw:comment><comments>http://blogs.clearscreen.com/nandy/archive/2008/06/15/12012.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blogs.clearscreen.com/nandy/comments/commentRss/12012.aspx</wfw:commentRss><trackback:ping>http://blogs.clearscreen.com/nandy/services/trackbacks/12012.aspx</trackback:ping><description>&lt;p&gt;¿Como nos pueden ayudar los Senos y Cosenos en nuestras aplicaciones Silverlight o Windows Presentation Foundation?&lt;/p&gt;
&lt;p&gt;&lt;img style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height="315" alt="675px-Sin_Cos_Tan_Cot_unit_circle_svg" src="http://www.fernandocortes.net/image.axd?picture=WindowsLiveWriter/MovimientoCircularSenosyCosenos_E9CD/senoscosenos_2.png" width="354" border="0" /&gt;nbsp;&lt;/p&gt;
&lt;p&gt;Imaginemos que tenemos una elipse y queremos que realice un movimiento circular. Utilizando las funciones trigonométricas Seno y Coseno de un ángulo dado podemos obtener el punto X e Y de la circunferencia imaginaria por donde queremos mover nuestra elipse.&lt;/p&gt;
&lt;p&gt;Un ejemplo sencillo y que tal vez no tenga mucho sentido, pero que se puede ver el concepto del que estamos hablando:&lt;/p&gt;&lt;pre class="code"&gt;&lt;span style="COLOR: blue"&gt;    public partial class &lt;/span&gt;&lt;span style="COLOR: #2b91af"&gt;Window1 &lt;/span&gt;: &lt;span style="COLOR: #2b91af"&gt;Window
    &lt;/span&gt;{
        &lt;span style="COLOR: #2b91af"&gt;DispatcherTimer &lt;/span&gt;_timer;
        &lt;span style="COLOR: blue"&gt;double &lt;/span&gt;_angle = 0;
        &lt;span style="COLOR: blue"&gt;public &lt;/span&gt;Window1()
        {
            InitializeComponent();
            &lt;span style="COLOR: blue"&gt;this&lt;/span&gt;._timer = &lt;span style="COLOR: blue"&gt;new &lt;/span&gt;&lt;span style="COLOR: #2b91af"&gt;DispatcherTimer&lt;/span&gt;();
            &lt;span style="COLOR: blue"&gt;this&lt;/span&gt;._timer.Interval = &lt;span style="COLOR: blue"&gt;new &lt;/span&gt;&lt;span style="COLOR: #2b91af"&gt;TimeSpan&lt;/span&gt;(10000000);
            &lt;span style="COLOR: blue"&gt;this&lt;/span&gt;._timer.Tick += &lt;span style="COLOR: blue"&gt;new &lt;/span&gt;&lt;span style="COLOR: #2b91af"&gt;EventHandler&lt;/span&gt;(&lt;span style="COLOR: blue"&gt;this&lt;/span&gt;.timer_Completed);
            &lt;span style="COLOR: blue"&gt;this&lt;/span&gt;._timer.Start();
        }
        &lt;span style="COLOR: blue"&gt;private void &lt;/span&gt;timer_Completed(&lt;span style="COLOR: blue"&gt;object &lt;/span&gt;sender, &lt;span style="COLOR: #2b91af"&gt;EventArgs &lt;/span&gt;e)
        {
            &lt;span style="COLOR: blue"&gt;double &lt;/span&gt;newX = &lt;span style="COLOR: #2b91af"&gt;Math&lt;/span&gt;.Sin(_angle) * 10;
            &lt;span style="COLOR: blue"&gt;double &lt;/span&gt;newY = &lt;span style="COLOR: #2b91af"&gt;Math&lt;/span&gt;.Cos(_angle) * 10;
            &lt;span style="COLOR: #2b91af"&gt;Canvas&lt;/span&gt;.SetTop(elli, newY) ;
            &lt;span style="COLOR: #2b91af"&gt;Canvas&lt;/span&gt;.SetLeft(elli, newX);
            _angle++;
            &lt;span style="COLOR: blue"&gt;if &lt;/span&gt;(_angle &amp;gt; 360)
                _angle = 0;
        }
    }&lt;/pre&gt;&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;&lt;img src ="http://blogs.clearscreen.com/nandy/aggbug/12012.aspx" width = "1" height = "1" /&gt;</description><body xmlns="http://www.w3.org/1999/xhtml"><p>¿Como nos pueden ayudar los Senos y Cosenos en nuestras aplicaciones Silverlight o Windows Presentation Foundation?</p>
<p><img style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height="315" alt="675px-Sin_Cos_Tan_Cot_unit_circle_svg" src="http://www.fernandocortes.net/image.axd?picture=WindowsLiveWriter/MovimientoCircularSenosyCosenos_E9CD/senoscosenos_2.png" width="354" border="0" />nbsp;</p>
<p>Imaginemos que tenemos una elipse y queremos que realice un movimiento circular. Utilizando las funciones trigonométricas Seno y Coseno de un ángulo dado podemos obtener el punto X e Y de la circunferencia imaginaria por donde queremos mover nuestra elipse.</p>
<p>Un ejemplo sencillo y que tal vez no tenga mucho sentido, pero que se puede ver el concepto del que estamos hablando:</p><pre class="code"><span style="COLOR: blue">    public partial class </span><span style="COLOR: #2b91af">Window1 </span>: <span style="COLOR: #2b91af">Window
    </span>{
        <span style="COLOR: #2b91af">DispatcherTimer </span>_timer;
        <span style="COLOR: blue">double </span>_angle = 0;
        <span style="COLOR: blue">public </span>Window1()
        {
            InitializeComponent();
            <span style="COLOR: blue">this</span>._timer = <span style="COLOR: blue">new </span><span style="COLOR: #2b91af">DispatcherTimer</span>();
            <span style="COLOR: blue">this</span>._timer.Interval = <span style="COLOR: blue">new </span><span style="COLOR: #2b91af">TimeSpan</span>(10000000);
            <span style="COLOR: blue">this</span>._timer.Tick += <span style="COLOR: blue">new </span><span style="COLOR: #2b91af">EventHandler</span>(<span style="COLOR: blue">this</span>.timer_Completed);
            <span style="COLOR: blue">this</span>._timer.Start();
        }
        <span style="COLOR: blue">private void </span>timer_Completed(<span style="COLOR: blue">object </span>sender, <span style="COLOR: #2b91af">EventArgs </span>e)
        {
            <span style="COLOR: blue">double </span>newX = <span style="COLOR: #2b91af">Math</span>.Sin(_angle) * 10;
            <span style="COLOR: blue">double </span>newY = <span style="COLOR: #2b91af">Math</span>.Cos(_angle) * 10;
            <span style="COLOR: #2b91af">Canvas</span>.SetTop(elli, newY) ;
            <span style="COLOR: #2b91af">Canvas</span>.SetLeft(elli, newX);
            _angle++;
            <span style="COLOR: blue">if </span>(_angle &gt; 360)
                _angle = 0;
        }
    }</pre><a href="http://11011.net/software/vspaste"></a><img src ="http://blogs.clearscreen.com/nandy/aggbug/12012.aspx" width = "1" height = "1" /></body></item></channel></rss>