Archivos de la categoría ‘Desarrollo’

Powershell para Devs

Publicado: noviembre 20, 2013 en Comunidades MS, Desarrollo, Geek, PowerShell

El pasado 12 de Noviembre del 2013 tuve la oportunidad de participar nuevamente como ponente para las Noches De Innovación, ahora ya en su 3era edición. Y nuevamente el tema fue acerca de una tecnología que, en lo personal, me parece de lo más interesante: Powershell. Esta tecnología ofrece un mundo de cosas para facilitar la vida de los administradores de TI, pero también tiene muchísimas cosas que pueden ser aprovechadas por los programadores. Durante la plática, mostré algunas de esas capacidades:


Y también durante la plática, prometí dejar algunos links que les podrían ser de utilidad e interés para continuar aprendiendo acerca de Powershell:

1) Powershell 3.0 en la Academia Virtual de Microsoft
Aquí podrán encontrar una serie de tutoriales en video para comenzar a utilizar Powershell v3 desde cero. El curso es completamente gratuito, solo necesitan contar con una cuenta de Microsoft (Hotmail, Live, Outlook, etc.)

2) Microsoft Scripting Center
En este sitio podrán encontrar un vasto numero de scripts (no solo de Powershell) ordenado por categorías y/o Sistema Operativo. También pueden aplicar filtros de búsqueda para el lenguaje en el que esta creado el script (VBScript, VB.Net, SQL, Powershell, JavaScript, Python, Perl, Kixtart, Object Rexx, Windows Shell Scripting Core, etc.)

3) Hey, Scripting Guy! Blog
Este sitio (en Ingles) contiene el Blog y la sabiduría del grupo de especialistas y entusiastas de Microsoft acerca de diversas tecnologías de scripting. Tiene una sección con links para comenzar con Powershell.

4) POSHCode
Aquí también encontraran una vasta colección de scripts, escritos en Poweshell. en conjunto con otras tecnologías (C#, ASP, Bash, XML, además de las mencionados en el punto 2). Lo notorio de este sitio es que no solo contiene Scripts enfocados a la administración de sistemas 😉

5) Este Blog 😉
Publiqué en este post algunas características básicas que bien pueden servir como punto de partida en el uso de Powershell.

Como punto adicional, los invito a estar al pendiente de las próximas jornadas de Noches De Innovación desde la página de Comunidades Tecnológicas en Facebook, y también pueden seguir la cuenta oficial en Twitter de Noches De Innovación.

¿Conocen algún otro recurso interesante para Powershell? Compártelo en los comentarios. 🙂

Desde algún bit del Kernel…

Mike

Anuncios

El próximo 13 de Noviembre del 2013 será presentado a nivel mundial la nueva versión de Visual Studio. Además de los consabidos eventos presenciales en distintas sedes, también se llevará a cabo un evento virtual de lanzamiento para que TODO MUNDO pueda conocer las novedades de Visual Studio 2013.

Microsoft ha anunciado “un gran numero de características y novedades”  para esta versión, y aunque muchas de ellas serán develadas hasta el día del evento, hoy puedo hablarles brevemente de algunas de ellas (las que me gustaron más):

1) Visual Studio Power Tools:

Aparecieron primero en modo de prueba desde Visual Studio 2010 como extensiones para el ambiente de desarrollo. Ahora, muchas de ellas ya vienen incorporadas en Visual Studio 2013.
Pueden descargar Power Tools para Visual Studio 2010 desde aquí.  Para Visual Studio 2012 aquí.

2) Mejoras en la productividad:

Desde hace mucho, un slogan de venta MUY utilizado en las nuevas versiones de TODOS los productos Microsoft ha sido “Te permite Mejorar La Productividad” pero en este caso, es más que un slogan:
Cosas como el cierre automático de corchetes y paréntesis., la posibilidad de mover líneas o bloques de código con métodos abreviados de teclado y la navegación alineada ahora están integradas. Visual Studio 2013 incluye también un nuevo Team Explorer, con una página de inicio rediseñada que simplifica la navegación entre características de colaboración en equipo, así como la posibilidad de desacoplar en una ventana independiente la vista de cambios y compilaciones pendientes.

Muchas mejoras están enfocadas a el trabajo en equipo y la colaboración. La nueva característica CodeLens nos permite conocer detalles como el historia de cada segmento de código, quién trabajó en él, qué código hace referencia a dicho bloque, etc. Esta característica CodeLens usa información contenida en los metadatos del proyecto en conjunto con Team Foundation Server para colocar elementos en cada uno de los métodos del código. Estos elementos (denominados “Decorator“) nos muestran, por ejemplo, cuales conjuntos de cambios se han hecho recientemente y quién fue la última persona que trabajó con ese bloque de código, así como qué pruebas unitarias se han aplicado al mismo, y el resultado (Superado/No Superado) de dicha prueba.

