Universidad o centro donde estudiar MFC (Microsoft Foundation Classes) a nivel avanzado?

一般討論 Universidad o centro donde estudiar MFC (Microsoft Foundation Classes) a nivel avanzado?

  • 2012年4月24日 下午 04:07
     
     

    Hola buenos dias.

    Me gustaría tener opciones de Universidades o centros donde poder estudiar MFC, para poder desarrollar aplicaciones y sistemas avanzados.  De ser posible, cursando algun grado formal de estudios.

    De antemano, muchas gracias por sus respuestas.


    • 已編輯 josmart23 2012年4月24日 下午 04:29
    • 已變更類型 josmart23 2012年4月25日 下午 11:15 Pocas opciones en respuestas
    •  

所有回覆

  • 2012年4月25日 上午 11:50
    版主
     
     

    Hasta donde yo sé, en España, no hay nada.

    Hace años Microsoft tenía certificaciones para Win32 y MFC, pero las borraron y ya no están disponibles.

    De todos modos, usar MFC ahora mismo es un tanto obsoleto, y apenas hay libros y creo que ninguno en español salvo algún que otro que seguro ya no se encuentra por ningún lado, aunque yo tengo alguno.


    MVP Visual C++ - Visita mi blog sobre desarrollo: http://geeks.ms/blogs/rfog/

  • 2012年4月25日 下午 11:14
     
     

    Muchas gracias por su respuesta.

    Realmente estoy interesado en estudiar MFC a nivel avanzado.

    Saludos

  • 2012年4月26日 上午 08:15
    版主
     
     

    Pues no te queda otra que hacerlo todo por ti mismo.

    El libro de base de referencia por consenso es "Programming Windows with MFC Second Edition", de Jeff Prosise. Según mi experiencia y la de muchos otros, es el mejor de todos para aprender y ver cómo hacer las cosas con MFC.

    En castellano, y que yo conozca, tienes "Programación Avanzada en Windows 2000 con Visual C++ y MFC", de Jorge Pascual, Francisco Charte y tres autores patrios más. El libro no está nada mal, y explica casi desde cero la programación bajo Windows.

    Una vez que te sientas cómodo con lo que traen esos libros, puedes dedicarte al Feature Pack y las nuevas clases extendidas de la Ribbon o las ventanas estilo Visual Studio...

    Tienes algunos vídeos en inglés: 

    http://channel9.msdn.com/search?term=mfc

    http://channel9.msdn.com/Tags/mfc/RSS

    Y uno en castellano mío: http://channel9.msdn.com/Blogs/Daniel+Garzon/C-MFC-Feature-Pack sobre el Feature Pack.


    MVP Visual C++ - Visita mi blog sobre desarrollo: http://geeks.ms/blogs/rfog/


    • 已編輯 RFOGMVP, Moderator 2012年4月26日 上午 08:17 Añadir enlaces a mano porque no los detecta él solo
    •  
  • 2012年5月9日 上午 12:21
     
     

    Muchas gracias por su respuesta.

    Veo que los libros que me comenta están orientados a la programación en Windows 2000. Pienso entonces que desde esa versión de Windows no se han actualizado los temas de programación en C++ MFC.

    ME gustaría saber:

    * ¿Tiene aún futuro la programación en C++ MFC? (Para las nuevas versiones de Windows: Windows 8, etc..)

    * ¿Puede algún otro lenguaje tener un alcance amplio que me permita programar desde Puertos, control de dispositivos, hasta sockets, interfaces gráficas de usuario, bases de datos, internet, etc.?

    De antemano, muchas gracias. Saludos.

  • 2012年5月9日 上午 07:11
    版主
     
     

    Hola.

    No hay nada más moderno sobre MFC... porque no se ha escrito nada más. Microsoft en su web sí que mantiene y documenta las novedades, como el Feature Pack, pero la documentación sobre lo nuevo es escasa. Las pocas veces que he tenido que hacer algo con ello siempre he terminado mirando el código fuente de MFC para ver cómo funcionan las cosas.

    La verdad es que MFC, a mi modo de ver, no tiene mucho futuro, aunque siguen haciendo aplicaciones con él, al menos en España, no creo que haya ninguna empresa haciendo nada... A nivel global, hasta donde alcanzo, sí que hay alguna empresa haciendo algo, pero no muchas.

    Si no quieres salirte del ámbito de Microsoft, tienes C# que viene y vendrá soportado (hasta que no cambien de idea) con los futuros Windows. De hecho .NET es ahora tan rica como Win32, y cuando no puedes hacerlo con .NET, haces interop y accedes a Win32. Y sí, tienes acceso a puertos serie, sockets y demás.

    También puedes tirar por la multiplataforma con QT (que es C++) que está dando caña a base de bien, y te permite crear aplicaciones con casi el mismo código fuente para Windows, MAC y Linux.

    Aunque con C# y Mono, que no sé cómo funcionará, creo que, aparte de lo anterior, también puedes crear aplicaciones para iOS (iPhone e iPAD) y creo que hasta para Android. Ahora bien, no sé qué rendimiento tendrá todo eso.

    No sé qué más decirte. A mi, cuando mi empresa me deja veda libre, hago C# siempre que puedo, aunque últimamente andan locos con QT... C#, menos drivers para Windows, te va a dejar hacer cualquier cosa.



    MVP Visual C++ - Visita mi blog sobre desarrollo: http://geeks.ms/blogs/rfog/

  • 2012年5月17日 下午 10:49
     
     

    Aprecio mucho su respuesta.

    Definitivamente creo que la opción que tengo que aprender es C#; mas aún, porque al parecer Microsoft ya no ofrece certificaciones de Visual C++ y no veo alguna forma de aprender más a fondo ese lenguaje.

    Sin embargo, tengo mis dudas en cuanto a C#. Por ejemplo, ud. mencionó que cuando algo no pueda hacerlo con .NET, haga interop y acceda a Win32.  Me gustaría saber:

    -Qué significa hacer interop y qué tan complejo es.

    -En qué casos necesitaría hacerlo, cuando no pueda hacer algo con C#. (ya que como comentaba, pienso programar acceso a puertos serie, etc.., así como tal vez, escribir en ensamblador en algunas cosas que sean necesarias, y al mismo tiempo programar ventanas, gráficos, internet, etc.)

    - Y en forma específica, no sé si me convendría aprender C# o C++, para lograr crear sistemas complejos.  Aunque en visual C++ no veo más opciones para aprender.

    Muchas gracias por sus respuestas. Un saludo.

  • 2012年5月28日 下午 02:52
    版主
     
     

    Perdona la tardanza en responder, pero he estado bastante liado.

    A fecha de hoy, si lo que quieres es crear programas para Windows, lo mejor es C# por su facilidad y rendimiento casi equiparable al de un programa nativo.

    Interop es la abreviatura de interoperation, que significa que desde C# puedes ejecutar casi cualquier código en C ó C++ (con algún truco de por medio) simplemente importando la firma de las funciones que quieras usar. Aquí lo tienes más o menos explicado con un ejemplo simple: http://mundogeek.net/archivos/2009/07/30/c-y-pinvoke/

    Por lo tanto, cualquier cosa que no esté disponible en C#, siempre podrás cargarla de esa forma, incluyendo funciones de Windows que no tengan equivalente en el .NET. Y de hecho tienes hasta una web y un programa para generarlas de forma automática: http://pinvoke.net/.

    No suele ser muy complejo de usar, aunque todo depende de lo que estés llamando, porque si la función pasa un puntero a puntero void de un bloque de memoria sin asignar, aparte de dar una idea de lo chapucero que es quien haya hecho algo así, la firma de la función en C# podría ser algo complicada, pero seguro que alguien ya ha hecho algo similar y encuentras en internet una solución cercana a la tuya.

    En principio a fecha de hoy casi todo lo más común está disponible en .NET, incluyendo puertos serie (muy fáciles de manejar), sockets, temas de sincronización, hilos... Creo que, por ejemplo, no hay nada sobre Bluetooth, pero sin embargo hay componentes de terceros. Respecto a la programación de ventanas y demás, lo tienes prácticamente todo, y encima en dos formatos, XAML (que define las ventanas como código XML) y Windows Forms (más al estilo de Win32).

    Para sistemas complejos, C++ sin dudarlo. Fíjate que .NET lleva en la calle ya un montón de años y apenas hay programas complejos. Office sigue siendo nativo, la mayor parte de Visual Studio también (y la parte que es .NET como el editor ha perdido en prestaciones y funcionalidad), y programas como Autocad, Desktop Mechanics, etc., tampoco han sido reescritos en .NET ni tienen partes en ellos. 

    El problema de C++ es que no sólo es C++. También tienes que aprender muchas más cosas. Necesitas aprender a manejar el runtime (las funciones básicas que suelen ser las mismas para todos los sistema operativos), la STL, y luego algún framework más o menos complejo, como MFC o QT...

    En .NET es mucho más simple. Tienes el propio C# y luego la biblioteca de .NET, que es bastante intuitiva, en contra de C++ y sus frameworks, que son cada uno de su madre...

    Mi consejo es que aprendas C#.


    MVP Visual C++ - Visita mi blog sobre desarrollo: http://geeks.ms/blogs/rfog/

  • 2012年5月28日 下午 02:54
    版主
     
     
    Y si al final te decides por C++, el mejor libro para aprenderlo es este: Programming -- Principles and Practice Using C++

    MVP Visual C++ - Visita mi blog sobre desarrollo: http://geeks.ms/blogs/rfog/