Webkit jako GUI w .Net / Mono

12

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.

skift
źródło
Patrzę na Sencha ExtJS dla tego rodzaju pracy, ale nie jestem przekonany, że jest to najlepsza jak dotąd metoda.
jfrankcarr 19.04. O

Odpowiedzi:

10

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.

gbjbaanb
źródło
Hmm, to wydaje się solidna odpowiedź. Poczekam chwilę, aby sprawdzić, czy ktoś również się włączy, zanim oznaczy jako odpowiedź. Ale Webkit.Net wygląda na to, że może to zrobić. Jeden z łączy w pytaniu SO, które łączyłeś, prowadzi do repozytorium github CefSharp, gdzie ma osadzoną instancję chromu. Chociaż nie jestem pewien, czy będę potrzebować całej przeglądarki w porównaniu do samego zestawu. Będę musiał szukać dalej.
skif
Jeśli chodzi o „Dzisiaj zrobiłbym coś bez IE / IIS i używałem websockets dla bardziej interaktywnego doświadczenia”. Chcę używać mono, aby móc korzystać z .net i obsługiwać wiele platform, a także móc hostować witrynę na czymś takim jak nginx lub cherokee, jeśli mają obsługę mono, w przeciwnym razie apache. Nie znam wystarczająco administratorów IIS i Windows, ale znam i mam serwer linuksowy. Do tej pory nie będę miał interakcji na żywo między użytkownikami, więc prawdopodobnie nie będę potrzebował gniazd internetowych. Synchronizacja DB będzie korzystała z couchdb. Chociaż później mogę zajrzeć na websockets lub socket.io, gdy robię bardziej zaawansowane rzeczy
pomiń
Jeśli chodzi o tworzenie stron internetowych, trzymaj się stosu Linuksa, Windows jest słabym drugim miejscem na rynku tworzenia stron internetowych. Zignorowałbym również mono, ponieważ został upuszczony, gdy Novell upadł, powiedziałbym, że to martwa technologia, lepiej trzymać się jednej z innych technologii wieloplatformowych, które zapewniają lepsze doświadczenie deweloperskie w systemie Linux. Poleganie na wsparciu mono i przyszłych aktualizacjach jest dla mnie trochę ryzykowne.
gbjbaanb
Tak, to zwykle nie jest moja mocna strona. Wolę iść w kierunku javascript i node.js. Ale muszę się nauczyć c # /. Net do pracy, więc pomyślałem, że równie dobrze mogę zbudować z nim mały projekt, aby pomóc się go nauczyć. Myślę, że .Net ma całkiem fajne funkcje, jeśli zajmuję się głównie programowaniem okien i przeglądaniem stron internetowych. Staram się więc wykorzystać to, co wiem, że będę używać w pracy, czyli połączenie aplikacji internetowych i stacjonarnych.
skift
0

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.

Jake
źródło
Chociaż chociaż chcę robić rzeczy po stronie serwera (ponieważ użytkownicy będą mogli synchronizować dane z serwerem centralnym i korzystać z aplikacji online), chciałbym wiedzieć, jak używasz chromu. Dla mnie wersje na komputery byłyby w zasadzie kopią tego, co jest na serwerze, więc działa szybciej i nie musi czekać na aktualizacje, a oni mogą go używać offline.
skif