[#SIGNALR] Fix: #WindowsPhone y los delayed messages (va lento lento lento el delivery de mensajes en WP)

Hola!

SignalR es una plataforma increíble para real time communications. Cuando comienzas ha crear apps vas como un tiro, y la verdad es que el nivel de abstracción que te da es grandioso. Los clientes .Net que tiene para WPF, Win8 y Html funcionan a la perfección, sin embargo (no es un pero)  si creas un app Windows Phone (8.1 por ejemplo), te puedes encontrar con la extraña situación en la que en el emulador todo va perfecto y en el device, no tanto.

Ojo!, no es que no funcione sino que los mensajes tardan bastante en llegar (desde 5 segundos hasta minutos). El escenario de prueba tampoco incluye complejos métodos de autenticación, es un Website de Azure que cumple el papel de SignalR Hub.

Si activamos las trazas en el cliente de WP podemos ver que el patrón de comportamiento de la conexión es

Connecting, Connected, Reconnecting, Connected, Reconnecting, Connected, …

En pocos segundos el cliente, se conecta y desconecta varias veces. Esto nos lleva a pensar en que la gestion de conexiones (el ping que mal le decimos) puede estar mal, y que la solución es cambiar el tipo de transporte.

Si vemos el problema con una perspectiva más ampluica, podemos encontrar en SignalR troubleshooting (link), la siguiente solución para apps Silverlight:

Messages are delayed when using server sent events on Silverlight. To force long polling to be used instead, use the following when starting the connection:

connection.Start(new LongPollingTransport());

Por suerte esta solución funciona también para apps Windows Phone. Ahora, si se te da por ver porqué este tipo de transporte SI FUNCIONA, la intuición te lleva hacia MSDN. Lo increíble es que esta clase no está documentada ni nada parecido (link)

image

Asi que a usar ahora toca usar LongPollingTransport() , esperar que los amigos de MSDN completen la documentación o ver dentro del código de SignalR que funcionamiento de esta clase.

Esas opciones o … usar un debugger como Fiddler para que diferencias hay entre el transporte por defecto y el LongPollingTransport. Aunque eso va para otro post Winking smile

Recursos: http://www.asp.net/signalr/overview/signalr-20/troubleshooting-and-debugging/troubleshooting#azure

Saludos @ Somewhere around

El Bruno

image image image Google

[#NUGET] FIX: One or more packages could not be completely uninstalled. Restart Visual Studio to finish uninstall

Hello!

When I remember my first days programming with the amazing COM dlls and DLL Hell, the arriving of .Net was the best thing that could happen to a lot of developers. However, when some projects became more complex, the management of dependencies also became a little more complicated and that’s why in the path NuGet emerge. Today Visual Studio and NuGet are a great tool for dependency management.

That doesn’t mean that still are to improve a bit NuGet within Visual Studio integration. A common mistake that you can find is the following:

One or more packages could not be completely uninstalled.Restart Visual Studio to finish uninstall

image

And the problem is that even if you restart Visual Studio, this “error” is still there. If you get a little on the insides of the IDE see IDE could not release these packages because they have dependencies on some Visual Studio artifacts. For example, Entity Framework editor.

The solution is quite simple, locate the packages in your solution directory and delete invalid packets manually (of course the IDE is closed). I know is not a beautiful solution Winking smile

image

Saludos @ Home

El Bruno

image image image Google

[#NUGET] Fix: One or more packages could not be completely uninstalled. Restart Visual Studio to finish uninstall

Hola !

Si lo comparo el principio de los tiempos con el fabuloso DLL Hell, .Net fue de lo mejor que nos pudo pasar. Luego claro, la gestión de dependencias se complicó un poco más y llegó NuGet. Hoy Visual Studio y NuGet son una alegría para la gestión de dependencias.

Eso no quita que todavía se pueda mejorar un poco la integración de NuGet dentro de Visual Studio. Un error frecuente que te puedes encontrar es el siguiente:

One or more packages could not be completely uninstalled. Restart Visual Studio to finish uninstall

image

Y el problema está en que por más que reinicies Visual Studio, este “error” queda allí. Si te metes un poco en las tripas del IDE verás que el IDE no pude liberar estos paquetes porque tienen dependencias con artefactos propios de Visual Studio. Por ejemplo, el editor de Entity Framework.

Pues bien la solución, es localizar el directorio de paquetes de tu solución y eliminar a mano los paquetes inválidos. Lo sé es una solución artesanal Winking smile

image

 

Saludos @ Una casa de campo con 2 bytes de internet

El Bruno

image image image Google

[#IOT] Windows on Devices, all for IoT (Internet of Things)

image

Hello!

A couple of days ago I wrote a post where redirected people to the program “Windows on Devices” from Microsoft. Many people have signed up in it just to get a free Intel Galileo, however the program is something much broader. I had put aside some extra time to extend a bit the original content.

  • The first thing to notice is that this program is a program for DEVELOPERS.

If you already know platforms such as Arduino, the transition to the new tools (both hw and sw) will be almost natural. Of course, you can use Visual Studio as a tool for development (would have said that this is of the most cool of the program?)

  • Another interesting detail is that all of the existing code of Arduino it will be compatible with a Galileo .

Hmmmmmmm … I have my doubts. The code example of a Blinky is the same in Arduino, so OK here. What happens is that we all know that the “Hello World” run always, we will see what happens when you move more complex code.

image

Note: if you have created very complex code in Arduino is to kill you. How complicated is not migration but some specific libraries for sensors not standard.

Just go to the main page of the program to be able to see everything.

  • The Galileo as it comes does not work, you have to “iron” a special image through a SD.

Beware, if you have a Galileo before, can not install the VS plugIn and give the keyboard and whisky. You will first have to “prepare” the Galileo with a few simple steps (link)

Note: welcome back telnet.

  • This program is brother or part of ISS, Intelligence System Services.

Now wonder, and this? queloque? This, ISS is a series of services assembled in Azure to work specifically with IoT projects. And behind this thing, .net Compact Fwk? not… Windows Embedded! Now lightens everything somewhat, Galileo will execute a WE in order to have everything more controlled.

If we add you compatibility with Arduino, with Azure integration and support from ISS, this program is really

A GOOD QUALITY FOR THAT BET THE DEVELOPERS BELIEVE CONNECTED APPLICATIONS.

Finally, if your head sound like words like “universal Apps”, “C#”, etc. Gives you a tour of the FAQ to see that still nothing.

Home: http://dev.windows.com/en-us/featured/Windows-Developer-Program-for-IoT

Git: http://ms-iot.github.io/content/SampleApps.htm 

FAQ: http://ms-iot.github.io/content/WelcomeAndFAQ.htm

Saludos @ Home

El Bruno

image image image Google

[#IOT] Windows on Devices, all IoT (Internet of Things o Internet of Todo como decimos aqui)

 

image

Hola!

Hace un par de días escribí un post donde redireccionaba a la gente al programa “Windows on Devices” de Microsoft. Muchas de las personas se han apuntado en el mismo solo para conseguir un Intel Galileo gratis, sin embargo el programa es algo mucho más amplio. Tenía pendiente extender un poco el contenido del mismo así que para esto este post.

  • Lo primero que hay que remarcar es que este programa es un programa para developer.

Si ya conoces plataformas como Arduino, el paso a las nuevas herramientas (tanto de hw como de sw) será casi natural. Eso sí, teniendo en cuenta de que puedes utilizar Visual Studio como herramienta de desarrollo (he dicho que esto es de lo más cool del programa?)

  • Otro detalle interesante es que todo el código existente de Arduino será compatible con un Galileo.

Hummmmmm … me quedan mis dudas. El código de ejemplo de un Blinky es igual que en Arduino, hasta ahí OK. Lo que pasa es que todos sabemos que los “Hello World” funcionan siempre, veremos que pasa cuando migremos código más complejo.

image

Nota: Si has creado código muy complejo en Arduino es para matarte. Lo complicado no será la migración sino algunas bibliotecas específicas para sensores no estandard.

Solo hay que ir a la página principal del programa para poder ver TODO.

  • El Galileo como viene no sirve, hay que “plancharle” una imagen especial a través de una SD.

Ojo con esto, si tienes un Galileo de antes, no podrás instalar el plugIn de VS y darle al teclado y al whisky. Primero tendrás que “preparar” el Galileo con unos sencillos pasos (link)

Nota: welcome back telnet.

  • Este programa es hermano o parte de ISS, Intelligence System Services.

Ahora te preguntarás, y esto? queloqué? Pues eso, ISS es una serie de Servicios montados en Azure para trabajar específicamente con proyectos de IoT. Y detrás de esto que hay, .Net Compact Fwk? no .. Windows Embedded !!! Ahora se aclara todo un poco, Galileo ejecutará un WE para poder tener todo más controlado.

Si a eso le sumamos la compatibilidad con Arduino, la integración con Azure y el soporte de ISS, este programa es realmente

UNA APUESTA BUENÏSIMA PARA QUE LOS DEVELOPERS CREEMOS APLICACIONES CONECTADAS.

Por último, si en tu cabeza suenan palabras como “universal Apps”, “C#”, etc. Date una vuelta por el FAQ para ver que todavía nada.

Home: http://dev.windows.com/en-us/featured/Windows-Developer-Program-for-IoT

Githttp://ms-iot.github.io/content/SampleApps.htm

FAQ: http://ms-iot.github.io/content/WelcomeAndFAQ.htm

Saludos @ Home

El Bruno

image image image Google