Empresarialmente cabreado, intelectualmente emocionado.

Si no me gustara evolucionar y formarme a diario, no hubiera elegido como mi profesión, la de informático. Pero para mi, el verdadero informático es el que crea, el que con sus deditos, unas teclas y un monitor, no solo es capaz de escribir una líneas que emocionen, como sucede en la literatura, si no que además, esas líneas se conviertan en herramientas que hagan nuestras vidas más sencillas, ayudándonos en el trabajo o en nuestras labores diarias.

Pero hemos llegado a un punto en que la tecnología avanza tan rápido, que es imposible estar al día de todo. Intelectualmente me encanta que cada 3 ó 4 años, todo de un giro radical, y aparezcan nuevos entornos, nuevos frameworks, nuevos lenguajes, e incluso se pongan de moda patrones de diseño que habíamos guardado en el armario.

Estos cambios nos obligan a reciclarnos constantemente y a comprar y comprar literatura, generalmente en inglés, porque si esperamos que se traduzca, ya estará anticuada.

Intelectualmente esto es genial, pero empresarialmente, es algo difícil de manejar. Es cierto que se abren nuevos mercados y nuevas posibilidades de negocio, pero cuando has apostado por una tecnología, y al cabo de un lustro, tu desarrollo cae en el pozo del olvido, porque M$ ha decidido abandonar la tecnología, supone tirar el código o reciclarlo, y esto es difícil de asumir.

¿Por qué cuento todo esto? Pues muy sencillo, finalmente hoy, me han confirmado en el Windows Tour de Valencia, que Silverlight es abandonado por M$, y en 10 años dejará de dársele soporte. Luego más allá de algún patch, ya no habrá nada nuevo.

Ahora nos venden que M$ solo pensó en SL como un plugin para que las aplicaciones corrieran en cualquier dispositivo, pero todos sabemos que también se pensó como herramienta para aplicaciones LOB, y si no, que me digan para que se molestaron con WCF Ria Services.

Esta es la parte negativa o cabreante, pero que entiendo y comprendo. Por ello, no quiero volver a caer en trampas de este tipo, y por ello, he decidido migrar todos mis desarrollos a HTML5, css y JQuery, eso sí, apoyado por ASP.NET y MVC 3, 4, 5 o el que sea.

No voy a migrar mis desarrollos a Metro, simplemente porque, empresarialmente me es imposible asumir una tecnología que quizás en otro lustro, sea abandonada por otra, que será radicalmente mejor.

Pero ojo, no quiero decir que no vaya a desarrollar para Metro. Primero crearé aplicaciones de consumo, más o menos “chorras” que quizás me hagan ganar un dinerillo, y cuando el tema esté más claro, estudiaremos el tema.

Por tanto, mi consejo es que, aunque HTML5 no esté terminado, aunque tengamos los problemas de interfaz dependiendo del navegador, aunque el desarrollo va a ser mucho más lento, aunque no consigamos la usabilidad desktop, etc, etc…, en contrapartida ganaremos en una aplicación multiplataforma, y sabremos que su muerte, está muy lejana.

Y ya cambiando de tercio, ¿por qué estoy entusiasmado?. Con W8 nace un nuevo W95, la gente va a “flipar” con este nuevo interfaz de “ladrillos”. Pero lo mejor es que ahora nos toca aprender WIn RT y aprovechar las funcionalidades del estilo Metro. Los contratos, los ladrillos, las notificaciones, el “share”…

http://msdn.microsoft.com/en-US/windows/apps/br229516.aspx

http://msdn.microsoft.com/library/windows/apps/hh779072

Del genial evento, me quedo con una idea: “el usuario busca en la oficina las bonitas apps que usa en su casa, si nuestra aplicación es oscura y horrible, nos echarán de la oficina”. Por tanto, hay que empezar a saber decir que “NO” al usuario, educarle, y diseñar pantallas para él, de modo que no se pierda entre botones y ventanas escondidas.

Así que habrá que empezar a invertir en diseñadores de interfaces.

Y para finalizar, una palabra: “OPPORTUNITY”.

Windows es utilizado por 1.300M de usuarios, Windows 7 es usado por 500M de usuarios. Las máquinas que corren W7 podrán correr W8 sin problemas o incluso mejor. Para W8 se esperan una ventas de 160M de unidades para el primer año, de las cuales, 3M serán en España.

Nunca un desarrollador ha tenido unas expectativas de ese calibre. La oportunidad es ÚNICA. ¿A qué me refiero? Pues al Marketplace de W8. Se estima que en su salida al mercado, no habrá más de un centenar de aplicaciones en castellano. ¿Te imaginas la visibilidad de tus aplicaciones de consumo?

En fin, mañana voy al Windows Camps de Valencia, ya os contaré. De momento, sigo emocionado.

Guiño

Anuncios

Abrir ClickOnce Application desde el ViewModel

 

Me rindo!

Con lo simple que parece, pero no va! He probado Window.Navigate, PopUpWindow y hasta javascript.

Lo bueno es que en desarrollo funciona correctamente, pero en producción, se abre la ventana que va a lanzar la aplicación, e inesperadamente se cierra y no se lanza el programa.

Solución. Meter un HyperlinkButton en el View y  hacer binding del NavigateUri.

No es lo que quería, pero no he encontrado otro modo. Si alguien lo sabe, que no dude en publicarlo. He perdido muchas horas de prueba y ERROR, y no puedo dedicar más tiempo.

Triste

403 – Forbidden: Access is denied.

Al iniciar mi aplicación SL en Azure, no me carga la página inicial y me aparece este bonito mensaje.

Azure necesita que la página de inicio sea una de las estándar, por ejemplo, Default.aspx, etc. ni no es así, debemos decirle cuál es:

 

<system.webServer>

<defaultDocument>
     <files>
       <clear/>
       <add value=”ShellTestPage.html”/>
     </files>
   </defaultDocument>

</system.webServer>

Could not load file or assembly ‘System.Web.Ria, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35’ or one of its dependencies. The system cannot find the file specified

 

Al ejecutar la aplicación SL sobre Azure aparece este fantástico error.

 

Solución:

Eliminar toda referencia en los web.config y app.config a este assembly:

<add name=”DomainServiceModule” preCondition=”managedHandler”
type=”System.Web.Ria.Services.DomainServiceHttpModule, System.Web.Ria, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35″ />

por

<add name=”DomainServiceModule” preCondition=”managedHandler”
   type=”System.ServiceModel.DomainServices.Hosting.DomainServiceHttpModule, System.ServiceModel.DomainServices.Hosting, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35″ />

Qué MVVM framework usar?

“One thing is sure : MVVM is not an option, it’s the only way to create clean apps that can be tested. “

Olivier Dahan (MVP C# 2009, MVP Client App Dev 2010)

 

Bueno, ya tenía claro que me pasaba a Silverlight y a MVVM, y decía adiós al “viejo” WinForms. Es la hora de TDD, DI…. y aún pareciendo atrevido, ejecutar mi aplicación en Azure.

Ahora tengo una duda, que en realidad son dos: ¿uso algún framework que me ayude? y en ese caso, ¿cuál será el que más se ajusta a mis necesidades?

¿Pero como no voy a usar un framework que me facilite la vida? ¿a caso voy a programar a pelo el grid, el schedule o el calendar? Nada, usaré el framework.

¿Y ahora qué? MVVM Light Toolkit, Prism, Caliburn, Siverlight FX, nRoute… ¿cúal?

La cosa queda entre los dos primeros…y por lo que leo, mejor Light Toolkit, más sencillo para ser productivo en poco tiempo, especial para los novatos (como yo). Prism es un tocho, eso sí, será muy bueno.

Pues nada Lauren (que es el nen que ha hecho este framework y que además tiene un book en Amazon, ah! y puedes verle en acción en channel 9), voy a probar con esto.

Y aquí no acaba todo, en cuanto tenga esto claro y en una próxima entrada comentaré: “Use Unity, MEF, and the MVVM Light Toolkit to write more maintainable, extensible software.” (en pocas palabras, me va a tocar comprar el librito de Lauren…)

Fiddler

Otra herramienta para debug y esta vez gratuita.

Lo podemos definir como un HTTP Debugging Proxy… en castellano? bueno, podrás ver (entre otras cosas) todo lo que pasa por tu navegador.