Microsoft Foundation Classes: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
Modificato link originale MSDN (ora 404) con link a Wayback Machine (snapshot del 2007): https://web.archive.org/web/20070325031841/http://msdn2.microsoft.com/en-us/library/dd5497wx(vs.80).aspx |
Funzionalità collegamenti suggeriti: 3 collegamenti inseriti. |
||
(8 versioni intermedie di 3 utenti non mostrate) | |||
Riga 1:
{{F|sistema operativo|aprile 2011|in particolare, sarebbe interessante trovare fonti che documentino l'effettivo "successo" di OWL prima e di MFC poi}}
[[File:Microsoft Foundation Class logo.svg|miniatura|Logo della libreria]]
'''Microsoft Foundation Classes''', meglio conosciuta con l'acronimo '''MFC''', è una [[Libreria (software)|libreria]] di [[classe (informatica)|classi]] [[C++]] prodotta da [[Microsoft]] con lo scopo di incapsulare le [[Windows API]]. È definita una classe per ciascun oggetto di [[Windows]] dotato di [[handle (programmazione)|handle]], e anche per le finestre predefinite e per i controlli comuni (''common controls'').
==Descrizione==
MFC è stata introdotta nel [[1992]] per essere usata con le versioni a [[16 bit]] di [[Microsoft Windows|Windows]], come parte del tentativo di [[Microsoft]] di guadagnare quote di mercato nell'area degli strumenti di sviluppo, ed è stata progettata per essere una sorta di rassegna delle potenzialità del [[linguaggio di programmazione]] C++. In quel tempo infatti il C++ aveva appena iniziato a sostituire il [[linguaggio C]] nello sviluppo di [[software commerciale]], e Microsoft aveva da poco aggiunto il supporto del C++ al suo [[compilatore]] C.
Più o meno nello stesso periodo venne lanciato da [[Borland]] un prodotto concorrente denominato [[Object Windows Library]] (OWL), inserito nel compilatore [[Turbo C]] di Borland. Siccome aveva una struttura [[object oriented]] superiore, OWL per un certo periodo ebbe più successo di MFC, tuttavia perse quote di mercato quando i suoi aggiornamenti mancarono di supportare le nuove caratteristiche di Windows, ed in seguito non venne più prodotto.
Quando MFC venne introdotta, le potenze di calcolo e la memoria disponibile nei computer erano risorse limitate. Per questo motivo Microsoft decise per la gestione dei messaggi di windows di non avvalersi delle ''[[Funzione virtuale|funzioni virtuali]]'', uno dei meccanismi più potenti offerti dal C++ ma fonte di un discreto [[overhead]], e di utilizzare al loro posto una speciale sintassi basata su macro. Siccome però le macro non dispongono di un sufficiente controllo dei tipi da parte del compilatore, il loro uso è stato spesso fonte di bug. Oltre alle code di messaggi, anche la [[
Da un punto di vista pratico, lo sviluppo di programmi Windows con MFC risulta molto più rapido e semplificato rispetto all'uso diretto delle [[Windows API]], anche se la loro conoscenza è quasi indispensabile per un programmatore MFC a causa della poca astrazione introdotta dalla libreria di classi. Uno dei vantaggi maggiori deriva dal fatto che gli handle degli oggetti vengono gestiti automaticamente dalla libreria e chiusi quando gli oggetti vengono distrutti.
Per lungo tempo MFC è stata promossa da Microsoft come il proprio strumento di punta nello sviluppo di applicazioni commerciali. Già con l'avvento di [[Visual Basic]] però, MFC iniziò a declinare perché sembrò che C++ e MFC fossero troppo complesse per molti programmatori. Più recentemente, la nascita della piattaforma [[.NET]] ha condannato ad un ruolo di nicchia MFC anche se Microsoft ne ha confermato il supporto, almeno per il futuro prossimo.
==Collegamenti esterni==
* {{Collegamenti esterni}}
* {{FOLDOC}}
* {{cita web | 1 = http://msdn2.microsoft.com/en-us/library/dd5497wx(vs.80).aspx | 2 = MSDN Microsoft Foundation Class Library (inglese) | accesso = 11 maggio 2022 | dataarchivio = 25 marzo 2007 | urlarchivio = https://web.archive.org/web/20070325031841/http://msdn2.microsoft.com/en-us/library/dd5497wx(vs.80).aspx | urlmorto = sì }}
* {{cita web | 1 = https://msdn.microsoft.com/library/en-us/vclib/html/_mfc_Class_Library_Reference_Introduction.asp | 2 = Riferimento MSDN per le MFC (inglese) | accesso = 23 aprile 2005 | urlarchivio = https://web.archive.org/web/20060907150737/http://msdn.microsoft.com/library/en-us/vclib/html/_mfc_Class_Library_Reference_Introduction.asp | dataarchivio = 7 settembre 2006 | urlmorto = sì }}
* {{cita web|url=https://msdn.microsoft.com/newsgroups/default.aspx?dg=microsoft.public.vc.mfc|titolo=Newsgroup MSDN per le MFC (inglese)|accesso=23 aprile 2005|urlarchivio=https://web.archive.org/web/20070310040706/http://msdn.microsoft.com/newsgroups/default.aspx?dg=microsoft.public.vc.mfc|dataarchivio=10 marzo 2007|urlmorto=sì}}
|