Como siempre es un placer compartir experiencias e ideas con compañeros MVPs y que mejor que sean de otras latitudes donde a pesar de la distancia son notorias las similitudes en cuanto a ánimos y deseos de hacer las cosas.

Japan and Mexico MVPsEl primer día estuvo estupendo, el formato de las conversaciones Open Space permitían precisamente eso, aportar e intercambiar ideas con MVPs de todo el mundo en las tecnologías de las que somos apasionados. En este mismo formato tuvimos una reunión donde por fin alguien más hablaba español y pudimos comentar de lo que en Hispanoamérica acontece y como hacemos frente a los retos en nuestras comunidades.

Los siguientes días resultaron muy provechosas en el sentido de poder intercambiar impresiones con los Product Managers de los productos que usamos a diario. Estas sesiones se daban en el Microsoft Corporate Campus y resultaba bastante curioso oir a otros MVPs realmente quejarse de cierta característica o denunciando la falta de respuesta de Microsoft en otras áreas, y es que el espacio daba para ello y más.

El último día fue una conversación donde MVPs formulaban preguntas a Ray Ozzie y a Steve Ballmer, una oportunidad única. En la que por supuesto se habló de Open Source, Yahoo! y la visión de Microsoft. Steve Ballmer es todo un personaje, sin pelos en la lengua mencionaba y reconocía los aciertos y fallos de la compañía y se dejó ver muy comprometido con las demandas y peticiones de los MVPs.

Steve Ballmer

Y eso fue el MVP Global Summit 2008, esperamos vernos el próximo año.

Posted by Gabriel Flores | with no comments

Quería darme el tiempo de digerir la noticia del jueves 21 de febrero de 2008 por la mañana, donde Steve Ballmer, CEO de Microsoft y Ray Ozzie, Chief Software Architect, anunciaron un nuevo enfoque al que Microsoft apuesta a partir de ese día, la interoperabilidad. Esto es dar poder a los usuarios de sus productos de alto volumen (como lo llaman ellos, a Windows Vista, .NET Framework, Windows Server 2008, SQL Server 2008, Office 2007, Exchange 2007 y Sharepoint Server 2007) de poder usar y manipular a su antojo la información contenida en ellos.

Esta iniciativa de interoperabilidad se describe en estos principios:

I: Conexiones abiertas en productos de alto volumen Microsoft se asegurará de mantener protocolos y APIs abiertos de sus productos ¿cómo se asegurarán de ello?
Los protocolos y APIs usados en los productos mencionados serán ofrecidos de manera abierta a la comunidad de desarrolladres publicando su documentación para beneficio de todos.

II: Soporte a Estándares
Microsoft soportará los estándares asegurando así interoperabilidad. Esto se logra participando en los órganos rectores de estándares contribuyendo en el desarrollo de los mismos y mejorando los existentes. Se guiará en su base de usuarios y la comunidad actual para priorizar estándares a soportar en cada liberación. Publicando la manera en como se soportan estos estándares de la industria, es como se pretende tener mayor compatibilidad en sus productos. En los casos donde algún estandar implementado donde se haya requerido hacer algún tipo de extensión, Microsoft publicará las especificaciones de estas extensiones y en su momento las ingresará a las organizaciones de estándares para su consideración.

III: Portabilidad de datos
Los usuarios de los productos de software que almacenan sus datos deben poder acceder a esos datos en la forma que se le permita su uso en otros productos de software. Microsoft diseñará sus productos de alto voluemen para propiciar esta portabilidad de datos y proveerá la documentación necesaria. Se logrará esto usando formatos estandar de acuerdo al principio II, propiciando formatos abiertos (ya sea admitidos por órganos de revisión de estándares o liberados publicamente para su implementación), proveerá la importación y exportación de datos, y permitará a los usuarios la selección de los formatos por defecto a utilizar en sus productos. Esto último no sólo implica poder guardar en Office 2007 en formato 2003 por default, sino también permitir la inclusión de otros formatos a manera de plugins. Para ello se hará valer de la Iniciativa de Interoperabilidad de Documento para informar y entrenar la implementación de estos formatos

IV: Compromiso abierto
Microsoft incrementará sus comunicaciones con las comunidades de clientes, T.I. y de código abierto. Esto se logrará con foros de interoperabilidad donde se fomenten el diálogo y discusión en los temas de importancia para usuarios y compañías de tecnologías de información y con la Iniciativa de Interoperabilidad con Código Abierto donde se busca el acercamiento con la comunidad Open Source para incrementar interoperabilidad y facilitar oportunidades de participación en desarrollo cooperativo.

Cabe destacar que en los casos en los que los protocolos, formatos o especificaciones que sean patentes de Microsoft, se indicará apropiadamente junto con sus términos y tarifas de uso. A notar es que Microsoft se compromete explícitamente a no demandar a desarrolladores de código abierto por desarollos o implementaciones no comerciales de estos protocolos o formatos abiertos y de hecho no implicará un pago de regalías o de algún otro tipo.

No, no es Open Source, es abrir los formatos y protocolos de sus productos para consumo de terceros. A final de cuentas, como alguna vez lo discutió Mario Alberto Chávez, la información que uno alimenta a los sistemas es propiedad de los usuarios, no del creador del sistema. Lo veo más como una oportunidad más de entrar al juego de una creciente demanda por incluir plataformas de trabajo más abiertas. Es una delicia para los desarrolladores poder saber exactamente los protocolos y formatos utilizados en los llamados productos de alto volumen y poder consumir sus datos y explotarlos. Esto a final de cuentas es un beneficio para todos, para tí como desarrollador de soluciones, para tus clientes que buscan mayor integración en sus aplicaciones y para sus otros desarrolladores que quieren aprovechar esta interoperabilidad con sus datos.

Mario Alberto Chávez adivina que podría pasar en la comunidad Open Source

Antonio Ortiz tiene un punto de vista interesante sobre las razones

Mariano Amartino cree que la culpa la tiene Ray Ozzie

Enrique Dans piensa que el infierno se ha congelado

El anuncio de prensa con el anuncio (en inglés)

El sitio oficial de interoperabilidad de Microsoft

Posted by Gabriel Flores | with no comments
Filed under: ,

Ya están disponibles las versiones Express de Visual C#, Visual Basic .NET, Visual C++ y Visual WebDeveloper 2008. Y tiene de interesante bastantes mejoras que puedes encontrar en Visual Studio 2008 (que también liberó su RTM), como son:

Y mucho más. Descarga la versión que más te guste, aprende lo nuevo y empieza a crear tus mejores aplicaciones.

Posted by Gabriel Flores | 1 comment(s)
Filed under: , , , ,

Con un buen sabor de boca concluyó la participación de la Comunidad .NET Tijuana en el Tour Tecnológico 2007 celebrado el 15 de noviembre en CESUN Universidad. Las condiciones del día quizás no fueron las mejores para que la pantalla pudiera ser apreciada correctamente pero realmente agradezco a los asistentes la paciencia, el interés y el entusiasmo mostrado a lo largo del evento.

Al rededor de unas 120 personas (a quienes se les entregó Reconocimiento firmado por personal de Microsoft) fueron las asistentes. Una pequeña parte eran estudiantes con quien tuve oportunidad de platicar con ellos y me comentaban sus inquietudes con la carrera que eligieron y con quienes pude aprovechar el vínculo para lograr mayores cosas. También coordinadores de carrera como Cynthia Rentería de UNIVER quien también desde temprano estuvo acompañándonos. Y algo que fue bastante agradable fue saludar a colegas que ahora están en la industria trabajando muy duro y compartiendo sus experiencias con la plataforma de desarrollo de Visual Studio como Jehu Hernández. Por ahí también me comentaron que entre los directivos de empresas, desarrolladores independientes y empleados de diversas empresas quienes sus patrones les permitieron asistir al evento surgieron oportunidades de negocio que aunque no es un fin primordial de la Comunidad .NET Tijuana, sí son bienvenidas.

Muchas gracias a todos los asistentes, al equipo de colaboradores de CESUN universidad que aunque no les gustaba salir en la foto estuvieron al pie del cañón en todo momento, a Eduardo Kórnegay de CESUN, a Johnathan de APC, a Mario Alberto Chávez, Haarón González y Román Lozano por su estupenda participación. También cabe señalar que no pudo haber sido posible el evento sin el apoyo de Jahdiel Vargas del Cluster de Tecnologías de Información de Baja California quien se encargó de la logística, enlace con CESUN Universidad, renta de equipo y soporte con las llamadas que hacía cada media hora. Aprovecho también para agradecer a todos los que se acercaron a mí con la inquietud de participar en la comunidad y hacerla más grande. 

 

 


