Newsgroup: it.comp.programmare.win32
Titolo: ATL o MFC ?

Devo sviluppare una DLL ActiveX con VC++ 6 che dovra' essere utilizzata da
un progetto scritto in Visual Basic 6.
Cosa mi consigliate di utilizzare (MFC o ATL) considerando che il client
sara' VB ?
Ciao.
SkunkGuru.

 wrote in
news:vP8c8.69428$
om6.1...@news1.tin.it
: 

Comunque ATL
-- 
Valter Minute
min...@inwind.it
 (the reply address of this message is invalid)

 Valter Minute
Sottoscrivo.
MFC appare più veloce e comoda all'inzio, sopratutto se la
conosci già, ma l'ActiveX prodotto diventa un "mattone".
Federico Molara.

 Comunque ATL
Potresti dare qualche motivazione ?
--
Ciao.
SkunkGuru.

 conosci già, ma l'ActiveX prodotto diventa un "mattone".
Ma se io volessi usare altre caratteristiche di MFC nello stesso progetto,
posso poi usare sia ATL che MFC ? Avevo letto che non e' molto
consigliato...
Cosa intendi come "mattone" ?
Solo a livello di dimensione di file o anche come memoria e velocita' ?
E ATL quanto e' supportato in VC++ ?
Mi sembrava fosse molto meno supportato delle MFC.... almeno nella versione
5....
--
Ciao e grazie.
SkunkGuru.

 versione 5....
L'ATL 3.0 presente in MSVC++6 e` davvero ottima; i "wizard" forniti
per lo piu` sono utili solo ai principianti (con qualche eccezione), ma
un certo supporto comunque c'e`.
Alex

 Potresti dare qualche motivazione ?
ATL permette di creare codice molto piu` compatto e veloce, e il
suo supporto per COM (e ActiveX) e` di prima scelta considerando
che ATL e` nata appunto apposta per quello, mentre su MFC ce
l'hanno appiccicato a posteriori col vinavil (e si vede).
ATL in quanto tale supporta solo COM e tecnologie connesse, il
resto si fa (in modo peraltro ordinato e strutturato) con le API Win32,
e questo puo` essere un'arma a doppio taglio: mediamente e` ottima
cosa (leggerezza, velocita`), a volte mancano un poco delle varie
funzionalita` (grasse e ponderose ma comunque presenti) delle MFC.
Se la grassezza non e` un problema puoi usare MFC _e_ ATL nello
stesso progetto.  Usa rigorosamente solo l'ATL per il COM, pero`...
Alex

 wrote in
news:3ldc8.84379$
3J1.2...@news2.tin.it
: 

Effettivamente sono stato (per motivi di tempo) un po' "ermetico" :)
Mi associo alle motivazioni portate da Alex Martelli (e già il fatto
che lui preferisca ATL è in sè una ottima motivazione). ATL è stato
pensato per sviluppare oggetti COM in C++. MFC è stata pensata quando
C++ era ancora in fase "embrionale" e non ne utilizza tutte le
potenzialità. Inoltre il supporto COM è una delle funzionalità di MFC
(non presente dalla prima versione), non la funzionalità principale. 
Con un coltellino svizzero (MFC) puoi avvitare, stappare le bottiglie
e tagliare la carta, ma probabilmente riuscirai a svolgere ognuna di
queste attività meglio con un cacciavite (ATL), un apribottiglie
(Win32 "nudo e crudo") e un paio di forbici (WTL?).  
P.S. chiunque sia riuscito ad utilizzare l'apribottiglie di un
coltellino svizzero per aprire la terza bottiglia di birra (dopo
essersi bevuto le prime due) ha tutta la mia stima. 


 > >
Aggiungo una cosa:
considerando che conosco abbastanza MFC e poco o niente ATL, vale la pena di
studiarsi ora ATL ?
Con .NET sara' ancora tutto uguale ?
Oppure mi conviene usare MFC visto che lo conosco gia' e vedere cosa
portera' .NET ?
Ciao.
SkunkGuru.

 
Effettivamente .Net rappresenta una profonda 
rivoluzione/evoluzione/involuzione (a seconda dei punti di vista) nel 
modo di sviluppare applicazioni e componenti, a cominciare dai 
linguaggi utilizzati (che comprendono il nuovo C# e il "managed" C++).
Credo però che prima di abbandonare completamente COM e i suoi 
"derivati" passerà un certo tempo (anche perchè è possibile far 
interagire .net e oggetti COM).
Credo che la diffusione di .net dipenda molto dalla sostituzione di 
windows 9X/Me con Windows 2000/XP (anche se .net è supportato anche per 
le piattaforme 9X) e questo non è un processo che avverrà in tempi 
brevi, sia in realtà aziendali che nel mercato home (soprattutto ora 
che il mercato dei PC sembra rallentare).
Può anche darsi che tu ti trovi a lavorare in una realtà aziendale dove 
è già iniziata la migrazione verso .net (ma in questo caso vale la pena 
di sviluppare con COM?) e quindi le mie considerazioni siano non 
adeguate al tuo caso.
Imparare qualcosa di nuovo non è mai tempo perso IMHO (anche se 
purtroppo spesso, per motivi di tempo, si è costretti a scegliere cosa 
approfondire). 
Nel caso di ATL poi, il tempo speso per apprendere i nuovi concetti è 
sicuramente ripagato dai risultati in termini di qualità del codice e 
del "prodotto" risultante.


 del "prodotto" risultante.
Quanto puo' richiedere lo studio di ATL partendo dalla conoscenza MFC ? Non
ovviamente in ore, ma a grandi linee (poco, tanto.....) ?
Mi puoi consigliare magari qualche documentazione / libro valido ? Magari
per chi parte da MFC o anche per partire da zero....
Grazie.
SkunkGuru.

 
Per chi parte da MFC non saprei, in generale ti consiglio:
"Developer Workshop to COM and ATL 3.0" di A. Troelsen
e "Inside ATL" (ma in questo caso non mi ricordo l'autore e non sono 
disposto a giurare sul titolo...)
Se conosci bene il C++ e COM credo che la lettura di un buon libro e un 
minimo di pratica seguendo gli esempi (in questo senso il libro di 
Troelsen ha un impostazione molto "pratica") potrebbero bastare (anche 
se, come diceva mia nonna, in questo caso la pratica val più della 
grammatica).
