Chcę stworzyć aplikację wieloplatformową, która również będzie miała stronę internetową, na której aplikacje komputerowe (Windows, iOS, Linux) będą komunikować się z serwerem i synchronizować dane użytkowników.
Jak dotąd opcje, które widzę to:
- Napisz natywny interfejs GUI dla każdego z 3 systemów operacyjnych, więc miałbym 3 bazy kodu GUI (i jeden system zaplecza)
- Użyj czegoś takiego jak GTK, aby móc korzystać z jednego systemu ze wsparciem na wszystkich wspomnianych platformach.
Ale trzecim, na którym nie byłem w stanie znaleźć wielu informacji (być może nie szukam właściwych terminów, ponieważ wciąż jestem nowy w C # i .Net), jest okno z wbudowaną instancją WebKit , co pozwoliłoby mi korzystać z tego samego systemu GUI, którego używałbym na stronie. Co sprawiłoby, że aplikacja kliencka i witryna wyglądałyby tak blisko siebie, jak to możliwe, aby użytkownicy znali interfejs.
Czy ta ostatnia opcja z WebKit jest wiarygodna? Znam dobrze JavaScript / HTML i jeśli mogę wykorzystać tę wiedzę do stworzenia interfejsu, byłoby świetnie. Byłby to również świetny sposób, aby umożliwić użytkownikom dostosowanie interfejsu za pomocą wtyczek i synchronizację dowolnych preferencji interfejsu użytkownika z lokalnego na www.
Odpowiedzi:
Nie rozumiem, dlaczego nie, ale zamiast tego możesz po prostu uruchomić Chrome w trybie „bez okien” lub IE w trybie „hta” (napisaliśmy aplikację komputerową za pomocą technologii internetowej, wdrażając ją jako hta w systemie Windows dziesięć lat temu).
Dzisiaj zrobię coś bez IE / IIS i użyję websockets dla bardziej interaktywnego doświadczenia.
Istnieją komponenty, które umożliwiają webkit osadzony w aplikacjach C #: zobacz ten post z SO (zgoda dotyczy korzystania z Webkit.NET )
Zamiast tego użyłbym również komponentu QtWebkit , a następnie napiszesz pojedynczą, lekką, opartą na Qt, wieloplatformową „pulpitową” aplikację, która osadza internetowy interfejs GUI.
źródło
Pracowałem nad strukturą aplikacji dla projektów takich jak twój. Opiera się na strukturze zawartości chromu. Pozwala na implementację GUI aplikacji za pomocą html / css / js / svg itp., A logikę aplikacji można zaimplementować w javascript lub c #.
Moim celem jest tworzenie bogatych, w pełni funkcjonalnych „grubych” aplikacji komputerowych przy użyciu technologii sieciowych, które są wieloplatformowe i nie wymagają niczego po stronie serwera.
źródło