pierwsze, niektóre tła:Szukasz cross-platform, np end-to-end z C++ do WPF/Cocoa interoperacyjności
Zdecydowałem się rozpocząć nowy projekt zaprojektowany od podstaw do uruchomienia na wielokrotność platformy (Windows, iOS, OSX, Linux, Android). Ponieważ moje środowisko to głównie C++, zamierzam napisać podstawową funkcjonalność za pomocą C++ 11. W związku z tym na każdej platformie muszę napisać interfejs użytkownika specyficzny dla platformy, który może współdziałać z rdzeniem C++.
Pierwsza platforma, na którą kierujesz to Windows (druga to iOS). Będę miał dane przechowywane w bazie danych SQLite, a także dane dostarczone przez użytkownika, które zostaną wprowadzone za pomocą WPG DataGrid (wstawianie wierszy, manipulowanie istniejącymi danymi itp.). Po raz pierwszy pracuję z WPF (chociaż korzystałem z Windows Forms) i po raz pierwszy pracuję z C++ w zarządzanym środowisku. Planuję stworzyć architekturę w stylu MVC, więc moim zdaniem SQLite jest modelem, WPF jest Viewem, a kod C++ jest kontrolerem.
Moje pytanie jest takie:
Czy istnieją przykłady tam ilustrujące jak chwycić danych z C++ interfejs i wyświetlić go przy użyciu C# i WPF bez niszczenia/maglowania z kodu C++ samego (ponieważ musi pracować na wielokrotność platformy)? Czytałem trochę o P/Invoke (nudne, ale działa) i mieszane zespoły (działa, ale będzie magii mój C++?), Ale Google nie był pomocny, jeśli chodzi o konkretne przykłady (szczególnie te, które obejmują wypełnianie formantów WPF z danymi uzyskanymi przez bibliotekę DLL w C++).
Dzięki!
EDYCJA: Podczas wyszukiwania podejść do tego problemu natknąłem się na CXXI. Nie znam go zbyt dobrze, ale wygląda na to, że może to być proste rozwiązanie mojego problemu. jakieś pomysły? Moje zrozumienie wszystkich tych koncepcji jest ograniczone.
Nie mam żadnych doświadczeń z WPF, ale mogę powiedzieć, że to, co robisz, będzie nieco trudne. Kiedy dojdziesz do aplikacji OS X (i jestem pewien, że iOS jest taki sam), będziesz musiał napisać całkiem sporo kodu Objective-C. Sądzę, że zależy to w dużej mierze od charakteru tworzonej aplikacji, ale zasadniczo trzeba będzie napisać jej wiele razy na każdej platformie. – Hassan
Dzięki za twój wkład Hassana.Wiem, że mam przed sobą dużo pracy, ale moim celem jest kodowanie interfejsu użytkownika natywnie dla każdej platformy. Uważam, że zapewnia to najlepsze wrażenia użytkownika, a także najlepsze doznania edukacyjne :) –
Masz rację, zapewnia najlepszą obsługę. A jeśli najtrudniejszą częścią interfejsu jest stół, to powiedziałbym, że jesteś w dobrej formie. Mam nadzieję, że ktoś teraz odpowiada ... – Hassan