Formant WPF WebBrowser oparty na programie Internet Explorer cierpi na niektóre problemy z klawiaturą i fokusem oraz problemy z wyciekiem pamięci . Jako alternatywne rozwiązanie tych problemów rozważamy dostępne opcje hostowania Chromium zamiast kontrolki WebBrowser w naszym projekcie WPF / C # opartym na edycji HTML. Podobne pytania zostały zapytałem tutaj wcześniej. Przeczytałem odpowiedzi i przeprowadziłem własne badania, ale mam nadzieję, że uzyskam więcej informacji zwrotnych od osób, które faktycznie korzystały z którejkolwiek z poniższych opcji w projektach o jakości produkcyjnej :
Wygląda to bardzo dobrze, ale nie podoba mi się fakt, że projekt nie jest open-source, a pełne źródło nie jest łatwo dostępne. Ponadto może to być przesada dla naszego projektu, ponieważ renderowanie poza ekranem nie jest czymś, na czym tak naprawdę polegamy.
Chromium Embedded Framework (CEF) i powiązania .NET dla CEF
Jest to prawdopodobnie najlepsza obecnie dostępna opcja. Projekt wydaje się być żywy i aktywny, obecnie jest zsynchronizowany z Chrome v27. CEF3 wykorzystuje architekturę wieloprocesową Chrome. Wygląda również na to, że Adobe udziela mu poparcia .
Chociaż pierwotnym celem była wtyczka HTML5 dla IE i Firefoksa, w rzeczywistości działa również jako samodzielna kontrolka ActiveX, więc mogłem ją opakować do użytku z WPF. Udostępnia wystarczający interfejs API do interakcji z wewnętrzną stroną internetową ( onmessage, addEventListener/removeEventListener, postMessage
). Wiem, że Google zaprzestaje działalności Chrome Frame, ale zakładam, że źródła pozostaną w repozytorium Chromium. Nie powinno być trudno zaktualizować go najnowszym kodem Chromium na bieżąco i mielibyśmy nad tym pełną kontrolę.
Niezupełnie oparty na Chromium i nie używa silnika V8, więc tak naprawdę nie jest to opcja.
Czy jest jakaś inna opcja, którą mogłem przeoczyć?
Byłbym bardzo wdzięczny, gdyby ktoś podzielił się swoim doświadczeniem z którąkolwiek z powyższych opcji dla rzeczywistego projektu WPF o jakości produkcyjnej. Czy masz jakiekolwiek konsekwencje związane z integracją, licencjonowaniem lub wdrożeniem? Dziękuję Ci.
[ZMIENIONO] Chciałbym również podziękować artlungowi za przyspieszenie tego pytania, oferując hojną ofertę nagród.