En primer lugar, algunos antecedentes:Buscando un multi-plataforma, de extremo a extremo ejemplo de C++ para WPF/Cacao interoperabilidad
He decidido iniciar un nuevo proyecto diseñado desde el principio para ejecutarse en múltiples plataformas (Windows, iOS, OSX, Linux, Android). Como mis antecedentes son principalmente C++, intento escribir la funcionalidad principal usando C++ 11. Habiendo dicho eso, en cada plataforma tendré que escribir una interfaz de usuario específica de la plataforma que pueda interoperar con el núcleo de C++.
La primera plataforma a la que me refiero es Windows (la segunda es iOS). Tendré datos almacenados en una base de datos SQLite, así como datos proporcionados por el usuario que se ingresarán usando un WPF DataGrid (insertando filas, manipulando datos existentes, etc.). Esta es la primera vez que trabajo con WPF (aunque he usado Windows Forms) y la primera vez que trabajo con C++ en un entorno administrado. Planeo hacer de esto una arquitectura de estilo MVC, así que en mi opinión SQLite es el Modelo, WPF es la Vista y el código C++ es el Controlador.
Mi pregunta es la siguiente:
¿Hay ejemplos por ahí que ilustran cómo agarrar los datos de una interfaz de C++ y mostrarlo usando C# y WPF sin destruir/destrozando el código C++ en sí (ya que debe trabajar en múltiples plataformas)? He leído un poquito sobre P/Invoke (tedioso, pero funciona) y ensamblajes mixtos (funciona, ¿pero cambiaré mi C++?) Pero Google no ha sido útil cuando se trata de ejemplos concretos (especialmente los que implican poblar controles WPF con datos obtenidos a través de una DLL C++).
Gracias!
EDITAR: Al buscar soluciones para este problema me encontré con CXXI. No estoy muy familiarizado con él, pero parece que puede ser una solución simple a mi problema. ¿Alguna idea? Mi comprensión de todos estos conceptos es limitada.
No tengo ninguna experiencia WPF, pero puedo decirle que lo que está haciendo va a ser algo difícil. Cuando llegue a la aplicación OS X (y estoy seguro de que iOS es la misma), tendrá que escribir bastante código Objective-C. Creo que depende en gran medida de la naturaleza de la aplicación que estás haciendo, pero básicamente vas a tener que volver a escribir mucho para cada plataforma. – Hassan
Gracias por su contribución Hassan.Sé que tengo mucho trabajo por delante, pero mi objetivo es codificar la interfaz de usuario de forma nativa para cada plataforma. Creo que ofrece la mejor experiencia de usuario, así como la mejor experiencia de aprendizaje :) –
Tienes razón, ofrece la mejor experiencia de usuario. Y si la parte más difícil de la interfaz de usuario es la mesa, entonces diría que estás en buena forma. Espero que alguien realmente responda ahora ... – Hassan