3) Integración ampliamente mejorada con Blend:

Expression Blend fue un muy buen producto enfocado principalmente a diseñadores. La ultima versión de este producto (por separado) fue la 4, pero a partir de Visual Studio 2012 se ha integrado al conjunto de herramientas disponibles. Ahora, en Visual Studio 2013, Blend para XAML se ha mejorado y ahora incluye más funciones para el diseño de aplicaciones de la Tienda Windows, tales como la incorporación de reglas y guías personalizadas para un diseño de contenido más preciso, así como mejoras en la funcionalidad de aplicación de estilos. Blend para HTML también hace eco de estas mejoras y agrega nueva funcionalidad específica para compilar aplicaciones de la Tienda Windows creadas con HTML, tales como la nueva escala de tiempo para la animación de cambios en CSS. El editor XAML incluye mejoras en el soporte de IntelliSense, que ahora también está disponible para enlace de datos, enlace de plantillas y recursos, etc.

4) Experiencia de desarrollo mejorada:

En Visual Studio 2013 se incorporan y mejoran elementos como el soporte a los Servicios móviles de Windows Azure, Nuevas plantillas para desarrollo web (ASP.NET WebForms, ASP.NET MVC, servicios de API web o WCF, etc.) Anteriormente, para trabajar con cada uno de estas tecnologías, era necesario utilizar tipos de proyectos diferentes y herramientas exclusivas de la funcionalidad de cada proyecto. Ahora, con ONE ASP.NET se unifica la experiencia del proyecto web de manera que se pueden crear aplicaciones web ASP.NET con los marcos de componentes ASP.NET que se prefiera en un único proyecto.

Del mismo modo, las herramientas para Office de Visual Studio (VSTO) presentan varios cambios interesantes, entre ellos, el poder desarrollar aplicaciones, complementos y componentes para Office 365:

Por si todo esto fuera poco, podemos observar un cambio en la apariencia: más de 400 iconos han sido rediseñados para poderlos identificar más fácilmente (Los colores ayudan :P), así como una página de inicio rediseñada y otros cambios en la interfaz en general de Visual Studio.

En fin, como les comenté, esta y (muchas) otras características serán develadas el próximo Miércoles 13 de Noviembre del 2013 (Lo cual me lleva a preguntarme por que no lo llamaron Visual Studio 2014). Nuevamente, el link para que puedan presenciar el evento está aquí. Y no se preocupen si no tiene mucha práctica con el Ingles, ya que el evento contará con traducción simultanea.

Desde algún punto del continuo espacio-tiempo…

Mike

Fuente: http://www.microsoft.com/visualstudio/eng/visual-studio-2013

Esta es una entrada rápida en respuesta a dos preguntas que me han hecho llegar con respecto a ciertos errores que se han presentado al momento de hacer la instalación del SDK de Windows Phone en Windows Server 2012, y, en parte, a modo de continuación de las entradas previas sobre el mismo tema.

NOTA: Para esta entrada no cuento con las capturas de pantalla correspondientes a los errores que me mencionan, puesto que en mi ambiente de pruebas no ocurrieron, pero recordemos que muchas condiciones pueden variar de equipo en equipo, aun en modelos con configuraciones idénticas de hardware.

A) “A required certificate is not within its validity period when verifying against the current system clock or the timestamp in the signed file”

Al parecer este error es muy común en las versiones x64 de Windows 8, 8.1 y Windows Server 2012. Sin embargo, también ha aparecido en algunas versiones de plataformas x86 (32 Bits)

Afortunadamente, la solución es bastante sencilla:

1) Desde el panel de control, procedemos a desinstalar la instalación fallida del SDK. No es necesario reiniciar el equipo después de esto, pero pueden hacerlo si lo desean.

2) Es muy recomendable contar con el archivo .ISO del SDK de Windows Phone. Procedemos a montarlo en una unidad virtual, y una vez hecho esto, entraremos a la carpeta X:\Packages\Windows_SDK (Reemplacen X por la letra que corresponda a su unidad)

3) En esa ruta, buscaremos y ejecutaremos el archivo Win8SharedSDKTools.msi

4) Listo, podemos proceder con la instalación normal.

NOTA ADICIONAL: Hace unos días se publicó una versión actualizada del instalador del SDK que corrige este problema. Pero si cuentan con el archivo de instalación antiguo, pueden llevar a cabo los pasos mencionados para corregir el problema.

