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