¿Cuál es la mejor manera de distribuir datos?

¿Una aplicación de ventanas ligeras? No estoy de acuerdo con tu arquitectura. Oh bien.

La obtención de datos en la aplicación debe usar exactamente las mismas estructuras y tecnologías que usa actualmente. No escriba una aplicación de consola o un protocolo diferente.

Simplemente haga que la aplicación del cliente solicite bloques de datos más grandes, utilizando el mecanismo actual, que almacena en caché en el cliente.

No guardes todo en caché. Caché SOLAMENTE los datos que (a) cambian con poca frecuencia, (b) en una sesión normal de uso de la aplicación, que los datos se descargan más de una vez, y / o (c) la interfaz de usuario funciona mejor si esos datos son locales (para descartar) listas descendentes, por ejemplo).

No almacene en caché utilizando una sofisticada tecnología de base de datos que instale. Tienes una aplicación de Windows. Simplemente escriba los datos en un archivo en el sistema de archivos en su formato sin formato.

¿Tiene que ser jabón? Eso carga el servidor y hace que los datos sean bastante grandes incluso para pequeños conjuntos de datos. ¿Se puede usar JSON? No sé si estás usando extensiones SOAP.