Domanda

Al momento, la nostra applicazione utilizza il componente Trident Win32, ma vogliamo allontanarci da questo per alcuni motivi, in primo luogo il nostro desiderio di diventare multipiattaforma.

Stiamo esaminando WebKit e Gecko , ma mi piacerebbe ricevere un feedback prima di prendere una decisione. Ecco alcuni dei requisiti più importanti:

  1. Dovrebbe essere relativamente veloce, con un ingombro ridotto. Idealmente, saremmo in grado di tagliare tutto ciò di cui non abbiamo bisogno senza troppi sforzi.

  2. La documentazione decente è importante. Non prevedo di dover fare qualcosa di troppo insolito, ma non lo sai mai.

  3. Stiamo usando il C ++ e, se possibile, vorremmo lavorare con un'architettura orientata agli oggetti ben progettata.

  4. Il multipiattaforma è un must e buone prestazioni sarebbero utili a lungo termine (potremmo finire con il porting su piattaforme mobili).

Ci sono delle considerazioni che devo prendere in considerazione prima di prendere una decisione? Qualcuno ha già lavorato con WebKit o Gecko? In tal caso, ci sono articoli o tutorial che potrei trovare utili?

Aggiornamento:

Grazie per le risposte ragazzi. Abbiamo finito con Qt 4.5, che include WebKit. Finora siamo davvero soddisfatti, infatti penso che Qt sia probabilmente il miglior framework UI che abbia mai usato; la differenza tra la codifica con le API Win32 native e questa è sconcertante. È anche molto facile da imparare, l'unico grosso problema che abbiamo avuto è stato abituarci al paradigma segnali / slot.

È stato utile?

Soluzione

Un po 'di storia potrebbe aiutarti nella tua decisione. Quando Apple stava considerando quale motore utilizzare per realizzare Safari, ha guardato Gecko, ma ha deciso di utilizzare KHTML, fork e lo ha chiamato WebKit. Le loro ragioni per farlo furono che Gecko aveva ancora tonnellate di innesti legacy rimasti da Netscape ed era molto più complicato.

KHTML / WebKit era più recente e quindi aveva meno legacy. Era anche più pulito, più veloce e meglio documentato.

Uno degli obiettivi di Firefox 3 era ripulire la base di codice e semplificarla. Da quello che ho sentito hanno fatto questo, ma non so come si confronta con le attuali iterazioni di WebKit. Apparentemente non era abbastanza per Google quando hanno creato Chrome e hanno una partecipazione significativa in Firefox.

Vedi qui per maggiori dettagli.

Altri suggerimenti

Sono di parte, ma se non ti dispiace usare (LGPL-ed) Qt, che ne dici di usare QtWebKit ? È abbastanza facile da integrare, ovviamente multipiattaforma, ha una bella dimostrazione del browser Web e anche altre esempi correlati .

Dipende dalle tue esigenze. Anche Webkit può essere eccessivo se si desidera solo visualizzare HTML semplice. In alcune delle mie applicazioni utilizzo invece wxHTML. È un componente della libreria wxWidgets (non sono sicuro se puoi usarlo senza wx). È leggero, supporta solo elementi HTML di base (alcuni supporti CSS potrebbero essere disponibili nella prossima versione) e ha un controllo wxHtmlEasyPrinting davvero piacevole che offre una piacevole anteprima di stampa e stampa anche molto bene. Per quanto riguarda la multipiattaforma, wxWidgets funziona su Windows, Linux, Mac e alcuni altri sistemi, quindi sarebbe sicuramente adatto alle tue esigenze.

Non consiglio di percorrere la strada del Geco. È possibile integrarlo, ma è molto più difficile da fare rispetto a KHTML / Webkit - semplicemente perché Gecko non è stato creato pensando all'inclusione.

Penso che suggerirei il motore WebKit di Safari / Chrome che è stato derivato da KHTML, il motore di rendering di Konqueror.

Prova a optare per Webkit in quanto viene utilizzato da molti browser diversi (Konqueror, Safari e Google Chrome). Ciò rende Webkit più versatile e più adattabile ad altre esigenze.

Lo sviluppo di Gecko è molto legato a Firefox. Molte modifiche apportate a Gecko vengono apportate perché Firefox le impone. Ad esempio, Firefox 3 ha deciso che avrebbe bloccato tutti i certificati autofirmati per motivi di sicurezza. L'implementazione è stata eseguita nel motore di Gecko, il che significa che a qualsiasi applicazione che decide di incorporare Gecko è stato aggiunto questo vincolo di sicurezza.

Se puoi rimanere con Webkit in quanto è principalmente un motore di rendering per le pagine HTML. È stato sviluppato con l'intenzione di essere utilizzato tra diversi browser Web. Mentre Gecko è principalmente il motore di rendering di un singolo browser che offre semplicemente un'API per l'incorporamento.

La mia comprensione è che Webkit è abbastanza buono & amp; più piccolo di Gecko. Gecko dovrebbe avere avuto recentemente un rinnovamento che lo rende abbastanza comparabile, tuttavia.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top