Posted by Gabriel Flores | 6 comment(s)
Filed under:

Una necesidad recurrente en cualquier tipo de proyecto es darle presentación a datos de una manera que rápidamente sea aprovechable y útil para quien toma decisiones. La presentación en gráficas comparativas es algo a lo que ya está acostumbrada la mayoría de las personas aunque para generarlas no siempre se cuenta con la herramienta adecuada.

Carlos Aguilar creó hace unos años un control gratuito para ello, el WebChart. Y usarlo es tan sencillo como ponerlo en tu Toolbox de Visual Studio y arrastrárlo a la página que estás creando. En tu código de la página aparecerá así:

<%@ Page Language="C#" %>
<%@ Register tagPrefix="Web" Namespace="WebChart" Assembly="WebChart" %>
<%@ Import Namespace="System.Drawing" %>
<html>
<head><title>WebChart Sample</title></head>
<body>
      <Web:ChartControl Width="500" Height="350" id="ChartControl1" runat="Server" />
</body>
</html>

Para darle funcionalidad es tan simple como cargar un dataset:

    //en CrearDataSet está la funcionalidad de conexión a BD
    
DataSet dsPrioridades CrearDataSet();
        
    
PieChart priorityChart = new PieChart();
    
priorityChart.DataSource dsPrioridades.Tables[0].DefaultView;

Y asignarle cuales campos comprenderán tu eje Y y tu eje X, además de cargarlo en el control:

    priorityChart.DataXValueField "Prioridad";
    
priorityChart.DataYValueField "Proyectos";
    
priorityChart.DataBind();
    
ChartControl1.Charts.Add(priorityChart);
    
ChartControl1.RedrawChart();

El resultado es una buena gráfica:

 Gráfica

En la misma página de WebChart puedes descargar el archivo de ayuda que te permitirá saber como manipular todas las propiedades y métodos que tiene para lograr resultados más acordes a lo que necesitas. También hay bastantes ejemplos y código de mejoras a las gráficas que puedes generar.

Technorati tags: , ,
Posted by Gabriel Flores | with no comments
Filed under: , , ,

Después de unos días de enfermedad regreso con nuevos bríos. El pasado 2 de mayo por parte de la Comunidad .NET Tijuana con apoyos de Microsoft se llevó a cabo el evento Pronet CodeCamp en la que se vieron los temas:

  • Windows Presentation Foundation, impartido por El Guille
  • Desarrollando para Ajax, por el Ing. Leopoldo Uribe
  • Windows Workflow Foundation, por un servidor
  • Windows Communication Foundation, brindada por Octavio Telis
  • Cardspace, por el Ing. Eduardo Arredondo

Photo Sharing and Video Hosting at Photobucket

A pesar de unos problemas técnicos me agradó que tenía enfrente a Octavio Telis y a Guillermo Som, además de varias preguntas que se hicieron y que me dieron a entender que hubo interés en el tema. Mi presentación favorita fue la de El Guille, donde nos presentó quizás cosas que ya sabemos de WPF pero viendo como interactúa en vivo con Blend y la siguiente versión de Visual Studio fue un extra muy bueno. Un agradecimiento a Octavio por aportarnos su conocimiento con la presentación de WCF y a su comitiva que vinieron desde la Ciudad de México nerviosos por estar en Tijuana pero deseosos de ver una vez más a Guillermo Som.

Las instalaciones de la UABC en Tijuana fueron muy funcionales y el apoyo logístico de parte de la célula académica UABC Live.NET con el apoyo del profesor Jesús Reyes estuvo excelente. Así, nos veremos en la próxima ocasión.

Posted by Gabriel Flores | 3 comment(s)
Filed under:

Esta versión se incorpora al .NET Framework 2.0 y combina este marco de trabajo con nuevas tecnologías para crear:

  • Experiencias de usuario visualmente atractivas
  • Comunicación interoperable confiable
  • Modelos de procesos de negocio

Siendo una evolución del .NET Framework, proveé una experiencia de desarrollo consistente y familiar para millones de desarrolladores que programan en este ambiente.

Para lograr estos objetivos, se tiene:

