Grato per le opinioni su Language and Framework per la mia applicazione Windows

3

Ho letto alcune domande correlate su questo sito, tra cui:

quale lingua dovrei cercare di imparare se mi piacerebbe sviluppare per Windows
e Come avviare la programmazione in Windows

ma ritengo che la mia situazione sia leggermente diversa e ho alcune altre domande su cui vorrei esprimere alcune opinioni.

Sono uno studente maturo che fa una laurea in Informatica. Devo scegliere un'idea per il mio progetto per l'ultimo anno molto presto. Ho intenzione di produrre un prodotto software Windows specifico (applicazione desktop - abilitato per il Web) quando esco da uni e vedere il mio progetto per l'ultimo anno come un'opportunità per ottenere un vantaggio su questo. In particolare, voglio affrontare tutte le parti difficili come il networking e la sicurezza.

Al momento non mi interessa molto la compatibilità cross-platform, perché il mercato di questo prodotto utilizza Windows, ma ho bisogno di scegliere la lingua e il framework che dovrei usare molto presto.

Sono certificato in Java (OCPJP (usato per essere SCJP)) e all'università abbiamo usato Java, C e Occam (uurrghh). Tuttavia, stavo pensando di imparare il C ++ in modo da poter usare il framework Qt che sembra piuttosto buono.

Tuttavia ho qualche problema. Sarebbe più veloce usare C #, piuttosto che C ++ e Qt? Quali sarebbero i vantaggi dell'utilizzo di Qt? Spero che renderà lo sviluppo veloce e renderà il mio software sicuro e difficile da decifrare. Sono consapevole del fatto che devo pagare per il privilegio (non voglio usare l'opzione che è gratuita, dato che dovrei rendere disponibile il mio codice sorgente).

Se utilizzo C #, imparerò il framework .NET che è fondamentalmente un sacco di classi helper per accelerare lo sviluppo di Windows, è corretto? Capisco che posso usare parecchie lingue diverse con .NET e verranno tutte compilate nella stessa lingua intermedia.

Qual è la differenza tra Microsoft Foundation Class Library e Windows Presentation Foundation? Qualcuno conosce i vantaggi dell'utilizzo di uno dei due?

Non penso che il software sarà molto complesso. Ho utilizzato professionalmente 4 prodotti diversi del tipo che voglio realizzare (sono uno studente maturo) e la parte di elaborazione effettiva non deve essere all'avanguardia perché la domanda non è mai così grande per i computer moderni anche piuttosto bassi ( ovviamente cercherò comunque di essere efficiente), ma il design generale e l'usabilità sono stati sorprendenti, mancando nella maggior parte di essi e spero di fare meglio. Voglio solo assicurarmi che sia bello e che io possa svilupparlo rapidamente.

Devo continuare a leggere Visual C ++ di Ivor Horton che tratta C ++, le basi della programmazione Windows, Windows Form e Microsoft Foundation Classes? O qualcuno ha un suggerimento migliore. Tempo limitato a disposizione, quindi devo decidere gli strumenti che ora utilizzerò per il prodotto finito.

Mi dispiace molto che questo post sia così lungo, ma è molto importante per me ricevere alcuni buoni consigli su questo.

Grazie mille:)

Modifica:

Buon articolo su StackOverflow

Un'altra modifica:

La gestione della memoria è qualcosa di automatico quando si sviluppa con C ++ / Qt? Capisco che se stai usando .NET con C ++, è tutto spazzatura.

    
posta Joe 29.04.2011 - 18:45
fonte

2 risposte

5

Come sviluppatore .NET, e principalmente uno sviluppatore WPF , direi che WPF è una drastica modifica al modo in cui le applicazioni desktop vengono scritte in questi giorni. Sono venuto da WinForms usando C # ed ero scettico ma valeva decisamente la transizione. Puoi creare incredibili interfacce utente che separano completamente il lato di visualizzazione dell'applicazione dal lato "logico" dell'applicazione. In realtà è molto più simile allo sviluppo web rispetto a Programmazione desktop e puoi usare cose interessanti come Model-View-View -Model modello di progettazione che può davvero aiutare a mantenere il tuo progetto trasformato in un casino. Non ho mai fatto alcuna programmazione QT con C ++ prima o con qualsiasi linguaggio. Ho trascorso gli ultimi 5 anni della mia vita a fare .NET e devo dire che è stato grandioso.

Una volta acquisito il framework .NET, è possibile espandersi realmente in uno dei vari ambiti dell'ambiente (ASP.NET, WCF, WPF, ecc.). Offre veramente uno stack completo. Non vedo perché non lo provi almeno. Sono abbastanza sicuro che puoi ottenere Visual Studio Express e lavorare con alcuni tutorial per farvi un'idea. Per quanto riguarda C #, è un ottimo linguaggio e sta migliorando tutto il tempo, e non poteva far male avere qualche esperienza in esso almeno per il curriculum. E imparare XAML è piuttosto facile se hai qualche esperienza XML di sorta e il vantaggio è che puoi sfruttare quella conoscenza in seguito se vuoi fare qualcosa con Silverlight.

HTH!

Best, Steve

    
risposta data 29.04.2011 - 20:32
fonte
2

Dipende da ciò che stai cercando di uscire dalla scrittura del progetto:

Se vuoi essere produttivo, usa Java poiché sembra che tu lo abbia più familiarità. Come devi sapere, l'apprendimento delle sfumature di una nuova lingua richiede tempo e potresti trovarti in uno scenario di scenari "oh sh * $" che richiedono di ripensare e riscrivere le cose in base alla tua nuova conoscenza.

Se vuoi per imparare una nuova lingua ed essere ancora produttivo, usa C #. Onestamente non riesco a pensare ad una ragione aziendale ragionevole per cui vorresti scrivere un'applicazione specifica per Windows in C ++, tranne che per ragioni puramente accademiche (ovvero vuoi rispolverare l'uso della memoria, i puntatori, i riferimenti, ecc.) Detto questo, puoi sempre usare unsafe nelle applicazioni C #). Da quello che ho letto (e mi è stato detto), C # è un po 'vicino a Java, quindi sarebbe molto più facile da cogliere del C ++.

Qt è un buon pacchetto e bello che sia multipiattaforma (so che non è una delle tue preoccupazioni qui), ma di per sé non renderà il tuo software più sicuro. L'unica cosa che aiuterà il tuo software a essere più sicuro è la tua implementazione . Ci sono parecchi buoni libri là fuori sulla scrittura di un codice sicuro, ma poiché il tuo tempo è limitato, molto probabilmente non sarai in grado di imparare tutto ciò che è richiesto.

TL; DR: mano a mano che ci sono vincoli di tempo, scrivi la tua applicazione nella lingua che ti è più comoda. Se hai un po 'di tempo di buffer, allora potresti prendere in considerazione C #. Tuttavia, lo sviluppo in C ++ è un bel salto da entrambe le lingue e lo suggerirei solo come esercizio accademico e solo se non avessi limiti di tempo.

Modifica

MFC è sicuramente considerato obsoleto:)

    
risposta data 29.04.2011 - 20:29
fonte

Leggi altre domande sui tag