[C con Clase] Winapi,MFC,ATL,CLI,Consola, .NET

FELIPE VALENCIA anfevp en gmail.com
Dom Oct 30 22:05:37 CET 2011


Gracias Steven me aclara muchas cosas, me gustaria preguntarte
si quisiera hacer una programa para windows y linux (aunque no
lo pienso hacer por el momento) cual de estas herramientas
deberia utilizar para adaptar facilmente el codigo a linux,
con un programa que tenga una buena interfaz de ventana.

De nuevo muchas gracias

El 30 de octubre de 2011 07:23, Steven Davidson <srd4121 en njit.edu> escribió:

> Hola Felipe,
>
> 2011/10/30 FELIPE VALENCIA <anfevp en gmail.com>:
> > Hola, queria preguntarles el significado de Winapi,MFC,ATL,CLI,Consola
> win32,CLR, .NET desde un
> > punto de vista de la programacion, por ejemplo saber si son librerias o
> formas de
> > programar, cuales son compatibles entre ellas, porque todas tienen un
> main
> > diferente, y todo la informacion posible. Puede llegar a ser una
> pregunta muy
> > abierta o muy mal redactada, pero es que no tengo mucho conocimiento
>
> Veamos.
>
> - Winapi es el API de MS-Windows. Un API es una Interfaz de
> Programación de Aplicaciones. Esto es, se trata de una forma de
> programación para crear aplicaciones. Típicamente, se trata de una o
> más bibliotecas, como es el caso del API de MS-Windows.
>
> - ATL: Biblioteca de Plantillas de Active. Sirve a modo de herramienta
> para ayudar a programar con COM (Modelo de Objetos de Componentes) y
> controles de ActiveX.
>
> - CLI: Infraestructura de Lenguaje Común es un estándar para ejecutar
> aplicaciones en un entorno de forma virtual, que abarca un CIL:
> Lenguaje Intermedio Común y un entorno CLR: de un Lenguaje Común en
> Tiempo de Ejecución. Esto es prácticamente lo que tiene Java con su
> lenguaje compilado pero luego interpretado y ejecutado por el JRE. En
> el caso de Microsoft, existe otro paso anterior que es una traducción
> de cualquier lenguaje de programación (C++, C#, Visual Basic, etc.) a
> un solo lenguaje común (CIL) y luego el programa en este lenguaje es
> compilado y ejecutado a través del entorno CLR.
>
> - Consola Win32 es exactamente eso: una consola bajo MS-Windows.
> Previamente, se usaba el cuadro de MS-DOS o incluso el símbolo del
> sistema. Para programar para la consola, sí existe una biblioteca o
> API dentro del API de MS-Windows para ella.
>
> - .NET es el armazón (o framework, en inglés) que alberga
> principalmente un nuevo API de Microsoft para sus sistemas operativos.
> Sin embargo, podemos usar un surtido de lenguajes de programación para
> usar .NET. Este armazón es el homólogo a los "paquetes" o bibliotecas
> de Java, que contienen las clases y métodos, al igual que el recogedor
> o colector de basura, para no tener que indicar explícitamente la
> liberación de memoria dinámicamente adjudicada.
>
> > al respecto, siempre he programado en Consola win 32, pero en estos dias
> > queria darle un aspecto mejor a un sencillo programa por lo cual estaba
> > haciendolo con winapi, pero luego iba a utilizar un commo Dialog y al
> buscar
> > encontre que se necesitaba MFC (el cual tenia un main un poco mas
> similar a
>
> MFC es los Fundamentos de Clases de Microsoft. Básicamente, se trata
> de una jerarquía de clases que engloban y envuelven las funciones
> (globales) del API de MS-Windows, que originalmente se basa en C.
>
> > win32) y VSC++ 9 no me permite mezclar una api con MFC entonces ahi entr
>
> Sí, puedes mezclar. Lo que tienes que hacer es usar el ámbito global
> para acceder a las funciones globales del API de MS-Windows. Por
> ejemplo,
>
> HWND hwndEscritorio = ::GetDesktopWindow();
>
> > en el dilema, me gustaria saber las ventajas de cada una, cual la mas
> recomendable
> > o en general las experiencias personales sobre la creacion de programas
> con
> > interfaz amigable .
> >
>
> Sinceramente, no se suele trabajar con el API de MS-Windows
> directamente, porque es del más bajo nivel de las API's que te puedas
> encontrar, pero por otro lado es la más básica y fundamental.
> Microsoft luego sacó MFC para hacer el API "más C++", pero no agregó
> nada que no estuviese en el API de C, simplemente crearon las clases y
> cambiaron los nombres de las funciones miembro envolviendo las
> funciones de C del API.
>
> También implementaron el concepto de OLE/COM que son de C++ para crear
> "mini-aplicaciones" que pueden ser tratadas como objetos que son más
> fáciles de manipular, por lo que luego sacaron las ATL que venían
> siendo algo parecido a las STL que son estándares de ANSI C++, pero
> para MS-Windows y especialmente para COM.
>
> A partir de las versiones modernas de MS-Windows, hasta hoy, Microsoft
> creó .NET y C# para crear un armazón común para todos los lenguajes y
> todas las versiones de MS-Windows. La verdad es que .NET facilita
> muchas cosas y principalmente, Microsoft se dedica más a "cultivar"
> .NET que por ejemplo el API de MS-Windows. Esto no significa que el
> API vaya a desparecer, pero digamos que no le ponen tanto empeño para
> que sea "bonita" de usar, prefiriendo más .NET.
>
>
> He sido algo breve y he simplificado mucho todo esto, pero espero que
> te oriente y te aclare un poco el asunto.
>
> Hasta luego,
>
> Steven
>
> _______________________________________________
> Lista de correo Cconclase Cconclase en listas.conclase.net
> http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
> Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20111030/44bf0f77/attachment.html>


Más información sobre la lista de distribución Cconclase