Windows Presentation Foundation (WPF), provee clases para construir aplicaciones cliente de siguiente generación que combinan interfaz de usuario, documentos y medios.

Windows Workflow Foundation (WF), con un modelo de programación, motor y herramientas para construir aplicaciones habilitadas para flujos de trabajo que modelan procesos de negocio.

Windows Communication Foundation (WCF), un modelo de pogramación unificado para construir aplicaciones orientados a servicios.

Microsoft Windows Cardspace (antes InfoCard), tecnología para simplificar y mejorar la seguridad al acceder a recursos y compartir información personal de identidad en línea.

Espera en las próximas entradas un poco más de detalle de estos componentes del .NET Framework 3.0.

Algunas ligas útiles para desarrollo de aplicaciones con .NET 3.0:

Para empezar a desarrollar: 

Ejemplos, demos y código:

Webcast: Building a Sudoku Game Using Windows Presentation Foundation

Posted by Gabriel Flores | with no comments
Filed under: , , , , ,

Carlos Zelaya, Gabriel y Antonio ChajonSiguieron las pláticas con los líderes de producto donde nos mostraron que hay de nuevo y que se puede esperar en siguientes versiones. Y como fue normal en este summit, los program managers se mostraron muy interesados en la retroalimentación de los asistentes acerca de los productos en los que día a día están mejorando.

