Newsgroup: it.comp.programmare.win32
Titolo: VC++ .net e MFC

Salve a tutti.
 
ho un dubbio, che neanche la lettura di molti msg di questo (e altri)
ng ha
saputo levarmi: il nuovo Visual C++ .net Microsoft con che
framework/libreria viene fornito? Ancora le vecchie MFC oppure
l'evoluzione
delle WFC gia su J++?; Insomma, dovendo passare ADESSO a studiare la
programmazione C++ sotto Windows/Microsoft (conoscendola gią, per
esempio
usando le VCL) cosa mi trovo davanti usando il Visual C++ .net: le MFC
o
altro?
 
Ho appena letto (di passaggio in libreria) un passaggio di un libro
sul VC++ .net in cui si dice che le mfc sono ancora presenti
sostanzialmente per ragioni di compatibilitą, ma che sarebbe
preferibile non usarle per nuovi progetti VC++ .net.  Sapete dirmi
qualcosa a riguardo?
Grazie mille
 Simone

qualcosa a riguardo?
Con Visual C++ .Net e' presente la libreria MFC 7.0, su una pagina del
sito di Microsoft avevo letto che ha alcune novita', pertanto non e'
presente solo x compatibilita'. Se si creano applicazioni Win32
"lisce" o "corrette" con le MFC, l'uso delle MFC 7.0 e' l'unica via,
almeno credo.
Il punto e' un altro: Microsoft vuole spingere il piu' possibile il
suo nuovo framework, il .Net, rendendolo disponibile a linguaggi
diversi (Visual Basic, Visual C++ unmanaged, etc.)
Ciao
Stefano "HappyMan" (Lago Maggiore - NO)
--
Personal Web 
http://www.sgr.info
Email 
happyman...@libero.it
 [Togliere nospam per scrivermi]
Salsa Web 
http://happyman.n3.net
 [Foto salseri/e & I.A.B.L.A. Ring]

 diversi (Visual Basic, Visual C++ unmanaged, etc.)
fammi capire, .net mette a disposizione (come mfc) delle classi di
interfaccia per l'api? cioe', con .net posso fare le stesse cose che facevo
con mfc o devo per forza usare qualcosa di diverso?
grazie, g.


wrote:

Piu' che classi di interfaccia per le API il framework .Net ti mette a
disposizione un _grosso_ insieme di classi con le quali puoi fare
praticamente tutto il necessario per applicazioni "normali" (non ho
esperienza nella realizzazione di driver).
E' il framework .Net che provvede a far girare il tuo programma
scritto non direttamente in formato eseguibile (come invece sono
scritti i programmi realizzati lavorando direttamente con le API, con
o senza mfc) ma in un meta linguaggio (detto "Assembly" se ricordo
bene) tramite la relativa macchina virtuale.
Alla fine comunque cio' che sono eseguite sono le API di Windows
(ovviamente) ma usando .Net in pratica non le vedi neanche.
Le mfc invece sono uno strato molto piu' vicino al sistema.
Riassumendo:
Se programmi solo con le API Win32 il tuo .exe gira direttamente sul
sistema, senza la necessita' di portarti a spasso librerie varie.
Inoltre se stai attento puoi anche realizzare programmi che girano
indifferentemente da Window 95 a XP con qualche minima dipendenza (es.
la DLL dei common control installata con Internet Explorer).
Se programmi con le mfc e passi a VC7 devi studiarti questa libreria
nella sua nuova versione (che mi auguro pienamente compatibile con le
precedenti), il tuo .exe gira direttamente sul sistema ma devi fornire
anche la mfc70.dll e compagni.
Se programmi con il framework .Net devi studiarti la mole di
documentazione che lo riguarda, il tuo exe gira _solo_ se sul sistema
target e' installato il framework nella sua forma redistribuibile (la
bellezza di 20 mb), che va a permearsi nei meandri di Windows
(paura!!)
A me piace programmare usando solo le Win32, ma quando mi viene
richiesto lavoro anche in Visual Basic 6.0. Poiche' mi aspetto di
ricevere richieste anche per VB.Net ho gia' iniziato a studiare il
nuovo framework.
Nei tuoi panni io dividerei il campo in due parti:
1) Se non vuoi lavorare direttamente con le API studierei le MFC7.0
per realizzare in C++ programmi slegati dal mattone .net
2) Il .Net framework lo studierei tramite VB.Net (ricordo che il
codice meta-eseguibile generato e' uguale indipendentemente che tu
abbia usato vb, vc unmanaged o visual 
j.net
)


 ha scritto nel messaggio
news:767djuoo0mb70877g...@4ax.com...
[supercut]
grazei di tutti i chiarimenti, volevo farti un'altra domanda: ho letto da
qualche parte che il pregio di utilizzare un framework e' il fatto che il
tuo codice potra' girare su diverse piattaforme, semplicemente vambiando
versione del framework. ora, nal caso delle mfc (sono di microsoft, vero?)
questa cosa si verifica? cioe', esistono versioni di mfc per linux (magari
anche fatte da qualcun'altro, ma con medesima interfaccia...) o altre
piattaforme?
grazie, g.

 bene) tramite la relativa macchina virtuale.
No Assembly, ma IL (Intermediate Language)....praticamente il bytecode di
casa Microsoft

 piattaforme?
Si verifica se compili un'applicazione per NET e non in codice nativo

piattaforme?
Hai centrato il problema. La portabilita' del tuo codice dipende
esclusivamente dalle piattaforme supportate dal framework scelto.
MFC che io sappia non e' presente su altre piattaforme, proprio per la
relativa vicinanza al s.o. per cui e' stato sviluppato (Windows).
Ho letto invece che e' in sviluppo il clone di .Net tramite i canali
open source.
Io per pura "cultura" mi sono avvicinato ad un framework inter
piattaforme, assolutamente free, si tratta di wxWindows, anche se per
i miei scopi (semplici programmi di test con interfaccia grafica
banale) e' fin troppo complesso.
Poiche' voglio ritornare alla programmazione anche su Linux (nel
1994-96 ho scritto la mia tesi in C proprio su Linux,) quando avro'
tempo provero' a gettare le basi per un mio mini framework sia per
Win32 che per Motif (anzi per meglio dire Lesstif), giusto per fare
esercizio di C++ :-)
