<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://weblogs.asp.net/utility/FeedStylesheets/atom.xsl" media="screen"?><feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en"><title type="html">paulo.arancibia</title><subtitle type="html">the unofficial user experience evangelist</subtitle><id>http://weblogs.asp.net/pauloarancibia/atom.aspx</id><link rel="alternate" type="text/html" href="http://weblogs.asp.net/pauloarancibia/default.aspx" /><link rel="self" type="application/atom+xml" href="http://weblogs.asp.net/pauloarancibia/atom.aspx" /><generator uri="http://communityserver.org" version="3.0.20510.895">Community Server</generator><updated>2008-04-07T11:18:00Z</updated><entry><title>Design Maturity Model</title><link rel="alternate" type="text/html" href="http://weblogs.asp.net/pauloarancibia/archive/2008/07/22/design-maturity-model.aspx" /><id>http://weblogs.asp.net/pauloarancibia/archive/2008/07/22/design-maturity-model.aspx</id><published>2008-07-22T16:45:00Z</published><updated>2008-07-22T16:45:00Z</updated><content type="html">&lt;p&gt;La noción de aplicar diseño a los desarrollos de software cada día es más importante,&amp;nbsp; pero como todo, requiere un proceso de adaptación, capacitación y descubrimiento.&lt;/p&gt;&lt;p&gt;&lt;br&gt;El &lt;a href="http://www.google.com/url?sa=t&amp;amp;ct=res&amp;amp;cd=1&amp;amp;url=http%3A%2F%2Fwww.bplusd.org%2Fuploads%2Fdesignmaturitymodel.pdf&amp;amp;ei=3A2GSJjuG5zOePKooeoF&amp;amp;usg=AFQjCNF8TKQhGeitTWC4HKN-rn65N5qHFA&amp;amp;sig2=BWSuvF_DMZJphNLwvs_jFA" target="_blank" mce_href="http://www.google.com/url?sa=t&amp;amp;ct=res&amp;amp;cd=1&amp;amp;url=http%3A%2F%2Fwww.bplusd.org%2Fuploads%2Fdesignmaturitymodel.pdf&amp;amp;ei=3A2GSJjuG5zOePKooeoF&amp;amp;usg=AFQjCNF8TKQhGeitTWC4HKN-rn65N5qHFA&amp;amp;sig2=BWSuvF_DMZJphNLwvs_jFA"&gt;Design Maturity Model&lt;/a&gt; propuesto por &lt;a href="http://www.bplusd.org/about-jess-mcmullin/" target="_blank" mce_href="http://www.bplusd.org/about-jess-mcmullin/"&gt;Jess McMullin&lt;/a&gt; describe cinco niveles y sus respectivos comportamientos ante el diseño para poder guiarnos en el camino de una correcta incorporación del mismo en nuestros procesos de desarrollo y detectar en que estadio de madurez nos encontramos.&lt;br&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-weight: bold;"&gt;Nivel 1 – No somos conscientes del diseño&lt;/span&gt;&lt;br&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;El diseño no se reconoce como algo de valor&lt;/li&gt;&lt;li&gt;Se&amp;nbsp; “diseña” sin ningún fundamento &lt;/li&gt;&lt;li&gt;El diseño se deja de lado por cosas más “importantes”&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style="font-weight: bold;"&gt;Nivel 2 – Style&lt;/span&gt;&lt;br&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;El diseño es añadido solamente para ser “cool” o para seguir alguna tendencia&lt;/li&gt;&lt;li&gt;El diseño es algo que se agrega a último minuto para añadir funciones meramente estéticas&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style="font-weight: bold;"&gt;Nivel 3 -&amp;nbsp; Forma y Función&lt;/span&gt;&lt;br&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Se implementa el diseño para mejorar ciertas funcionalidades&lt;/li&gt;&lt;li&gt;Se utiliza de forma limitada para agregar pequeños incrementos de funcionalidad en aplicaciones en desarrollo o existentes.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style="font-weight: bold;"&gt;Nivel 4 – Diseño como una forma de resolver problemas&lt;/span&gt;&lt;br&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;El diseño nos permite encontrar nuevas oportunidades para resolver problemas existentes&lt;/li&gt;&lt;li&gt;El diseño nos permite acotar las opciones para atacar un problema específico&lt;br&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;span style="font-weight: bold;"&gt;Nivel 5 – Totalmente orientados al diseño&lt;/span&gt;&lt;br&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;El diseño redefine los desafíos que enfrenta la organización&lt;/li&gt;&lt;li&gt;El diseño establece el orden del día&lt;/li&gt;&lt;li&gt;El diseño forma parte de toda estrategia&lt;/li&gt;&lt;li&gt;La innovación está inmersa en la cultura&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;br&gt;Esta es mi interpretación del DMM,&amp;nbsp; espero les sirva para saber en cual nivel están parados en la actualidad y si no están aplicando el diseño los ayude a tomar conciencia.&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6431768" width="1" height="1"&gt;</content><author><name>parancibia</name><uri>http://weblogs.asp.net/members/parancibia.aspx</uri></author><category term="ASP.NET" scheme="http://weblogs.asp.net/pauloarancibia/archive/tags/ASP.NET/default.aspx" /><category term="UX" scheme="http://weblogs.asp.net/pauloarancibia/archive/tags/UX/default.aspx" /></entry><entry><title>Integrando YUI con ASP.NET MVC</title><link rel="alternate" type="text/html" href="http://weblogs.asp.net/pauloarancibia/archive/2008/07/14/integrando-yui-con-asp-net-mvc.aspx" /><id>http://weblogs.asp.net/pauloarancibia/archive/2008/07/14/integrando-yui-con-asp-net-mvc.aspx</id><published>2008-07-14T04:49:00Z</published><updated>2008-07-14T04:49:00Z</updated><content type="html">
&lt;p&gt;Si han estado trabajando o al menos le han dado una mirada al ASP.NET MVC framework, sabrán que a diferencia del ASP.NET tradicional, no se encuentran disponibles al menos de momento controles como por ejemplo el GridView, este vacío lo podemos llenar con una gran cantidad de controles de terceros que fueron creados para trabajar sobre alguna de las diversas librerías JavaScript que hay en este momento dando vueltas, una de las mejores y más completas librerías a mi entender es&lt;a href="http://developer.yahoo.com/yui/" target="_blank" mce_href="http://developer.yahoo.com/yui/"&gt; YUI  (The Yahoo! User Interface Library) &lt;/a&gt;, la misma viene repleta de controles y una excelente documentación,   que hacen que su implementación sea algo relativamente sencillo.&lt;/p&gt;

&lt;p&gt;Para mostrar lo fácil que es integrar YUI a nuestras soluciones ASP.NET MVC,  vamos a crear una aplicación de ejemplo en el que utilizaremos los controles DataSource y DataTable de YUI para consumir un feed Json creado con el nuevo JsonResult.&lt;/p&gt;