En un receso pude hablar un momento con el Guille y tomarme una foto con él. Y es que también algo recurrente con los asistentes al Summit ha sido la camaredería. A cualquiera puede uno saludar, conversar y saber más del programa MVP alrededor del mundo. Simplemente compartir una sala con Bill Wagner (colaborador del Developer Center de C#) y otros reconocidos MVPs del mundo, es una excelente oportunidad.

C# Product TeamPara terminar, el equipo completo de desarrollo estuvo disponible para cotestar dudas, recibir sugerencias y relatar el futuro de C#. Lo malo, el NDA que nos recordaron y por lo que no les puedo decir nada más ;) Y ¿qué sigue? Mucho trabajo, preparación y coordinación para que más y mejores MVPs hagamos nuestro trabajo de manera más efectiva.

Hasta abril de 2008.
 

Lo de hoy no fue conferencias, fueron grupos donde líderes de proyecto de los productos escucharon y aclararon dudas propuestas y sugerencias de MVPs. Bastante técnicas y muy a fondo, totalmente metidos hasta lo más recóndito de lo que llevó al equipo de desarrollo tomar la decisión de que tal o cual característica sea de la forma que está ahora.

Gabriel con Charlie CalvertComo nota aparte, me dió mucho gusto y fue un honor conocer en persona a Charlie Calvert, quien ahora lleva una labor muy importante mejorando la comunidad C#. Pues en mis tiempos de universidad llevamos un libro escrito por él acerca de C++ Builder y conocer al autor fue un plus. De hecho, algo que ha sido muy recurrente aquí al conocer MVPs de todo el mundo es que muchos de ellos ya llevan publicados al menos un libro, mmh, ¿y en latinoamérica? Al menos Marcelo Thalenberg, MVP de Outlook de Brasil, aunque es en inglés.

Mientras tanto, conocer y platicar al menos un poco con Ángel Hernández, Humberto Martínez, Alberto Hernández, Pilar Mueckay, Fernando García, Luis Alfaro, Gabriel Oliva, José Antonio Chajon, Juan Manuel Alvarado, Luis Du Solier, Haarón González y otros amigos y compañeros MVPs, ha sido un placer.
 

Muy buenas amistades he logrado hacer y la experiencia de estar cerca de la gente más cercana al desarrollo de productos de Microsoft es inigualable. Gente del mundo está aquí y realmente se logra ese sentir en las áreas de descanso y en las comidas.

Bill Gates' keynoteBill Gates mencionó lo que ha estado platicando en cualquier entrevista reciente, sus expectativas en la tecnología y como los MVPs ayudan a Microsoft a hacer llegar este conocimiento. Las conferencias han estado a mi parecer muy básicas, me sirvió mucho al menos la de LINQ ya que no me había metido a ver código concreto de esta tecnología. Me sentí casi tan alegre cuando demostraron con un código de VB9 una característica única donde todo mundo gritó emocionado. Somesagar se apoyó en líderes de producto que demostraron lo que viene para los desarrolladores en los próximos años.

En el mingle todo muy bien, es muy raro tener la oportunidad de estar con genete de todo el mundo y tomar una copa de vino o una cerveza junto a ellos.
 

Ya está disponible la versión no beta de ASP.NET Ajax que en su versión 1 nos da componentes Ajax reusables, soporte en los navegadores más populares y sobre todo, que puedes extender sitios web actuales con funcionalidades modernas de manera muy sencilla directamente desde Visual Studio 2005 . El Ajax Control Toolkit tiene nuevos controles como calendario, textbox con máscara, pestañas, autocompletado y otros ya populares como el del acordeón, menú flotante, calificación y dropdown en cascada que puedes ver en vivo en el sitio web de ASP.NET Ajax Control Toolkit.

En español, ya puedes acceder a webcasts pregrabados para que empieces a generar tus aplicaciones web de manera muy rápida y sencilla. Sólo tienes que registrarte en el enlace del webcast que más te interese:

Y para empezar ya, descárgalo ahora mismo y puedes irte familiarizando con los controles y ejecutar las aplicaciones de muestra que ASP.NET AJAX te ofrece.

Posted by Gabriel Flores | with no comments
Filed under: , ,

Un manejo bastante fácil de parámetros opcionales en C# es usando la palabra reservada params, así:

 

    public string concatena(params string[] cadenas)
{
string sResult = "";
foreach (string str in cadenas)
{
sResult = sResult + str + " ";
}
return sResult;
}

Y se usaría tan sencillo como esto:

 

Label1.Text = concatena("uno");
Label1.Text = concatena("primero", "segundo", "tercero");

Sin embargo, se debe tomar en cuenta que esto limita el Intellisense en el proyecto, ya que no se tiene idea de los parámetros que se están pasando a la función. La recomendación políticamente correcta (en términos de POO al menos), es usar funciones con parámetros sobrecargados según se necesiten. Por ejemplo:

 

    static string concatena(string str)
{
return str;
}

static string concatena(string str1, string str2)
{
return str1 + " " + str2;
}

static string concatena(string str1, string str2, string str3)
{
return str1 + " " + str2 + " " + str3;
}

 Aunque, claro está, en ejemplos tan sencillos como este nos veremos tentados a usar params, es bueno tomar en cuenta alternativas propias del lenguaje. Cuando escalemos implementaciones, nos agradeceremos a nosotros mismos seguir las reglas del juego apropiadamente.

Más info:

Using Params Keyword

Optional Parameters

How to read optional parameters

 

Posted by Gabriel Flores | 1 comment(s)
Filed under: , ,
En el documental de Metallica, Some kind of monster, me sorprendió como Lars Ulrich nadamás se metía al Protools (software de edición de música) y le movía a todo como si nada. Y luego hablaban cosas al estilo de "no, no, ya sé, mira, métele el micro al Protools y haz esto" y luego a un periodista le explicaban el proceso creativo, primero grababan horas y horas de cada instrumento y luego en el Protools depuraban y analizaban al detalle por segundo, cortaban, pegaban, metían y sacaban trozos de la música para armar un track bien fácil. O al menos así parecía.

Lo que me dí cuenta es que ese software lo usaban como un instrumento más, dependían de él enormemente pero mira, no se preocupaban que por actualizar versiones, que por tener service packs de esto y del otro, que si guardo así o asá un archivo, me refiero, simplemente se usa, y funciona para lo que quieren.

Me vino a la mente que en un software el usuario final nadamás quiere usarlo y que le sirva. No interesa saber que si la lista de requerimientos que se puso a definir su jefe, que si las revisiones siguientes comprenderán esto sí o esto no, o que si tengo que aprender un proceso común entre cualquier programa que tengan. Simplemente "quiero hacer esto y ni pongo en duda si el software lo hace o no, quiero que lo haga". Son enfoques muy distintos de cuando uno está desarrollando.

Eduardo me dijo "desarrollamos productos para gente normal no para geeks" y es esto precisamente el punto. A veces damos por hecho (y no con mala o deliberada intención, simplemente así se nos da) que un usuario va a entender y estará familiarizado con algo tan simple como un "Browse" para buscar un archivo. Pero algo tan simple como esto es algo que puede llegar a ser algo complicado para un usuario común y algo en donde debe ayudarle "el que sabe de computadoras" de su compañía.

Entonces, si ponemos esto en mente a la hora de desarrollar nuestros productos, nuestros productos podrán llegar a ser usados efectivamente y ser funcionales para nuestros usuarios finales. Varias de las cosas ya las tenemos definidas con mejores prácticas en diseño de interfaces pero si tomamos en cuenta que nuestro software será usado como una auténtica herramienta de trabajo como lo es un martillo o una sierra para un carpintero, tendríamos en mejor consideración al usuario y a final de cuentas, un usuario feliz es un relación feliz para nosotros.

Posted by Gabriel Flores | 4 comment(s)
Filed under:
El toolkit del que he hablado en artículos anteriores ha sido actualizado con algunas mejoras, algunas correciones y sobre todo, nuevos controles:

  • DynamicPopulate: es un extender para llenar el contenido de un control con el resultado de un webservice o un método.
  • FilteredTextBox: un extender para el TextBox que valida que no se inserten caracteres inválidos.
  • PagingBulletedList: para agregar opciones de páginado y ordenamiento para el control BulletedList.
  • PasswordStrenght: permite ver que nivel de seguridad tiene el password que le tecleas, como en el password de Hotmail.
  • Rating: para seleccionar el número de estrellas de calificación que el usuario elija de manera muy dinámica.

Rating control

Todos ellos vienen mejor explicados en el sitio del Atlas Control Toolkit y lo puedes descargar ya mismo de CodePlex.

Posted by Gabriel Flores | 1 comment(s)
Filed under: ,
Ahora que, si es un requisito de tu trabajo, no hay de otra, pero debes ver el beneficio en la certificación, y hacer a un lado los mitos que lo acompañan.

  • En primer lugar, lo recomendable es que tengas cierto tiempo de experiencia en lo que quieres certificarte. La información oficial es que tengas un año o dos cuando menos, y creí que era exagerado pero sinceramente, no se aprende a nadar sin meterse al agua. Así que sí recomendaría que tengas experiencia laboral real en la tecnología que pretendas certificarte.
  • Ayudan los libros, cursos en línea y simulacros de examen, pero sólo para aquellas cosas que a lo mejor se te escaparon de tu experiencia personal y para detectar esos otros temas en los que debes estar preparado también además de lo que ya por sí solo sabes.
  • Se te otorgará la certificación si apruebas un examen, por lo que no debes poner en duda que la experiencia bien ganada que tienes, a pesar del resultado del examen. No te dejes caer e inténtalo de nuevo que ya has invertido bastante tiempo, dinero y esfuerzo en tu preparación.

Summon to the powers of certification¿Y qué significa entonces ser certificado? En mi particular punto de vista, una persona certificada la puedo ver como una persona que tiene los conocimientos necesarios en la tecnología en la que está certificado como para poder tener la confianza de no tener que capacitarlo en ella. Muchos te podrán decir que los hace expertos y maestros en la certificación que poseen, pero yo diría que un empleador tendría esa confianza sólo si posee dos o más certificaciones.

Pero también recae la cuestión en ¿para qué te certificaste? Muchos lo verán como un requisito de trabajo, o como un apartado que adornará el curriculum vitae, pero yo digo hazlo para convencerte a tí mismo y demostrarte que sí sabes y puedes hacer frente a este mundo en el que puedes saber tanto o más como un estadounidense certificado (aunque, tristemente, no ganen lo mismo). Pero el punto es que tienes a la mano una herramienta más para ser más competitivo.

Entonces, ¿sólo por honra propia? ¿qué hay del dinero? Pues es algo que también tienes que ver tú mismo, a final de cuentas, la hojita que te dan donde te dice que aprobaste el examen, no hará tu trabajo por tí. ;)
Posted by Gabriel Flores | 4 comment(s)
Filed under: ,

