18 mayo 2005

Developer Days: Visual Studio 2005

Como lo prometido es deuda, he aquí un relato pormenorizado de mis andanzas de ayer. Como sabréis los dos o tres que leéis este blog (hola, mamá!) ayer se celebró el Developer Days 2005, en los cines Kinépolis de Madrid; para presentar las novedades ya disponibles en la beta 2 de VS 2005 y unas cuantas cosas más. Antes de nada, pedir disculpas por la ausencia de acentos: mi PDA no los tiene, y alguno se me escapará al revisar el documento. En fin, vamos a ello.


0700: Monto en la Continental, A.K.A. la Conti, el autobús interurbano que me llleva a Madrid, y al tajo, todos los dias. Pero en este caso el trayecto es cojonudo: de Alcalá a Canillejas (afueras de Madrid) en bus, metro linea 5 hasta Aluche (afueras de Madrid... al otro extremo) nada menos (27 estaciones) y luego otro autobús hasta Ciudad de la Imagen y los cines Kinepolis. Necesito un coche.

0905: Llego a Kinepolis. Al final he tenido que coger un tax, porque la cola para coger el autobús que me hubiera llevado a Ciudad de la Imagen era tremenda: no se hubiera vaciado ni con que llegaran cinco autobuses de golpe.

0930: Presentación del evento. En la pantalla del cine proyectan un fondo de pantalla con motivos Microsoft y circunscrito a ese fondo una pantalla en la que se muestran las presentaciones, como es costumbre. Pero lo que nos recibe es una especie de muñeco 3D, más hortera que Ágatha Ruiz de la Prada en Halloween, con un insoportable acento francés (supongo que culpa del animador que hablaba por el bicho, que intenta infructuosamente que lo aplaudemos o que le digamos a coro buenos días como el público subnormal de los Teletienda yankees. A ver cuando aprenden que esto es España, joer. El muñequito presenta a un alto cargo de Microsoft, que no recordé apuntar como se llamaba ni que cargo tenía, sorry. Empezamos bien. El caso es que el hombre nos dio una charla optimista acerca de cómo el negocio IT está despegando (otra vez) en España, pero esta vez de verdad, no como el espejismo punto com. Otra cosa que dijo, y que después me dio que pensar, es que España puede ser el destino de, y cito, proyectos complejos de deslocalización. ¿Y se supone que eso debe ser motivo de alegría? Para aquellos de vosotros que no llevéis corbata, la deslocalización es el proceso por el cual una empresa se da cuenta de que sus curritos cobran demasiado y de que en la India (por ejemplo) parece que les pueden hacer el mismo trabajo por mucho menos dinero. Quien dice la India dice Rumanía, Rusia, Huesca o Villacabras del Palancar. Cualquier sitio en el que el nivel de vida sea más bajo que el tuyo y los sueldos, también. Por lo tanto, lo que se hace es despedir a todos los trabajadores locales (que ya se sabe que cobran demasiado y encima son avariciosos y siempre quieren cobrar más) y deslocalizar los proyectos haciendo que los hagan hindúes que no sólo cobran menos sino que además no piden tantas zarandajas como seguros médicos, cobertura al desempleo, días de vacaciones remunerados y otros estorbos que hacen que la empresa no gane toda la pasta que debería; que es, sencillamente, toda. En fin, que me pierdo: que me resulta muy curioso que deba ser motivo de alegría el ser receptores de proyectos complejos de deslocalización. En lo obvio, sí, debemos alegrarnos: más curro para todos, lo que siempre es bueno. En lo no tan obvio, uno piensa que si se vienen aquí proyectos de otros lados sencillamente debe ser porque estamos mal, muy mal en materias de retribuciones, beneficios sociales y esas cosas comparados con los países que nos van a echar la mier... digo, a deslocalizar sus proyectos. Otra cosa es lo imaginativos que son los directivos de las empresas cuando se trata de abaratar costes: siempre parecen pensar vamos a joder a los de costumbre. Y cuando no son despidos masivos, son regulaciones de empleo y ahora las deslocalizaciones. Joer, os juro que el día que unos ejecutivos se reduzcan el sueldo a límites razonables para abaratar costes habrá que hacerles una estatua o algo.

En fín, que me pierdo. Otra cosa interesante que mencionó este hombre (de verdad que lamento no haber apuntado quién era) es la iniciativa DotNet Solidario, una iniciativa apadrinada por Microsoft mediante la cual se quiere proporcionar herramientas software gratuitas a las ONGs que lo deseen (y que no piensen que Linux es más alternativo y radi y más guays, y por lo tanto más adecuado a su ONG, claro). Aquellas ONGs que se apunten a la iniciativa (y ya hay unas cuantas) disponen de un Visual Studio NET 2003 gratis, amén de un hosting completito también por la patilla. No sólo eso: si eres desarrollador y quieres colaborar construyendo la página web de una ONG, puedes apuntarte.

1000: Presentacion de Compact Framework 2.0, por Alejandro Mezcua. Para mí, unas de las presentaciones más excitantes de la mañana, aunque vi a bastante gente dormida. Justo antes de que comenzara la presentación nos enseñaron un sistema novedoso en los Dev Days: para hacer que la gente pudiera preguntar, han copiado a programas estilo Salsa Rosa y han habilitado un número de teléfono para que la gente pudiera enviar preguntas por SMS (eso sí, a un teléfono normal). Montaron un servicio web conectado al teléfono móvil de destino que recogía los mensajes recibidos y los enviaba a un Windows Forms. Nos enseñaron por encima cómo hacerlo y parecía simple. Envié una pregunta, claro.
En general, podemos esperar un rendimiento y unas capacidades muy mejoradas en la nueva CF. Entre lo destacable, mencionar mejoras en el manejo de strings, XML y ADO .NET con SQL Mobile (la nueva versión de SQL CE, claro). Validación de Schemas para XML (pero no para DTD), soporte XPath y serialización genérica con XmlSerializer. Los controles, por fin, permitirán docking. Los formularios incluirán automáticamente un scroll cuando el formulario sobrepase las dimensiones de la pantalla. Eventos SuspendLayout y ResumeLayout. ChangeOrientation para cambiar la orientación de la pantalla, apaisado o vertical, incluida en el CF. Adaptación automática de los formularios y sus controles a los cambios de resolución, o de rotación. Controles nuevos: DateTimePicker, MonthCalendar, DocumentList, LinkLabel, Notification, Help, DataGrid, WebBrowser. Añadido soporte para el portapapeles. Eventos y propiedades para teclados. Intellisense mejorado: muestra solo los elementos relacionados con el tipo de dispositivo con el que estemos trabajando. Herramientas remotas, proyectos de instalacion mas conpletos que la simple generación de ficheros CAB que tenemos en el CF 1.1. SQL Mobile estara muy integrado con SQL Server 2005 y VS 2005, con soporte DTS y plan de ejecucion grafico. Se podrá realizar databinding mediante drag and drop. Nuevo cursor, SqlCeResultset, navegable y actualizable, y permite DataBinding. Mas de una conexion simultanea permitida con BDD. Compresion automatica de la BDD. Mejoras en la sincronización con SQL Server 2005. Rendimiento mejorado en la sincronización (update de datos, no de registros completos). Y una novedad muy curiosa: el diseñador de Forms viene ya con el skin del dispositivo de destino, para que sepamos de antemano cómo queda la aplicación visualmente. El skin es personalizable para que podamos incluir las características propias del dispositivo. En general, una muy buena presentación.

1100: El muñeco francés es un hortera, y no tiene ni puta gracia.

1100: Leonardo Diez nos presenta las novedades del Framework 2.0. Incluirá soporte para hardware de 64 bits, en el CLR y las librerías de clases para WinForms, ADO.NET, ASP.NET y servicios Web. No se podrán hacer llamadas a APIs nativas ni código no manejado. Permite desarrollar en plataformas 32 bits y depurar remotamente en plataformas 64 bits. Aparte de eso, se incluye el muy añorado por los programadores de VB6 Edit & Continue, soportado por el CLR y el compilador, en C# y en VB .NET, Win y Web Forms. Para aquél que no lo haya experimentado nunca, era la posibilidad de detener la ejecución en modo depuración y poder hacer cambios en tu código directamente, para poder continuar la ejecución después con el código nuevo. Personalmente, no lo hecho de menos: es una mala práctica.Se dará mucha más información al programador en modo debug: DataTips mejorados, inspección de objetos simplificada, visores de tipos para DataSet, XML y HTML. Esto de los visores de tipos es impresionante: imaginaos que tenéis un objeto XML que, a fin de cuentas, es un chorro tremendo en formato string. En modo debug, podremos abrir su datatip, expandirlo y elegir verlo en un visor: podremos ver los datos en modo jerárquico, con exactamente la misma presentación que hace IExplorer de XML. Si abrimos de esta manera un dataset en modo debug, nos abre un formulario con los datos que tiene nuestro dataset en formato rejilla. Es más, podremos crear visualizadores personalizados para nuestros objetos. A estas alturas yo ya estaba babeando. Mucho. Otra característica interesante: ObjectTestBench y la ventana de Inmediato nos permitirán ver el comportamiento de nuestros objetos antes de ejecutar la aplicación. Los ya mencionados genéricos, y tipos parciales que es la capacidad de definir nuestras clases en múltiples ficheros .CS para por ejemplo separar nuestro código del autogenerado o para mejorar la compartición de trabajo, simplemente declarando la clase como partial y respetando las sencillas restricciones que hay. Para VB .NET se añaden las clases My, que en Microsoft denominan clases de acceso directo: My.Application, My.Computer, My.Forms, My.User, My.Settings, y un largo etc. Es una simplificación de código pura y dura. No me emocionó la idea: parece ser que desde la misma Microsoft desprecian a VB haciendo el lenguaje de programación for dummies. Tendremos snippets de código incluidos, Intellisense mejorado, refactorización, corrector sintáctico mejorado, etc. Es decir, exactamente lo mismo que ahora hace ReSharper, pero incluido. En concreto, las capacidades de Refactoring incluyen el renombrado inteligente de variables, extracción automática de métodos e interfaces, quitar o reordenar parámetros, y convertir automáticamente variables en propiedades. Otra cosa que me gustó, porque recientemente me ha tocado de cerca, es que en C# se ha simplificado mucho la creación de enumeradores mediante la sentencia yield.

11:35 Descanso. Justo cuando pienso en lo coñazo que es venir a estos eventos solo, me encuentro con un antiguo compañero de curro y su novia. =)

