Newsgroup: it.comp.programmare.win32
Titolo: mfc atl wtl

Qualcuno potrebbe chiarirmi le idee sulla relazione tra
mfc, atl e wtl?
Quello che ho capito io e' che le Atl sono un rimpiazzo
delle MFC e che Wtl e' una estensione delle Atl. E'
corretto?
Su Atl e Wtl ho trovato ben poco in giro, sono
graditi anche link.
Grazie in anticipo
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 graditi anche link.
MFC è una liberia molto datata che ha come scopo primario la crezione di 
applicazioni con UI ma che ha anche molte librerie per lo sviluppo server e 
COM. Essendo datata si è portata dietro un sacco di rogne e nel tempo ha 
pluridimostrato di non sfruttare (ed in alcuni casi di tradire) il paradigma 
OOP. Tante volte non puoi estendere le classi pronte ma devi riscrivere 
molto codice. Se le usi dipendi da MFC e puoi scegliere il link statico 
(sconsigliato) o dinamico (dll). Ovviamente ti devi portare dietro il 
'malloppo' delle dll di MFC quando fai il deploy. È supportata ufficialmente 
da MS.
ATL è una liberia molto leggera che usa in modo straordinario i template e 
le specialization di C++. Per questo motivo è estremamente più leggera di 
MFC. Il suo scopo primario è quello di sviluppare componenti COM e Activex. 
Non sono provviste facility per lo sviluppo di UI. È supportata 
ufficialmente da MS.
WTL deriva da ATL ed è composta da quelle classi UI che mancano in ATL. Ti 
pemettono di sviluppare belle applicazioni ma senza il supporto 
document/view (a meno che non sia stato aggiunto recentemente non mi 
risulta) che alcuni odiano e alcuni adorano. WTL è uno dei progetti 
open/shared source di MS pubblicato su soundforge e sta evolvendo. È nato 
come esempio del platform sdk sulle ceneri del progetto Attila creato da 
Chris Sells che oggi lavora in MS sul 
framework.net
. Non è supportato 
ufficialmente ma MS è intenzionata a continuare a rendere la vita facile a 
chi deve mantenere progetti WTL tanto che vengono fatti i test per 
verificare che non ci siano problemi con applicazioni miste Avalon/WTL.
http://sourceforge.net/projects/wtl/
Ciao,
-- 
Raffaele Rialdi
Microsoft .NET MVP 
http://mvp.support.microsoft.com
 -
http://italy.mvps.org
 UGIdotNET - User Group Italiano .NET
http://www.ugidotnet.org
 Weblog: 
http://blogs.ugidotnet.org/raffaele

 MFC è una liberia molto datata
E' viva e vegeta, una nuova "fiammante" versione 8 uscirà con VS2005. 
-- 
Luc

 E' viva e vegeta, una nuova "fiammante" versione 8 uscirà con VS2005. 
ma ci saranno reali e significativi aggiornamenti? io credevo che ormai MS
la stesse accantonando... comunque la supporta ancora e penso che la
supporterà pienamente per moltissimo tempo, ma credevo che ormai MS non ci
spendesse più per rinnovarla...


 E' viva e vegeta, una nuova "fiammante" versione 8 uscirà con VS2005.
Certo e sopravviverà molto a lungo, ma questo non significa che non sia 
datata visto che l''ho usata la prima volta con MSC++ 7.0 all'inizio degli 
anni '90.


 anni '90.
concordo: ho un manuale di programmazione in Windows 3.1, roba a 16 bit;
gli esempi di codice usavano MFC... :D


 che ormai MS non ci spendesse più per rinnovarla...
Ho sentito domanda e risposta dal team di vc++ a questo proposito.
La risposta data è stata che MFC è talmente diffusa da 'obbligare' MS a 
continuare a farne manutenzione.
Non ci sono stati particolari se e su quanto dovesse essere 
significativamente ampliata.
Per certo il futuro di MFC riguarda l'integrazione con Avalon. Ho visto 
infatti una demo in cui veniva ricompilato Powerpoint (fatto con MFC) 
aggiungendo il supporto al framework e l'uso di Avalon.


 spendesse più per rinnovarla...
