Microsoft Foundation Classes

Microsoft Foundation Classes o MFC es un conjunto de clases interconectadas por múltiples relaciones de herencia, que proveen un acceso más sencillo a las API de Windows. Fueron introducidas por Microsoft en 1992 y desde entonces fueron apareciendo nuevas versiones con las actualizaciones del entorno de programación Visual C++, gracias a las cuales éste se convierte en un generador de programas C++ para Windows. Tiene una gran complejidad añadida debido a la necesidad de que el programador ahora no solamente debe controlar C/C++, sino que además debe conocer las clases de la MFC para poder utilizar su potencia. Con el paso del tiempo Microsoft Foundation Classes se ha convertido en la implementación estándar de la industria para la creación de aplicaciones gráficas en plataformas PC. A pesar de tener sus limitaciones, su adopción demuestra los beneficios de productividad de la reutilización de marcos comunes para desarrollar aplicaciones gráficas para negocios.

Historia

editar

MFC se introdujo en 1992 con C de Microsoft C++ 7.0 para ser utilizado con versiones de 16 bits de Windows como un sistema orientado a objetos C++ para la envoltura de la API de Windows. C++ estaba empezando a reemplazar a C para el desarrollo de software de aplicación comercial en el momento. C ha sido lentamente desplazado por las nuevas bibliotecas y lenguajes como son C++ y MFC, aunque muchos programadores opinan que MFC es únicamente un wrapper orientado a objetos de Windows API, ya que no disminuye mucho la complejidad y, en algunos casos, incluso la aumenta. Una interesante peculiaridad de MFC es el uso de Afx como prefijo para muchas funciones, macros y el nombre estándar de encabezado pre compilado stdafx.h. Durante el desarrollo temprano lo que se convirtió en MFC se llama Extensiones de Application Framework se abrevia como "Afx". El nombre de Microsoft Foundation Classes (MFC), fue adoptado demasiado tarde en el ciclo de lanzamiento para cambiar estas referencias. Una alternativa a MFC es la Windows Template Library (WTL). C++ versión Express compila aplicaciones WTL, pero no incluye el soporte IDE de las ediciones Standard, Professional y Team. El 7 de abril de 2008, Microsoft lanzó una actualización de las clases MFC como una actualización fuera de banda para Visual Studio 2008 y MFC-9. La actualización incluye nuevas construcciones de la interfaz de usuario, incluyendo la de cinta de Microsoft Office 2007 y la asociada widgets, barras de herramientas totalmente personalizables, paneles de conexión, como Visual Studio 2005 y las fichas de documento. Sin embargo, los elementos de la cinta se deben crear en el código, como en la API de RibbonX en Microsoft Office 2007. El Asistente para aplicaciones MFC también ha sido actualizado para soportar las nuevas características - incluyendo una casilla para seleccionar si la aplicación va a utilizar la cinta o el Visual Studio 2005 elementos de la interfaz de usuario. La nueva funcionalidad se proporciona en las clases para que las aplicaciones antiguas todavía sigan su curso.

Versiones

editar
Versión del producto Versión .Net Librería Versión MFC Año en el que se introdujo
Microsoft C/C++ 7.0 MFC 1.0 1993
Visual C++ 1.0 MFC 2.0
Visual C++ 1.5 MFC 2.5
Visual C++ 1.51 MFC 2.51
Visual C++ 1.52c MFC 2.5 (Last development platform for Windows 3.x)
Visual C++ 2.0 MFC 3.0
Visual C++ 2.1 MFC 3.1
Visual C++ 2.2 MFC 3.2
Visual C++ 4.0 MFC 4.0 (mfc40.dll included with Windows 95) Agosto de 1995
Visual C++ 4.1 MFC 4.1
Visual C++ 4.2 MFC 4.2 (mfc42.dll included with the Windows 98 original release) Marzo de 1998
eMbedded Visual C++ 3.0 mfc42.dll MFC 4.2
Visual C++ 5.0 mfc42.dll MFC 4.21, a major upgrade from MFC 4.2.
Visual C++ 6.0 mfc42.dll MFC 6.0 1998
eMbedded Visual C++ 4.0 mfcce400.dll MFC 6.0
Visual C++ .NET 2002 (Visual C++ 7.0) 1.0 mfc70.dll MFC 7.0 Febrero de 2002
Visual C++ .NET 2003 (Visual C++ 7.1)
Visual C++ .NET 2003 + MS11-025[1]
1.1 mfc71.dll MFC 7.1
MFC 7.10.6119.0
Abril de 2003
Abril de 2011
Visual C++ 2005 (Visual C++ 8.0)
Visual C++ 2005 SP1
Visual C++ 2005 SP1 + MS09-035[2][3]
Visual C++ 2005 SP1 + MS11-025[1]
Visual C++ 2005 SP1 + MS11-025[4]
2.0 mfc80.dll MFC 8.0.50727.42
MFC 8.0.50727.762
MFC 8.0.50727.4053
MFC 8.0.50727.5592
MFC 8.0.50727.6195
Octubre de 2005
Junio de 2007
Julio de 2009
Abril de 2011
Junio de 2011
Visual C++ 2008 (Visual C++ 9.0)
Visual C++ 2008 with Feature Pack
Visual C++ 2008 SP1
Visual C++ 2008 SP1 + MS09-035[2][3]
Visual C++ 2008 SP1 + MS11-025[1]
3.5 mfc90.dll MFC 9.0.21022.8
MFC 9.0.30411
MFC 9.0.30729.1
MFC 9.0.30729.4148
MFC 9.0.30729.5570
Noviembre de 2007
Abril de 2008
Agosto de 2008
Julio de 2009
Abril de 2011
Visual C++ 2010 (Visual C++ 10.0)
Visual C++ 2010 + MS11-025[1]
Visual C++ 2010 SP1
4.0 mfc100.dll MFC 10.0.30319.1
MFC 10.0.30319.415
MFC 10.0.40219.1
Abril de 2010[5]
Abril de 2011
Marzo de 2011
Visual C++ 2012 (Visual C++ 11.0)
Visual C++ 2012 Update 1
Visual C++ 2012 Update 3
4.5 mfc110.dll MFC 11.0.50727.1
MFC 11.0.51106.1
MFC 11.0.60610.1
26 de julio de 2012
5 de noviembre de 2012
26 de junio de 2013
Visual C++ 2013 (Visual C++ 12.0) 4.5.1, 4.5.2 mfc120.dll MFC 12.0.21005.1 5 de octubre de 2013
Visual C++ 2015 (Visual C++ 14.0)
Visual C++ 2015 Update 1
Visual C++ 2015 Update 2
Visual C++ 2015 Update 3
Visual C++ 2015 Update 3 + KB3165756
4.6
4.6.1
mfc140.dll MFC 14.0.23026.0
MFC 14.0.23506.0
MFC 14.0.23918.0
MFC 14.0.24210.0
MFC 14.0.24212.0
20 de julio de 2015
30 de noviembre de 2015[6]
30 de marzo de 2016[7]
27 de junio de 2016[8]
2 de agosto de 2016[9]
Visual C++ 2017 (Visual C++ 15.0) 4.6.2 mfc140.dll MFC 14.10.25008.0 7 de marzo de 2017