En el sitio de El Guille me hicieron el favor de publicarme un artículo acerca de cómo usar el control de AtlasToolkit CascadingDropDown usando una base de datos como su fuente de datos. Es un ejemplo de lo sencillo que es usar estos controles y el alcance que estos controles tienen. Aquí lo tienes:

Usando el CascadingDropDown con una base de datos

Posted by Gabriel Flores | 5 comment(s)
Filed under: , , ,
A fin de cuentas, lo que importa es lo de adentro, ¿cierto? Pues es correcto, pero si le puedes brindar al usuario una mejor experiencia de uso, mejor usabilidad y más productividad, hace de tu solución de software algo más que sólo la solución, la hace querer ser usada, la hace imprescindible.

Una forma de hacerlo es con Ajax, tan de moda ahorita. ¿De qué se trata? En una página de internet la interacción usuario -> sitio se daba con intercambios de datos entre el navegador del usuario y el servidor. Botones, navegación entre páginas y otros complementos hacían que este ir y venir entre una máquina y otra una experiencia práctica para los fines de las aplicaciones hechas para esta plataforma, pero no precisamente lo más apegado a una usabilidad deseable.

Se dejan venir aplicaciones Web 2.0 como gMail, con todos esos componentes visuales que no están sólo de adorno, sino que realmente hacen un tipo de trabajo y al parecer ¡sin tener que esperar a una respuesta del servidor! Se pueden arrastrar objetos en la página web, colapsar paneles, calcular al vuelo datos con un botón que no requiere esperar al servidor para completarse.

