Compilador e intérprete c#

HOHO

Lanero Reconocido
26 May 2005
3,413
Como c# es un lenguaje interpretado, tengo entendido que puede ser ejecutado en cualquier sistema operativo que tenga su intérprete (como java), aunque no se si por ser nuevo, solo he encontrado dos compiladores/intérpretes fuera de visual studio: mono y Dot GNU, no he usado esas herramientas, pero si alguien las ha usado me gustaría que me dijera:

-> Si son compatibles con visual studio (para que haya una interpretación de verdad), y viceverza
-> Si tienen las suficientes herramientas y documentación para desarrollar un proyecto serio
-> Si usa el mismo c# de microsoft.

Adicionalmente, si alguien conoce otros compiladores/intérpretes, por favor cítelos.
 
Yo conozco el sharpDevelop que es un IDE para C#. Tiene un compilador pero no se si es propiro o es el mismo de las VS. Suerte
 
Como c# es un lenguaje interpretado, tengo entendido que puede ser ejecutado en cualquier sistema operativo que tenga su intérprete (como java),

C# no es interpretado... OJO!!! genera código intermedio que es compilado en su totalidad antes de su ejecución. Java si es interpretado ( creo que desde la 1.5 ya no ).

aunque no se si por ser nuevo
Nuevo? C# existe desde antes de 1999

> Si son compatibles con visual studio (para que haya una interpretación de verdad), y viceverza
Visual studio es un IDE, lo de la compatbilidad... asi como preguntas... si es compatible pues los fuentes son texto plano, lo que no es compatible son los proyectos por loque deberas armarlos segun el compilador que uses... como sucede con cualquier otra herramienta.

-> Si tienen las suficientes herramientas y documentación para desarrollar un proyecto serio
A que te refieres?
bueno tratando de desenerredar el asunto, para linux mono y mono Develop (el IDE ) son muy buenos y estan en cierta medida documentados, pero no encontraras nada tan robusto como visual studio y msdn


-> Si usa el mismo c# de microsoft.
C# es único, su especificación es abierta. En teoria todos deben usar el mismo C#... desde luego abran pequeñas diferencias pero deben ser escasas incluso imperceptibles.

- Adicionalmente, si alguien conoce otros compiladores/intérpretes, por favor cítelos.

NO HAY INTERPRETES!!!
C# NO ES INTERPRETADO

El mejor compilador por fuera del compilador de microsoft es mono.

el mejor IDE por fuera de visual studio es mono develop (pero aun esta lejos incluso de las versiones visual studio express ).
 
Sí cometí un error que no debí, c# es compilado, y esa compilación intermedia es compilada al lenguaje nativo, pero lo que quiero saber es esto: Instalo visual studio 2008 express, creo un proyecto y lo compilo para windows, ¿puedo ejecutarlo bajo linux?
 
Si, desde que uses las cosas normales...
si usas cosas que dependen del sistema operativo o de librerias aun no creadas para mono.... NO

entonces recomendación crea desde VS2008 un proyecto para framework 2.0 y trata de usar las cosas mas estandard posibles. así te correra en linux sin ni siquiera recompilar nada.
 
O más fácil trabaja en Linux, y tendras la seguridad de que te va a funcionar en los dos SO.

Totalmente Falso.

Bajo las mismas circunstancias expuestas anteriormente puede no funcionar, es decir si usas librerías no existentes en .NET Framework como por ejemplo :
Mono.Security
Mono.Unix
Mono.*
GTK.*

Creeme que tendrás mayores problemas.
 
Totalmente Falso.

Bajo las mismas circunstancias expuestas anteriormente puede no funcionar, es decir si usas librerías no existentes en .NET Framework como por ejemplo :
Mono.Security
Mono.Unix
Mono.*
GTK.*

Creeme que tendrás mayores problemas.

Si se escribe un código lo más standart posible, no se usarían esas librerías, y no se estaría en la tentación de usar librerías no escritas para mono que si estén en el VS, así CREO YO se aprovecharia mejor la herramienta, pues del modo que se propone el programador se restringiria mucho más.
 
Si se escribe un código lo más standart posible, no se usarían esas librerías, y no se estaría en la tentación de usar librerías no escritas para mono que si estén en el VS, así CREO YO se aprovecharia mejor la herramienta, pues del modo que se propone el programador se restringiria mucho más.

Lo cual nos trae de nuevo a mi afirmación:

Si, desde que uses las cosas normales...
si usas cosas que dependen del sistema operativo o de librerias aun no creadas para mono.... NO

entonces recomendación crea desde VS2008 un proyecto para framework 2.0 y trata de usar las cosas mas estandard posibles. así te correra en linux sin ni siquiera recompilar nada.

Y a refutar la alternativa que tu propusiste:
O más fácil trabaja en Linux, y tendras la seguridad de que te va a funcionar en los dos SO.
 
Lo cual nos trae de nuevo a mi afirmación:



Y a refutar la alternativa que tu propusiste:

:S:S:S, yo lo tome en base a lo que usted dijo
Si, desde que uses las cosas normales...
si usas cosas que dependen del sistema operativo o de librerias aun no creadas para mono.... NO

Esto es obvio, y por el pensamiento de que si trabaja con MONO (que no tiene tanta libreria), tal vez encuentre algunas QUE SI FUNCIONEN, y que no usaría si esta trabajando en VS, por lo mismo; de que tal vez no estén implementadas.

De todas formas lo que usted y yo dijimos fue básicamente lo mismo, y no vale la pena entrar en polémicas por eso.
 
La discusión siempre enriquece desde que se haga con argumentos.

y por el pensamiento de que si trabaja con MONO (que no tiene tanta libreria),
Actualmente Mono tiene más de esas 'tantas librerias' que Visual Studio.

Pues mono se ha esforzado tener el CLR standard + .net framework + las cosas de linux en todos los MOno.*, GTK.* LINUX.* etc etc.
 
La discusión siempre enriquece desde que se haga con argumentos.


Actualmente Mono tiene más de esas 'tantas librerias' que Visual Studio.

Pues mono se ha esforzado tener el CLR standard + .net framework + las cosas de linux en todos los MOno.*, GTK.* LINUX.* etc etc.

Eso es correcto, pero son librerías que solo funcionarían en un linux, y si tratamos de hacer algo standart no servirían.
 
Exacto, si lo haces desde Visual Studio y usas llibrerias que solo corren en windows entonces no sera estandard.

no entiendo entonces porque dices que

O más fácil trabaja en Linux, y tendras la seguridad de que te va a funcionar en los dos SO.

Ya que eso es falso. Es mas seguro que algo hecho en visual studio (más rápido y más fácil) funcione en linux que viceversa.
 
Lo que pasa es que yo esperaba de c# la misma portabilidad que java, por ejemplo, si creo una aplicación con formularios y botones, ¿es necesario hacer dos códigos diferentes para cada sistema operativo?, porque en el caso de java no.

En estos dias instalo mono develop
 
No es necesario.

Lo que te hemos comentado es solo para casos excepcionales, los cuales por cierto también existen en java.