[#AZURE] HowTo: Publicar una aplicacion ClickOnce en un website de Azure

image

Buenas,

hoy toca un tutorial de esos rápidos que espero que te ahorre un poco de tiempo, en lugar de investigar como hacerlo. Lo que queremos hacer es simple: publicar una aplicacion WPF con ClickOnce, utilizando un website de Azure como nuestro punto de distribución y actualización. Vamos con el paso a paso.

1. En el portal de AZURE (www.azure.com) creamos un nuevo elemento de tipo “COMPUTE // WEB SITE / QUICK CREATE”.

image

2. Para esta demo el website creado se identifica con http://elbrunoclickonce.azurewebsites.net.

3. Listo AZURE, ahora vamos a Visual Studio 2012 y creamos un nuevo proyecto de tipo WPF Application. En este caso la he llamado “ElBrunoClickOnce”.

image

4. Este paso es opcional pero viene bien para probar nuestros despliegues, mostraremos el número de versión del despliegue de ClickOnce en el título del MainWindow.

5. Agregamos una referencia a System.Deployment.

6. Modificamos el código del MainWindow

   1: using System.Windows;

   2:  

   3: namespace ElBrunoClickOnce

   4: {

   5:     public partial class MainWindow : Window

   6:     {

   7:         public MainWindow()

   8:         {

   9:             InitializeComponent();

  10:             DisplayVersion();

  11:         }

  12:  

  13:         private void DisplayVersion()

  14:         {

  15:             var version = string.Format("assembly: {0}", ((System.Reflection.AssemblyFileVersionAttribute)

  16: (System.Reflection.Assembly.GetExecutingAssembly().

  17: GetCustomAttributes(typeof(System.Reflection.AssemblyFileVersionAttribute), 

  18: false)[0])).Version);

  19:  

  20:             if (System.Deployment.Application.ApplicationDeployment.IsNetworkDeployed)

  21:             {

  22:                 System.Deployment.Application.ApplicationDeployment ad =

  23:                 System.Deployment.Application.ApplicationDeployment.CurrentDeployment;

  24:                 version = string.Format("ClickOnce: {0}", ad.CurrentVersion.ToString());

  25:             }

  26:             Title = version;

  27:         }

  28:     }

  29: }

7. Si ejecutamos la aplicación veremos el número de versión por defecto del ensamblado

image

8. Ahora que tenemos nuestra aplicación, procederemos a publicar la misma en website de Azure. Para esto primero agregaremos un proyecto de tipo ASP.Net MVC 4 a nuestra solución. En este caso lo he llamado “ElBrunoClickOncePublish”.

image

9. Dentro del nuevo proyecto creamos una carpeta llamada “install”

image

10. Ahora publicaremos nuestro proyecto web a Azure. Por suerte los amigos de Microsoft lo han hecho cada vez más fácil, con cada nuevo upgrade de AZURE. Vamos por el camino más fácil de todos: seleccionamos nuestro proyecto Web, deplegamos el context menu y seleccionamos “Publish”

image

11. A continuación debemos seleccionar un perfil para la publicación. Podemos descargar este perfil desde la consola de administración de AZURE de nuestro website.

image

12. Un método más simple, disponible desde el último update de AZURE, es seleccionar “Import” y con nuestras credenciales de AZURE, seleccionar el website de target.

image 

13. Una vez importado el perfil podemos seguir el asistente paso a paso para la publicación. El paso final nos permite hacer un preview de los elementos a publicar y lanzar la publicación.

image

14. Una vez publicado podemos ver el site online

15. Ahora vamos a configurar el despliegue de ClickOnce. Accedemos a las propiedades del proyecto WPF y en la sección Publish completamos los siguientes valores:

Publishing Folder: ..ElBrunoClickOncePublishinstall (Esta configuración publica los archivos de ClickOnce directamente al directorio de proyecto del website)

Installation Folder: http://elbrunoclickonce.azurewebsites.net/install/

image

16. En la sección updates, definimos que nuestra aplicación deberá validar por nuevas versiones antes de lanzarse y definimos una vez más la ruta de actualización.

image 

17. Completamos los valores de la sección “Options”

image

18. Es importante definir una página de publicación para nuestro proyecto, en este caso > publish.htm

image

19. Y ya estamos listos, presionamos “Publish Now” y lanzamos una publicación.

20. Cuando ha terminado la publicación, en el proyecto web seleccionamos la opción de mostrar todos los archivos y vemos que los elementos de la publicación de ClickOnce están dentro de la carpeta “install”

image

21. Los agregamos como parte del website y lanzamos una publicación a AZURE de nuestro website.

image

22. Nuestra url de publicación ya está lista, en este caso es http://elbrunoclickonce.azurewebsites.net/install/publish.htm, si navegamos la misma veremos que tenemos la página de instalación de nuestra app.

image

23. Un detalle importante. Como no he utilizado ningún certificado “bueno” para la publicación, al momento de instalar Win8 nos avisa que este puede ser un software de procedencia dudosa. Como en este caso procede de mi mismo, seleccionamos la opción ”more info” y luego “run anyway”

image

24. Luego ya podemos instalar la aplicación.

image

25. Luego de validar nuevamente la seguridad, ya podemos ver nuestra aplicación funcionando y mostrando el nro de versión de ClickOnce.

image

26. Ahora vamos a generar una nueva versión de la app WPF. Hacemos un publish de la misma nuevamente y veremos que en el proyecto web, tenemos las 2 versiones

image

27. Ahora agregamos al proyecto la versión generada y yo aconsejor eliminar la versión anterior. (Esto es AZURE, el espacio se paga!)

image

28. Publicamos nuevamente nuestro proyecto web a AZURE y si navegamos la página de instalación veremos que la misma se ha actualizado.

image

29. Ahora bien, probemos ClickOnce. Lanzamos la aplicación y vemos que tenemos un update disponible.

image

30. Aplicamos el update, un par de warnings de seguridad y listo !!! tenemos la versión actualizada

image

Y solo en 30 pasos Risa

Saludos @ Home

El Bruno

image image image

[#VS2012] HowTo: Desconectar de TFS (gracias Quick Launch!)

image

Buenas,

la integración entre Visual Studio y Team Foundation ha mejorado mucho en DEV11 (VS2012 y TFS2012). Ahora la carga de elementos se hace en segundo plano, el Team Explorer permite trabajar de manera que no bloque a otras tareas (casi siempre), y bueno, es más amigable ahora.

Sin embargo, después de un tiempo largo (más de 18 meses) con el IDE de VS2012, recién hoy se me presenta la necesidad de desconectarme “a mano” de mis instancias de TFS: 3 servers, 10 TPs.

image

La intuición me llevó a darle todas las vueltas al Team Explorer para buscar el “Disconnect”, sin embargo no estaba allí. Al final el Quick Launch me salvó, solo escribir “disconn” y allí estaba:

image

En donde debe estar, en los menús del IDE. En “Team // Disconnect …”

image

Curioso Confundido

Bonus Tip: si quieres saber más sobre Quick Launch, algo escribí aquí.

Saludos @ Home

El Bruno

image image image

[#KINETSDK] HowTo: Controlar un #RoboSapien con #Kinect

image

Buenas,

hoy tenía pensado escribir sobre AZURE y ClickOnce, pero me he encontrado con este proyecto que realmente hace que el año 2013 se convierta en uno de los mejores …

Lo dicho, sin palabras y con el código disponible en https://github.com/fatihboy/Robosapien

Fuente: http://channel9.msdn.com/coding4fun/kinect/Kinect–Robosapien-Source-Cool?utm_source=feedly

Saludos @ La Finca

El Bruno

image image image

[#TFS2012] Team Foundation Task Board Enhancer una impresionante extensión para Team Foundation que no te podes perder!

image

Buenas.

El que diga que los MVPs no son unos cracks, es que solo me conoce a mi (y tiene razón!). Hoy me encuentro con que el gran Tiago Pascoal (@tspascoal) ha creado una extensión para el Web Access de Team Foundation Server 2012 que es un #MustHave. Básicamente complemta muchas de las features en los boards de TFS2012 que todos estamos pidiendo. Veamos algunos ejemplos:

 

– Mostrar los IDs de los WorkItems en el boards. Ya no tengo que recurrir al doble click para ver el Id antes de hacer un checkin.

image

– Mostrar los elementos bloqueados con una imagen que los identifique (esto es genial !!!)

image

– Una friki, mostrar la foto de los usuarios en lugar de los nombres en las tarjetas. Vamos que aquí no ganamos nada, pero queda genial!

image

– Mostrar el tipo y estado de un WorkItem en el board de tasks. Solo por esto ya vale la pena utilizarlo. De esta forma es muy fácil ver si un PBI por ejemplo, está cerrado o en que estado está.

image

– Completando el anterior. colapsar los requerimientos / PBIs cerrados. No tiene sentido verlos y menos abiertos.

image_thumb4[6]
image_thumb3

 

Y varias cosas más. Como no quiero traducir la página completa de Tiago, mejor que vean el homepage y verán el listado completo allí.

Por cierto, me olvidé de mencionar que ES FREE !!! (que siempre se agradece)

HomePage: http://pascoal.net/task-board-enhancer/

Saludos @ Home

El Bruno

image image image

[#VS2012] HowTo: Controlar Visual Studio 2012 con comandos de voz (like Iron Man 3!)

image

Buenas,

si alguna vez quisiste programar como Tony Stark, tirando líneas y gritando comandos al mismo tiempo, ya lo puedes hacer. Se ve que el amigo Mads Kristensen ha visto Iron Man 3 y no ha querido perder el tirón: ha creado un AddIn para Visual Studio 2012 que integra capacidades de reconocimiento de voz con comandos de Visual Studio.

Por ejemplo mientras trabajamos con nuestro IDE favorito, podemos pegar un par de gritos espartanos del tipo:

  • Build
  • Format Document
  • Solution Explorer
  • New Project
  • Options

Y el IDE nos hará caso!

Descarga: http://visualstudiogallery.msdn.microsoft.com/ce35c120-405a-435b-af2a-52ff24eb2c30

Saludos @ Home

El Bruno

image image image

[#VS2012] HowTo: usar los tableros web de #TFS2012 sin salir del IDE de Visual Studio 2012

image

Buenas,

post rapidito que me espera la familia en la playa.

Vamos por partes, el gran Ernesto  (@fisica3) pregunta por twitter qué necesidad hay de salir del IDE de Visual Studio 2012 para utilizar la interfaz web? Yo le suelto una respuesta en modo boomerang que se termina convirtiendo en este post

Usa el navegador del IDE ..

image

Sería algo así como

1. Abrir el navegador desde el comando “View // Other Windows // Web Browser” o con el shortcut CTRL + ALT + R

2. Navegar nuestra url de Team Foundation Server 2012

image

3. Done !!!

 

Saludos @ Alicante

El Bruno

image image image

[#KINECT] Cuando estará disponible la nueva Kinect for Windows ? #XBOXONE

image

Buenas,

al final mi mujer terminará teniendo razón (como siempre) y tendré que aceptar que yo solito me meto en estos líos. Después de que ayer escribiese un post sobre las novedades del nuevo Kinect, ya más de uno comenzó a preguntar cuando se podrá comenzar a probar el mismo.

Si conoces el esquema de promoción de productos de Microsoft, seguramente sabes que es diferente al de Apple. Ms no presenta un producto que al día siguiente esté a la venta. Por ejemplo, en el caso de Kinect (project Natal) pasaron 2 años hasta que estuvo disponible de forma masiva.

Pues con la nueva Kinect pasa algo parecido, HAY QUE ESPERAR HASTA EL 2014. Lo que estamos viendo es impresionante, lo que veremos en 2 semanas será mas impresionante aún, pero tendremos que esperar hasta el 2014 para poder comprar una en la esquina de casa.

Eso sí, en este caso, cuando salga a la venta el Kinect, también se podrá descargar el SDK para Windows de Kinect, eso sí que está asegurado.

 

Fuente: http://blogs.msdn.com/b/kinectforwindows/archive/2013/05/23/the-new-generation-kinect-for-windows-sensor-is-coming-next-year.aspx?utm_source=feedly

Saludos @ Barcelona

El Bruno

image image image

[#KINECT] Que hay de nuevo en Kinect 2.0 (se llamará así?)

 

Buenas,

hace 2 días que se presentó la nueva XBox One, y una de las cosas que más nos tenía intrigados era QUE TENÏA EL NUEVO KINECT.

Si todavía no estás al tanto, te lo resumo en los puntos que yo considero que son los más importantes.

image

Hardware

Pues la nueva XBox One es más fea que morder arena. Y el nuevo Kinect no se queda atrás. Lo bueno es que detrás de la apariencia de gadget cutre de una película de los 80’s el nuevo kinect tiene

  • Más resolución en el sensor de profuncidad (pero mucha más), detecta hasta los botones de una camisa si estas suficientemente cerca
  • Mucha más resolución en la cámara, ahora tenemos una HD Video Camera, 1080p
  • Active IR, un sensor activo de InfraRojos que permite identificar objetos y personas en entornos con poca o nula luminosidad (nula es ZERO, con las luces apagadas)
  • No han dicho nada del motor y creo que no hay más. Ahora con el gran angular que posee el nuevo Kinect no hace falta moverlo hacia arriba o abajo para poder enfocar mejor

Y ahora vamos con las features …

Skeleton Tracking

Si hablamos del Skeleton tracking, el kinect ha pasado de una versión 1.0 a una version 2.0. Ahora se detectan mas Joints, se puede detectar la rotación de los mismos, se detectan dedos, etc. Vamos que es impresionante

image

Force detector

Otra feature interesante es la capacidad de analizar las fuerzas que actuan sobre cada Joint. La siguiente imagen muestra como al pasar el peso de un pie al otro, el mismo se pone de color rojo para indicar un exceso de la fuerza en el mismo (si che, suena a Jedi)

imageimage

Impactos = Muscle + Force

Aqui va otra de las buenas, analizando la aceleración de los elementos del cuerpo y cruzando esta información con la fuerza que se aplica en los mismos, es posible identificar y ver algo parecido a “impactos”. En el video de WIRED el periodista hace un … del Street Figther que es para morir de la alegría!

imageimage

Heart Rates

Si si si, parece un poco de ciencia ficción pero ahora puedes tener acceso a la información con los latidos del corazón de cada user. Analizando los cambios en la piel, se puede estimar las pulsaciones por minutos, etc. Imagino aplicaciones clínicas con esto delante 😀

image

Expression platform

Reconocimiento facial avanzado

image

Varias

Inicio de sesión automático utilizando reconocimiento facial

Detección de hasta 6 jugadores

y mucho más !!!

image

 

Por cierto, esta información ES PUBLICA. Se puede ver en el siguiente video de los cracks de WIRED que me ha pasado el Edu.

Fuente: http://video.wired.com/watch/new-xbox-kinect-exclusive-wired-video-398878

Saludos @ La Finca

El Bruno

image image image

[#EVENT] Materiales del evento de trabajo AGILE con #VS2012 y #TFS2012

image

Buenas

después de pasar unos 60 minutos increíbles con la gente de MSDN Latam hablando sobre cómo es posible trabajar con Visual Studio 2012 y Team Foundation Server 2012, me toca cumplir con lo prometido: compartir la presentación, algunos links, etc.

Definition of DONE


http://blogs.msdn.com/b/willy-peter_schaub/archive/2013/03/21/definition-of-done-and-knowing-when-it-is-safe-to-sleep-peacefully.aspx
Algo imprescindible que tiene que estar claro desde el día uno.

Libros

WebCast TFS Express


http://elbruno.com/2013/03/11/event-msdn-latam-webcast-msdn-todos-a-bordo-del-team-foundation-server-express/
https://msevents.microsoft.com/CUI/EventDetail.aspx?culture=es-AR&EventID=1032547149&CountryCode=AR

Planning Poker Online


http://www.planningpoker.com/
Es gratis y pueden trabajar de forma distribuida sin ningun problema.

Y finalmente la presentación

 

Saludos @ Home

El Bruno

image image image

[#EVENT] WebCast sobre #AGILE con Visual Studio 2012 y Team Foundation Server 2012 #VS2012 #ALM

image

Buenas,

después de un par de días de oscurismo, por fin me puedo sacar las ganas y comentar como podemos trabajar de manera ÁGIL con Visual Studio 2012 y Team Foundation Server 2012. Los amigos de MSDN Latam me han dado un espacio de 60 minutos para comentar como es posible llevar adelante un equipo utilizando las herramientas de Visual Studio ALM. (como siempre muchas gracias!)

Si bien 60 minutos es poco tiempo, intentaré pasar por los temas básicos

  • organización del trabajo
  • planificación del trabajo
  • ejecución del trabajo
  • gestión de cambios

A qué ahora lo ves más claro, ¿no?

image

Registro: https://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032551090&Culture=es-AR&community=0

Saludos @ Home

El Bruno

image image image