&lt;p&gt;Para comenzar empezaremos con el código del Controller.&lt;/p&gt;
&lt;p style="font-family: Tahoma;"&gt;&lt;font size="2"&gt;&lt;span style="font-size: 10pt; color: blue;"&gt;public&lt;/span&gt;&lt;span style="font-size: 10pt;"&gt; &lt;span style="color: rgb(43, 145, 175);"&gt;JsonResult&lt;/span&gt; GetPlayersList()&lt;/span&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p style="font-family: Tahoma;"&gt;&lt;font size="2"&gt;&lt;span style="font-size: 10pt;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/span&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p style="font-family: Tahoma;"&gt;&lt;font size="2"&gt;&lt;span style="font-size: 10pt;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: rgb(43, 145, 175);"&gt;OranjeDataContext&lt;/span&gt;
ctx = &lt;span style="color: blue;"&gt;new&lt;/span&gt; &lt;span style="color: rgb(43, 145, 175);"&gt;OranjeDataContext&lt;/span&gt;();&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p style="font-family: Tahoma;"&gt;&lt;font size="2"&gt;&lt;span style="font-size: 10pt;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;var&lt;/span&gt; data =
(&lt;span style="color: blue;"&gt;from&lt;/span&gt; player &lt;span style="color: blue;"&gt;in&lt;/span&gt;
ctx.Players&lt;/span&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p style="font-family: Tahoma;"&gt;&lt;font size="2"&gt;&lt;span style="font-size: 10pt;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;select&lt;/span&gt;
player).ToList&amp;lt;&lt;span style="color: rgb(43, 145, 175);"&gt;Player&lt;/span&gt;&amp;gt;();&lt;/span&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p style="font-family: Tahoma;"&gt;&lt;font size="2"&gt;&lt;span style="font-size: 10pt;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;return&lt;/span&gt; &lt;span style="color: blue;"&gt;this&lt;/span&gt;.Json(&lt;span style="color: blue;"&gt;new&lt;/span&gt; {
players = data.ToArray() }, &lt;span style="color: rgb(163, 21, 21);"&gt;"text/html"&lt;/span&gt;);&lt;/span&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;&lt;font size="2"&gt;&lt;span style="font-size: 10pt; line-height: 115%;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; line-height: 115%;" lang="ES"&gt;}&lt;/span&gt;&lt;/font&gt; &lt;br&gt;&lt;/p&gt;


&lt;p&gt;En el podrán observar que estoy utilizando el nuevo JsonResult que es un nuevo tipo de ActionResult que nos permite serializar la salida en formato Json, lo demás es solo una query LinqToSql y un poco de formateo en la forma de exponer el código Json, ya que la DataTable de YUI espera recibir la data de la siguiente manera.&lt;/p&gt;

&lt;a href="http://www.flickr.com/photos/8031636@N06/2666923764/"&gt;&lt;img src="http://farm4.static.flickr.com/3241/2666923764_80df0487d4_o.png" alt="" border="0" width="599" height="306"&gt;&lt;/a&gt;

&lt;p&gt;Notaran que antes de la data propiamente dicha la DataTable de YUI espera obtener el nombre de la entidad expuesta.&lt;/p&gt;

&lt;p&gt;Bien, el siguiente paso es consumir la data en la View, para ello lo primero que haremos será crear las referencias a los archivos JavaScript necesarios, para ello pueden utilizar el &lt;a href="http://developer.yahoo.com/yui/articles/hosting/" target="_blank" mce_href="http://developer.yahoo.com/yui/articles/hosting/"&gt;YUI Dependency Configurator&lt;/a&gt;, el cual indicándole los controles a implementar nos indicara los archivos que debemos utilizar.&lt;/p&gt;

&lt;p&gt;Lo siguiente es consumir la data, para ello deberemos de incluir el siguiente código en la vista.&lt;/p&gt;
&lt;p style="font-family: Tahoma;"&gt;&lt;font size="2"&gt;&lt;span style="font-size: 10pt; color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 10pt; color: rgb(163, 21, 21);"&gt;script&lt;/span&gt;&lt;span style="font-size: 10pt;"&gt; &lt;span style="color: red;"&gt;type&lt;/span&gt;&lt;span style="color: blue;"&gt;="text/javascript"&lt;/span&gt;
&lt;span style="color: red;"&gt;language&lt;/span&gt;&lt;span style="color: blue;"&gt;="javascript"&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p style="font-family: Tahoma;"&gt;&lt;font size="2"&gt;&lt;span style="font-size: 10pt;"&gt;YAHOO.util.Event.addListener(window,
&lt;span style="color: rgb(163, 21, 21);"&gt;"load"&lt;/span&gt;, &lt;span style="color: blue;"&gt;function&lt;/span&gt;()
{&lt;/span&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p style="font-family: Tahoma;"&gt;&lt;font size="2"&gt;&lt;span style="font-size: 10pt;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;YAHOO.example.PopulateGrid = &lt;span style="color: blue;"&gt;new&lt;/span&gt; &lt;span style="color: blue;"&gt;function&lt;/span&gt;() {&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p style="font-family: Tahoma;"&gt;&lt;font size="2"&gt;&lt;span style="font-size: 10pt;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;var&lt;/span&gt;
myColumnDefs = [&lt;span style=""&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p style="font-family: Tahoma;"&gt;&lt;font size="2"&gt;&lt;span style="font-size: 10pt;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;{key:&lt;span style="color: rgb(163, 21, 21);"&gt;"PlayerId"&lt;/span&gt;,
label:&lt;span style="color: rgb(163, 21, 21);"&gt;"Id"&lt;/span&gt;},&lt;/span&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p style="font-family: Tahoma;"&gt;&lt;font size="2"&gt;&lt;span style="font-size: 10pt;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{key:&lt;span style="color: rgb(163, 21, 21);"&gt;"Name"&lt;/span&gt;},&lt;/span&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p style="font-family: Tahoma;"&gt;&lt;font size="2"&gt;&lt;span style="font-size: 10pt;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{key:&lt;span style="color: rgb(163, 21, 21);"&gt;"Number"&lt;/span&gt;},&lt;/span&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p style="font-family: Tahoma;"&gt;&lt;font size="2"&gt;&lt;span style="font-size: 10pt;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{key:&lt;span style="color: rgb(163, 21, 21);"&gt;"Age"&lt;/span&gt;},&lt;/span&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p style="font-family: Tahoma;"&gt;&lt;font size="2"&gt;&lt;span style="font-size: 10pt;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{key:&lt;span style="color: rgb(163, 21, 21);"&gt;"Caps"&lt;/span&gt;},&lt;/span&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p style="font-family: Tahoma;"&gt;&lt;font size="2"&gt;&lt;span style="font-size: 10pt;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;];&lt;/span&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p style="font-family: Tahoma;"&gt;&lt;font size="2"&gt;&lt;span style="font-size: 10pt;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;this&lt;/span&gt;.myDataSource
= &lt;span style="color: blue;"&gt;new&lt;/span&gt; YAHOO.util.DataSource(&lt;span style="color: rgb(163, 21, 21);"&gt;"Home/GetPlayersList?"&lt;/span&gt;);&lt;/span&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p style="font-family: Tahoma;"&gt;&lt;font size="2"&gt;&lt;span style="font-size: 10pt;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;this&lt;/span&gt;.myDataSource.responseType
= YAHOO.util.DataSource.TYPE_JSON;&lt;/span&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p style="font-family: Tahoma;"&gt;&lt;font size="2"&gt;&lt;span style="font-size: 10pt;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;this&lt;/span&gt;.myDataSource.responseSchema
= {&lt;/span&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p style="font-family: Tahoma;"&gt;&lt;font size="2"&gt;&lt;span style="font-size: 10pt;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;resultsList: &lt;span style="color: rgb(163, 21, 21);"&gt;"players"&lt;/span&gt;,fields:
[&lt;span style="color: rgb(163, 21, 21);"&gt;"PlayerId"&lt;/span&gt;,&lt;span style="color: rgb(163, 21, 21);"&gt;"Name"&lt;/span&gt;,&lt;span style="color: rgb(163, 21, 21);"&gt;"Number"&lt;/span&gt;,&lt;span style="color: rgb(163, 21, 21);"&gt;"Age"&lt;/span&gt;,&lt;span style="color: rgb(163, 21, 21);"&gt;"Caps"&lt;/span&gt;]};&lt;/span&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p style="font-family: Tahoma;"&gt;&lt;font size="2"&gt;&lt;span style="font-size: 10pt;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;this&lt;/span&gt;.myDataTable
= &lt;span style="color: blue;"&gt;new&lt;/span&gt; YAHOO.widget.DataTable(&lt;span style="color: rgb(163, 21, 21);"&gt;"myGrid"&lt;/span&gt;, myColumnDefs, &lt;span style="color: blue;"&gt;this&lt;/span&gt;.myDataSource);&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p style="font-family: Tahoma;"&gt;&lt;font size="2"&gt;&lt;span style="font-size: 10pt;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;};&lt;/span&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p style="font-family: Tahoma;"&gt;&lt;font size="2"&gt;&lt;span style="font-size: 10pt;"&gt;});&lt;/span&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p style="font-family: Tahoma;"&gt;&lt;font size="2"&gt;&lt;span style="font-size: 10pt; color: blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="font-size: 10pt; color: rgb(163, 21, 21);"&gt;script&lt;/span&gt;&lt;span style="font-size: 10pt; color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;font style="font-family: Tahoma;" size="2"&gt;&lt;span style="font-size: 10pt; color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 10pt; color: rgb(163, 21, 21);"&gt;div&lt;/span&gt;&lt;span style="font-size: 10pt;"&gt; &lt;span style="color: red;"&gt;id&lt;/span&gt;&lt;span style="color: blue;"&gt;="myGrid"&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163, 21, 21);"&gt;div&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/font&gt;&amp;nbsp;


&lt;p&gt;En el podrán observar que creamos un evento que se dispara cuando se carga la vista, luego hay una función en la cual definimos las columnas a utilizar por nuestro DataTable, configuramos el DataSource el cual referencia al método que devuelve el Json serializado desde el Controller, a continuacion seleccionamos los campos de la entidad que utilizaremos y por ultimo creamos el DataTable al cual le pasamos los valores antes asignados mas el Id del elemento HTML en el cual queremos que se cree.&lt;/p&gt;

&lt;p&gt;Si todo sale bien, deberían de ver en el browser algo parecido a lo que se aprecia en la imagen siguiente, en la misma también podrán notar la salida del JsonResult.&lt;/p&gt;

&lt;a href="http://www.flickr.com/photos/8031636@N06/2665904323/"&gt;&lt;img src="http://farm4.static.flickr.com/3270/2665904323_26e944fbf0_o.png" alt="" border="0" width="600" height="563"&gt;&lt;/a&gt;


&lt;p&gt;Aquí concluye este ejemplo, si desean seguir investigando la gran cantidad de características que se incluyen en el control DataTable, como así también los demás controles que forman parte de YUI lo pueden hacer en los siguientes links.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://developer.yahoo.com/yui/" target="_blank" mce_href="http://developer.yahoo.com/yui/"&gt;The Yahoo! User Interface Library (YUI)&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://yuiblog.com/" mce_href="http://yuiblog.com/"&gt;Yahoo! User Interface Blog&lt;/a&gt;&lt;/p&gt;
&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6398937" width="1" height="1"&gt;</content><author><name>parancibia</name><uri>http://weblogs.asp.net/members/parancibia.aspx</uri></author><category term="ASP.NET" scheme="http://weblogs.asp.net/pauloarancibia/archive/tags/ASP.NET/default.aspx" /><category term="MVC" scheme="http://weblogs.asp.net/pauloarancibia/archive/tags/MVC/default.aspx" /><category term="YUI" scheme="http://weblogs.asp.net/pauloarancibia/archive/tags/YUI/default.aspx" /></entry><entry><title>Buenas prácticas y recursos para la creación de formularios </title><link rel="alternate" type="text/html" href="http://weblogs.asp.net/pauloarancibia/archive/2008/07/07/buenas-pr-225-cticas-y-recursos-para-la-creaci-243-n-de-formularios.aspx" /><id>http://weblogs.asp.net/pauloarancibia/archive/2008/07/07/buenas-pr-225-cticas-y-recursos-para-la-creaci-243-n-de-formularios.aspx</id><published>2008-07-07T20:51:00Z</published><updated>2008-07-07T20:51:00Z</updated><content type="html">&lt;p&gt;La creación de formularios es una tarea rutinaria tanto si estamos trabajando en desarrollos para la web como para el desktop,  este post trata de aportar algunas buenas prácticas y recursos para la creación de formularios altamente usables y efectivos.

&lt;/p&gt;&lt;p&gt;Muchos de los lineamientos descriptos a continuación se basan en estudios de usabilidad, estos estudios hacen uso intensivo de técnicas de eye-tracking para recolectar información acerca de cómo el usuario interactúa con la aplicación.

&lt;/p&gt;&lt;p&gt;El eye-tracking es una técnica que mediante equipos especializados permite seguir los movimientos de los ojos de los usuarios para determinar las aéreas en las que fija su atención, cuánto tiempo pasa en ellas y como “navegan” la aplicación.

&lt;/p&gt;&lt;p&gt;En esta imagen pueden apreciar a un usuario probando una aplicación web mientras es monitoreado.

&lt;a href="http://www.flickr.com/photos/8031636@N06/2646235179/" mce_href="http://www.flickr.com/photos/8031636@N06/2646235179/"&gt;&lt;img src="http://farm4.static.flickr.com/3179/2646235179_53db10f82b_o.jpg" mce_src="http://farm4.static.flickr.com/3179/2646235179_53db10f82b_o.jpg" alt="Eye-tracking" border="0" width="600" height="337"&gt;&lt;/a&gt;

&lt;/p&gt;&lt;p&gt;Una vez recolectada la data del eye-tracking es posible crear los llamados “heat maps” o “mapas de calor“donde es posible apreciar como el usuario interactuó con la aplicación, normalmente esto se hace coloreando las aéreas de la aplicación con una paleta que va del rojo para las zonas donde más atención se prestó hasta el verde pasando por el amarillo que son las zonas menos observadas por el usuario.

&lt;/p&gt;&lt;p&gt;Ejemplo de heat map&lt;/p&gt;&lt;p&gt;
&lt;a href="http://www.flickr.com/photos/8031636@N06/2647065318/" mce_href="http://www.flickr.com/photos/8031636@N06/2647065318/"&gt;&lt;img src="http://farm4.static.flickr.com/3120/2647065318_e601d0af86_o.jpg" mce_src="http://farm4.static.flickr.com/3120/2647065318_e601d0af86_o.jpg" alt="Heat Map" border="0" width="450" height="563"&gt;&lt;/a&gt; &lt;br&gt;&lt;/p&gt;&lt;h6&gt;Image from Web Form Design: Filling in the Blanks by Luke Wroblewski; Rosenfeld Media, 2008. &lt;a href="http://www.rosenfeldmedia.com/books/webforms/" mce_href="http://www.rosenfeldmedia.com/books/webforms/"&gt;http://www.rosenfeldmedia.com/books/webforms/&lt;/a&gt;&lt;/h6&gt;

&lt;p&gt;El uso de estas herramientas y técnicas aplicadas a la creación de formularios llevo a ciertas conclusiones, que permiten mejorar la usabilidad de los mismos dependiendo de la alineación y disposición de los elementos que conforman el formulario.

&lt;/p&gt;&lt;p&gt;&lt;b&gt;Top Aligned Labels&lt;/b&gt;

&lt;/p&gt;&lt;p&gt;El uso de labels ubicadas sobre el textbox es recomendable cuando las data a ingresar por el usuario es familiar, esta práctica acelera los tiempos en los cuales se completa el formulario, pero tiene como contra que necesita más espacio vertical, algo a tener en cuenta es el espacio y el contraste entre los diferentes elementos para así lograr una navegación fluida por parte del usuario.

&lt;/p&gt;&lt;p&gt;En esta imagen pueden ver el comportamiento del usuario frente a este tipo de disposición.

&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.flickr.com/photos/8031636@N06/2646235581/" mce_href="http://www.flickr.com/photos/8031636@N06/2646235581/"&gt;&lt;img src="http://farm4.static.flickr.com/3175/2646235581_84ec369b13_o.jpg" mce_src="http://farm4.static.flickr.com/3175/2646235581_84ec369b13_o.jpg" alt="Top Aligned Labels" border="0" width="217" height="262"&gt;&lt;/a&gt; &lt;br&gt;&lt;/p&gt;&lt;h6&gt;Image from Web Form Design: Filling in the Blanks by Luke Wroblewski; Rosenfeld Media, 2008. &lt;a href="http://www.rosenfeldmedia.com/books/webforms/" mce_href="http://www.rosenfeldmedia.com/books/webforms/"&gt;http://www.rosenfeldmedia.com/books/webforms/&lt;/a&gt;&lt;/h6&gt;

&lt;p&gt;&lt;b&gt;Right Aligned Labels&lt;/b&gt;

&lt;/p&gt;&lt;p&gt;Alinear a la derecha los labels en los formularios es recomendable cuando se quiere mostrar una clara asociacion entre el label y su correspondiente textbox, esta técnica requiere menos espacio vertical, pero tiene la contra de que cuando los largos de los labels son muy dispares pueden hacer un poco dificultoso el escaneo de los elementos, en la siguiente imagen pueden ver un ejemplo de esta disposición y como el usuario reacciona al utilizarla. &lt;br&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.flickr.com/photos/8031636@N06/2647065562/" mce_href="http://www.flickr.com/photos/8031636@N06/2647065562/"&gt;&lt;img src="http://farm4.static.flickr.com/3124/2647065562_8417856dc7_o.jpg" mce_src="http://farm4.static.flickr.com/3124/2647065562_8417856dc7_o.jpg" alt="Right Aligned Labels" border="0" width="346" height="231"&gt;&lt;/a&gt;&lt;br&gt;&lt;/p&gt;&lt;h6&gt;Image from Web Form Design: Filling in the Blanks by Luke Wroblewski; Rosenfeld Media, 2008. &lt;a href="http://www.rosenfeldmedia.com/books/webforms/" mce_href="http://www.rosenfeldmedia.com/books/webforms/"&gt;http://www.rosenfeldmedia.com/books/webforms/&lt;/a&gt;&lt;/h6&gt;

&lt;p&gt;&lt;b&gt;Left Aligned Labels&lt;/b&gt;

&lt;/p&gt;&lt;p&gt;Situar los labels alineados a la izquierda de los texboxs se recomienda cuando los datos a ingresar no son familiares por el usuario, esto se debe a que el movimiento entre el label y el textbox es mayor,&amp;nbsp; entonces podemos utilizar esta desventaja a nuestro favor haciendo que el usuario preste más atención a los datos que desea ingresar, esto fenómeno se puede apreciar mucho mejor en la siguiente imagen, en la cual notaran que la cantidad de pasos y el tiempo usado para escanear los elementos que componen el formulario es mayor que en ejemplos anteriores.&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.flickr.com/photos/8031636@N06/2647065718/" mce_href="http://www.flickr.com/photos/8031636@N06/2647065718/"&gt;&lt;img src="http://farm4.static.flickr.com/3258/2647065718_28cc6c1faa_o.jpg" mce_src="http://farm4.static.flickr.com/3258/2647065718_28cc6c1faa_o.jpg" alt="Left Aligned Labels" border="0" width="346" height="231"&gt;&lt;/a&gt; &lt;br&gt;&lt;/p&gt;&lt;h6&gt;Image from Web Form Design: Filling in the Blanks by Luke Wroblewski; Rosenfeld Media, 2008. &lt;a href="http://www.rosenfeldmedia.com/books/webforms/" mce_href="http://www.rosenfeldmedia.com/books/webforms/"&gt;http://www.rosenfeldmedia.com/books/webforms/&lt;/a&gt;&lt;/h6&gt;

&lt;p&gt;Para seguir ahondando en estos temas les recomiendo la lectura del libro &lt;a href="http://www.rosenfeldmedia.com/books/webforms/" mce_href="http://www.rosenfeldmedia.com/books/webforms/"&gt;Web Form Design
Filling in the Blanks&lt;/a&gt; de Luke Wroblewski publicado por Rosenfeld Media, o de los siguientes enlaces.

&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.usolab.com/articulos/eyetracking-usabilidad-comunicacion.php" mce_href="http://www.usolab.com/articulos/eyetracking-usabilidad-comunicacion.php"&gt;La aportación del eyetracking en el sector de usabilidad&lt;/a&gt;

&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.nosolousabilidad.com/articulos/eye-tracking.htm" mce_href="http://www.nosolousabilidad.com/articulos/eye-tracking.htm"&gt;Eye-Tracking en Interacción Persona-Ordenador&lt;/a&gt;

&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.uxmatters.com/MT/archives/000107.php" mce_href="http://www.uxmatters.com/MT/archives/000107.php"&gt;Label Placement in Forms&lt;/a&gt;

&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.lukew.com/resources/articles/web_forms.html" mce_href="http://www.lukew.com/resources/articles/web_forms.html"&gt;Web Application Form Design&lt;/a&gt;&lt;/p&gt;
&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6373207" width="1" height="1"&gt;</content><author><name>parancibia</name><uri>http://weblogs.asp.net/members/parancibia.aspx</uri></author><category term="ASP.NET" scheme="http://weblogs.asp.net/pauloarancibia/archive/tags/ASP.NET/default.aspx" /><category term="Usabilidad" scheme="http://weblogs.asp.net/pauloarancibia/archive/tags/Usabilidad/default.aspx" /><category term="UX" scheme="http://weblogs.asp.net/pauloarancibia/archive/tags/UX/default.aspx" /></entry><entry><title>Silverlight 2 Beta 2 y los archivos XAP</title><link rel="alternate" type="text/html" href="http://weblogs.asp.net/pauloarancibia/archive/2008/06/09/silverlight-2-beta-2-y-los-archivos-xap.aspx" /><id>http://weblogs.asp.net/pauloarancibia/archive/2008/06/09/silverlight-2-beta-2-y-los-archivos-xap.aspx</id><published>2008-06-09T16:37:00Z</published><updated>2008-06-09T16:37:00Z</updated><content type="html">&lt;p&gt;Leyendo el ultimo &lt;a href="http://weblogs.asp.net/scottgu/archive/2008/06/06/silverlight-2-beta2-released.aspx" target="_blank" mce_href="http://weblogs.asp.net/scottgu/archive/2008/06/06/silverlight-2-beta2-released.aspx"&gt;post de Scott Guthrie&lt;/a&gt; sobre las nuevas features de Silverlight, note que no se hablo del cambio en el modelo de “deployment” usado para las aplicaciones Silverlight, como sabrán cuando compilamos una solución Silverlight se crea un archivo .xap el cual no es más que un zip que contiene todas las DLLs necesarias para correr nuestra aplicación, este .xap viaja hasta el browser y luego es manipulado por el engine de Silverlight el cual se encarga de correr nuestra solucion, en la siguiente imagen pueden observar el contenido de dicho archivo compilado con la Beta1.&lt;/p&gt;

&lt;a href="http://www.flickr.com/photos/8031636@N06/2565176230/" mce_href="http://www.flickr.com/photos/8031636@N06/2565176230/"&gt;&lt;img src="http://farm4.static.flickr.com/3130/2565176230_6ea24fb299_o.png" mce_src="http://farm4.static.flickr.com/3130/2565176230_6ea24fb299_o.png" alt=".xap Beta 1" border="0" height="413" width="600"&gt;&lt;/a&gt;

&lt;p&gt;Notaran que además de la dll de nuestra aplicación, en este caso Anim.dll, también están incluidas un par de dlls con los controles usados por Silverlight.&lt;/p&gt;

&lt;p&gt;En cambio en la siguiente imagen la cual corresponde a la misma solución pero ccompilada con la Beta2 solo se puede apreciar que se incluye en el .xap la dll correspondiente a nuestra solución y su correspondiente manifest.&lt;/p&gt;

&lt;a href="http://www.flickr.com/photos/8031636@N06/2564351853/" mce_href="http://www.flickr.com/photos/8031636@N06/2564351853/"&gt;&lt;img src="http://farm4.static.flickr.com/3165/2564351853_e6c57e59b4_o.png" mce_src="http://farm4.static.flickr.com/3165/2564351853_e6c57e59b4_o.png" alt=".xap Beta 2" border="0" height="413" width="600"&gt;&lt;/a&gt;

&lt;p&gt;Este approach hace que el runtime crezca un poco en tamaño, pero como contraparte tenemos que nuestras aplicaciones son más livianas, me parece un cambio inteligente, pero espero que el tamaño del runtime se mantenga controlado. &lt;br&gt;&lt;/p&gt;

&lt;p&gt;En próximos posts les iré mostrando algunas de las nuevas features que se incluyen en esta Beta de Silverlight 2.&lt;/p&gt;
&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6262409" width="1" height="1"&gt;</content><author><name>parancibia</name><uri>http://weblogs.asp.net/members/parancibia.aspx</uri></author><category term="Silverlight" scheme="http://weblogs.asp.net/pauloarancibia/archive/tags/Silverlight/default.aspx" /><category term="Community News" scheme="http://weblogs.asp.net/pauloarancibia/archive/tags/Community+News/default.aspx" /></entry><entry><title>TechNight: Desarrollo de aplicaciones RIA distribuidas con WCF y Silverlight</title><link rel="alternate" type="text/html" href="http://weblogs.asp.net/pauloarancibia/archive/2008/06/08/technight-desarrollo-de-aplicaciones-ria-distribuidas-con-wcf-y-silverlight.aspx" /><id>http://weblogs.asp.net/pauloarancibia/archive/2008/06/08/technight-desarrollo-de-aplicaciones-ria-distribuidas-con-wcf-y-silverlight.aspx</id><published>2008-06-08T04:05:00Z</published><updated>2008-06-08T04:05:00Z</updated><content type="html">&lt;a href="http://www.flickr.com/photos/8031636@N06/2560327792/" mce_href="http://www.flickr.com/photos/8031636@N06/2560327792/"&gt;&lt;img src="http://farm4.static.flickr.com/3051/2560327792_b0c9f8b490_o.png" mce_src="http://farm4.static.flickr.com/3051/2560327792_b0c9f8b490_o.png" alt="" border="0" height="120" width="600"&gt;&lt;/a&gt;

&lt;p&gt;El pasado 6 de junio junto a &lt;a href="http://blogs.southworks.net/erossetto/" target="_blank" mce_href="http://blogs.southworks.net/erossetto/"&gt;Edgardo Rossetto&lt;/a&gt; estuvimos presentando en las oficinas de Microsoft Argentina sobre desarrollo de aplicaciones RIA utilizando Silverlight y WCF, tal como prometí les dejo el código de las demos que estuvimos presentando como así también algunos links que les pueden ser de interés.&lt;/p&gt;



&lt;p&gt;&lt;b&gt;&lt;a href="http://cid-7cc9f2b7406f44d0.skydrive.live.com/self.aspx/Public/DemosTechNight.zip" target="_blank" mce_href="http://cid-7cc9f2b7406f44d0.skydrive.live.com/self.aspx/Public/DemosTechNight.zip"&gt;Technight Demos&lt;/a&gt;&lt;br&gt;&lt;a href="http://silverlight.net/learn/" target="_blank" mce_href="http://silverlight.net/learn/"&gt;Silverlight Screencasts &amp;amp; Quickstarts&lt;/a&gt;&lt;br&gt;&lt;a href="http://samples.netfx3.com/pictureservices/" target="_blank" mce_href="http://samples.netfx3.com/pictureservices/"&gt;Pictures Services&lt;/a&gt;&lt;br&gt;&lt;a href="http://expression.microsoft.com/" target="_blank" mce_href="http://expression.microsoft.com/"&gt;Microsoft Expression Community&lt;/a&gt;&lt;br&gt;&lt;a href="http://www.inkscape.org/" target="_blank" mce_href="http://www.inkscape.org/"&gt;Inkscape&lt;/a&gt;&lt;br&gt;&lt;a href="http://kaxaml.com/" target="_blank" mce_href="http://kaxaml.com/"&gt;Kaxaml&lt;/a&gt;&lt;/b&gt;&lt;/p&gt;
&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6256491" width="1" height="1"&gt;</content><author><name>parancibia</name><uri>http://weblogs.asp.net/members/parancibia.aspx</uri></author><category term="Silverlight" scheme="http://weblogs.asp.net/pauloarancibia/archive/tags/Silverlight/default.aspx" /><category term="Community News" scheme="http://weblogs.asp.net/pauloarancibia/archive/tags/Community+News/default.aspx" /><category term="WCF" scheme="http://weblogs.asp.net/pauloarancibia/archive/tags/WCF/default.aspx" /></entry><entry><title>MIX Essentials Buenos Aires</title><link rel="alternate" type="text/html" href="http://weblogs.asp.net/pauloarancibia/archive/2008/04/18/mix-essentials-buenos-aires.aspx" /><id>http://weblogs.asp.net/pauloarancibia/archive/2008/04/18/mix-essentials-buenos-aires.aspx</id><published>2008-04-18T19:06:00Z</published><updated>2008-04-18T19:06:00Z</updated><content type="html">&lt;a href="http://www.flickr.com/photos/8031636@N06/2423789668/" mce_href="http://www.flickr.com/photos/8031636@N06/2423789668/" title="MIX Essentials Buenos Aires"&gt;&lt;img src="http://farm3.static.flickr.com/2008/2423789668_3fed8b448f_o.png" mce_src="http://farm3.static.flickr.com/2008/2423789668_3fed8b448f_o.png" alt="MIX Essentials Buenos Aires" border="0" height="153" width="600"&gt;&lt;/a&gt;

&lt;p&gt;Desde su lanzamiento en 2006 &lt;a href="http://www.visitmix.com/" target="_blank" mce_href="http://www.visitmix.com/"&gt;MIX&lt;/a&gt; ha ido creciendo a paso firme, primero en Estados Unidos, el año pasado con los diversos &lt;a href="http://www.visitmix.com/2008/Worldwide/" target="_blank" mce_href="http://www.visitmix.com/2008/Worldwide/"&gt;ReMIXs&lt;/a&gt; en diversos lugares del planeta; este año la tendencia continua y una de las ciudades en donde se realizara una conferencia &lt;a href="http://www.visitmix.com/2008/Worldwide/" target="_blank" mce_href="http://www.visitmix.com/2008/Worldwide/"&gt;MIX Essentials&lt;/a&gt; será Buenos Aires.&lt;/p&gt;

&lt;p&gt;Por ahora no hay mucha información acerca de la agenda, los expositores y el lugar, lo que sí se sabe es que será el 3 y 4 de Junio, para mantenerse al tanto de lo relacionado al evento, pueden ingresar a su grupo en &lt;a href="http://www.facebook.com/group.php?gid=10373206235" target="_blank" mce_href="http://www.facebook.com/group.php?gid=10373206235"&gt;Facebook&lt;/a&gt;,revisar periódicamente la &lt;a href="http://www.visitmix.com/2008/Worldwide/" target="_blank" mce_href="http://www.visitmix.com/2008/Worldwide/"&gt;página oficial&lt;/a&gt; o el blog de &lt;a href="http://blogs.msdn.com/masaez/" target="_blank" mce_href="http://blogs.msdn.com/masaez/"&gt;Miguel Ángel Sáenz&lt;/a&gt;, por mi parte a medida que se vayan conociendo más datos los estaré compartiendo con todos ustedes.&lt;/p&gt;

&lt;p&gt;Manténganse atentos y nos vemos en &lt;a href="http://www.visitmix.com/2008/Worldwide/" target="_blank" mce_href="http://www.visitmix.com/2008/Worldwide/"&gt;MIX Essentials&lt;/a&gt;.&lt;/p&gt;
&lt;a href="http://technorati.com/claim/f4g5wcd9nt" rel="me"&gt;Technorati Profile&lt;/a&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6110684" width="1" height="1"&gt;</content><author><name>parancibia</name><uri>http://weblogs.asp.net/members/parancibia.aspx</uri></author><category term="Community News" scheme="http://weblogs.asp.net/pauloarancibia/archive/tags/Community+News/default.aspx" /></entry><entry><title>Charts en Silverlight, fácil con Visifire</title><link rel="alternate" type="text/html" href="http://weblogs.asp.net/pauloarancibia/archive/2008/04/15/chart-en-silverlight-facil-con-visifire.aspx" /><id>http://weblogs.asp.net/pauloarancibia/archive/2008/04/15/chart-en-silverlight-facil-con-visifire.aspx</id><published>2008-04-15T15:28:00Z</published><updated>2008-04-15T15:28:00Z</updated><content type="html">
&lt;p&gt;&lt;a href="http://www.visifire.com" target="_blank" mce_href="http://www.visifire.com"&gt;Visifire&lt;/a&gt; es una suite de componentes Silverlight para la visualización de datos, los mismos son muy fáciles de implementar y pueden ser utilizados en la mayoría de las plataformas para desarrollo Web.&lt;/p&gt;

&lt;p&gt;La forma más fácil de comenzar a probar &lt;a href="http://www.visifire.com" target="_blank" mce_href="http://www.visifire.com"&gt;Visifire&lt;/a&gt; y comprobar el poder de esta suite es utilizando el &lt;a href="http://www.visifire.com/silverlight_chart_designer.php" target="_blank" mce_href="http://www.visifire.com/silverlight_chart_designer.php"&gt;Chart Designer&lt;/a&gt;, el cual es una herramienta online que permite la creación de charts interactivamente y cuyo resultado podemos embeber en cualquier pagina.&lt;/p&gt;

&lt;p&gt;
&lt;a href="http://www.flickr.com/photos/8031636@N06/2416605914/" mce_href="http://www.flickr.com/photos/8031636@N06/2416605914/" title="VisiFire Chart Designer"&gt;&lt;img src="http://farm3.static.flickr.com/2236/2416605914_d6f69ce06d_o.png" mce_src="http://farm3.static.flickr.com/2236/2416605914_d6f69ce06d_o.png" alt="VisiFire Chart Designer" border="0" height="383" width="600"&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;También como es de suponer, podemos programáticamente crear charts y configurar su apariencia, ya que contamos con una gran cantidad de elementos visuales para personalizar  y elegir el tipo de chart cuyo número también es muy amplio.&lt;/p&gt;
&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&amp;nbsp;&lt;span style="font-size: 10pt; font-family: Consolas;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;public&lt;/span&gt;
Page()&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;


&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: Consolas;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;br&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;InitializeComponent();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;


&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: Consolas;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;this&lt;/span&gt;.Loaded
+= &lt;span style="color: blue;"&gt;new&lt;/span&gt; &lt;span style="color: rgb(43, 145, 175);"&gt;RoutedEventHandler&lt;/span&gt;(Page_Loaded);&lt;br&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&amp;nbsp;&lt;/p&gt;












&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: Consolas;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;public&lt;/span&gt; &lt;span style="color: blue;"&gt;class&lt;/span&gt; &lt;span style=""&gt;Vendor&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;br&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;public&lt;/span&gt;
&lt;span style="color: blue;"&gt;string&lt;/span&gt; name;&lt;br&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;public&lt;/span&gt;
&lt;span style="color: blue;"&gt;int&lt;/span&gt; sales;&lt;br&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;public&lt;/span&gt;
Vendor(&lt;span style="color: blue;"&gt;string&lt;/span&gt; name, &lt;span style="color: blue;"&gt;int&lt;/span&gt;
sales)&lt;br&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;br&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;this&lt;/span&gt;.name = name;&lt;br&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;this&lt;/span&gt;.sales = sales;&lt;br&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;br&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: Consolas;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;






&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: Consolas;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;void&lt;/span&gt;
Page_Loaded(&lt;span style="color: blue;"&gt;object&lt;/span&gt; sender, &lt;span style="color: rgb(43, 145, 175);"&gt;RoutedEventArgs&lt;/span&gt; e)&lt;br&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Consolas;" lang="ES"&gt;{&lt;br&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;CreateChart();&lt;br&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;}&lt;span style=""&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: Consolas;" lang="ES"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;o:p&gt;&lt;br&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;








&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: Consolas;" lang="ES"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;span style="color: blue;"&gt;public&lt;/span&gt; &lt;span style="color: blue;"&gt;void&lt;/span&gt;
CreateChart()&lt;br&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;{&lt;/span&gt;&lt;br&gt;&lt;span style="font-size: 10pt; font-family: Consolas; color: green;" lang="ES"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Inicializamos el chart y
los elementos que lo componen&lt;/span&gt;&lt;br&gt;&lt;span style="font-size: 10pt; font-family: Consolas;" lang="ES"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Consolas;"&gt;Visifire.Charts.&lt;span style="color: rgb(43, 145, 175);"&gt;Chart&lt;/span&gt; chart = &lt;span style="color: blue;"&gt;new&lt;/span&gt;
Visifire.Charts.&lt;span style="color: rgb(43, 145, 175);"&gt;Chart&lt;/span&gt;();&lt;br&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;Visifire.Charts.&lt;span style="color: rgb(43, 145, 175);"&gt;DataSeries&lt;/span&gt; dataSeries = &lt;span style="color: blue;"&gt;new&lt;/span&gt;
Visifire.Charts.&lt;span style="color: rgb(43, 145, 175);"&gt;DataSeries&lt;/span&gt;();&lt;br&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;Visifire.Charts.&lt;span style="color: rgb(43, 145, 175);"&gt;DataPoint&lt;/span&gt; dataPoint;&lt;br&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;Visifire.Charts.&lt;span style="color: rgb(43, 145, 175);"&gt;Title&lt;/span&gt; title = &lt;span style="color: blue;"&gt;new&lt;/span&gt;
Visifire.Charts.&lt;span style="color: rgb(43, 145, 175);"&gt;Title&lt;/span&gt;();&lt;o:p&gt; &lt;br&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&amp;nbsp;&lt;/p&gt;












&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: Consolas;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=""&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Consolas; color: green;"&gt;//Configuración de las características
visuales &lt;/span&gt;&lt;br&gt;&lt;span style="font-size: 10pt; font-family: Consolas;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;title.Text = &lt;span style="color: rgb(163, 21, 21);"&gt;"Sales in millions"&lt;/span&gt;;&lt;span style=""&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;chart.Children.Add(title);&lt;br&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;chart.Width = 600;&lt;br&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;chart.Height = 400;&lt;br&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;chart.AnimationEnabled =
&lt;span style="color: blue;"&gt;true&lt;/span&gt;;&lt;br&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;chart.Theme = &lt;span style="color: rgb(163, 21, 21);"&gt;"Theme1"&lt;/span&gt;;&lt;br&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;chart.AnimationType = &lt;span style="color: rgb(163, 21, 21);"&gt;"Type3"&lt;/span&gt;;&lt;span style=""&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;chart.UniqueColors = &lt;span style="color: blue;"&gt;true&lt;/span&gt;;&lt;br&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;chart.View3D = &lt;span style="color: blue;"&gt;true&lt;/span&gt;;&lt;span style=""&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&amp;nbsp;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: Consolas;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: green;"&gt;//DataSource&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;


&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: Consolas;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: rgb(43, 145, 175);"&gt;List&lt;/span&gt;&amp;lt;&lt;span style="color: rgb(43, 145, 175);"&gt;Vendor&lt;/span&gt;&amp;gt; people = &lt;span style="color: blue;"&gt;new&lt;/span&gt;
&lt;span style="color: rgb(43, 145, 175);"&gt;List&lt;/span&gt;&amp;lt;&lt;span style="color: rgb(43, 145, 175);"&gt;Vendor&lt;/span&gt;&amp;gt;();&lt;o:p&gt; &lt;br&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;






&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: Consolas;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;people.Add(&lt;span style="color: blue;"&gt;new&lt;/span&gt; &lt;span style="color: rgb(43, 145, 175);"&gt;Vendor&lt;/span&gt;(&lt;span style="color: rgb(163, 21, 21);"&gt;"Paulo"&lt;/span&gt;, 55));&lt;br&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;people.Add(&lt;span style="color: blue;"&gt;new&lt;/span&gt; &lt;span style="color: rgb(43, 145, 175);"&gt;Vendor&lt;/span&gt;(&lt;span style="color: rgb(163, 21, 21);"&gt;"Chorch"&lt;/span&gt;, 33));&lt;br&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;people.Add(&lt;span style="color: blue;"&gt;new&lt;/span&gt; &lt;span style="color: rgb(43, 145, 175);"&gt;Vendor&lt;/span&gt;(&lt;span style="color: rgb(163, 21, 21);"&gt;"Lito"&lt;/span&gt;, 66));&lt;br&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;people.Add(&lt;span style="color: blue;"&gt;new&lt;/span&gt; &lt;span style="color: rgb(43, 145, 175);"&gt;Vendor&lt;/span&gt;(&lt;span style="color: rgb(163, 21, 21);"&gt;"Ed"&lt;/span&gt;, 37));&lt;br&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;people.Add(&lt;span style="color: blue;"&gt;new&lt;/span&gt; &lt;span style="color: rgb(43, 145, 175);"&gt;Vendor&lt;/span&gt;(&lt;span style="color: rgb(163, 21, 21);"&gt;"Max"&lt;/span&gt;, 21));&lt;o:p&gt; &lt;br&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;


&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: Consolas;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Consolas; color: green;" lang="ES"&gt;//Enlazamos los datos de la
lista con los DataPoints&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;







&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: Consolas;" lang="ES"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Consolas;"&gt;people.ForEach(&lt;span style="color: blue;"&gt;delegate&lt;/span&gt;(&lt;span style="color: rgb(43, 145, 175);"&gt;Vendor&lt;/span&gt; v)&lt;br&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;br&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;dataPoint = &lt;span style="color: blue;"&gt;new&lt;/span&gt; Visifire.Charts.&lt;span style="color: rgb(43, 145, 175);"&gt;DataPoint&lt;/span&gt;();&lt;br&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;dataPoint.AxisLabel
= v.name;&lt;br&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;dataPoint.YValue =
v.sales;&lt;br&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Consolas;" lang="ES"&gt;dataSeries.Children.Add(dataPoint);&lt;br&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;});&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;


&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: Consolas;" lang="ES"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;br&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: green;"&gt;//Configuramos
el tipo de chart a utilizar&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;



&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: Consolas;" lang="ES"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Consolas;"&gt;dataSeries.RenderAs
= &lt;span style="color: rgb(163, 21, 21);"&gt;"Doughnut"&lt;/span&gt;;&lt;span style=""&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;chart.Children.Add(dataSeries);&lt;span style=""&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Consolas;" lang="ES"&gt;&lt;br&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Consolas;"&gt;LayoutRoot.Children.Clear();&lt;br&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;LayoutRoot.Children.Add(chart);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;


&lt;p&gt;&lt;span style="font-size: 10pt; line-height: 115%; font-family: Consolas;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/span&gt; &lt;br&gt;&lt;/p&gt;

&lt;p&gt;Las siguientes imágenes muestran algunos de los resultados que podemos obtener al utilizar el código arriba expuesto.&lt;/p&gt;

&lt;p&gt;&lt;b&gt;Doughnut Charts&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.flickr.com/photos/8031636@N06/2416712906/" title="Visifire Sample"&gt;&lt;img src="http://farm3.static.flickr.com/2230/2416712906_2601b11ae2_o.png" alt="Visifire Sample" border="0" height="395" width="595"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;b&gt;Pie Charts&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.flickr.com/photos/8031636@N06/2416712982/" title="Visifire Sample"&gt;&lt;img src="http://farm3.static.flickr.com/2381/2416712982_49cef031ec_o.png" alt="Visifire Sample" border="0" height="395" width="596"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;b&gt;Bars &amp;amp; Columns Charts&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.flickr.com/photos/8031636@N06/2416713020/" title="Visifire Sample"&gt;&lt;img src="http://farm3.static.flickr.com/2391/2416713020_7b0f066cc6_o.png" alt="Visifire Sample" border="0" height="395" width="595"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Para más información acerca de &lt;a href="http://www.visifire.com" target="_blank" mce_href="http://www.visifire.com"&gt;Visifire&lt;/a&gt; visiten su sitio donde encontraran gran cantidad de ejemplos, el código de la solución para bajar y su documentación.&lt;/p&gt;
&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6101952" width="1" height="1"&gt;</content><author><name>parancibia</name><uri>http://weblogs.asp.net/members/parancibia.aspx</uri></author><category term="ASP.NET" scheme="http://weblogs.asp.net/pauloarancibia/archive/tags/ASP.NET/default.aspx" /><category term="C#" scheme="http://weblogs.asp.net/pauloarancibia/archive/tags/C_2300_/default.aspx" /><category term="Silverlight" scheme="http://weblogs.asp.net/pauloarancibia/archive/tags/Silverlight/default.aspx" /></entry><entry><title>PowerShell everywhere</title><link rel="alternate" type="text/html" href="http://weblogs.asp.net/pauloarancibia/archive/2008/04/10/powershell-everywhere.aspx" /><id>http://weblogs.asp.net/pauloarancibia/archive/2008/04/10/powershell-everywhere.aspx</id><published>2008-04-10T03:18:00Z</published><updated>2008-04-10T03:18:00Z</updated><content type="html">&lt;p&gt;
Si eres de esas personas que se han encariñado con PowerShell, y yo conozco muchas, pero lo echas de menos cuando trabajas en otro entorno, &lt;a href="http://pash.sourceforge.net/" target="_blank" mce_href="http://pash.sourceforge.net/"&gt;Pash&lt;/a&gt; puede ser lo que buscas, porque Igor Moochnick esta trabajando en una implementación open source de PowerShell, para que podamos usarla en Linux, MacOS X y hasta en Windows Mobile, en su &lt;a href="http://igorshare.wordpress.com/2008/04/06/pash-cross-platform-powershell-is-out-in-the-wild-announcement/" target="_blank" mce_href="http://igorshare.wordpress.com/2008/04/06/pash-cross-platform-powershell-is-out-in-the-wild-announcement/"&gt;blog&lt;/a&gt; se pueden ver algunas screenshots con ejemplos de &lt;a href="http://pash.sourceforge.net/" target="_blank" mce_href="http://pash.sourceforge.net/"&gt;Pash&lt;/a&gt; corriendo en varios ambientes.
&lt;/p&gt;

&lt;p&gt;
Pash está escrito para correr con .Net 2.0 y Mono, hasta el momento se encuentran implementadas cerca del 50% de las clases definidas por PowerShell y un 40% de sus funcionalidades.
&lt;/p&gt;

&lt;p&gt;
Si desean colaborar, ir siguiendo el progreso del proyecto o probarlo, pueden bajar del repositorio en &lt;a href="http://pash.svn.sourceforge.net/viewvc/pash/" target="_blank" mce_href="http://pash.svn.sourceforge.net/viewvc/pash/"&gt;SourceForge&lt;/a&gt; las últimas versiones del código vía SVN.
&lt;/p&gt;

&lt;a href="http://www.flickr.com/photos/8031636@N06/2402621494/" mce_href="http://www.flickr.com/photos/8031636@N06/2402621494/" title="Pash Console"&gt;&lt;img src="http://farm3.static.flickr.com/2059/2402621494_0b5345c879_o.png" mce_src="http://farm3.static.flickr.com/2059/2402621494_0b5345c879_o.png" alt="Pash Console" border="0" height="866" width="677"&gt;&lt;/a&gt;

&lt;p&gt;&lt;a href="http://sourceforge.net/projects/pash/" target="_blank" mce_href="http://sourceforge.net/projects/pash/"&gt;Pash en SoruceForge&lt;/a&gt; &lt;br&gt;&lt;a href="http://igorshare.wordpress.com/" target="_blank" mce_href="http://igorshare.wordpress.com/"&gt;
IgorShare Weblog&lt;/a&gt;&lt;/p&gt;
&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6080978" width="1" height="1"&gt;</content><author><name>parancibia</name><uri>http://weblogs.asp.net/members/parancibia.aspx</uri></author><category term="PowerShell" scheme="http://weblogs.asp.net/pauloarancibia/archive/tags/PowerShell/default.aspx" /><category term=".NET" scheme="http://weblogs.asp.net/pauloarancibia/archive/tags/.NET/default.aspx" /></entry><entry><title>Heroes happen in Buenos Aires</title><link rel="alternate" type="text/html" href="http://weblogs.asp.net/pauloarancibia/archive/2008/04/07/heroes-happen-in-buenos-aires.aspx" /><id>http://weblogs.asp.net/pauloarancibia/archive/2008/04/07/heroes-happen-in-buenos-aires.aspx</id><published>2008-04-07T13:18:00Z</published><updated>2008-04-07T13:18:00Z</updated><content type="html">&lt;a href="http://www.flickr.com/photos/8031636@N06/2395182847/" title="Heroes happen Buenos Aires"&gt;&lt;img src="http://farm4.static.flickr.com/3220/2395182847_a5562d04c9_o.png" alt="Heroes happen Buenos Aires" border="0" height="100" width="600"&gt;&lt;/a&gt;

&lt;p&gt;El próximo jueves 10 de Abril se realizara en el Estadio Obras a las 19 horas el lanzamiento en Argentina de SQL Server 2008, Visual Studio 2008 y Windows Server 2008,&amp;nbsp; en el siguiente link pueden registrarse al evento&lt;/p&gt;

&lt;p&gt;&lt;a href="http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032374617&amp;amp;Culture=es-AR" target="_blank" mce_href="http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032374617&amp;amp;Culture=es-AR"&gt;http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032374617&amp;amp;Culture=es-AR&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;También se ha creado un evento en &lt;a href="http://www.facebook.com/event.php?eid=12445377011&amp;amp;ref=nf" target="_blank" mce_href="http://www.facebook.com/event.php?eid=12445377011&amp;amp;ref=nf"&gt;Facebook&lt;/a&gt; para poder socializar un poco antes de ir.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.facebook.com/event.php?eid=12445377011&amp;amp;ref=nf" target="_blank" mce_href="http://www.facebook.com/event.php?eid=12445377011&amp;amp;ref=nf"&gt;http://www.facebook.com/event.php?eid=12445377011&amp;amp;ref=nf&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Para ir entrando en calor pueden ir dándole una mirada a los siguientes &lt;a href="http://heroes.labmanuals.virtualwide.com" target="_blank" mce_href="http://heroes.labmanuals.virtualwide.com"&gt;Hands on Labs&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://heroes.labmanuals.virtualwide.com" target="_blank" mce_href="http://heroes.labmanuals.virtualwide.com"&gt;http://heroes.labmanuals.virtualwide.com&lt;/a&gt;&lt;/p&gt;
&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6072830" width="1" height="1"&gt;</content><author><name>parancibia</name><uri>http://weblogs.asp.net/members/parancibia.aspx</uri></author><category term="Windows Server" scheme="http://weblogs.asp.net/pauloarancibia/archive/tags/Windows+Server/default.aspx" /><category term="Visual Studio" scheme="http://weblogs.asp.net/pauloarancibia/archive/tags/Visual+Studio/default.aspx" /><category term="SQL Server" scheme="http://weblogs.asp.net/pauloarancibia/archive/tags/SQL+Server/default.aspx" /></entry></feed>