Serie ficheros virtuales 

 

  

C Ficheros Virtuales

   



 

B) De C ANSI a Visual NET

 

 

Esta parte se dedica al desarrollo de interfaces para la utilización del producto en Visual NET, como ejemplo de la alternativa del aprovechamiento de desarrollos previos conocidos y en pleno rendimiento antes de embarcarse en la programación nativa NET directa.

 

                                                                                                  _________

 

 

El desarrollo se presenta en dos vertientes:

 

- Las clases contenedoras bajo el modelo COM

 

- Las clases contenedoras bajo el modelo NET

 

 

El modelo COM proporciona soporte de intercomunicación estándar entre lenguajes administrados y no administrados siguiendo un camino ortodoxo. Aunque funciona, hay que lamentar que el proceso de generación es muy engorroso, y que sus objetos deben registrarse.

 

El modelo NET de clases contenedoras también lleva su trabajo, pero tiene la ventaja de no precisar registro y ser un punto de partida para un desarrollo NET nativo completo.

 

                                                                                                  _________


 

Apunte del desarrollo para los modelos COM y NET

 

En todo momento la aplicación se ha desarrollado con vistas a su utilización multiplataforma, y aunque su orientación primaria es para uso en un host iSeries, su vertiente VisualC proporciona una herramienta de desarrollo autónomo propio.

 

¿Pero que sucede con la utilización multilenguaje?

 

En el iSeries, al desarrollar la implementación final como programas de servicio, la utilización multilenguaje usa los mecanismos de enlace de servicios, que es independiente del lenguaje concreto de cada módulo, llegándose de forma natural al uso en C, RPG, CL u otros lenguajes.

 

En cuanto al PC, hasta la versión 6 la llamada entre programas C y Basic seguía unos caminos de invocación directa prácticos aunque heterodoxos y sin soporte de documentación oficial; estas posibilidades desaparecen en la última versión de desarrollo de la familia de lenguajes Visual Estudio NET.

 

 

Bajo el nuevo estándar de programación administrada NET, el reconocimiento de cualquier recurso de cualquier lenguaje en otro lenguaje es distinto a como se hacía antes, ahora estos recursos se ven como métodos nativos, como si las clases a las que pertenecen hubiesen sido desarrolladas en ese mismo lenguaje; sin embargo por el cambio de praxis y filosofía que supone, se puede considerar que nos encontramos con un nuevo metalenguaje a todos los efectos, con ciertas especializaciones Basic, C, J, etc.

 

Además es básicamente incompatible con el modelo C de administración de memoria clásico, basado en la familia de funciones malloc. El sistema NET nativo elude la programación basada en direccionamiento no tipado (punteros clásicos) y la sustituye por delegaciones fuertemente tipadas (punteros administrados).

 

Los punteros clásicos y los punteros administrados son entes diferentes. Los punteros clásicos apuntan a zonas de memoria fijada, los administrados son referencias dinámicas que el sistema gestiona de forma transparente e inaccesible al usuario.

 

Esto plantea un problema para nuestro producto si queremos que siga atendiendo al uso C clásico y también pueda utilizarse en interfaces visuales más vistosas que las que pueden desarrollarse en C++ 6.

 

Afortunadamente hay una vía de escape, pues a diferencia del resto de la familia de lenguajes Microsoft, Visual C permite mezclar código administrado y no administrado a fin de desarrollar clases contenedoras que permiten la interconexión entre el modelo no administrado y el administrado (que al fin y al cabo es una réplica de lo que hace el sistema con las clases interfaz del modelo COM) basándose en las instrucciones que fijan punteros administrados en copias no administradas, como se verá en el desarrollo que se presenta más tarde.

 

                                                                                                  _________
 

B.I COM Ficheros virtuales

 

En los siguientes capítulos se desarrollarán capas adicionales que permitirán usar el producto bajo los modelos COM y NET, manteniendo el núcleo central compatible con C ANSI. Finalmente, se discutirá un modelo NET nativo.



                                                                                                  _________

 

B.I.1 El modelo COM

 

El modelo COM permite generar clases interfaz estándar para uso en la familia de lenguajes Microsoft Visual Studio.

Debe tenerse en cuenta que las DLL’s generadas bajo COM deben registrarse, lo que precisa privilegios administrativos, que no se necesitan en el modelo MFC clásico en que se pueden agrupar las DLL’s precisas en una carpeta, transportarla en un lápiz de datos y disponer de los desarrollos en cualquier PC.

 

 

                                                                                                  _________