B) Un error no especificado que pide el SDK 7.1 durante la instalación del SDK de Windows Phone 8 (¿?)

Si, a mi también me pareció increíblemente extraño el hecho de que la instalación del SDK de Windows Phone 8 pidiera, por alguna razón, los archivos de instalación del SDK de Windows Phone 7.1.

Pero, también afortunadamente, la solución es mucho más sencilla (y obvia, dicho sea de paso): Bastará con descargar e instalar los archivos de instalación del SDK de Windows Phone 7.1. (También, lo más recomendable es descargarlos en formato .ISO)
Para descargarlo en Español, hagan clic aquí. Para la versión en Ingles, hagan clic aquí.

Opcional: Pueden descargar e instalar la actualización 7.1.1 del SDK. La descarga en español está disponible aquí. Para Ingles, aquí.
Después de la instalación, también podrán desarrollar aplicaciones para Windows Phone 7 😉

Y con eso basta. Si se les presenta algún otro error, pueden hacérmelo saber a través de los canales que ya conocen, o simplemente pueden agregar un comentario. 🙂

Desde el Continente de Los Emprendimientos Salvajes…

Mike

En el post anterior, les mostré una forma en la que es posible ejecutar el emulador de Windows Phone 8 en un equipo que no cuenta con soporte para SLAT. Para ello, utilizamos una versión de prueba de Windows Server 2012. En esa misma entrada, mencioné algo como esto (y cito textualmente):

Lo que es mejor aún: no necesitamos comprar una licencia de Windows Server 2012 (y no, no estoy sugiriendo de ninguna manera que se consigan una copia con su distribuidor de piratería de confianza) El sitio de Microsoft nos ofrece una versión de prueba de Windows Server que podemos utilizar por 6 meses (para empezar. Pero este periodo puede ser extendido, también de manera legal ;) )

Así que, para los que 6 meses de prueba no son suficientes, les dejo la forma de extender el tiempo de prueba de Windows Server.

NOTA: Las capturas de pantalla siguientes fueron tomadas inmediatamente después de terminar la instalación del ambiente utilizado para el post anterior. Por esa razón muestran los 180 días completos del periodo de evaluación posteriores a la activación del Sistema Operativo.

Utilizaremos un script creado en VBScript llamado slmgr.vbs (su nombre es una simplificación de Software Licensing Manager) Este script sirve para configurar/supervisar el estado de licenciamiento de muchas versiones de Sistemas Operativos Windows.

Primero que nada, vamos a revisar el status de activación de nuestra instalación actual de Windows Server 2012:

Abrimos una ventana de línea de comando (con permisos de administrador) y ahí vamos a escribir slmgr.vbs /dli (dli es un modificador que significa Display License Information) seguido de “enter”. El resultado debe ser algo como esto:

slmgr.vbs /dli

slmgr.vbs /dli

Aquí podemos ver el tiempo restante que tenemos para seguir utilizando Windows Server. Para “simular” que el periodo de prueba está por llegar a su termino, vamos a adelantar 6 meses el reloj del sistema, y vamos a volver a ejecutar slmgr.vbs /dli seguido de “enter”. Ahora debemos ver algo parecido a esto:

Cambio de fecha

Cambio de fecha

Ahora veamos otra opción de slmgr.vbs. Esta vez la vamos a ejecutar con el modificador /dlv (dlv es un modificador que muestra información detallada de la licencia en uso, así como su versión. Detailed License Version). Lo que nos mostrará una ventana como esta:

Rearm

Rearm Count

Si prestamos atención a la línea resaltada, ahí podremos ver cuantas veces podemos “rearmar” (o reiniciar) el contador de activación. En este caso, aún podemos reiniciar este conteo 5 veces más. (En total, teóricamente, tendríamos entonces mas de 2 años para usar este software 😉 Les dije que todo era legal.)

Para reiniciar el contador, volveremos a ejecutar slmgr.vbs, esta vez con el modificador /rearm. Pasados unos segundos, recibiremos una notificación de que el conteo ha sido reiniciado. Para comprobarlo, volvemos a ejecutar slmgr.vbs /dlv  y en la pantalla comprobamos el resultado:

Rearmed

Rearmed

Y listo, después de la activación en línea, podemos comprobar que tenemos otros 180 días para seguir jugando con Windows Server 2012 y el SDK de Windows Phone 8.

Para todos los curiosos, el archivo del script slmgr.vbs lo pueden encontrar el la carpeta “System32” y lo pueden abrir con el poderoso y siempre versátil notepad:

SMLGR.vbs

SMLGR.vbs en Notepad

Y si quieren conocer más detalles del uso de slmgr.vbs, les dejo este link de TechNet (en Ingles)

Por cierto, ¿les comenté que con Dreamspark pueden descargar a la versión completa de Windows Server? ¡Y es gratis! Sobre este y otros excelentes recursos les platico en el siguiente post… o quizá no 😛

Desde algún punto geográfico del Planeta Gallifrey…

Mike

A estas alturas, mucha gente ya conoce y ha jugado con Windows Phone 7.x y sus herramientas de desarrollo. (Y si no lo han hecho, aún están a tiempo) La facilidad de instalación de este juego de herramientas y su compatibilidad con casi la totalidad de hardware existente desde hace 5 años hacia el presente es algo digno de ser resaltado. Sin embargo, al llegar la versión 8 de Windows Phone y su respectivo SDK, las cosas no fueron tan dulces: Para empezar, se hace hincapié en el uso de Windows 8 y Visual Studio 2012, o alguna versión express de Visual Studio 2012. (Sin embargo, es posible instalar el SDK de Windows Phone 8 en Windows 7, aunque solo será posible hacer la prueba de las Apps en un dispositivo físico con Windows Phone 8) lo que implica, por supuesto, una inversión tanto económica como de tiempo para preparar el nuevo ambiente de desarrollo.

Por si esto fuera poco, el emulador de Windows Phone 8 ahora es una criatura completamente diferente a su antecesor. Ahora es una Maquina Virtual (Por ende, aquí tenemos otra razón por la cual no es 100% compatible con Windows 7) y por lo mismo, los requerimientos de hardware también son diferentes. Para ejecutar el emulador ahora no solo es necesario que el hardware soporte Virtualización Asistida por Hardware, sino que también debe de soportar algo denominado SLAT (Second-Level Adress Translation). SLAT es una tecnología que se incorpora a nivel de procesador que se encarga de traducir las direcciones virtuales de los sistemas invitados (virtualizados) en direcciones físicas de sistema, esto con la finalidad de reducir el tiempo de respuesta de dichas maquinas virtuales. Desafortunadamente, solo el hardware relativamente reciente (de hace un par de años hacia acá) soporta esta tecnología, lo que implica tener que invertir en hardware nuevo :/

Ahora bien, si queremos saber si nuestro hardware soporta Virtualización y SLAT, podemos utilizar la herramienta gratuita coreinfo. Una vez descargada, procedemos a descomprimir el archivo en algún lugar de nuestro Disco Duro y después tenemos que abrir en esa misma ruta una ventana de línea de comando, donde procederemos a ejecutar el comando coreinfo.exe -v. El resultado debe ser como esto:

NO SLAT

Sin soporte para SLAT

NOTA: los * muestran las características soportadas, mientras que los – muestran las características faltantes o no soportadas

En mi caso, ambas tecnologías son soportadas, pero en el caso de la maquina que se muestra en la imagen anterior, desafortunadamente no es así 😦

Para complicar las cosas, el Emulador de Windows Phone requiere de Hyper-V para funcionar, e Hyper-V a su vez requiere de la tecnología SLAT para funcionar, lo que reduce nuestras posibilidades de continuar utilizando nuestro hardware actual. Sin embargo, y afortunadamente, Windows Server 2012 utiliza una versión de Hyper-V que no requiere SLAT. 😀

Lo que es mejor aún: no necesitamos comprar una licencia de Windows Server 2012 (y no, no estoy sugiriendo de ninguna manera que se consigan una copia con su distribuidor de piratería de confianza) El sitio de Microsoft nos ofrece una versión de prueba de Windows Server que podemos utilizar por 6 meses (para empezar. Pero este periodo puede ser extendido, también de manera legal ;))

Lo recomendable, por supuesto, es instalar esta versión de prueba en un disco duro ó partición física de nuestro disco duro. No es recomendable instalarlo en una Maquina Virtual. En un post anterior mostré como crear fácilmente una partición en nuestro Disco Duro actual sin tener que formatear o instalar software nuevo alguno. (Esta opción de crear la partición está disponible a partir de Windows 7)

Una vez que hemos creado la partición y hemos descargado el archivo .ISO de Windows Server 2012, procedemos con la instalación. En mi caso, estoy instalando desde Windows 8, lo que me permite montar el archivo .ISO que descargué en una unidad virtual. Todo esto con un simple clic del botón secundario del ratón:

Mount ISO

Montar .ISO

Y comenzamos:

Install

Setup

En cuanto se nos presente esta pantalla, debemos elegir alguna de las versiones disponibles para instalar. En mi caso, elegí la versión Standard con Interfaz Gráfica (GUI)

Select Version

Sever With a GUI

En la siguiente pantalla, seleccionaremos la instalación personalizada (Custom):

Custom Install

Custom Install

Esta opción nos permitirá elegir el Disco Duro o Partición que deseemos utilizar para a instalación:

Select Disk Or Partition

Unidad de destino

¡Y listo! Un par de reinicios al sistema después, podremos iniciar sesión en el escritorio de Windows Server 2012 Standard. Lo siguiente que veremos es la pantalla del Administrador de Servidores. Esta pantalla nos permite añadir funciones y características a nuestro servidor. Desde esta pantalla añadiremos las funciones de Hyper-V y el Framework que necesitamos antes de instalar el SDK de Windows Phone 8. Para añadir estas funciones y características, haremos clic en el botón “Manage” y posteriormente en la opción “Add Roles And Features

Add Features

Add Features

Y comenzamos con el asistente. En esta pantalla, simplemente haremos clic en “Next”

Add Features. Step 2

Add Features. Step 2

En la siguiente pantalla, elegiremos la opción de instalar funciones o características en un solo servidor:

SIngle Server

Single Server

La siguiente pantalla nos muestra una opción interesante: Podemos elegir instalar funciones o características sobre un servidor dentro de un pool de servidores, ¡o sobre un Disco Duro Virtual! En este caso, lo haremos sobre nuestro servidor local:

Select Server

Select Server

En la siguiente pantalla, buscaremos la opción de instalar Hyper-V, y la marcaremos:

Hyper-V

Hyper-V

Lo que inmediatamente nos mostrará otra pantalla, en la que haremos clic en “Add Features”:

Hyper-V Extra Requirements

Hyper-V Extra Requirements

En la pantalla siguiente, podemos observar que la versión 4.5 del Framework de .NET ya se encuentra instalada, pero, aunque no es necesario, opcionalmente instalaremos los componentes de la versión 3.5:

.NET Framework 3.5

.NET Framework 3.5

En la siguiente pantalla encontraremos una descripción de las funciones de Hyper-V. Aquí bastará con hacer clic en el botón “Next”

Hyper-V Notes

Hyper-V Notes

Y en la siguiente pantalla elegiremos la tarjeta de red que deseamos utilizar para crear los Switches Virtuales que nos servirán para conectar nuestras Maquinas Virtules con la red:

Virtual Switches

Virtual Switches

NOTA: En mi caso, no hay una tarjeta de red dada de alta, pero eso no es impedimento para continuar 😉

En la pantalla siguiente se nos preguntará si deseamos habilitar Hyper-V para enviar y recibir migraciones de Maquinas Virtuales a través de la red. Bastará con hacer clic en el botón “Next”

Live Migration

Live Migration

En la siguiente pantalla, el Wizard nos preguntará acerca de la ruta por default que se utilizará para el almacenamiento de los componentes de nuestras Máquinas Virtuales. También solo haremos clic en “Next”

VM Storage

VM Storage

La última pantalla nos mostrará un resumen de las características y funciones que le hemos agregado a nuestro servidor. Aquí solo haremos clic en el botón “install”

Confirmation

Confirmation

Y listo, la instalación comienza:

Install Features

Install Features Progress

Muy probablemente el sistema pida un reinicio (clásico de Windows) pero una vez que terminamos, la pantalla del Administrador de Servidores deberá verse parecida a algo como ésta:

Ready

Hyper-V Ready

Ahí comprobamos que Hyper-V ya está instalado 😀

Despues de tanto preparativo, ahora si viene la parte que estábamos esperando: la instalación del SDK de Windows Phone 8 😀

Nota: El link apunta directamente a la descarga del archivo .ISO del SDK de Windows Phone 8. De nada 😉

Una vez descargado el archivo .ISO, y al igual que hicimos anteriormente, haremos clic derecho sobre el, y haremos clic sobre la opción “Mount”

Windows Phone 8 SDK

Windows Phone 8 SDK

Como este archivo no cuenta con una opción de ejecución automática, abriremos la unidad virtual creada y procederemos con la instalación con permisos de administrador:

WP8SDK Install

WP8SDK Install

Con esto se inicia el asistente de instalación. Aquí, bastará con aceptar los términos del acuerdo de licencia y hacer clic en “INSTALL”

WP8SDK Install Step 2

WP8SDK Install Step 2

La instalación es relativamente rápida. Al termino de ella, es muy posible que debamos reiniciar una vez más:

Restart

Restart

Posteriormente al reinicio, la instalación terminara:

Success!

Success!

Para comprobar que todo está bien, haremos clic en la opción “LAUNCH” lo que nos mostrará esta pantalla:

Launch

Launch

Y después abrirá el entorno de desarrollo de Visual Studio 2012 Express para Windows Phone:

VS2012

Visual Studio 2012 Express For Windows Phone

Posteriormente, es muy posible que aparezca la opción de actualizar nuestra instalación de Visual Studio:

Update VS2012

Update Visual Studio 2012

Aunque no es estrictamente necesario, es muy recomendable instalar las actualizaciones. 😉

Finalmente, y para comprobar que todo esté funcionando como debe, vamos a hacer un nuevo proyecto (sin ninguna funcionalidad en particular, solo con una plantilla de una App de Windows Phone 8).
Posteriormente, lanzaremos el emulador (presionando f5)

Launching Emulator

Launching Emulator

¡Y listo! Habemus Emulador 😛

No SLAT? No Problem!

No SLAT? No Problem! 😀

Y ahora si… ¡Disfrútenlo! 😀

Desde algún lugar de un gran país…

Mike

Una entrada rápida como complemento a la presentación de hoy en la Comunidad Microsoft TechNet y a la entrada sobre PowerShell

Les dejo un link a mi SkyDrive de donde podrán descargar los scripts que usé en el demo, junto con el Cheat Sheet de los comandos básicos de PS y dos archivos de Excel con la lista de Alias y Comandos dentro de PS.

NOTA: Los archivos son en formato Excel 2007 y TIENEN MACROS.  En el mensaje que les muestre Excel, habiliten las macros:

Aviso de Seguridad

Sobra decir que cualquier cosa que bajen de Internet debe ser escaneada con un buen antivirus (y no MchAfee) antes de abrirlo. Es una macro muy sencilla para facilitar la lectura de filas en la hoja de cálculo.

Linea de color

Si tienen algún comentario… pásenlo a La Administración =P

Espero que les sea útil.

Atte

Mike

Update: Añadí un archivo más llamado PowerShell Day 1 que ofrece una introduccion rápida a el entorno de PS.

PowerShell 101

Publicado: marzo 1, 2011 en Comunidades MS, Desarrollo, PowerShell

En un mundo donde la inmensa mayoria de los Administradores de Sistemas están acostumbrados al clásico “Next-Next-Next-Finish” podría parecer que herramientas de línea de comando como Powershell ya no tienen una razón de ser ¿cierto?

Afortunadamente, PowerShell dista mucho de ser una herramienta de línea de comando común y corriente:

Logo

PowerShell

Originalmente denominado “Monad” (su nombre clave),  PowerShell vió la luz al mismo tiempo que Exchange Server 2007. PowerShell se incluyó en la misma caja que Exchange Server como un conjunto de herramientas “complementarias” para facilitar la administración de los servidores, las cuentas de usuarios, las cuotas de los buzones y demás etc. pero pronto su uso se extendió más allá de las tareas rutinarias de administración.

En muchos aspectos, PowerShell es muy similar al venerable command.com  (o al cmd.exe) de otras versiones de Windows. Incluso (y aunque me vean feo) es muy similar al poderoso shell de linea de comando de UNIX. Pero volviendo únicamente a los ambientes Microsoft y a la pregunta original: “y entonces, si ya existen ambientes de línea de comando para Windows, ¿para que reinventar el agua tibia?”.  A decir verdad, hay varias razones:

1) PowerShell es el siguiente paso en la evolución de ambientes de linea de comando.  Esta herramienta puede hacer todo lo que hacen command.com y cmd.exe, pero a diferencia de ellos, PowerShell trabaja con objetos (y sus propiedades) y no cadenas de texto, aunque también soporta ese modo de trabajar.

2) De la misma forma, PowerShell es capaz de explotar toda la potencia del .NET Framerork, trabajar con objetos COM, interactuar y obtener información de WMI e incluso es capaz de interactuar con archivos en XML.

3) PowerShell incorpora la inmensa mayoria de comandos existentes en command.com y cmd.exe, además de su propia lista de comandos, denominados cmdlets (se pronuncia command-lets) para lograr una nada despreciable lista de 239 cmdlets disponibles. Puede parecer difícil empezar a conocer tanto comando, pero cada uno de ellos viene perfectamente bien documentado, al igual que TODAS las funciones de PowerShell. Se puede empezar por escribir Get-Help en una ventana de PowerShell. Para darse una mejor idea de lo que hace cada cmdlet, usaremos nuevamente el comando anterior, pero ahora seguido de un espacio y el nombre de algún otro comando sobre el cual se quiera conocer. Por ejemplo: Get-Help Get-Alias.