1200: Pasan un anuncio del proximo TechEd, en Amsterdam. Cómo me gustaría ir. Pero los 2250 € no están, sencillamente, a mi alcance. Y eso es la inscripción en el evento, viaje y alojamiento no incluidos. Y aunque tuviera esa pasta la guardaría para comprarme una licencia de VSTS.

1205: Para mi sorpresa, y cuando creí que se habrían olvidado, me responden a la pregunta que hice por el móvil. En efecto, me dicen que las capacidades P/Invoke del CF 2.0 están muy mejoradas. Y que se han aplicado el cuento viendo a los de OpenNETCF (al fin y al cabo, son MVPs) y que la CF 2.0 incorporará bastantes clases wrapper para acceder a funcionalidad de la máquina a bajo nivel de forma cómoda. Bien, pero que muy bien. Por otro lado, nos comentan que por un problema logístico no han podido entregarnos el DVD con la beta 2 de VS en la bolsa de bienvenida (que pesa un quintal, y el 90% es morralla); pero que las mandarán por correo a todos los asistentes. Ya tengo dos. =)

1210: Pablo Peláez nos presenta VSTO 2.0: Visual Studio Tools for Office, basándose en el paradigma smart client que Microsoft lleva un tiempo defendiendo (y yo también, por modesta que sea mi aportación). VSTO es un modelo de código subyacente para desarrollar soluciones centradas en documentos Office, aunque de momento sólo funciona para Word y Excel, usando codigo manejado. VSTO, y esto lo recalcó bastante el ponente, no reemplaza de momento a Visual Basic for Applications o VBA, sino que lo complementa. En el propio IDE de VS se incluyen diseñadores para documentos Word y Excel, y dichos documentos incluyen soporte a controles .NET y un modelo de programación mejorado: de hecho es un modelo-vista-controlador, al estilo ASP .NET. Para hacer una distribución desconectada de nuestros documentos, y que podamos mostrar documentos Word o Excel sin tener que instanciarlos, podemos crear islas de datos, insertadas en el assembly. La demo fue bastante impresionante: Peláez cogió un típico documento Excel de cálculo de hipotecas y lo convirtió en un momento en un documento interactivo, que recibía fotos de un servicio Web, etc.

1230: WinForms, por el mismo ponente. Me doy cuenta al revisar mis notas que de esto he tomado muy pocas, pero es un detalle que se debe interpretar al revés. Escribir en la PDA es duro (o al menos yo no estoy acostumbrado) y si tomé pocas notas en esta charla fue precisamente porque me dejo impresionado, no por falta de novedades. Los ya mencionadas DataTips, smart tags, document outline y edición rápida de propiedades. Auto alineamiento de controles, y reglas para la alineación de los mismos. Nuevas fuentes de datos. ClickOnce para deployment inteligente de clientes via web (im-pre-si-o-nan-te). Mejoras en los procesos de instalación y desinstalación de nuestras aplicaciones Windows. Podemos seleccionar campos de una base de datos desde la vista de servidores y al arrastrarlos sobre el formulario se traducen en sus correspondientes controles TextBox o ComboBox o NumericUpDown. Controles Panel con layout interno invisible para posicionar controles. Redimensionado automático de controles al cambiar tamaños de pantalla. Autoscroll. Etc.

1245: César de la Torre nos presentó las novedades en ASP NET 2.0. Y son unas cuantas: las master pages, que permiten crear una plantilla fija para nuestro sitio web y que el resto de las páginas hagan uso de la herencia visual y hereden partes o todo el aspecto de las master pages. Temas, skins. Se introducen los profiles: almacenes de datos persistentes, fuertemente tipados, que no tienen nada que ver son los SessionState actuales. Controles nuevos para WebForms. Muchos controles nuevos. Pero muchos, muchos: unos cincuenta y pico. TreeView, SiteMap, controles de navegación, GridView mejorada, DetailsView, controles DataSource SqlDataSource para hacer databinding directamente con una base de datos y ObjectDataBinding para hacer databinding con nuestros propios objetos de lógica de negocio. Nuevos servicios base: membership para logins con interfaz multi-proveedor, controles web integrales de login y servicio web para gestión de roles. Y Web Parts. Web Parts, que es un marco de trabajo para construir aplicaciones tipo portales, que permite en tiempo de ejecución que un usuario con derechos de administrador pueda manejar a su antojo la distribución de las páginas mediante drag&drop, los contenidos, la conexión entre distintos Web Parts, etc.