Y son cosas sumamente simples, cosas al estilo ¿porqué no se me había ocurrido antes? Pero súmamente útiles. Como este ejemplo del CascadingDropDown. ¿Porqué esperar varias vueltas al servidor si sólo son datos auxiliares que se complementan a otros para dar un resultado? En ese ejemplo, la meta es seleccionar un auto, se puede elegir de la marca, modelo y color. En lugar de mostrar 3 ListBox con todos los modelos, marcas y colores disponibles, mejor hacerlo un poco más dinámico, pero ojo, sin tener que afectar la usabilidad deseada (y la paciencia) del usuario. Selecciono primero una marca y se me filtran para esa marca el modelo. Lo mismo pasa al seleccionar el modelo y se me filtran los colores disponibles. La belleza de esto es que incluso se pueden poblar los comboboxes con datos extraídos de una base de datos, por lo que las posibilidades son ilimitadas.

Una característica de estos controles y este marco de trabajo Atlas para ASP.NET, es que te permite crear tus propios extenders para los controles que actualmente uses. En el ejemplo, se está usando un contorl ComboBox y se agrega un extender para darle esa usabilidad à la Ajax de una manera muy sencilla. Ahí en el Atlas Control Toolkit encontrarás varios ya hechos con explicaciones de como empezar a usarlos desde ya en tus aplicaciones web y hacerlas unas joyas de usabilidad y productivada.

Algunas aplicaciones llamadas Web 2.0:

Writely (por cierto hecho con .NET)
gMail
netvibes
Live
Una característica poco conocida de MSDN es que tienen un historial de webcasts transmitidos anteriormente. Por lo que si te perdiste de alguno que te interesara por estar en tu hora de comida o estabas sin conexión a internet puedes simplemente entrar de nuevo y buscarlo para ver la retransmisión.

No te deja hacer preguntas (obvio, el evento ya ocurrió) pero tienes toda la presentación tal cual si la hubieras grabado en tu VCR. Y es muy sencillo, sólo ve a la página de Webcasts de MSDN Media y comienza a buscar los temas que te interesaron y podrás ver los webcasts próximos a suceder y los que te perdiste. Con la ventaja adicional de que en algunos de ellos ya puedes descargar el archivo de powerpoint correspondiente.

Un tip, si te registraste para un webcast y no lo pudiste atender entra a MSEvents y busca el ID del webcast que te perdiste (este ID lo encontrarás en el email de confirmación de registro como código de evento). Al ver el evento podrás ver la retransmisión del mismo y ahora sí, estar al corriente en tus webcasts.

Posted by Gabriel Flores | with no comments
Filed under: ,
Esta es una excelente noticia, los productos Express de Visual Studio han sido anunciados como "GRATIS" por tiempo indefinido. ¿A qué se debe esto? Originalmente la licencia era gratuita por un año a partir noviembre 7 de 2005, pero gracias a que estas versiones han sido descargadas más de 5 millones de veces se ha decidido que Visual Studio Express será gratis y continuará gratis (prácticamente, para siempre).

¿Qué esperas? Descarga tu Visual Studio Express y ya que estás en esto, regístrate para ganar 10,000 dólares en el concurso Made In Express.

Posted by Gabriel Flores | 1 comment(s)
Filed under: ,
More Posts Next page »