4) PowerShell es seguro. Con 3 modos de ejecución para la ventana de linea de comando y 4 políticas de ejecución de scripts, podemos estar casi seguros de que nuestros entornos de trabajo están a salvo del usuario promedio =P. Además, por default, los archivos de script (con extensión .ps1) NO se ejecutan al hacer doble clic sobre ellos. En lugar de eso, se abren en una ventana de notepad:

Notepad

Aqui podemos apreciar los 3 modos de ejecución para la ventana de linea de comando:

Modos de ejecución

Execution Modes - Shell

Estos modos son System, User y Administrator. Básicamente, System y User son iguales, aunque si tienen sus sutiles diferencias. Ambos pueden ejecutar los cmdlets de powershell y editar scripts. Por default (y por seguridad), la ejecución de scripts esta dehabilitada. Cuando se quiere ejecutar un script antes de haber cambiado la política de ejecución, tendremos una bonita pantalla como esta:

Error de ejecución

Scripts disabled

En este punto seguramente estarán pensando: “Vaya. estos cuates de Microsoft si que son unos genios. Se acaban de inventar un ambiente de línea de comando que NO ejecuta scripts. ¿porqué se les ocurrirá tanta &%)/(%$@?“.
Una vez más, esta herramienta esta diseñada para ser SEGURA (o lo que es lo mismo, a prueba de usuarios inexpertos) así que como medio de protección, antes de ejecutar scripts por vez primera, hay que cambiar la política de ejecución de scripts. Para habilitarla, podemos hacerlo por medio de una Política de Grupo, o bien, abriendo una ventana de PowerShell en modo Administrador y ejecutar el siguiente cmdlet:

Set-ExecutionPolicy [parámetro]

Donde el parámetro será una de las 4 políticas de ejecución de scripts que había mencionado anteriormente. Estas políticas son:

• Restricted
Es la política por default. No permite ejecución de scripts, pero sí permite la ejecución de comandos (modo interactivo)
• AllSigned
Esta política solo permite la ejecución de scripts firmados por un editor de confianza. El blog de Scott Hanselman nos muestra un excelente paso-a-paso de como firmar nuestros scripts.
• RemoteSigned
Si esta política está activa los scripts procedentes de fuentes externas a nuestro equipo (Internet, un adjunto en un mensaje de correo, etc.) deben de estar firmadas o ser validadas por una fuente de confianza antes de que puedan ser ejecutados.
• Unrestricted
Sin restricciones. Todos los comandos, scripts y archivos de configuración serán ejecutados sin pedir confirmación. Los scripts procedentes de fuentes externas solo emiten un aviso antes de ser ejecutados. (Úsese bajo su propio riesgo =P)

y 5) PowerShell es extensible. PowerShell como tal ya ofrece una funcionalidad bastante extensa, pero para facilitarnos aún más las cosas, es posible agregarle funcionalidad usando snap-ins. Esencialmente, un snap-in es un ensamblado de .NET que contiene cmdlets, providers, y algunos otros componentes. Escribimos un snap-in cuando deseamos que nuestros propios cmdlets formen parte de PowerShell desde el inicio de sesión y que se carguen automáticamente. De la misma forma, podemos remover esos snap-ins cuando ya no los utilizemos. (Sin embargo, los snap-ins que ya vienen con PowerShell NO pueden ser removidos.)

Además, PowerShell incluye un entorno integrado de scripting (ISE – Integrated Scripting Environment) que nos permitirá editar, probar y ejecutar nuestros scripts de una manera cómoda y además, separados con códigos de colores:

Ps-ISE

ISE - Integrated Scripting Environment

Como pueden notar, PowerShell ofrece un sinnumero de opciones para que podamos utilizarlo, pero sobre todo, también para que podamos divertirnos con él. En la sesión de Marzo de la Comunidad Microsoft TechNet estaré hablando un poco más sobre PowerShell y además mostraré a qué me refiero cuando digo que también podemos divertirnos (y mucho) con él. Para muestra, les dejo está imagen:

PSInvaders

PSI

Y además publicaré algunos recursos adicionales que mostraré durante la sesión, así que espero verlos por allá.

¡SalU2!

Mike.

Hace unos meses, Microsoft “destapó” una versión propietaria de los “viejos” códigos QR (Quick Response) y a decir verdad, se vé MUY prometedor, además que también se ven muy cool en las tarjetas de presentación:

Básicamente, lo que se hace es apuntar la cámara del celular a la imagen, y en ese momento se nos devuelve un juego de información que puede ir desde un link, hasta una aplicación que nos permitirá comprar boletos en linea. A pesar de que esta tecnología no es nueva (apareció por ahí de los 90’s, evolucionada de los códigos de barras), Microsoft la está impulsando debido al auge que están teniendo los dispositivos móviles que son capaces de decodificar información a partir de una imagen y utilizar esta info con fines de marketing y comunicación principalmente.

He aqui un video del CES 2009:

Y si, a pesar de que el proyecto tiene poco mas de un año, por alguna razón no se le ha dado mucha publicidad.

En cualquier caso, y más allá de los fines de marketing que se le puedan dar, para los developers es una oportunidad más de innovar y de ofrecer un valor agregado a nuestras apps. El sitio oficial de Microsoft Tag ofrece la posibilidad de descargar las APIs para incorporarlas en nuestros propios proyectos, además de que desde el mismo sitio web podemos generar nuestros propios TAGs, tantos como se nos ocurra y que contengan la información que nos parezca mas pertinente. Por si fuera poco, el portal también ofrece la capacidad de dar seguimiento con métricas a cada TAG que generemos.

En cuanto al software lector para dispositivos, está disponible para todos los gustos: hay para Windows Phones logicamente, pero tambien los hay para iPhone, Android, BlackBerry, Symbian y hasta para teléfonos mas sencillos (y baratos) que al menos soporten J2ME. Para obtenerlo, solo hace falta que navegue desde su teléfono a http://gettag.mobi y se detectará la version más adecuada para su dispositivo. Incluso hay una versión “genérica” en caso de que el modelo no sea detectado. Una vez que tengan su software lector, les invito a que escaneen el TAG que está al principio de este post. 😉

Que lo disfruten.

Mike

Bajo el Slogan “¡El Desarrollo Web está a punto de ser más fácil!”  Microsoft se está preparando para el lanzamiento OFICIAL el dia Jueves 13 de Enero, a través de CodeMash a partir de las 11:00 AM. Este evanto será transmitido en vivo desde EU, pero pueden estar seguros que tendremos eventos locales en los meses próximos.

Pero ¿y que es WebMatrix?

A pesar de que WebMatrix NO es una herramienta nueva, Microsoft decidió reciclar el nombre e inyectarle nueva vida a un “viejo” programa: http://www.asp.net/webmatrix, así que si el nombre les suena familiar, quizá tengan razón: el antecesor de Visual Web Developer Express 2005 se llamaba Web Matrix, y este IDE ofrecía una forma básica, pero sin dejar de ser potente, para desarrollar proyectos ASP.NET 1.1. Sin embargo, lo único que tiene en común con el “viejo” WebMatrix es el nombre. Esta versión ya no incluye Cassini (que era algo así como un mini-IIS) pero hoy en dia, IIS está presente en casi toda versión de Windows Vista y Windows 7, y también existe una versión de IIS que se incluye con esta nueva versión de WebMatrix y con Visual Web Developer Express.

A pesar de que Microsoft ya ofrecía otras herramientas de desarrollo para ASP .NET tales como Visual Studio e incluso otras que también son gratuitas, como el ya mencionado Visual Web Developer Express, Micorosft decidió añadirle más funcionalidades a esta herramienta y así ampliar el rango de gente que se interese en este producto. Por ejemplo, ahora en WebMatrix se pueden desarrollar sitios no solo en ASP .NET y ASP Clásico, también podemos programar en PHP (aunque el soporte para PHP esté algo limitado), Web Forms (.aspx) y para el nuevo modelo de páginas en cshtml o .vbhtml, para los que se vamos a poder usar la flamante sintaxis Razor. Otras funcionalidades incluyen la habilidad de crear sitios web a partir de plantillas descargables tales como Joomla, DNN, WordPress etc,  y por si fuera poco un wizard (o asistente)  que lleva paso a paso a los usuarios durante el proceso de creación y configuración de los servicios necesarios. WebMatrix identificará e instalará cualquier prerequisito, tales como las bases de datos necesarias y su configuración posterior. Por cierto, la base de datos utilizada es SQL Server Compact Edition (CE) 4.0, cuyo limite es de 4Gb, pero probablemente este límite será incrementado en futuras versiones, y lo mejor de todo es que en cualquier momento se puede hacer la migración a una versión más “grande” de SQL con solo hacer unos cuantos clics.

Como ven, WebMatrix se presenta como una excelente opción para el desarrollo web, a pesar de ser gratuito.

¡Salu2!

Mike.