1520: Por culpa de mi manía de comer con calma, llego muy tarde a la presentacion de SQL Server 2005, que empezaba a las 14:45. Llego a tiempo para ver al ponente hablar sobre índices sobre campos Xml y consultas XQuery. Lo lamento de veras porque tenía ganas de ver las capacidades nuevas del gestor.

1530: Presentacion de VS Team Suite (VSTS) y VS Foundation Server (VSFS). Quieren hacerla graciosa, y esta vez lo consiguen. Tres MVPs nos presentan una especie de obra de teatro improvisado, en la cual van interpretando los diversos papeles que componen la empresa ficticia Hinojo Software Factory y su crítico proyecto Hola Mundo. Y la verdad es que ambos productos darán mucho que hablar en los próximos meses: han conseguido juntar Visual Studio con Project con Visio para que todo el ciclo de vida de una aplicación vaya de la manita e integrado. Muy curioso el momento cuando uno de los MVPs pidió en la sala que levantásemos la mano los que hacíamos testeos unitarios,... y levantamos la mano dos personas.

1645: Comentario del programa colaborativo Desarrolla con MSDN, con presentación de la aplicación MSDN Video, con la que Microsoft quiere mostrar un ejemplo de best practices lo bastante grande como para que tenga miga. Y vaya si la tiene. El ponente crea una aplicación sencillita en respetuoso formato tres capas y explayándose en las explicaciones de cómo hacer las cosas bien utilizando las clases ya creadas de MSDN Video como ejemplo. Al final añade un servicio web (claro) como proxy de la lógica de negocio para disociar completamente las capas. Y al final, para babeo absoluto del personal (por lo menos, mío) y con la excusa de que hay que irse acostumbrando que viene Avalon, va y utiliza un interfaz manejado con código fuente DirectX 9 administrado: las portadas de las películas se veían en una especie de TV tridimensional que podía rotar, entre otras cosas. Una pasada. Al final, y utilizando como cobaya al invitado sorpresa, demostraron el uso de un cacharro hardware que es una especie de diapasón gigante que se supone que controla los movimientos del usuario y permite que éste maneje la interfaz con las manos, estilo Minority Report. Debido a la escasa luz ambiental del cine no funcionaba muy bien.

