En VS Anywhere desarrollamos aplicaciones de escritorio, pero a finales del pasado año comenzamos a desarrollar un cliente web para nuestra herramienta colaborativa, y nos dimos cuenta que escribir código para la web es muy distinto al escritorio "tradicional". En esta charla, desde el punto de vista de un desarrollador de escritorio, veremos los retos que hemos tenido que afrontar, desde conseguir que el cliente sea lo más ligero posible o comprobar que todas las peticiones llegan al servidor en el orden correcto hasta diseñar una página para que se comporte como un IDE La idea es comentar nuestra primera “experiencia javascript”, haciendo también un pequeño repaso a la arquitectura, los frameworks y liberías externas que hemos usado
SISTEMA INTEGRADO DE ADMINISTRACION FINANCIERA - SIAF MODULO ADMINISTRATIVO
De escritorio a Javascript, nuestra experiencia desde las trincheras
1. De escritorio a Javascript
Nuestra experiencia desde las
trincheras
Roberto Luis Bisbé - @rlbisbe
Software Engineer @VS_Anywhere
http://vsanywhere.com
2. Acerca de
• Ingeniero de Software enVSAnywhere
• Ingeniero en Informática por la UAM
• Desarrollador .NET
• Tengo un blog! rlbisbe.net
5. Un poco de contexto:VS Anywhere
• Extensión deVisual Studio para edición concurrente
• Basada enWindows
• Desarrollada 100% en C# (Cliente y servidor)
• Protocolo XMPP de mensajería
23. SignalR en IIS
Visual Studio
Editor
ClienteVS Anywhere
Server
…
Solution
Explorer
Visual Studio
Editor
ClienteVS Anywhere
Solution
Explorer
IIS
ClienteVS Anywhere
SignalR Server
SignalR Client
(Chrome)
SignalR Client
(IE11)
35. SignalR en una aplicación web
Visual Studio
Editor
ClienteVS Anywhere
Server
…
Solution
Explorer
Visual Studio
Editor
ClienteVS Anywhere
Solution
Explorer
IIS
ClienteVS Anywhere
SignalR Server
SignalR Client
(Chrome)
SignalR Client
(IE11)
36. SignalR Dentro de nuestro server
Visual Studio
Editor
ClienteVS Anywhere
…
Solution
Explorer
Visual Studio
Editor
ClienteVS Anywhere
Solution
Explorer
ClienteVS Anywhere
SignalR Server
SignalR Client
(Chrome)
SignalR Client
(IE11)
Server
39. Probemas de esta aproximación
• SignalR + dll externas + Ofuscación
• Adiós minificación + bundling
40. Ofuscación y ensamblados externos
• Para ofuscación
• Atributos [DoNotObfuscate] o [DataContract] a las clases
• Para ensamblados externos:
• AppDomain.CurrentDomain.Load(typeof(Namespace.ChatHub).As
sembly.FullName);