MSDN Blogs
  • WarNov Developer Evangelist

    Java vs. .NET

    • 40 Comments

    Estaba revisando mi Facebook y por allá alguien dijo a propósito de la salida de su creador James Gosling de Oracle:

    “Es que Java le lleva mucha ventaja a .NET!”

    OMG!

    Abrió la caja de pandora… y entonces comenté algo similar a lo siguiente, dado que soy NINJA (Not INcluding JAva):

    En lo personal me parece que decir que Java le lleva ventaja a .NET, ni siquiera aplica.
    Java es solo un lenguaje. Más bien tendríamos que comparar JDK con .NET aunque tampoco me parece muy apropiado...
    .NET es toda una tecnología.
    Una tecnología basada en código administrado.
    En eficiencia;
    en productividad
    en hacer todo desde un solo lugar.
    En confiar en un solo esquema de librerías bien conocido, documentado y creado bajo los mismos principios.
    Alguién más apuntó:

    “…he programado en los dos lados y eso de que java le lleva a .net mucha ventaja lo discuto.. JAVA cambia sus paradigmas a toda hora… o será muy fácil pasar de EJB 2 a 3 o integrar plugins y librerías en Eclipse: Algo así EJB 2.0 Hibernate jax-ws y jboos 5… eso es un show con una pila de errores que a veces ni idea y después te das cuenta que solo era por una versión menos de alguna librería x ... en fin Calidad de vida mata Esquizofrenia(enfermedad generada por apagar el modo NINJA)…”

    No tengo que importar paquetes extraños. Todo me lo resuelve el IntelliSense.
    Aún SDKs de Javascript tan robustos como JQuery se resuelven en segundos y me dejan programar a la velocidad del.. hum... sí.. del programador .NET... que sin ser exagerado caballeros, siempre será más alta que la de java. A .NET no le gusta "echar pedal" (y no mencionemos la velocidad de ejecución).”


    Pero Java es multiplataforma!


    Y .NET no? Solo hablemos de Mono y ya. O de Silverlight que ahora me permitirá correr la misma aplicación en Linux,. MAC o Windows en modo full trust out of browser o en otras palabras, en modo escritorio... Y me pregunto... cuándo con Java podremos crear algo aunque sea ligeramente parecido a Silverlight? A WPF?


    Además, pienso que la interoperabilidad no es correr sobre todos los sistemas operativos (cosa factible con .NET) Sino más bien la capacidad de interoperar con otras aplicaciones existentes... y .NET está super preparado para esto con WCF que hoy día da amplias capacidades de interconexión comenzando por REST, JSon, OData, y los otros viejitos como SOAP, WSDL...


    Pero Java es gratis!!!


    Y .NET no? Toda la especificación de .NET es abierta. Y tenemos herramientas altamente sofisticadas y SOPORTADAS que son free... si no, pregúntenle a las versiones Express de Visual Studio.
    Existe también el sitio http://codeplex.com donde miles de desarrolladores comparten su código de manera OPEN SOURCE y se encuentran proyectos geniales de código libre.

    Pero Java es Java!!!


    Sí... los programadores se enorgullecen de saber Java... no digo que sea malo... por el contrario rescato la idea original que se tuvo de la JVM y del código administrado y del lenguaje altamente formal y completamente orientado a objetos que en gran parte le dieron vida a mi amado C#...

    Pero C# pertenece a .NET y .NET es una cosa con vida propia que permite crear nuevos lenguajes orientados a su funcionalidad (F#, IronPython, IronRuby. APL.NEXT) y además permite la inclusión de elementos avanzados como expresiones lambdas, métodos y clases parciales, métodos extendidos, LINQ, lenguajes dinámicos, automatización en la generación de capas de datos, de negocio y hasta de interfaz de usuario; MVC, Entity Framework, Cloud Services desde su proyecto en Visual Studio derechito pa’ la nube…

    En integración transparente con Office, con XNA para hacer videojuegos, con Robotics, con Sharepoint, Biztalk y servidores de DB de toda índole. Con todo eso un simple Enterprise Library (lo que más se compara con la mega colección de paquetes de Java) no es nada… es solo una pequeña porción de todo lo que tiene .NET. Sin olvidar el poderoso C++ que aún está disponible para ejecutar aplicaciones que realmente vuelan porque no son administradas. Además hoy día tenemos librerías específicas para hacer programación en paralelo y hypercomputing sin necesidad de hacer un curso para usarlas! en fin... esta cajita de pandora llamada .NET, me daría para escribir un montón de líneas más....


    Para estos días que estamos de lanzamiento de la nueva ola de nuestra plataforma: Visual Studio 2010 (que además ahora incluye modelamiento UML y un manejo de arquitectura que ni en mis sueños me imaginaba) .NET Framework 4.0, Silverlight 4.0, Sharepoint 2010, Windows Azure para Colombia y muchos otros... podría decir que en mis años de experiencia con .NET jamás había presenciado una oleada tan grande de innovaciones que nos va a permitir verdaderamente desarrollar todo nuestro potencial antes de tener que pelear para únicamente mostrar un botón en la interfaz gráfica…

    Y ahí terminó la discusión… luego Willy remató con un brillante chascarrillo acerca del asunto:

    Michael Schumacher llega a casa después de un duro día de entrenamiento en el circuito.
    Su mujer le recibe con un beso y le pregunta:
    - "¿Cómo ha ido hoy el día, cariño?"
    - "Bueno, cuando he llegado al circuito, he ido a boxes y el F1 no estaba en su sitio. En su lugar había un burro."
    - "¿Cómo?", se sorprende la mujer.
    - "Si, así es. Le he preguntado al jefe de equipo y me ha confirmado que habían cambiado el monoplaza por el burro."
    - "¿Y tu que le has contestado?"
    - "Pues yo le he dicho que quizás no seria tan rápido como el F1. Él ha dicho que ciertamente es así, pero que ahora tenemos una ventaja y es que podremos correr en todo tipo de circuitos: F1, rally, motocross, trail sin... Y bueno, al menos hoy he podido venir montado en él hasta casa, cosa que no podía hacer con el F1."
    - "Ya. Pero si tu sólo corres en F1, ¿para que quieres poder correr en otros circuitos?"
    - "Pues no lo se, la verdad. Además, después de montarme en el burro le he dicho al jefe de equipo que no era ni la mitad de cómodo que el monoplaza."
    - "¿Qué ha respondido el?"
    - "Simplemente ha dicho que eso no importa porque ahora podemos correr en todo tipo de circuito."
    - "¡Ay Señor!, ¿Y no corres más riesgo de hacerte daño si te caes?"
    - "En realidad no, porque le han puesto al burro las mismas protecciones que tiene la cabina del F1. A pesar de que hace que todavía vaya un poco mas lento. Según el jefe eso ya no tiene tanta importancia, porque ahora podemos correr en todo tipo de circuito."
    - "Esta bien, enséñame el burro."
    Tras salir al jardín y quedarse estupefacta con la imagen de un burro pintado de rojo, con el escudo de Ferrari pegado en la frente y una protección de F1 encima de la silla de montar, la mujer le pregunta a Michael:
    - "¿Y como se llama el animal?"
    - Se llama ....
    - Se llama ....
    - Se llama ....
    - Se llama ....
    - Se llama ....
    - Se llama ....
    JAVA !!!!!!!!
    X-DDDDD
    Según apunta Willy además no es cierto que Ferrari use Java. Los leguajes oficiales para desarrollo en el equipo Ferrari son VB.NET y C++, tal y como se indica en una entrevista concedida a CNET NEWS"
    http://tiny.cc/42f73

     image

    Y ahora otro más cortesía de @Caycedo:

    - Knock Knock...
    -Who's there?
    .
    .
    .
    .
    .
    .
    .
    .
    .
    .
    .
    .
    .
    .
    .
    .
    .
    .
    - Java!
    :P

    A lo cual le agregué el siguiente escenario (un poco más abstracto):

    Knock Knock...
    -Who's there?
    -Dont worry, I'm Just Leaving
    (espero aquí sepan de quien estoy hablando)

     

    .NET Rocks!!! Felices lanzamientos 2010!!!

  • WarNov Developer Evangelist

    6 Capítulos de programación para Windows Phone 7 Gratis!!!

    • 0 Comments

    Para hoy les traigo este excelente draft - preview del libro “Programming Windows Phone 7 Series” escrito por el señor Charles Petzold (han de haber visto su nombre en la portada de muchos libros de MSPRESS)

    clip_image002

    Son seis capítulos que nos dejarán listos para programar cualquier tipo de aplicaciones en Windows Phone 7 Series!

    Disfrútenlo!



  • WarNov Developer Evangelist

    El mayor evento para desarrolladores en Colombia 2010

    • 1 Comments

    Es un evento que se llevó a cabo el día del 26 de abril en el hotel Sheraton de Bogotá.

    Dividido en tres tracks: Developers, Architects y ITs. En cada track tuvimos tres sesiones y un keynote al iniciar. El cierre estuvo a cargo de:

    El señor Steve Ballmer. Presidente Mundial de Microsoft, de quien fui telonero junto con Ruben Sánchez (Education Lead de Microsoft Colombia) con nuestra charla de Windows Azure, que se lanza oficialmente en Colombia.

    Antes de esta charla, en nuestro track de desarrollo, estuvimos viendo lo último de Silverlight 4 con Rodrigo Díaz Concha, y antes de esto, el lanzamiento de Visual Studio 2010 a cargo del mexicano también Guillermo Serrato.

    Estos fueron los detalles de las charlas en el track de desarrollo:

    Visual Studio

    Fue una charla plenamente orientada al lanzamiento, con cinco demos que se harán en el transcurso de la misma:

    a. Stay in the zone: Mejoras del producto para que el desarrollador no tenga que salir fuera de VS para conseguir lo que necesita para trabajar. Esto incluye mejoras de la interfaz, Extension Manager y Code Snippets.

    b. Windows7 Dev: VS2010 permite crear aplicaciones para aprovechar todas las mejoras que Windows7 tiene de manera rápida. Esto incluye soporte multitouch, ribbon, animaciones…

    c. Sharepoint Dev: Las nuevas herramientas de Visual Studio para ayudar a desarrollar sobre esta plataforma tan popular

    d. Phone+Azure: Herramientas para crear aplicaciones de Windows Phone Series 7 con Silverlight y utilizar servicios en Windows Azure para que tu aplicación se conecte con otros usuarios.

    e. Team Collaboration: Mejoras para la colaboración del equipo, esto incluye, Team Foundation Client como parte de VS profesional además de Team Explorer en la web, diagramas de arquitectura para entender el código que otros desarrolladores escribieron, utilizar información recolectada automáticamente por los testers para corregir defectos en el código y nuevas gráficas creadas automáticamente para visualizar el progreso del equipo

    Prepárense para la charla

    Experiencias de Usuario Enriquecidas

    a. Vimos como con nuestras tecnologías podemos usar otras tecnologías existentes como Facebook y Twitter para generar mejores experiencias de usuario.

    b. Photobooth: Aquí observamos una aplicación enriquecida que permite manejar los periféricos de nuestros equipos para tomar fotografías, editarlas y guardarlas.

    c.  La experiencia de usuario no solo va para PCs. También funciona en teléfonos: Windows Phone 7 Series!

    Material Técnico

    Plataforma de Servicios en la Nube (Azure)

    a. Qué es y por qué Cloud Computing? Cuál es la razón por la cual deberíamos interesarnos en esta tecnología.

    b. Ventajas de la Oferta Microsoft para el Cloud Computing!

    c. Demostraciones de todo lo que podemos lograr con Windows Azure y Visual Studio!

    Material Técnico

    El cierre de Steve Ballmer

    Aquí los dejo con unos extractos del cierre de Steve Ballmer en video!

    Developers, Developers, Developers!!!


  • WarNov Developer Evangelist

    Será Mono tan bueno como lo pintan?

    • 7 Comments

    Artículo Mono

    Cuando uno anda de pleno en el social media, siempre encuentra comentarios que llaman mucho la atención.

    En esta ocasión, alguien dijo que había hecho unas pruebas en mono y su performance no le había gustado.

    Desde épocas de la universidad no usaba mono. Pero en lo recuerdo, se comportaba perfectamente.

     

    Así que aproveché para darme una actualizada en el asunto, sobretodo aprovechando que ya tenía contacto con Miguel de Icaza, gestor de la plataforma (brillante a mi modo de ver).

    Así que en una charla con Miguel, tuve la oportunidad de preguntarle acerca de los casos que para él eran las joyas de la corona de mono y de esa manera poder citar estos ejemplos para mostrar que si mono  no tuviese buen performance, pues no lo estarían usando. Como mencioné hasta donde usé mono siempre se comportó bien.

    No solo hablamos de productos de usuario final como tal, sino también de aplicaciones de ámbito empresarial.

    F-Spot

    image

    Se podría decir que es como un Picassa que con todas sus características hace de  la administración de fotos personales algo muy sencillo! Puede importar fotos de diversos dispositivos, editarlas, subirlas a un repositorio, etc. Y todo con C# y mono!!! Y el performance experimentado no estuvo para nada deficiente.

    Banshee

    image

    Para los que estuvimos en el mundo Linux hace unos buenos años, encontrar un aplicativo como este para reproducir nuestros archivos multimedia era algo bastante complicado. Pero hoy, gracias a Mono se ha podido desarrollar Banshee. Permite la sincronización con iPod, Android y otros dispositivos. Esto nos permite comprobar el poder del concepto .net en Linux.

    Pinta

    image

    Como su nombre lo indica, es para pintar. Hace algunos meses me hice fanático de paint.net. Un excelente editor de bitmaps (y fotografía) surgido hace algunos años como proyecto universitario creado con C# para Windows, que hoy en día es el mejor reemplazo para el tradicional Paint de Windows, ya que incluye efectos, manejo de capas, herramientas de clonado, lazo mágico, plugins  y demás, que lo hacen parecer un Photoshop light muy fácil de usar (de hecho, les cuento que la primera imagen de este post, la edité usando Paint.Net y la terminé en 3 minutos. Además es freeware!). Pues bien, Pinta está basado en Paint.Net. Tanto así, que mucho del código de Pinta es el mismo de Paint.Net. Solo que compilado sobre mono. Y en el mundo Open Source, tiene rendimientos iguales e incluso mejores que Gimp.

    Deki

    Deki es un Wiki enfocado a servir como entorno de colaboración especialmente de desarrolladores. Y me permito citar la opinión al respecto de Mike Shaver, jefe de los evangelistas de Mozilla:

    “Mozilla tiene un gran volumen de información relevante para los desarrolladores que va desde la documentación de código tradicional y código de ejemplo, hasta suites de pruebas y datos de rastreo de errores, así como de discusiones y streams RSS. Nosotros estábamos buscando un sistema que nos diera las herramientas para combinar y re mezclar todas esas fuentes de datos de manera creativa y Deky Wiki está diseñado con esa meta en mente”

    Deki fue desarrollado por MindTouch. Una compañía muy reconocida por su gran trabajo sobre mono en la producción de Wikies, Web 2.0, Mashups y en general la creación y administración de contenido. En general, usan C# para el componente de negocio y para hacer una interfaz gráfica muy fácil de personalizar, usan PHP, que está adquiriendo también mucho peso en las tecnologías Microsoft, que ya lo soportan (SqlServer, Visual Studio, IIS, Azure, Expression Web…).

    Conclusión

    .net sí funciona en Linux. Y de hecho ha permitido a la comunidad Open source acceder a un entorno de desarrollo ágil y robusto que permite lograr productos como los anteriormente mencionados. Además la interoperabilidad intrínseca de .net, ha permitido trabajar de la mano con otras tecnologías y hoy día es tanto el avance, que el framework se ha extendido hasta a los celulares, incluido el IPhone de Apple. Y esto ha tenido tanto éxito, que hay toda una gran comunidad de desarrolladores sobre mono trabajando y sacando provecho de estas ventajas. Hasta Silverlight tiene su versión para Linux gracias a Moonlight!

    Sin embargo no todo es perfecto y hoy día algunas características no se han podido mapear correctamente, tal como el renderizado de Silverlight usando la aceleración de hardware nativa de la máquina (tal como lo describían en el comentario que dio origen a este post). No obstante, hablando con Miguel de Icaza, precisamente me comentó que en adelante el mayor enfoque de su trabajo iba a ser MVC y Entity Framework para mono y por supuesto alcanzar a Silverlight 4. Así que solo es cuestión de tiempo. Lo importante es que .net sí trabaja bien en Linux. Es más, ya empresas como Novell han creado importantes herramientas e IDEs que le dan aún muchas más facilidades a los desarrolladores. Entre ellas, Mono Tools for Visual Studio; como lo muestro en este post.

    IMG_8005Ya para cerrar, quisiera unirme a la inconformidad sentida por la comunidad mono ante la decisión de Apple de impedir en el futuro que sobre su IPhone puedan correr aplicaciones que no ejecuten código nativo directamente. Cerrándole las puertas no solo a .net sino también a Flash y obviamente a Java. Me pregunto que hará que los fans de Apple ante decisiones como estas o productos como el IPad que no dejan ni tomar una foto, sigan inmutables y encantados…

    Me encantaría saber sus opiniones al respecto y también resolver las dudas que tengan al respecto. Siéntanse libres de comentar!! Interoperamos!



  • WarNov Developer Evangelist

    Imágenes Link sin Borde Alrededor

    • 0 Comments

    Añadiendo un widget de twitter a mi blog, observé lo siguiente:

    image

    Como observan, se le pinta el borde azul típico de los hyperlinks. Cosa bastante molesta, más aún cuando la gente ya sabe que eso es un link.

    Lo que yo quería era algo así:

    image

    Después de investigar solo un poco, encontré una sencilla solución:

    Solo hay que agregar

    BORDER=0

    al tag

    <IMG ..>

    Así pues un ejemplo completo sería:

    <A HREF="http://warnov.com/dblog/"><IMG SRC="blog.gif"
    BORDER=0 HEIGHT=33 WIDTH=82 ALT="Visita mi Blog"></A>


  • WarNov Developer Evangelist

    UserControls y TreeView

    • 0 Comments

    (Un ejemplo de cómo ASP.NET tradicional sigue siendo útil.)

    Hace poco en mi foro, Julio Avellaneda me preguntaba acerca del mecanismo para ofrecer una interfaz de usuario muy interactiva. Luego de varias disertaciones, se llegó a la conclusión que lo mejor era hacer una implementación con UserControls.

    A continuación, el mismo Julio invitado por mí, nos explica lo sucedido:

    “Hola a todos, este es un pequeño ejemplo el cual quiere mostrar una forma de como usar usercontrol en asp.net, la vez pasada, se me planteo una situación en la cual, un usuario podría tener desde 1 hasta unas 50 opciones disponibles en una página, pero debería simular o hacer sentir al usuario que todo se encontraba en la misma página, además que debía poder guardar los datos digitados en una opción o sección apenas se cambiará a una nueva.

    Mirando ese pequeño planteamiento, lo primero que se me ocurrió fue usar tabs al estilo de jquery, opción que fue eliminada, ya que debía tener todo el código en la misma página, y luego comenzar a ocultar divs y así sucesivamente, luego se me ocurrió crear diferentes páginas, una para cada sección, tener un iframe el cual me iba a alojar la página, opción que funcionaba, sin embargo no podía hacer el guardado al cambiar de sección.

    Luego de mirar algunas opciones más, opte por usar controles de usuario, y en mi página principal tener un multiview, el cual va a tener un view por cada sección, y así desde codebehind solo me es necesario cambiar el view activo, además, por ser controles de usuarios, en cada control puedo declarar métodos públicos los cuales puedo llamar desde otra página….

    Lo importante a tener en cuenta, es que cuando se carga la página principal se carga, mis controles de usuario también lo hacen, por este motivo, lo mejor es no hacer ningún tipo de carga en el load del control de usuario, sino tener un procedimiento público el cual se llame cuando necesito ese control de usuario.

    Para hacer el llamado de cada sección, creo un treeview, donde cada nodo mostrará una sección diferente... “

    clip_image002

    Pueden descargar un ejemplo acá !



  • WarNov Developer Evangelist

    Un mes de Windows Azure gratis para su aprendizaje

    • 0 Comments

    Si quieren aprender Windows Azure a su propio ritmo y con cuenta de Windows Azure, les tengo un pase especial por hasta un MES gratuito de Sql Azure y Windows Azure.

    NO SE REQUIERE TARJETA DE CREDITO!!

    Pueden iniciar el campamento en cualquier momento y podrán disfrutar de los servicios gratuitos hasta finalizar cada mes.

    Pasos a seguir:

    1. Para acceder a este beneficio, obtengan su pase aquí. Y luego entren al Portal de Desarrollo de Windows Azure con el pase obtenido.
    2. Descarguen las herramientas de Windows Azure para Visual Studio.
    3. Aprendan
      1. Aquí cómo crear su primera aplicación Windows Azure y súbanla con el pase obtenido.
      2. Entren rápidamente al mundo Windows Azure observando estos seminarios rápidos
      3. Aprendan Windows Azure a profundidad: Windows Azure Platform Training Kit

    Ánimo antes de que se acaben los cupos!



  • WarNov Developer Evangelist

    MIX10 Keynote Dia 2: Internet Explorer 9 y Visual Studio

    • 0 Comments

    El MIX10 es claramente uno de los eventos más importantes para desarrolladores y diseñadores alrededor del mundo. Cada año este evento es organizado por Microsoft en Las Vegas donde aparte de congregarnos a aprender los último en tecnología nos hemos maravillado con la magia de esta ciudad que nunca duerme.

    Son tres días de evento. Y durante los dos primeros tenemos Keynotes en las mañanas y el resto del día charlas. El tercer día está compuesto únicamente por sesiones de charlas.

    En mi anterior post vimos todo lo relativo al keynote del primer día que estuvo enfocado a Windows Phone 7.

    En el segundo día estuvimos apreciando un lanzamiento del que ya hemos sabido mucho gracias a las betas publicadas: Visual Studio 2010. Pero sobretodo tuvimos la fortuna de ser participes de un gran lanzamiento:

    Me siento complacido de anunciar la liberación del preview de la plataforma Internet Explorer 9 (IE9): La siguiente versión del navegador web más popular del mundo. IE9 esta siendo diseñado para ayudarnos en el desarrollo web creando aplicaciones enriquecidas, interoperables y que cumplen con los estándares, al proveernos la plataforma, las herramientas y las características que requiere la web moderna.

    Este primer vistazo a la plataforma está diseñado para permitirnos a todos en la comunidad del desarrollo y diseño web, una oportunidad de proveer feedback en nuestro progreso en la construcción de IE9. No está diseñado para ser un explorador web FULL, sino solo un primer vistazo… un pre-alpha. Esperamos liberar updates de la plataforma cada cinco a siete semanas.

    Internet Explorer 9

    Qué hay de nuevo?

    Sobretodo características que aprovechan la GPU (tarjeta de video) de las computadoras clientes para mejorar la experiencia con HTML5 y CSS3, usando SVG:

    • Podremos usar el poder de la aceleración de hardware para renderizar el HTML5 más rápido, con mejor resolución y usando menos recursos!
    • HTML5
      • Mejoras en el parsing, incluyendo el manejo de elementos genéricos y el overlapping de tags.
      • Soporte para parseo de XHTML
      • APIs de selección de texto para habilitar la selección programática de texto
      • SVG
        • Estructura de documentos con metadata y funcionalidad de extensibilidad.
        • Formas básicas como  rectángulos, círculos, elipses, líneas, polilíneas, y polígonos.
        • Sistema de coordenadas, transformaciones y unidades
        • Elementos de tipo Path!
    • CSS3
      • Esquinas Redondeadas a través de border-radius

        IMG_8086
      • Soporte para la propiedad CSS Opacity y el modelo de color RBGA
    • JAVASCRIPT
      • El nuevo motor interpreta aun más rápido:

        SunSpiderResults[1]
        Milisegundos empleados en terminar el test SunSpider con una Dell Optiplex con un procesador de 3.0 GHz Core 2 Duo Intel, 4GB RAM, video Intel Integrado y corriendo Windows 7.
    • DOM
      • DOM Level 2: Namespaces, Rangos y Vistas
      • DOM Level 3: Eventos
      • Soporte mejorado para los estilos y características HTML del DOM Level 2
    • DEVELOPER BAR
      • Network Analizer (Este es de los que más me gusta)
        • Permite a los desarrolladores capturar, mostrar y almacenar las peticiones web, sus estadísticas y análisis!!! Definitivamente era algo que le faltaba a las herramientas para desarrolladores.
    • AUN MAS ESTANDAR
      • De un ACID de 12, pasamos a uno de 55!!!

        Acid3ScreenCapture[1]

    Cuándo lo puedo tener?

    Aún más complaciente para mí, es anunciarles amigos, que el preview YA está disponible para su evaluación en http://www.IETestDrive.com. Allí también encontramos un conjunto de páginas web y aplicaciones diseñadas para demostrar características y mejoras incluidas en la última versión.

    Los desarrolladores y diseñadores pueden proveernos feedback a través del programa Microsoft Connect en www.connect.microsoft.com solicitando una invitación allí. Si realmente están interesados en usar la plataforma lo más pronto posible, comuníquense conmigo y les estaré dando un código de acceso inmediato.

    Visual Studio 2010

    IMG_8117Esta versión es definitivamente la que más cambios drásticos ha incluido en mis siete años de experiencia con la plataforma. Además, finalmente son los cambios más esperador personalmente hablando, pero también por muchos de mis amigos y conocidos desarrolladores.

    Los cambios han sido integrales y se han hecho inclusiones sin precedentes en la herramienta. Nunca me había sentido tan “en casa” como programando con Visual Studio 2010.

    Comencemos entonces:

    Soporte multi-monitor mejorado!!

    IMG_8120

    Esta característica es genial más ahora que tenemos una gran cantidad de herramientas nuevas para trabajar en vivo dentro de nuestro Visual Studio 2010 con la arquitectura de nuestros proyectos y necesitamos mucho espacio para ver diagramas mientras codificamos!! En anteriores versiones de la herramienta teníamos cierto soporte para estas características, pero ahora han sido mejoradas.

    IntelliSense más Inteligente

     

    IMG_8121

    El IntelliSense ya viene preparado para manejar las nuevas características del Framework 4.0 como parámetros por defecto. Además nos ahorra aún mucha más escritura con sus son consejos de código predictivo ya que con escribir cualquier parte de la palabra deseada (no solo el principio) nos muestra un listado de todas las posibilidades para que podamos escoger.

    También cada vez que estamos ubicados en un identificador, resalta dentro de todo el editor en donde se encuentra referenciado ese identificador al ponerlo en negrita.

    El editor de Visual Studio 2010 está basado en WPF. De manera que ahora las operaciones que podemos hacer sobre este son mucho mas flexibles. Una que personalmente me encanta es la posibilidad de hacer zoom sobre el editor usando el scroll del mouse acompañado de la tecla control. Esto es muy útil a la hora de ver nuestro código desde distancias considerables. Como esto es trabajado con WPF y texto vectorial, no se pierde nada de la calidad del código:

    image

    Estas son solo una de las pocas cosas que se han mejorado e incluido como nuevas en Visual Studio 2010 que darían para un post difícilmente terminable: Ventana de navegación de identificadores, generador de jerarquía de llamados, generador de dependencias... Pero aquí les dejo la referencia para que puedan ver con detalle de que se trata.

    Deployment

    Podemos manejar diversos ambientes de deployment de acuerdo a las condiciones, todo organizado dentro de nuestra solución. Por ejemplo, tenemos la habilidad de tener tres copias distintas de Web.Config: Una para desarrollo, otra para pruebas y otra para producción:

    IMG_8130

    ASP.NET 4.0

    Otro de los temas vistos en este Keynote fue ASP.NET 4.0 y todas sus novedades. Por ejemplo, la claridad y simpleza con que es traducido el código ASP.NET:

    IMG_8123

    Como pueden ver, el acercamiento al HTML plano y fácil de manejar luego con JQuery es total.

    Recuerdan cuando su página comenzaba a pesar 400kb y 500kb y cada vez crecía y crecía m��s, pues sobre el responsable en parte de este “sobrepeso” ahora se ha trabajado bastante así que el ViewState generado es mucho más pequeño:

    IMG_8124

    Otras características mejoradas:

    • URLs semánticas. Para hacer los sitios más accesibles a las personas y a los motores de búsqueda. Es de esta manera que ahora es mucho más fácil lograr urls como http://www.example.com/autos/acme/rojo/2009.
    • Muchas más gráficas (charts) nativas para mostrar datos

    Programación del Lado del Cliente

    Visual Studio también viene fuertemente enriquecido para mejorar el desarrollo de código para el lado del cliente, sobretodo ahora que es tan popular y benéfico.

    IMG_8128

    El Intellisense de Javascript es aún más rápido en esta versión. de hecho, observemos las mediciones en la velocidad de generar IntelliSense para librerías Javascript:

    IMG_8129

    De recalcar: JQuery se actualiza dos veces más rápido en VS2010 y librería como ExtJS se cargan SEIS veces más rápido!

    Este tipo de acciones de mejora para el lado del cliente, son solo una muestra más de todo el poder que Microsoft le está dando a estas herramientas que vienen a ser el futuro de la programación Web. Entre los esfuerzos, también podemos contar con que Microsoft está apoyando económicamente a la gente de JQuery para que sigan con su excelente trabajo!!

    IMG_8161

    Conclusión

    Si somos desarrolladores acostumbrados al tradicional ASP.NET y ADO.NET, tenemos que salirnos de esa “Zona de Confort” si en realidad queremos que nuestras aplicaciones puedan competir contra la avalancha de aplicaciones web ágiles que centran gran parte de la lógica en programación orientada a cliente también conocida como programación en el browser o sencillamente Javascript en todos sus sabores.

    Muchas veces hemos rechazado la programación de Javascript porque ASP.NET nos ofrecía un modelo bastante rico que nos permitía prescindir de ello. Sin embargo, esta encapsulación escondía la verdadera naturaleza de la operación Web (Request-Response) y terminó haciendo que nuestros productos fuesen muy pesados y no corrieran rápido bajo algunas condiciones.

    Hoy en día, Microsoft ofrece en su Visual Studio soporte a todas estas tecnologías. Un claro énfasis en permitir desarrollar fácil el Javascript, AJAX, JQuery, y en general todas las APIs para los servicios que se usan más en la actualidad. Sumemos esto a MVC y obtendremos sitios que llegan a ser hasta 10 veces más rápidos que sus antecesores ASP.NET clásicos.

    Es tanto el soporte que se quiere dar a esta tecnología, que hasta el browser: Internet Explorer 9, ahora tiene herramientas de depuración de código del lado del cliente y de monitoreo de comunicaciones HTTP que vienen enriquecidas para ofrecer más ventajas a este tipo de enfoque programático.

    No es fácil; pero solo es cuestión de animarse y dar el salto. De allí en adelante, todo será aprendizaje y mejora!



  • WarNov Developer Evangelist

    Modificando el ancho de los ScrollBars en WindowsForms

    • 0 Comments

    Hace poco en mi foro me preguntaron acerca del mecanismo para modificar estos ScrollBars por ejemplo en un grid de WindowsFors…

    Primero, una mala noticia:
    El tamaño del scrollbar en aplicaciones Windows, independientemente de qué tecnología de programación se use para presentarlo, tiene un tamaño cuyo valor es una variable global del sistema. Es por esto, que no es posible modificarlo programáticamente. Si así lo hicieras, entonces TODOS los scrollbar de windows se modificarían y por tal motivo, esa opción no está disponible en el framework.

    Ahora las posibles soluciones:

    1. Cambiar en la personalización de Windows el tamaño de los scrollbar. Esto sería una buena idea, dado que todo el sistema está destinado para ser TOUCH. Al menú accedes dando click derecho sobre el escritorio, etc…
    2. Cambiar la aplicación a WPF: Para mí la mejor elección. Sobretodo dado que una interfaz touch tiene una interacción especial con el usuario. WPF está enfocado a permitir generar experiencias de usuario sofisticadas.
    3. Hacer el control en WPF y embeberlo dentro de un Panel de la aplicación WinForms: Esto si no quieren pasar todo a WPF. Aquí información de cómo hacerlo:
      http://msdn.microsoft.com/en-us/library/ms742215.aspx


  • WarNov Developer Evangelist

    Acceso a DB desde móviles con LINQ to DataSets

    • 0 Comments

    Se está volviendo algo tradicional tener invitados a mi blog a los que agradezco mucho su colaboración a través de posts bastante buenos. Espero sea una costumbre semanal.

    En este caso se trata de Jorge Ramírez quien nos comparte un video genial para quienes están iniciándose en el desarrollo de aplicaciones móviles y desean conectarlas a bases de datos. Además, con el valor agregado del uso de LINQ en este caso! Disfrútenlo!

  • WarNov Developer Evangelist

    TaskCleaner: Velocidad en su sesión (Improving Windows Performance)

    • 0 Comments

    Supongo que como yo, en ocasiones han sentido la necesidad de que su computador corriera como si estuviese recién formateado.

    Hay muchos trucos y tips por ahí para incrementar el performance. Unos sencillos y otros tan complejos como comprar e instalar un arreglo de discos.

    Mi solución se basa en aquella que nos recomienda entrar al archivo de configuración de carga de servicios al inicio de Windows. Pero siendo este un mecanismo muy intrusivo que provoca incluso luego mensajes molestos, también tiene la desventaja de que SIEMPRE estará desactivando esos procesos y puede que eso no sea lo que queramos.

    Mi acercamiento se basa en tener unos archivos que tengan los procesos que uno no quiera ejecutándose y un programa que revisa el archivo deseado y elimina todos los procesos que estén en ejecución. Así pues, sólo se desactivaran los procesos que uno quiera cuando quiera y sin tener que ir a eliminarlos uno por uno en el task manager. Su nombre, TaskCleaner:

    Clean (2)

    La clave del algoritmo está en dos sencillas líneas que usan unos simples mecanismos que nos provee el Framework.net:

    Process[] processes = Process.GetProcessesByName(processName.Trim());
    y
    process.Kill();

    accedemos a este código a través de la inclusión:

    using System.Diagnostics;

    La idea general de mi aplicación entonces es cargar el archivo deseado, convertir su contenido en un arreglo de string donde cada entrada es el nombre (sin extensión) de uno de los procesos a eliminar (por ejemplo msnmsgr). Luego iterando sobre ese arreglo, se “matan” todas las instancias de ese proceso dado y así vamos liberando recursos de la máquina.

    Al final el aplicativo nos suministra un reporte en el que nos indica qué procesos fueron eliminados correctamente, cuáles no se dejaron eliminar (procesos de sistema por ejemplo) y cuáles no se encontraron (pues puede que la lista que hayamos hecho tenga procesos que actualmente no están en ejecución).

    He de decir que el desarrollo fue muy sencillo sobretodo gracias a LINQ que me permitió obviamente y sin problemas hacer consulta sobre el estado de los procesos. Además un claro manejo de excepciones, me permitió determinar cuando se pudieron eliminar los procesos y cuando no.

    Para que la aplicación pueda eliminar todos los procesos que tengamos en nuestro archivo, es necesario ejecutarla con privilegios de administrador; de lo contrario puede que un par de procesos no se deje desactivar. Sin embargo esto no rompe el aplicativo, sino que sencillamente se reporta en el log.

    Cómo crear el archivo de procesos no deseados?

    Es muy sencillo. Solo basta inspeccionar el TaskManager y de allí tomamos el nombre de los procesos que no queremos:

    image

    Eso sí, teniendo en cuenta NO incluir las extensiones, pues el framework busca sin extensión. Entonces en este ejemplo, sencillamente prepararíamos un archivo con el siguiente contenido:

    • babylon
    • flashutil10e
    • orbitnet
    • tweetdeck

    Y ese sería el que cargaríamos con nuestro aplicativo:

    image

    Acto seguido, damos click en “Kill Processes” y voilà!

    Este aplicativo es OpenSource y lo pueden encontrar en http://taskcleaner.codeplex.com



  • WarNov Developer Evangelist

    La nueva Eficiencia está en tus manos!

    • 0 Comments

    clip_image003

    Se trata de nuestro evento virtual de lanzamiento para Latinoamérica de 11 Productos!!!

    clip_image001

    clip_image002

    Tendremos webcasts y charlas en vivo con expertos de todo el continente.

    Personalmente estaré resolviendo sus dudas de Windows Azure desde la perspectiva de desarrollo a las 10am hora Colombia (GMT-5).

    También estaremos tratando temas relativos a Office 2010, SharePoint 2010, Visual Studio 2010, .Net Framework 4, SQL Server 2008 R2, Silverlight 4, etc.

    Regístrense haciendo click en la imagen!!!



Page 1 of 1 (12 items)