Características

editar

MFC proporciona C++ para Windows macros de tratamiento de mensajes (a través de mapas de mensajes), las excepciones en tiempo de ejecución e identificación del tipo RTTI, la serialización y la creación de instancias de clases dinámicas. Las macros para manejo de mensajes dirigidos a reducir el consumo de memoria, evitando el uso gratuito de tablas virtuales y también para proporcionar una estructura más concreta para diversos Visual C++ -suministrado herramientas para editar y manipular el código sin necesidad de analizar el lenguaje completo. Las macros de tratamiento de mensajes reemplazado el mecanismo de función virtual proporcionada por el C++.

El Microsoft Foundation Class (MFC) de la biblioteca ofrece un ejemplo bien conocido de un software eficaz marco. El MFC es una biblioteca de clases C++ que proporciona una interfaz para la programación de Windows y al mismo tiempo encapsula el nivel inferior de la API Win32. Proporciona una gran cantidad de funcionalidades que se encuentran en Aplicaciones de Windows, como la gestión de documentos y la gestión de los distintos puntos de vista sobre los datos del documento, y a su vez proporciona una interfaz orientada a objetos que solucionan las complejas tareas que involucran la comunicación a través de redes, el acceso a la base de datos y gestión de documentos compuestos. Las aplicaciones de Windows se construyen mediante la especialización de los componentes que se encuentran en el marco de trabajo de MFC, como la Clases C View y C Document, para cumplir con los requisitos de la aplicación.

Referencias

editar
  1. a b c d «Microsoft Security Bulletin MS11-025 - Important : Vulnerability in Microsoft Foundation Class (MFC) Library Could Allow Remote Code Execution (2500212)». Microsoft.com. Consultado el 19 de noviembre de 2012. 
  2. a b «Microsoft Security Bulletin MS09-035 - Moderate : Vulnerabilities in Visual Studio Active Template Library Could Allow Remote Code Execution (969706)». Microsoft.com. Consultado el 19 de noviembre de 2012. 
  3. a b «Copia archivada». Archivado desde el original el 26 de octubre de 2010. Consultado el 29 de octubre de 2010. 
  4. VS80sp1-KB2538218-v2-X86-INTL.exe. «Download Microsoft Visual Studio 2005 Service Pack 1 MFC Security Update from Official Microsoft Download Center». Microsoft.com. Consultado el 19 de noviembre de 2012. 
  5. «Visual C++ - Exploring New C++ and MFC Features in Visual Studio 2010». Msdn.microsoft.com. Consultado el 19 de noviembre de 2012. 
  6. «Visual Studio 2015 Update 1». Msdn.microsoft.com. Consultado el 12 de junio de 2016. 
  7. «Visual Studio 2015 Update 2». Msdn.microsoft.com. Consultado el 12 de junio de 2016. 
  8. «Visual Studio 2015 Update 3». Msdn.microsoft.com. Consultado el 28 de junio de 2016. 
  9. «Microsoft Visual Studio 2015 Update 3 (KB3165756)». Msdn.microsoft.com. Consultado el 28 de agosto de 2016.