Newsgroup: it.comp.programmare.win32
Titolo: GUI e C++

Saluti a tutti.
E' la prima volta che scrivo in quasto newsgroup.
Sono un programmatore C++ (ANSI) da 3 anni e vorrei passare alla
programmazione sotto Windows (2000).
Quale framework mi consigliate di usare (MFC lo escludo perchč č
'preistoria' per il C++)?
Grazie e saluti
Manlio Perillo

Se ti vuoi veramente divertire WTL. Ma č un framework SOLO per la GUI.
--
Stefano Pettini
Notary of 
www.thawte.com

Se ti vuoi veramente divertire WTL. Ma è un framework SOLO per la GUI.
Ma cos'è questo WTL? 
messaggio di: credici [
cre...@infinito.it
]

Windows Template Library. E' roba microsoft non documentata (di documentazione
ce n'è tanta però in giro). Tutta una serie di template, nello stile e come
estensione ATL, per la programmazione delle GUI sotto Windows. La cosa bella è
che permette di creare programmi superleggeri, come programmando direttamente
con le api, utilizzando però la programmazione a oggetti (tipo mfc) e tutti i
trucchetti strani delle template. Senza 1 kb di dll aggiuntive.


 --
In effetti quello che mi serve è solo la GUI.
Vorrei, se possibile, cercare di sviluppare applicazioni che siano
facilmente portabili a Linux.
A proposito, la WTL è sopportata solo dal VC++?
Saluti e grazie  Manlio Perillo

 'preistoria' per il C++)?
Perche' non ti crei tu stesso delle classi C++ (usando le API) visto che le
MFC sono preistoria?!? ;-)
Scherzi a parte, MFC non e' un ottimo esempio di programmazione OO, ma...
A mio parere ti conviene programmare con "sistemi" comuni. Se ad esempio tu
impari a programmare windows2000 con le classi tizio_caio che nessuno usa,
beh, non saresti in grado di capire i sorgenti di altri e gli altri non
sarebbero in gradi di capire i tuoi !!!
A mio avviso ti conviene usare o VC++ o C++Builer, e quindi o le API o le
MFC oppure ancora le VCL.
Alex

facilmente portabili a Linux.
Se č la portabilitą che ti interessa puoi provare wxWindows
(
www.wxwindows.org
).
Marco Barisione (ICQ 84277092)

Portabilità 0. WTL è fatto per Windows, e usa direttamente tutte le api di
Windows.
Non dovrebbe richiedere per forza VC++, basta un compilatore con un buon
supporto delle template e ATL.


"Alex" <nom...@bow.wow> ha scritto nel messaggio
news:AACf7.6624$i9.3...@news.infostrada.it...

La Microsoft non ha in programma nessun rimpiazzo moderno per le MFC?
Riguardo alle VCL ho delle riserve.
Ne ho sentito parlare molto bene, ma non sono C++ (bensi Delphi) e sono
supportate
solo dalla Borland (il cui futuro non mi sembra stabile).
Visto che per imparare ad usare un framework ci vuole molto tempo, non vorrei
fare cattivi investimenti.


 fare cattivi investimenti.