Lo ha fatto, almeno cosi ha detto alla presentazione del 2005. 
-- 
Luc

 bit; gli esempi di codice usavano MFC... :D
ah che ricordi :-) ... un giorno o l'altro devo pubblicare le foto delle 
scatole dei vari compilatori che ancora conservo gelosamente ...


 aggiungendo il supporto al framework e l'uso di Avalon.
e quanto ci metteva PP a compilare? ^^
un programmatore mi ha detto che Firefox sul suo computer ci ha messo 3
ore a compilare... ^^'


 3 ore a compilare... ^^'
Beh tieni conto che non hanno ricompilato tutte le dll, ma solo la parte di 
UI aggiungendo una dialog managed e qualche altra cosetta.
Il tempo è stato quindi breve, roba di pochi  minuti mentre parlava il tipo.


 continuare a farne manutenzione.
MFC è il classico standard "de facto"... 
-- 
Luc

 
http://sourceforge.net/projects/wtl/
Questo l'avevo trovato, come ho trovato su CodeProject
"WTL for MFC Programmers"... Per me non conosco MFC la
lettura e' risultata particolarmante ostica.
Speravo in qualcosa tipo "WTL for Dummies" :-)
Ciao e grazie ancora.


 adoro MFC :D
Mi associo.
MFC non sara' "bella" nel senso del "purismo OOP", ma bisogna considerare
anche che il suo sviluppo inizio' un bel po' di tempo fa, quando l'OOP era
meno diffusa di oggi, e anche il C++ non aveva tante caratteristiche
odieren (es. mancava all'epoca STL, per cui aveva senso che i
programmatori Microsoft inserissero in MFC classi come CArray, etc.).
Inoltre, MFC certamente consente di realizzare programmi *molto efficienti* (es.
l'uso delle message map consente di evitare delle inutili v-table dovute a
funzioni virtuali C++). Riguardo poi il discorso del "run-time", le
librerie DLL di MFC sono ormai dotazioni standard di Windows, quindi non
c'e' nessun "appesantimento" a riguardo.
Spero che MS continui a supportare tale libreria, e mi ha fatto anche
piacere sentire che PowerPoint e' stato realizzato con MFC.
...sapete di altri programmi "famosi" realizzati con tale framework?
Ciao
Dan

 ...sapete di altri programmi "famosi" realizzati con tale framework?
Un po' dappertutto.. Office in primis. Basta che guardi con il dependency 
viewer (depends.exe) le app sul tuo pc e vedi che necessitano MFC.
Per la cronaca, Office2003 ha cominciato ad usare il framework per le cose 
più sfiziose nella UI. Per esempio la vista "slide sorter" di powerpoint è 
fatta con le winform.


 efficienti* [...]
E' il motivo per cui mantengono il loro successo e per cui MS non potra'
discontinuarle.
Il tutto (ovviamente) IMHO!
Ciao. Federico.

 OOP oggi permetta di realizzare applicazioni più ordinate e complesse.
Concordo. L'OOP piu' spinta puo' aiutare molto nel gestire e "dominare" la
maggiore complessita'. Al solito, bisogna sempre trovare un giusto
compromesso tra "eleganza" del codice/framework da un lato, e prestazioni
e risorse richieste dall'altro.
Tenuto conto che l'hardware attuale offre molto in termini di risorse, si
puo' spostare un po' il baricentro della scelta verso la sponda eleganza e
OOP :)
Dan

 sponda eleganza e OOP :)
Concordo e aggiungo che comunque OOP non ruba performance. ATL ne č una 
ampia dimostrazione. Le vtable sono solo dei meri jmp in assembler che 
porterebbero via del tempo su un 8088 ma dai 386 in poi proprio niente ;-)