1740: Invitado final sorpresa y fin de fiesta. El invitado era Pablo Motos, que se marcó un acto de stand-up comedy (que por fin se ha puesto de moda en España, joer). Me gustó bastante, la verdad.

NOTA.- Arfs! Mi post más largo sin duda. Tenéis que ver la versión en inglés. ;-)

8 Comments:

  • Muy curioso el momento cuando uno de los MVPs pidió en la sala que levantásemos la mano los que hacíamos testeos unitarios,... y levantamos la mano dos personas.

    Mosquis, asi que tu eras el otro!? La verdad es que el VSTS me parece algo impresionante. Por fin podre quemar el Visio, el Project (que ni usaba), el NUnit y el NAnt. Buenas noticias para mi vagancia ;)

    By Blogger P4K0 Null, at 1:45 p. m.  

  • Hehehehehe... sí, yo debía ser el otro. Eso sí, si hubieran preguntado quien utiliza NUnit en serio me temo que te hubieras quedado solo... El VSTS va a ser impresionante en un entorno empresarial, pero ten en cuenta que no va a usar NUnit ni NAnt, sino los equivalentes oficiales Microsoft de esas herramientas, que en casa seguiremos usando.

    By Blogger CodeCruncher, at 4:08 p. m.  

  • Usar NUnit en serio? Ni de coña, como buen universitario que soy no hago nada que sea medianamente serio :)

    En cuanto a lo de usarlo solo en entornos empresariales, no tiene porque. Con la Academic Alliance yo puedo usar legalmente TODO el software de Microsoft, al menos mientras siga en la universidad. Incluso tenemos un XP Pro con infromacionde debug para desarrollar drivers! Eso si, nada de desarrollar programas comerciales con ello, asi que tienes razon con lo de seguir usandolos en casa...hasta que el SharpDeveloper o algun otro IDE del estilo los integre

    By Blogger P4K0 Null, at 4:34 p. m.  

  • Por otra parte, coincido contigo: el bicho morado es la peste xD

    By Blogger P4K0 Null, at 4:52 p. m.  

  • ¿Cuanto le puede desgravar a Microsoft que una ONG pille su Donet Solidario?

    Si tu dices que cuando una ONG pilla linux es por que va de güais (sintetizando tu idea) supongo que será igual de adecuado decir que si elige la solución de Microsoft son unos perros bien domados. ¿No?

    Quejate de los taliban del software libre (que los hay, por supuesto), pero tu no vas a la zaga haciendo eco a la voz de tu amo.

    By Anonymous Anónimo, at 3:04 p. m.  

  • ¿Cuanto le puede desgravar a Microsoft que una ONG pille su Donet Solidario?

    Está visto que algunos de los defensores del software gratis(*) os tenéis bien aprendida la lección: cuando EL MAL tiene una iniciativa digna de elogio, es porque desgravará impuestos. Qué malo es el Imperio, que tiene que ganar dinero, no como otros que viven de la bondad de sus ideas...

    Si tu dices que cuando una ONG pilla linux es por que va de güais (sintetizando tu idea)

    Ocurre mucho. Todavía recuerdo la vergonzante (por lo impresentablemente estúpida) actitud de algunos en BarraPunto cuando comentaron la noticia de los millones de pasta que se dejaba Bill Gates en fundaciones, programas de ayuda y esas cosas. Recuerdo a un tío particularmente idiota que afirmaba sin pudor que a los pobres de África les convenían más los servidores Linux que los dólares de Tío Bill, que era mejor que tuvieran software gratis(*) que comida o alimentos. Será que el tío en cuestión se alimenta de distros de Fedora. En fin.

    supongo que será igual de adecuado decir que si elige la solución de Microsoft son unos perros bien domados. ¿No?

    No. Microsoft no les apunta con un arma en la nuca para que dejen el software que tengan (si lo tienen) y se pasen al Mal. Microsoft lo que hace es decir: "ya que sois organizaciones sin ánimo de lucro que se supone que no tenéis beneficios, el soft de MS no os va a costar ni un duro. Es más, os vamos a poner en contacto con una serie de voluntarios que van a trabajar en vuestra web por el morro". Es decir, exactamente lo mismo que el software gratis(*), pero de MS. Y así se convierte una cuestión de elección, esa palabra que a Stallman le debe dar dentera.

    Quejate de los taliban del software libre (que los hay, por supuesto), pero tu no vas a la zaga haciendo eco a la voz de tu amo.

    Sí que los hay, sí. De hecho me parece estar hablando con uno, si no me equivoco. Ah! Y si me llamas perro, al menos ten la decencia de decirme cómo te llamas.

    (*) No, no me he equivocado. He decidido que a partir de ahora lo voy a llamar software gratis en lugar de software libre, porque yo no sé vosotros, pero ésa no es mi idea de la libertad.

    By Blogger CodeCruncher, at 11:37 p. m.  

  • Es increbile hasta que punto llega esta guerra inutil. Sicneramente primero contestando al cichoe ste decirle que no confunda loq ue aquis e ha comentado,

    a) software libre = "Codigo abierto"
    b) software gratis = "Software gratuito"

    No te confundas tio, esa guerra de lo gratuito y lo de pago, del opensource y el no ver ni una linea no tiene nada que ver con lso que aqui se esta hablando, y sinceramente como tb se ha comentado doy gracias a dios a que hoy se pueda elegir, cada uno que elija lo que quiera ni tu me tienes que decir porque consideras mejor el software libre ni porque otra persona decide que uno de pago e smejor. Cada uno compara, testea y luego elije.

    Yo estoy haciendo un proyecto para el final de mi carrera y lo estoy haciendo en la beta del ASP .NET 2.0. Que por cierto me alegro de no ser el unico de usarlo, jeje. Despues de comprar con la competencia y tal, decidi esto porque considero que la ventaja para la empresa usando el .NET es que no tienes que tener un tio dedicado ha hacer software para la red y otro software normal, con .NET conseguimos que un tio que no sepa de esto pero si de lo otro lo domine sin problemas, de ahi a que te digo que cada unod ecide, ni es mas o menos criticable, es cuestiond e eleccion y gustos.

    Por cierto lastima haberme perdido la charla. El tema de herramientas y tal esta bastante bien, se consigue todo sin escribir casi ninguna linea, siempre que no quieres algo especifico, porque o sino... En lo unico que me da miedo es el tema del servidor. Lo montare en un ISS 6 y por lo que me han dixo sigue siendo igual de "seguro" que su anterior version. Espero que no tenga tantos agujeros...

    A por cierto, para el amigo, decirle que puedes encontrar version gratuita de SQL Server 2005, entornod e desarrollo con muchisimas herramientas, el Developer, Servidor gratuito, el ISS, e incluso si mal no creo una version rgatuita del W2003 Server, asi que dime las diferencias con o gran software gratuito...

    By Anonymous Xavieret, at 12:50 a. m.  

  • Soy una novata en esto del software y la verdad estoy súper asustada con todo lo que platican aquí, pero me podrías decir que porcentaje crees que vas a utilizar de todas estas nuevas ventajas?

    By Anonymous Anónimo, at 12:42 a. m.  

Publicar un comentario

<< Home