Scegliere tra Qt / C ++ e .NET / C # [chiuso]

5

Ho un progetto desktop su cui ho lavorato per un paio di mesi che voglio eseguire su Windows e Mac. Quando ho iniziato il progetto, ho iniziato a scriverlo in Qt 4.8 in C ++. Lo sviluppo è andato bene e l'applicazione funziona abbastanza bene su Windows e Mac come speravo. Direi che è completo al 40% a questo punto.

Per alcune informazioni di base, l'applicazione è una variante di un client di posta elettronica.

Ma sto pensando di abbandonare ciò che ho fatto finora in C ++ / Qt e acquistare una licenza per Xamarin Studio e scrivere l'applicazione in C #.

Ci sono alcuni motivi per cui sto prendendo seriamente in considerazione questo:

  • Voglio rilasciare anche versioni mobili di questa applicazione, e con C # molto del codice back-end potrebbe essere riutilizzato su tutte le piattaforme.

  • Voglio pubblicare questa app sugli store Windows e . So che pubblichi App Qt su Apple Store ma non ho letto o non sono riuscito a trovare nulla su chiunque pubblichi App Qt su Windows Store. Per non parlare, Qt 4.8 non ha il supporto integrato per Metro UI (dovrei usare Qt 5.0, che significherebbe comunque riscrivere gran parte del codice).

  • Avendo lavorato sia in C # che in C ++ per molti anni, nel complesso sono più "felice" sviluppando in C #.

Tuttavia, ho alcuni motivi per cui seguo il corso:

  • Come ho già detto, sono completo al 40% circa nella prima incarnazione di questo progetto.

  • Gran parte del mio programma si basa su Lua, per cui sono in grado di utilizzare le librerie native Lua abbastanza facilmente in C ++, e non sono sicuro di quanto bene le implementazioni Lua che ho visto per Mono / C # funziona.

  • Mantenimento di due codici UI separati per l'app desktop (quindi, in Qt posso #include <QtCore> su Windows e Mac, ma in C # dovrei using System.Windows.Forms su Windows e 'using MonoMac.' on Mac)

Onestamente, a questo punto sono propenso a ricominciare da capo in C #, usando quello che ho in C ++ come guida e rimandare la mia uscita per circa un mese (su quanto tempo mi ci vorrà per prendere in considerazione le altre responsabilità nella mia vita).

Stavo cercando un input da parte di persone che si trovavano in una situazione simile. E sono particolarmente interessato a sentire da chiunque abbia usato C # per pubblicare app sugli archivi Windows e Mac.

Che ne pensi?

    
posta Addy 06.04.2013 - 15:08
fonte

2 risposte

9

Non lasciarti ingannare dalla sindrome dell '"erba è più verde". Hai qualcosa che si sta completando, funziona e sarà disponibile su altre piattaforme in futuro come vuoi ... quindi perché vorresti cambiare ora!?

Conosci la situazione che hai attualmente, se hai cambiato dovresti scoprire i problemi che dovrai affrontare ancora una volta - la sua unica ragione per cui dovresti non riscrivere mai da zero .

    
risposta data 06.04.2013 - 16:33
fonte
4

Non penso che riscrivere da zero sia una buona idea in generale, ma per affrontare un paio dei punti tecnici che hai citato:

I want to release mobile versions of this application too, and with C# a lot of the backend code could be reused on all platforms.

Non c'è una ragione particolare per cui perché non è possibile riutilizzare il codice C ++ per piattaforme mobili. Non è sicuramente uno stato di cose ideale per gli appassionati del C ++, ma è fattibile.

A large portion of my program rests upon Lua, for which I'm able to use the native Lua libraries quite easily in C++, and I'm not sure how well the Lua implementations I've seen for Mono/C# work.

Lo scripting in .NET Framework in generale è .. un po 'complicato. Per ricaricare gli script, dovrai gestire uno / alcuni AppDomain (s) in modo specifico per lo scripting . Se intendi modificare frequentemente gli script come implicherebbe alcuni casi d'uso per lo scripting, questo è un fattore significativo da considerare.

Inoltre, l'ultima volta che ho controllato (anche se questo potrebbe facilmente essere cambiato da allora), i binding Lua per .NET sono stati davvero scomodi da usare a causa del patrimonio di C. Ci sono alcuni progetti DLU Lua che possono o non possono essere migliori delle librerie che stavo tentando di usare alla volta. Non posso pubblicare più di 2 link altrimenti collegheremo a un paio, ma puoi utilizzare il tuo motore di ricerca preferito.

    
risposta data 06.04.2013 - 17:30
fonte

Leggi altre domande sui tag