Sono concorde! Le VCL sono molto facili e si imparano in fretta, ma sono
supportate solo da Borland ed il loro futuro (a lungo termine) non e' ben
definito ;-)
Le MFC sono piu' difficilotte, ma hanno sicuramente un futuro piu' lungo!
Inoltre, ad esempio, la versione enterprise del Borland Builder gia' le
supporta!
Il rimpiazzo per MFC ?
Microsoft si sta muovendo tantissimo su ATL/COM e derivati quali WTL (che e'
pero' solo una prova), ma non rimpiazzeranno le MFC. In programma non credo
ci sia nulla, quindi credo dureranno davvero parecchi anni !!! (che ci
piaccia o meno).
Se tu non avessi evidenziato molto il fatto che sei un programmatore C++ e
che le MFC sono un cattivo esempio di OOP etc... ti consiglierei di imparare
le API nude e crude, che sono similissime dai tempi di windows 1.0 (mi hanno
detto, io ho incominciato con 95 e mi sono divertito su di un vecchio 3.11).
Inoltre le win64 API saranno praticamente identiche !!!
In sostanza se non ti interessasse cosi' tanto avere un frameword OO ti
consiglierei le API.
Ci si mette un pochino di tempo ad impararle (meno delle MFC forse), ma in
compenso sono praticamente eterne ;-)
Tra le altre cose non e' nemmeno del tutto vero che le con le API non si
riesca a programmare in modo OO, molte cose vanno gestite in modo
procedurale, ma molte cose, con un attimo di fantasia si riescono a fare
object oriented. Io spesso, quando programmo con le API, mi faccio, a
seconda delle necessità un paio di classi C++ e quind un paio di oggetti
"autosufficienti" !!!
Le MFC sono state inventate per rendere la programmazione piu' veloce, e
quindi le aziende piu' produttive. In secondo luogo per accontentare gli
utenti che, con la moda del C++ e della OOP, richiedevano un framework di
nuova generazione.
Io, per concludere con una nota personale, ho scelto di utilizzare il VC++ e
le API/MFC. Per la maggior parte dei progetti uso le API, quando invece, a
pelle, mi sembra che un progetto venga meglio con le MFC uso quest'ultime.
Spesso quando uso le MFC di fatto finisco ad usare i vari tool quali
class-wizard etc... che fanno davvero ridurre i tempi di programmazione!!!
In pratica preferisco le API, ma se dovessi essere produttivo (visto che
ancora programmo per diletto in VC++ essendo universitario) userei le MFC,
se e' vero che il tempo e' denaro le MFC sono molto utili in questo.
Ti ho sentito anche parlare di "portabilita'" su linux... Beh, API, MFC, VCL
etc... non sono per nulla portabili su Linux. Come ti hanno consigliato
potresti scaricarti wxWindows, ma la verità e' che credo non sia una cosa
opportuna impararsi delle API virtuali (un ulteriore livello di astrazione)
costruite in modo uguale su diversi sistemi operativi. Perche?!? Perche' non
avresti imparato a programmare windows e nemmeno Linux, ma a programmare
queste API di alto livello che se mai dovessero scomparire (freeware ed
opensource) ti lascerebbero solo tanta amarezza. Inoltre il mio consgilio
(che gia' ti ho dato) e' quello di imparare qualche cosa di utilizzato dalla
"massa" solo in questo modo potrai lavorare in team etc... (e chiedere aiuto
sui NG)
Alex
P.S. se intendi usare le API compra: Programming Windows 5th ed. by Petzold.
Se intendi programmare con le MFC compra invece Programming Windows with MFC
2nd ed. by Prosise. Questi sono solo i primi libri introduttivi per
iniziare.
Alternativamente c'e' Programming Visual C++ 5th ed by Kruglinski che tratta
un pochino di tutto (basandosi sulle MFC), e' sempre un testo introduttivo.
Per approfondire, specialmente se usi le API, puoi comprare il Programming
Applications for Windows 4th ed by Richter che tratta invece argomenti
avanzati. Tutti i libri citati sono editi MicrosoftPress.

sui NG)
Non credo che wxWindows morirà molto presto sia perché è open source
(quindi qualcuno che le mantiene probabilmente ci sarà) sia perché non
sono usate solo da programmi C++ ma anche da Python per cui stanno
diventando molto diffuse (
www.wxpython.org
). Esiste una versione anche
per Perl (wxPerl) ma non so quanto sia effettivamente utilizzata.
Inoltre dicono (non conosco MFC e quindi non so quanto sia vero) che
wxWindows assomigli abbastanza ad MFC e sia facile passare da un
framework all'altro.
Cmq ti suggerisco anche di studiarti un pochettino le API perché
aiutano a capire meglio il perché di molte cose.
Marco Barisione (ICQ 84277092)

 framework all'altro.
E' vero che vengono utilizzati da altri framework della famiglia wx_etc..,
ma riguardo al loro futuro...
Beh, staremo a vedere e' probabile che io mi sbagli.
Alex

 [CUT]
Grazie per l'esauriente paronamica.
Comunque approfitto per togliermi un dubbio.
Con l'avvento della tecnologia .NET COM, OLE, ActiveX avranno più senso?
Saluti  Manlio Perillo

No, .net è fatta tutta da nuovi componenti. Le interfacce com, ole, l'oggetto
activex saranno tutti sorpassati in favore di un modo di programmare molto più
semplice. A un prezzo, secondo me, un pò troppo caro. La macchina virtuale
.net che esegue il tuo codice, praticamente un windows dentro un windows.
Secondo me dovrebbero fare sforzi per far funzionare tecnologie del genere
nella maniera corretta (ovvero con il processore, non in una vm). Però io sono
un'amante della tecnologia e l'unica cosa accettabile, nel mondo microsoft, è
invece la commerciabilità di un prodotto.
Ok, ho detto la mia :-)


.net che esegue il tuo codice, praticamente un windows dentro un windows.
Giŕ ma IMHO non scompariranno cosě velocemente, dopotutto bisogna
supportare i programmi giŕ esistenti e molti programmatori potrebbero
preferire utilizzare tecnologie + vecchie per poter utilizzare i
programmi anche sotto win95
Marco Barisione (ICQ 84277092)

 Con l'avvento della tecnologia .NET COM, OLE, ActiveX avranno più senso?
Fra parecchio tempo probabilmente no, ma per ora si.
Credo dureranno ancora visto che la Microsoft non puo' lasciare a piedi gli
utenti che li usano o che sono abituati ad usarli ;-)
Ad ogni modo visto che sei una new-entry nel mondo della programmazione
windows, se va tutto bene potrai fare a meno di impararli !!!
Alex

cioč l'equivalente delle VCL per linux o no.
CLX e' sia per Windows che per Linux.
Per ora affianca la VCL.

Per ora affianca la VCL.
Ma quindi in futuro le VCL potrebbero non essere piů mantenute a
favore delle CLX?
--
Marco Barisione (ICQ 84277092)

favore delle CLX?
Credo la direzione che Borland intenda seguire sia
esattamente questa.