[#VS2013] HowTo: Delayed start en algunos proyectos (y una solucion que no me deja dormir)

image

Hola.

Me parece un poco raro no encontrar una solución más elegante a este escenario:

Estoy trabajando con una solución de VS con

  • 1 Proyecto WebAPI
  • 1 Proyecto WPF
  • 1 Proyecto Win8

El proyecto WepAPI es además un hub de SignalR para que se comuniquen el proyecto WPF y el proyecto Win8. Aprovechado las capacidades de Lanzamiento de multiples proyectos de Visual Studio, lanzo al mismo tiempo los 3 proyectos para poder probar en local mis apps.

image

El problema está que tanto el proyecto WPF como el proyecto Win8, inicializan el “cliente signalR” en su AppStart(); y como el proyecto WebAPI tarda un poco, pues tengo una fiesta de timeouts de los buenos.

Se me ocurrió que tal vez alguien había creado un AddIn para Visual Studio que me permitiese controlar el tiempo de lanzamiento para cada proyecto, pero no lo encontré. Así que opté por una solución mucho más casera y sucia, muy sucia, agregar el siguiente código en el AppStart() de cada app:

   1: public static void DelayAppStart()

   2: {

   3: #if DEBUG

   4:     // delayed start of the app to be 

   5:     // used locally with the service layer

   6:     Thread.Sleep(5000);

   7: #endif

   8: }

En modo debug, cada app en su start se “detiene 5 segundos” antes de seguir si ejecución. Luego en Release, este código ya no sería ejecutado … Me da una mala espina que no veas (code smell que le dicen), aunque es la solución temporal.

¿Alguna idea qué me ayude a dormir mejor?

 

Saludos @ Home

El Bruno

image image image Google

2 comentarios en “[#VS2013] HowTo: Delayed start en algunos proyectos (y una solucion que no me deja dormir)”

  1. No sé si scripting sería adecuado para este caso:

    SET WEBDEV=”%ProgramFiles%Archivos comunesMicrosoft ShareddevServer9.0″

    START /D %WEBDEV% /B WebDev.WebServer.EXE /port:9195 /path:”E:TFSService.Host”

    Saludos

  2. Jon Skeet:

    I would probably add a retry mechanism within the client. That way not only does it help in the “starting up from Visual Studio” case – it also helps if the server happens to be restarting while the real client connects. The fact that the server is on a faster machine doesn’t mean the server will never need to restart, does it?

    Indeed, you may well want to add this retry mechanism in such a way that the client can recover even if the server is restarted while it’s connected. It depends on what the project is doing, of course.

    http://stackoverflow.com/questions/10349311/visual-studio-delay-between-multiple-startup-projects

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *