2010-03-19 27 views
10

Che cos'è lo stato attuale di PocoCapsule? Si sta evolvendo? È stato biforcuto con qualche altro prodotto? Che cos'è l'intera idea di IoC per C++? Se PocoCapsule non è in evoluzione , è perché IoC è stato considerato non utile per C++, non sicuro, altri modelli sono apparsi o qualcos'altro?Qual è lo stato corrente di PocoCapsule?

Per quanto ho capito ci sono 2-3, forse qualche prodotti, che implementare IoC per C++, disponibile e PocoCapsule è il più maturo di loro.

vedo diversi svantaggi nella versione corrente (come la vedo io è da 1,1 Google Code):

  1. No spazio dei nomi separato.
  2. I file di intestazione devono essere corretti nella cartella INCLUDE, meglio posizionarli in una sottocartella.
  3. Gli strumenti di generazione dipendono da Java.
  4. Nessuna libreria di collegamento statico viene creata per impostazione predefinita.
  5. Impossibile generare il codice sorgente da setup.xml per la compilazione e il collegamento con la mia app se non ho bisogno di funzionalità di riconfigurazione.

Qualcuno ha gli stessi pensieri? Qualcuno lavora su qualcosa di questa lista? Ci sono barriere per iniziare a lavorare, come i brevetti?

risposta

3

Ho inviato una email a Ke Jin (manutentore) e la sua risposta è stata che non è al corrente dello sviluppo attivo dal 14 luglio 2011. Non ha fornito una motivazione.

2

L'ho cercato da un po 'di tempo e mi sono reso conto che non ci sono buoni contenitori IoC in C++. Ci sono molti problemi nell'attuazione di questo. Ottenere qualcosa come i contenitori C# IoC (Castle Windsor, Unity, ecc.) È fuori portata. La mia ipotesi è che se si richiede qualcosa di simile, non si fa C++. E se fai C++, fai il rollover o usa le fabbriche singleton (piccolo scherzo);)

Un collegamento facile è usare Qt QML. È stato creato per le UI dichiarative, ma può essere utilizzato per creare qualsiasi albero basato su QObject.

Un altro aspetto positivo sono i sistemi CORBA per C++, possono avere alcune delle cose che richiedono.

Solo i miei suggerimenti per gli altri posti a guardare ...

+0

+1 per menzionare QML come possibile candidato. –

0

penso che è possibile utilizzare con successo il sistema metaobject Qt riutilizzando biblioteca QtCore e moc-compilatore nell'applicazione.

Con il sistema metaobject è possibile creare moduli completamente isolati chiamando qualsiasi metodo dell'interfaccia del modulo tramite QMetaObject::invokeMethod().

E tutto funzionerà senza l'istanza dell'oggetto QCoreApplication! Definisci i tuoi moduli come sottoclassi di QObject, fornisci la macro Q_OBJECT e contrassegna tutti i metodi di interfaccia con Q_INVOKABLE (ovviamente, dovresti aggiungere moc-compiler come step di costruzione).

Problemi correlati