https://stackoverflow.com/questions/149698/what-is-a-good-mfc-starting-bookAlternativa a MFC
Muchos de los comentarios votados afirman que hay alternativas mucho mejores. Me gustaría saber qué podrían ser.
Mi requisito principal es que la interfaz de usuario use los widgets nativos para que nuestro software de automatización pueda funcionar. Las ventanas dibujadas por el propietario son mucho más difíciles de manejar.
No me gusta especialmente el diseño de MFC por lo que una alternativa sería buena. El único que encontré es WX, que es el que ya hemos probado y estamos considerando abandonar. Necesitamos algo que no nos obligue a luchar con un montón de envoltorios multiplataforma que no nos importan. Estamos escribiendo una aplicación de Windows y el marketing no da ni una mierda sobre la orientación a Mac o Linux (sí, también me duele el trasero).
He mirado la opción .NET un poco. El problema es que no sé mucho al respecto, pero por lo que puedo decir, tendríamos que usar C# para obtener muchas de las opciones disponibles con MFC. El kit de herramientas de C++/CLI no parece tener ventanas de acoplamiento a primera vista, por ejemplo. De hecho, una opción WinFroms directa no parece tampoco. Parece que tendríamos que hacer un proyecto de WPF y eso no parece ser lo que realmente queremos (y tendríamos que aprender un montón de basura además de otro kit de herramientas). Salir de C++ también requeriría mucho envoltorio y no me gustan particularmente los resultados que he visto de los contenedores automáticos.
El otro problema que tengo con la opción .NET es que tenemos una aplicación de dibujo bastante intensa (además de requerir muchas formas). Sé que puede obtener resultados similares con lenguajes JIT como .NET, pero también sé que debe ser mucho más cuidadoso para hacerlo. Es un tema del que me gustaría evitar preocuparme en este momento.
El otro problema, y probablemente el más importante con .NET (al menos el cambio de idiomas) es que tenemos un gran suministro de lógica de interfaz que, aunque debe ser independiente de la API, está escrito en C++.
¿Cuáles son las otras opciones? ¿Estas personas realmente tienen puntos o simplemente están gritando contra algo que no es su idioma o conjunto de herramientas favorito?
NOTA:
¿Cuál es el problema aquí? Dije específicamente que portar a otras plataformas NO es siquiera una consideración remota y que TENGO QUE tener algo que use el conjunto de widgets nativo para no tener que cambiar completamente todo lo que las pruebas usan para automatizar el producto. ¿Alguien realmente leyó mi pregunta?
Personalmente no encuentro MFC tan malo. Está un poco desactualizado y su documentación no siempre es buena, pero me gusta el código fuente en comparación con Qt, que creo que es un desastre. Al tener que depurar, ser capaz de entender cómo funciona bajo el capó puede ser bueno (incluso si pierde algo de él cuando MFC llama a las funciones de Windows que no tienen fuentes). No tengo experiencia con otros frameworks pero solo quería decir que no desacreditéis a MFC demasiado rápido. No es tan genial, pero tampoco está mal. – n1ckp
Principalmente estoy tratando de encontrar alternativas. Sin embargo, hay una cosa que me molesta mucho acerca de MFC y es el hecho de que parece que no puede adjuntar controladores externos. Los manejadores de "mensajes" no solo deben estar en mapas estáticos, sino que deben ser miembros de la clase visual que está creando. No puede crear firewalls de compilador haciendo que el comportamiento gobernado por objetos sea invisible fuera del archivo .cpp. La verdadera encapsulación no está disponible. Además, no soy fanático de que algunos objetos se eliminen automáticamente y otros no ... simplemente lo aprendí ayer. La falta de administradores de diseño tampoco es buena. –
Roberts: Bueno, no estoy totalmente seguro de su objeción, pero creo que puede eludir el uso de un mapa estático con el exceso de alguna función MFC (eche un vistazo a http://stackoverflow.com/questions/978071/how-to-redirect -mfc-messages-to-another-object). También para el objeto de eliminación automática, creo que Qt es peor en ese aspecto. Aunque no estoy tratando de venderle MFC, también me alegraría tener una buena alternativa. Mi experiencia con Qt fue de reemplazar a los programadores pobres que la usaban, así que tengo un poco de parcialidad pero realmente no me convenció de que fuera mejor (¿Diría que es equivalente?). – n1ckp