Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   .NET (https://www.clubdelphi.com/foros/forumdisplay.php?f=17)
-   -   Programacion en .NET (https://www.clubdelphi.com/foros/showthread.php?t=41368)

Fossy 14-03-2007 04:54:47

Programacion en .NET
 
Hola amigos:

Soy uno mas de entre tantos renegados de pasar a versiones superiores de Delphi 7, pero creo que la necesidad me está llamando a la puerta y os voy a pedir consejo...

Como he comentado antes, estoy estancado en la versión 7 de Delphi y hasta ahora me ha ido muy bien, pero me estoy viendo en la necesidad de programar para .NET debido a que tengo que realizar una aplicación multiplataforma y en vista de lo que he leído por ahí sobre .NET, creo que es la mejor solución para mi.

Corregidme si me equivoco, pero .NET corre bajo el intérprete (mas bien compilador en tiempo de ejecución) de Framework, y bajo "MONO" en Linux (desconozco si hay mas intérpretes para esta plataforma), y por lo que he entendido, los componentes y objetos son los propios de .NET, por eso existen varios lenguajes que puedan programar para este nuevo entorno.

Os comento esto como si fuera un exámen para mi porque entiendo con eso que en Delphi lo único que se usaría es el lenguaje, compilador y objetos no propios, por lo que caigo en la duda de si en este caso da igual programar para .NET con Delphi 8, D2005 y D2006, ya que si la librería de objetos y componentes es la de Framework, imagino que para programar en la plataforma .NET da igual la versión de Delphi siempre que lleve el compilador .NET, ¿no?.

Y la otra pregunta... ¿Existe algún otro intérprete .NET para linux que me podáis recomendar?.

Gracias.

dec 14-03-2007 12:39:50

Hola,

Cita:

Empezado por Fossy
(...) tengo que realizar una aplicación multiplataforma y en vista de lo que he leído por ahí sobre .NET, creo que es la mejor solución para mi.

Pero que yo sepa .NET no es aún algo multiplataforma "real". Quiero decir, además de la implementación de la máquina virtual de .NET por parte de la propia Microsoft (para Windows) existe el proyecto Mono y algún otro proyecto (para Linux), pero, que yo sepa no hay nada más...

Cita:

Empezado por Fossy
Corregidme si me equivoco, pero .NET corre bajo el intérprete (mas bien compilador en tiempo de ejecución) de Framework, y bajo "MONO" en Linux (desconozco si hay mas intérpretes para esta plataforma), y por lo que he entendido, los componentes y objetos son los propios de .NET, por eso existen varios lenguajes que puedan programar para este nuevo entorno.

Básicamente es así. Todos los lenguajes .NET pueden trabajar sobre los mismos servicios básicos y utilizar los mismos objetos y tipos básicos que determina la propia plataforma .NET.

Cita:

Empezado por Fossy
(...) da igual programar para .NET con Delphi 8, D2005 y D2006, ya que si la librería de objetos y componentes es la de Framework, imagino que para programar en la plataforma .NET da igual la versión de Delphi siempre que lleve el compilador .NET, ¿no?.

Bueno. Hasta el momento creo que es más o menos así, porque, si no me equivoco, tanto Delphi 8 como D2005 y D2006 trabajan con .NET 1.1. Pero en cuanto D2006, por ejemplo, soportara la versión 2.0 de .NET... ya no sería lo mismo trabajar con D2005 que con D2006. Tal vez en lo básico sí, pero, con versiones anteriores no podrías aprovecharte de las nuevas características de .NET (sean estas las que fueran).

Cita:

Empezado por Fossy
Y la otra pregunta... ¿Existe algún otro intérprete .NET para linux que me podáis recomendar?.

Existe el DotGNU Project, aunque lo ignoro prácticamente todo sobre el mismo. Lo cierto es que soy un ignorante que no sabe exactamente qué pretende al contestar a tus preguntas... lo cierto es que no tengo mucha idea de .NET (aunque leí y practiqué en su día con esta plataforma) y acaso sería mejor esperar a que otros compañeros puedan aportar algo y aun algos más. :)

Fossy 14-03-2007 21:04:37

Muchísimas gracias Dec.

Tú dices que no has practicado poco con .NET, pero has hecho una aportación muy buena y te lo agradezco.

Ahora la duda que me queda es si al realizar una aplicación en Delphi para .NET, si esas plataformas (mono, DotGNU) la podrían ejecutar sin problemas, porque para mi es vital que así sea.

A ver si alguien que haya probado con ambos S.O. puede aportar algo.

Gracias.

dec 14-03-2007 21:18:10

Hola,

Bueno. Tal vez no sea yo el más indicado de nuevo para opinar, pero, creo que puede responderse que no, a bote pronto. Es decir, no puedes programar una aplicación utilizando "lo que quieras" de la plataforma .NET de modo que luego funcione "sin más" en Linux bajo Mono o DotGNU.

Por eso decía más arriba que a día de hoy .NET aún no es multiplataforma, a lo menos no hasta el punto en que lo es Java, por ejemplo, pero de esto último muy poco puedo yo decir. Digamos por ejemplo que Mono da cierto soporte a "WindowsForms", pero no completo; supongamos que utilizas un componente de .NET que a su vez hace uso de ciertos Servicios de la plataforma que no están disponibles en Mono... la cagas.

¿Quiere esto decir que no pueden hacerse hoy por hoy aplicaciones que corran tanto en el FrameWork .NET de Microsoft como en Mono, por ejemplo? No me atrevo a decir tanto, pero, ciertamente es un asunto que hay que pensar desde un principio, es decir, que hay que pensar mal... porque lo que es seguro es que si no se piensa puede que te encuentres con dificultades, que siempre serán más graves si ya has escrito la aplicación... es como si tú mismo pusieras el problema... luego tendrás que darle una solución y probablemente no sería sencilla.

Así que deberías empezar por echar un vistazo al proyecto Mono, y/o a DotGNU, como lo veas, para asegurarte de qué se soporta y qué no se soporta (otra vez como veas) para evitar el uso de determinados servicios de la plataforma .NET desde Delphi que pudieran luego no estar disponibles en Mono o DotGNU. La verdad es que yo no sé si existe algo que de verdad sea "write once compile anyware"... incluso siendo así ya hay que compilar por separado y atenerse a las consecuencias.

Pero lo de "write once and run anyware"... creo que ni .NET, ni siquiera Java... ni nada de nada... tal vez XUL... Es claro que hay programas escritos en Java que corren en Windows, en Linux y en Mac OS, pero, ignoro hasta qué punto hay que tratar a las plataformas por separado o verdaderamente se compila una vez y se puede ejecutar en cualquier lado... Un ejemplo sería el programa Eclipse, con versiones para Windows, Linux y Mac OS, pero, cuando descargas Eclipse descargas eso: distintas versiones. Ignoro otra vez hasta qué punto esas versiones son diferentes.

Fossy 16-03-2007 03:22:47

Gracias David.

He estado viendo un poco mas sobre ambos proyectos de linux y parece ser que la solución está en instalar la plataforma (mono o DotGNU) también en Windows para así programar sobre esa plataforma en cuestión, y de este modo no habrá problema en ejecutar la aplicación en ambos S.O.

Problema: Pues que esto obligaría a los usuarios a instalar mono .net incluso en Windows para ejecutar la aplicación.

Lo que me parece mentira es que en el año 2007 aún no exista nada para crear realmente programas multiplataforma. Todo se reduce a betas, probaturas, emuladores y poco mas que en vez de solucionar algo lo que hace es complicar mas la vida cuando se trata de hacer un programa real y que funcione a la perfección en ambos sistemas, y con esto no quiero decir ni mucho menos que no aplauda la iniciativa de muchos, como el proyecto Lazarus (un 10!!), proyecto Mono, proyecto DotGNU, etc., realmente doy las gracias a todos aquellos que al menos intentan que en un futuro pueda ser posible ejecutar programas en ambas plataformas, pero las personas que inician esos proyectos y son apoyados por otras, sólo son currantes y gente que sacrifica su poco tiempo libre para dar su empujoncito. Me parece mentira que los que tienen el poder (empresas que tanto ganan con la informática) no hayan dado ese paso o financiado un proyecto en condiciones. Tal vez porque Windows interesa mas que Linux, o incluso, Linux estorba y resulta una amenaza para esas empresas.

En fin..., sigo informándome del tema, y si alguien quiere participar aportando su granito, mejor que mejor.

Muchas gracias.

__hector 16-03-2007 16:42:44

Java my friend.

Microsoft no tiene interes (de momento) en portar su plataforma a *nix, y mono siempre estara un paso detras de .NET (logico). Solucion, o usas mono pero librerias como GTK# para el GUI (o esperar que maduren la solucion de System.Windows.Forms, que pronto no sera valida porque vendra Indigo, Avalon, WinFX y todo lo nuevo de Vista), o usar Java, que si es multiplataforma.

Que conste que soy un abanderado de .NET y mono, pero al cesar lo de cesar (en este caso). Creo que Java esta mas cerca que cualquier otra solucion en esto de la multiplataforma.

mamcx 16-03-2007 17:18:09

Por otro lado, creo que la practica ha demostrado que es una falla inmensa el pretender que el GUI nativo sea multiplataforma. Siendo que Java es el mas "multiplataforma" la baja representacion de CUALQUIER solucion multiplataforma en el mercado general demuestra que es una estrategia que simple y llanamente, no es la mejor.

Lo unico multiplataforma que mas o menos funciona es html. De resto, es mejor y al final trae menos lios desarrollar librerias no visuales multiplataforma y GUI con los widget nativos (Win32 en Windows, Cocoa en Apple, GTK en Linux, Etc...)

avmm2004 19-03-2007 18:13:47

Cita:

Empezado por Fossy
Hola amigos:

......
la otra pregunta... ¿Existe algún otro intérprete .NET para linux que me podáis recomendar?.

Gracias.

Si, existe y se llama chrome 1.5 (y es pascal) y funciona con visual estudio 2005 y con Mono para Linux y por lo que parece es bastante bueno. La direccion es http://www.chromesville.com

Por cierto aprovecho para decirle al ¿ moderador ? que porque no lo incluimos como un apartado mas dentro de los foros.

Si alguien que lea esto lo tiene instalado, que por favor me lo haga saber, estoy con el mono de hablar y contrastar experiencias.


La franja horaria es GMT +2. Ahora son las 00:30:22.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi