In primo luogo, alcuni retroscena:Alla ricerca di un cross-platform, end-to-end esempio di C++ per WPF/cacao interoperabilità
ho deciso di avviare un nuovo progetto progettato dalla terra fino a girare su molteplici piattaforme (Windows, iOS, OSX, Linux, Android). Poiché il mio background è principalmente C++, intendo scrivere la funzionalità di base utilizzando C++ 11. Detto questo, su ogni piattaforma avrò bisogno di scrivere un'interfaccia utente specifica per piattaforma che possa interagire con il core C++.
La prima piattaforma a cui mi rivolgo è Windows (la seconda è iOS). Avrò i dati memorizzati in un database SQLite e i dati forniti dall'utente che verranno inseriti utilizzando un DataGrid WPF (inserendo righe, manipolando i dati esistenti, ecc.). Questa è la prima volta che lavoro con WPF (sebbene abbia usato Windows Form) e la mia prima volta che lavoro con C++ in un ambiente gestito. Ho intenzione di creare un'architettura in stile MVC, quindi nella mia mente SQLite è il modello, WPF è la vista e il codice C++ è il controller.
mia domanda è questa:
Ci sono esempi là fuori che illustrano come per afferrare i dati da un C++ dell'interfaccia e visualizzarlo utilizzando C# e WPF senza distruggere/pressare il codice C++ in sé (in quanto deve lavorare su più piattaforme)? Ho letto un po 'di P/Invoke (noioso, ma funziona) e assemblaggi misti (funziona, ma mangerò il mio C++?) Ma Google non è stato utile quando si tratta di esempi concreti (specialmente quelli che riguardano la populazione dei controlli WPF con dati ottenuti tramite una DLL C++).
Grazie!
EDIT: Durante la ricerca di approcci a questo problema mi sono imbattuto in CXXI. Non ho molta familiarità con esso, ma sembra che potrebbe essere una soluzione semplice al mio problema. qualche idea? La mia comprensione di tutti questi concetti è limitata.
Non ho alcuna esperienza WPF, ma posso dirti che quello che stai facendo sarà un po 'difficile. Quando si arriva all'app OS X (e sono sicuro che iOS è lo stesso), si dovrà scrivere un bel po 'di codice Objective-C. Penso che dipenda in gran parte dalla natura dell'app che stai facendo, ma fondamentalmente dovrai riscriverne gran parte per ogni piattaforma. – Hassan
Grazie per il tuo contributo Hassan.So di avere molto lavoro davanti a me, ma il mio obiettivo è codificare l'interfaccia utente in modo nativo per ogni piattaforma. Sento che offre la migliore esperienza utente e la migliore esperienza di apprendimento :) –
Hai ragione, offre la migliore esperienza utente. E se la parte più difficile dell'interfaccia utente è il tavolo, allora direi che sei in buona forma. Spero che qualcuno in realtà risponda ora ... – Hassan