Ottima domanda.
Ho sviluppato la mia applicazione per oltre 10 anni, a partire da Delphi 2, 3 e poi 4 e quindi rimanendo lì e aspettando molti anni to upgrade to Delphi 2009 perché Unicode era un must. Aggiornerò di nuovo quando uscirà la versione a 64 bit.
Quindi ho eseguito la gamma di Sistemi operativi: Windows 98, Windows 2000, XP, Vista e ora 7. Ognuno interrompe l'interfaccia utente in qualche modo, ma Delphi è stato piuttosto bravo a riguardo. Ad un certo punto nel tempo, devi decidere che non puoi più supportare i vecchi SO e passare a Unicode finally cut out Windows 98 dal mio elenco supportato.
In generale, ho trovato che il core Delphi offre il miglior supporto per l'interfaccia utente. Alcuni pacchetti di terze parti possono sembrare di fornire di più, ma le loro incongruenze sono problemi peggiori di quanto potrebbero essere i loro benefici. Riduci al minimo altri pacchetti dove puoi.
L'unico obiettivo dell'interfaccia utente che ho avuto è di andare per il programma Windows Vista Logo, e più recentemente il programma Windows 7, e Microsoft does provide a lot of information su quali dovrebbero essere gli standard che riguardano le tue condizioni 1-7 nella tua domanda. Ma ottenere un programma Delphi per usare un manifest e passare attraverso i cerchi di Microsoft era alla fine, non valeva la pena e costava a me, soprattutto perché il mio programma non conforme funzionava bene su Vista e 7.
Mantenere il mio programma correre e mantenere l'interfaccia utente alla stessa maniera su Windows XP, Vista e 7 quando sto sviluppando su una macchina Vista a 64 bit significa che uso Microsoft Virtual Machine quando ne ho bisogno. Mi è stato detto che il mio programma funziona anche su Wine, quindi questa è un'altra macchina di prova.
Ora rispondere alle vostre domande:
a) Se Delphi 2010 portano nulla di nuovo al tavolo per aiutare con questa situazione?
Sì. Ogni versione aggiunge nuovi componenti VCL che sono stati aggiunti ai nuovi SO. per esempio. La nuova interfaccia utente di Windows 7 è stata aggiunta.
b) Dovremmo scegliere una suite di componenti aftermarket e affidarci a loro per risolvere tutti questi problemi ?, e c) Dovremmo andare con un motore di skin aftermarket?
Come ho detto sopra, ritengo sia meglio farlo in Delphi stesso che in un pacchetto di terze parti.
d) Forse un gui di tipo più html è la strada da percorrere. Possiamo creare un'app gui relativamente complessa con html che non richieda l'uso di un browser? (preferisco mantenerlo basato sulla forma)
La mia applicazione è come un elaboratore di testi con Rich Text. Ho esaminato le suite di editor basati su HTML e ce ne sono alcune, ma non penso che sia la strada da percorrere per un'applicazione desktop. Se si desidera un'applicazione basata sul Web, si farebbe meglio con .NET e Prism.
e) Dovremmo solo cazzeggiare e scandire tutti questi scenari e smettere di lamentarci?
Aggiornamento a Delphi 2010 prima. Scoprirai che Delphi gestirà la maggior parte di queste situazioni per te.
f) E infine, come mai dovremmo testare tutte queste condizioni nel mondo?
Farlo autonomamente è un compito importante, anche con le macchine virtuali. Quello che devi fare è avere una Beta aperta e ottenere tanti utenti diversi in ambienti diversi per testare il tuo programma per te. Quindi gestirai tutti gli ambienti più importanti per i tuoi utenti.
Ora, se pensate che ottenere compatibilità con l'interfaccia utente in diversi ambienti Windows sia difficile, aspettate che Embarcadero fornisca la loro versione di Delphi che verrà compilata per il Mac. Le tue attuali preoccupazioni per l'interfaccia utente sembreranno banali in confronto a ciò che diventeranno.
Domanda difficile! Eclipse non ha un sistema perfettamente portatile? (windows, linux, mac, ogni sapore) Sto arrivando molto prima di me stesso, ma mi sembra di ricordare che aveva un gui Java. Sono davvero insicuro della mia risposta, ecco perché ne faccio un commento – Shawn