Hotfix para acelerar el desarrollo web con Visual Studio 2008 – Ahora en castellano

Hace poco comentaba en este blog que estaba disponible un parche que mejoraba Visual Studio 2008 para el desarrollo Web, y sobre todo aceleraba el ya de por si rápido diseñador Web.


En esa ocasión sólo estaba disponible en inglés. Ahora ya está disponible en castellano y otros idiomas también.


Estos retrasos en tener en otros idiomas las cosas es lo que hacen que me suela instalar todo en inglés. No deja de ser otra forma de colonialismo de los USA 😉


¡Hala! Que te sea útil.

PowerCommands para Visual Studio 2008

PowerCommands es un complemento para Visual Studio 2008 que incorpora al entorno una colección de utilidades relacionadas con la ventana de explorador de soluciones, para facilitarnos un poquito la vida a los programadores:


PowerCommands.jpg


Puedes cerrar de golpe el árbol de proyectos completo (algo muy útil en proyectos grandes donde normalmente hay que ir uno a uno y es morirse. No sé como esto no lo tiene por defecto el entorno), Copiar una clase y pegarla en otro proyecto, copiar y pegar todas las referencias entre proyectos, abrir la carpeta contenedora, abrir una línea de comandos en esa carpeta, quitar y reordenar los using de un módulo, etc…


Puedes descargarlo (y también su código fuente) desde la página de MSDN Code gallery.

En acción de combate real: aquí encontrarás muchas preguntas resueltas, en el Ask The Experts

Como seguramente sabrás si eres asiduo lector o lectora de este blog, hace un par de semanas participé como ponente en el lanzamiento de Visual Studio 2008, durante los TechDays, The Evolution Show, en Madrid.


Como parte de ese evento, aparte de la consabida ponencia, participé en una sesión de Ask The Experts (ATE) el segundo día por la tarde, enla que tuve oportunidad de conversar con mucha gente (antes,durante y después) sobre todo tipo de cuestiones técnicas relacionadas con el desarrollo Web. El ATE es, básicamente, una lotería. LLegas, y la gente que está allí te empieza a preguntar lo que se le ocurra, así que nunca sabes por dónde te van a salir. En esta ocasión la cosa fue estupenda, y los asistentes hicieron muchas preguntas interesantes. ¡Gracias a todos los que asistísteis! 🙂


Los buenos chicos de Microsoft grabaron todo el ATE para compartirlo en su página Comando Tomate, la última ida de olla de esos cracks que trabajan en DPE de Microsoft Ibérica.


Creo que a muchos de los que visitáis asiduamente este blog os pueden interesar algunas de las preguntas que contesté allí, así que os dejo los correspondientes vídeos (necesitarás Silverlight 1.0 para poder verlos).


NOTA para Geeks.ms: Si aún teniendo Silverlight no puedes verlos, mejor vete a mi post original.


· En el primero de ellos hablo sobre cómo construir aplicaciones Web en varias capas usando controles ObjectDataSource. También sobre qué es Expression Web y cómo encaja dentro de Visual Studio 2005/2008. Finalmente también contesto a la preocupación de uno de los asistentes sobre cómo proteger el código de nuestros desarrollos con ofuscadores:



· En el segundo vídeo me meto en harina con un tema peliagudo que me lanza un asistente algo despistado. Me pregunta sobre cómo manejar consultas con miles de registros en la interfaz de usuario, algo que considero muy interesante. El problema es que el buen hombre estaba todo el rato pensando en aplicaciones de escritorio (Windows Forms) y mi charla era de desarrollo Web, por lo que todo lo que le comentaba no le convencía y negaba con la cabeza continuamente, lo que me estaba poniendo un poco frenético, la verdad. Al final se dió cuenta de que estábamos hablando de cosas diferentes. No obstante el tema era de mucho interés y creo que lo que cuento puede interesar a muchos (siempre pensando en desarrollo web, claro). También hablo de cómo encapsular capacidades AJAX en controles de usuario para reutilizar en las páginas:



· Por fin, en el último vídeo del ATE hablo sobre el trabajo en equipo con Expression Web y Visual Studio, y sobre cómo es la mejor forma de utilizar DataSets tipados y LINQ To SQL en aplicaciones con requisitos cambiantes:



¡Espero que os guste! 🙂

Ya no se puede fiar uno de nadie: cuidado con cualquier aparato de almacenamiento que compres

Leo estos días el último incidente en el que un producto de consumo infecta a los pobres compradores que se lo llevan para casa. Se trata de un marco digital de 10,4 pulgadas que se vendía a través de la marca Best Buy pero era realmente de la marca Insignia. El caso es que el marquito llevaba un virus metido de fábrica que, al conetcarlo al ordenador con el cable USB, infectaba al equipo del sufrido propietario.


Al parecer, según dicen la nota de prensa que han sacado, el virus era bastante antiguo y cualquier antivirus más o menos actualizado lo debería pillar y borrarlo, pero claro, eso no quita que sea un peligro enorme. Se han infectado un número indeterminado de clientes, pero no todos los marcos tenían el virus. Han retirado el producto del mercado, pero el que se lo haya llevado para casita que se aguante ;-(


Al menos no han tenido las santas narices de decir que la culpa es de Windows por que tiene muchos virus orientados hacia él, como hicieron los de Apple hace un año cuando les pasó lo mismo con el iPod. Según Greg Joswiak, vicepresidente de Apple:



«As you might imagine, we are upset at Windows for not being more hardy against such viruses, and even more upset with ourselves for not catching it.»


Con un par. Sí señor. Puedes ver las declaraciones completas en el artículo de Computer World original.


Esto pasa hasta en las mejores familias, pues no hace mucho le ocurrió nada menos que a Seagate que envió al mercado, infectados de fábrica, «un número indeterminado» de discos Maxtor de 500 GB con un troyano que se dedicaba a robar claves de juesgos on-line.


En fin, también en la vida digital hay que tener cuidado con quién metes en casa, jeje

Build Actions en VS2008: Para qué sirve cada una y las nuevas de WPF

Este post surge a raíz de una duda que un alumno me preguntó hace unos días en uno de los cursos de campusMVP.


Cuando vas a ver las propiedades de un archivo en Visual Studio una de ellas es «Build Action», que controla el comportamiento del compilador respecto a dicho archivo. Las opciones disponibles se han ampliado en el caso de Visual Studio 2008 respecto a la versión anterior 2005, y son las que se ven en esta figura:



¿Para qué sirve cada una de ellas? Veamoslo:



· None: no hace nada con el archivo, como parece evidente 🙂


· Compile: compila el contenido del archivo. Se usa para archivos con código fuente (.cs, .vb, etc..). Si quieres dejar fuera de la compilación a uno de estos archivos puedes ponerle ‘None’ como acción.


· Content: se usa para marcar archivos que deben ser distribuidos con la aplicación (y por lo tanto copiados a la carpeta de compilación) pero que son únicamente de contenido, no de código. Por ejemplo un archivo de configuración, un gráfico, un XML, etc…


· Embedded Resource: cuando un archivo (por ejemplo un gráfico) prefieres que no se distribuya como archivo independiente sino que se incluya dentro del ensamblado de proyecto como un recurso embebido. Esto hace que a la hora de compilar el proyecto el elemento se incluya dentro del ensamblado resultante (DLL o EXE) como un recurso que podremos utilizar mediante la API correspondiente. Por ejemplo, si añades un archivo «logo.jpg» a tu proyecto y le asignas este valor para la compilación, luego puedes leer el gráfico para usarlo del siguiente modo:



Bitmap miLogo = new Bitmap(this.GetType(), «logo.jpg»);


· CodeAnalysisDictionary: esto sive para marcar un archivo XML como origen de diccionario de palabras personalizado. Esto tiene que ver con el análisis de código que hace Visual Studio (lo que antes se llamaba FxCop). Básicamente, cuando estableces las normas que debe cumplir tu código y le realizas un análisis para que te de advertencias, una de las opciones que puedes marcar es exigir que los nombres de métodos, campos y variables estén bien escritos (no tengan faltas de ortografía) para lo cual se usa un diccionario del mismo modo que en Word, por ejemplo. Si hay palabras que no están en el diccionario pero que tú consideras correctas (por ejemplo, el nombre de tu empresa) puedes incluirlas en un archivo de diccionario personalizado (como en Word, de hecho) que en este caso es un .xml que contiene una serie de palabras y está marcado con este atributo. Por ejemplo, puedes incluirle esto:



<?xml version=»1.0″ encoding=»utf-8″ ?>
<Dictionary>
   <Words>
       <Recognized>
           <Word>Krasis</Word>
           <Word>campusMVP</Word>
       </Recognized>
   </Words>
</Dictionary>


y así te reconoce estas dos palabras como válidas y no se quejará el analizador de código.


· ApplicationDefinition: Esta opción es nueva en VS2008 y se usa para identificar a los archivos de marcado XAML que contienen la definición de una aplicación WPF, esto es, un archivo XAML cuyo nodo raíz es <Application>. También se puede marcar un archivo .cs o .vb si la definición de la aplicación se hace directamente por código. Sólo puede haber un archivo en todo el proyecto marcado con esta acción de compilación.


· Page: También nueva y relacionada con WPF. Se usa para marcar archivos XAML de tipo página (normalmente con un archivo CodeBehind asociado) cuyo contenido se convierte a formato binario y se compila en un ensamblado. Suelen contener nodos de tipo Window, Page, FlowDocument o UserControl.


· Resource: similar a Embedded Resource porque incluye elementros como recursos en un ensamblado pero usado para WPF.


Espero que os resulte útil 🙂

Cómo librarse de Internet Explorer 8 en Vista

Bueno, estos días como no tengo apenas tiempo de «frikear» con código lo suplo con sucedáneos que me quiten menos tiempo. En este caso lo que he hecho ha sido probar Internet Explorer 8 Beta. Me permite seguir viendo cosas nuevas al mismo tiempo que trabajo y hago otras cosas que no tienen que ver con la programación 🙂


El caso es que precisamente por ese motivo tuve la brillante idea de instalarlo en mi equipo de trabajo habitual, en la oficina. Craso error. La actual beta de Internet Explorer es nefasta para el sistema. Lo cierto es que promete muchas cosas interesantes para cuando esté listo, pero de momento es sólo un programa que inestabilizará el sistema y no te aportará apenas nada nuevo. Desde que lo instalé hace una semana he tenido que hacer reset manual del equipo más de media docena de veces, algo que no me había ocurrido jamás con Windows Vista. Lo he quitado y todo ha vuelto a la normalidad por fortuna.


El caso es que inicialmente me llevé un susto porque fuí a «Programas y aplicaciones» en el Panel de Control y no había ni rastro de un programa de desinstalación de IE8. Por un instante me vi condenado a reinstalar el sistema. Casi me da algo. Si te fijas un poco más resulta que en Windows Vista, IE8 se instala como una actualización, no como un programa. Aunque se trate de una beta 🙁


Así que si te vas a Control Panel · Programs and features · View Installed Updates verás que te aparece el pequeño cabroncete por allí y ya lo puedes eliminar, jeje:



Espero que esto sirva para evitarle a alguno que lo instale y a otros para quitarles el susto de que no pueden quitarlo 😉

Generadores de datos personales aleatorios para pruebas

El otro día, para un proyecto, necesité disponer de una buena lista de nombres, apellidos, teléfonos y otros datos personales de individuos de distintas nacionalidades para poder hacer pruebas. Lo primero que como buen friki programador pensé fue la posibilidad de conseguir en Internet alguna lista de nombres y apellidos (busqué sobre heráldica, censos electorales y otras cosas así en Google) y luego hacer un programa para generarlos aleatoriamente combinándolos.


El caso es que llegué hasta algo mucho mejor. Se trata de un par de páginas realmente interesantes que permiten generar datos aleatorios con bastantes parámetros.


La primera de ellas es Generatedata.com:



Te permite crear una lista de registros de datospersonales simulados a elegir entre mútliples opciones (ver desplegable de la figura), y luego exportarlos a diversos formatos, incluyendo sentencias INSERT de SQL para meterlos en una base de datos. Lo malo es que sólo soporta datos de ciudades y provincias de los países que se ven en la figura (Canadá, Holanda, EEUU y Reino Unido), pero puede servirnos para muchos casos. La versión gratuita, sin registrarnos, permite generar hasta 200 registros de una vez. «Donando» 20 dólares (unos 14 euros) podemos generar 5.000 de golpe.


La segunda página ya es un poco más peligrosa y puede que roce incluso la ilegalidad, así que la pongo aquí con pinzas 😉


Se trata de Fake Name Generator:



Esto es ya «la caña». Permite elegir el género, la tipología de nombres (latinos, daneses, americanos, chinos, húngaros, eslovenos y así hasta 14 tipologías) y el país para las direcciones (a elegir entre 19 países). A partir de esto genera una ficha detalladísima de datos personales que incluye hasta número de Visa (falso, claro), número de seguridad social americano (en caso de USA), dirección de e-mail que podremos usar para recibir correo real en ella y hacernos pasar por el individuo en cuestión, o número de tracking de paquetes de UPS!!! Impresionante.


Mira lo que me generó al elegir el nombre latino de una mujer en España:




Olaya Nieto Mascarenas
Salzillo, 35
32570 Maside


Email Address: OlayaNietoMascarenas@fontdrift.com


Birthday: November 12, 1951


Visa: 4539 5050 6021 8799
Expires: 12/2011


UPS Tracking Number: 1Z 648 597 13 1249 330 9


¡Maside es un pueblo pequeño de la provincia de Ourense, no muy conocido fuera de ahí! Dudo que la calle exista allí, pero el código postal está bien y pertenece al municipio. Es tan fácil y tan preciso que casi da miedo.


Podemos ir generando así, uno a uno, o como es lógico, solicitar un número grande de datos falsos con los campos que nos interesen que podemos bajar en muchos formatos. En este caso tenemos dos opciones según la prisa que tengamos: pagar y que nos los genere de inmediato u obtenerlos gratis esperando a la cola con los demás que también lo hayan solicitado. en ese caso nos dice además el tiempo aproximado que deberemos esperar (por ejemplo, hace un momento eran unos 20 minutos solamente, pero dependiendo de la cola que haya pueden ser varias horas).


Espero que os sirva para hacer el bien 😉

Cómo sacar el diálogo "Acerca de" en Office 2007

A mi Office 2007 me gusta como al que más, pero he de confesar que, al estar acostumbrado a versiones anteriores, algunas cosas se me hacen difíciles de usar porque, básicamente, no las encuentro 🙂


El problema es que la nueva interfaz, aunque es muy productiva, cuesta acostumbrarse a ella porque todo está en lugares muy diferentes. Si eres nuevo esto es genial porque te da igual, pero para los viejos zorros como yo es un problemilla.


El caso es que el otro día me llegó con mi MSDN el Service Pack 1 para Office 2007. Como suelo tenerlo todo actualizado automáticamente me preguntaba si ya lo tenía aplicado o no, para lo cual necesito ir al «Acerca de» de cualquier herramienta de Office y comprobarlo allí. Así que abor Word y voy a buscar el típico «Ayuda·Acerca de». Nada. Ni rastro. ¿Dónde diablos puede estar esto?. Bueno, puedo asegurar que me tiré un buen rato tratando de localizarlo. Y tiene bastante dificultad porque está bastante escondido, lo cual en mi opinión es un fallo de marketing de Microsoft.


El caso es que lo comparrto aqui por si alguien tiene el mismo problema. Hay que ir al botón «Office» de Word o cuaqluiera de las otras aplicaciones de la suite y pulsar en «Opciones»:



Una vez allí, hay que ir a la pesataña «Recursos» y pulsar en el último botón:


 



Más escondido imposible. En fin… 🙁

Entrevista en PC World

PC World ha hecho un reportaje sobre el Evolution Show de Microsoft, celebrado la seman pasada en Madrid como ya sabéis, y han incluído en el vídeo también una entrevista conmigo. Podéis verla aquí:


http://www.idg.es/pcworldtech/Microsoft_lanza_sus_herramientas_profesionales_ant/vid548.htm


Salgo a partir del minuto 2:55 :-))


Mañana espero tener algo de tiempo hacia la tarde-noche y colocar un post interesante de los que tengo en la recamara.


Saludetes


JM.