Foro de elhacker.net

Programación => .NET (C#, VB.NET, ASP) => Mensaje iniciado por: Blowfish en 8 Marzo 2023, 15:17 pm



Título: ¿Se puede considerar C# como multiplataforma?
Publicado por: Blowfish en 8 Marzo 2023, 15:17 pm
Con Java lo tengo más claro, pero estoy estudiando un FP de Desarrollo de Aplicaciones Multiplataforma y casi estoy obligado a programar desde Windows. Podría ser que a mi nunca me ha gustado usar productos de Microsoft, pero no entiendo qué pinta C# en dispositivos Android por ejemplo.


Título: Re: ¿Se puede considerar C# como multiplataforma?
Publicado por: Locura_23 en 8 Marzo 2023, 19:34 pm
hola, C# en sí es el lenguaje principal de lo que es el framework .NET, lo que es multiplataforma es .NET.
Nota que C# no es el único lenguaje que puede utilizarse en .NET, están Visual Basic, Visual C++, entre otros. Aunque el preferido es el primero.


Título: Re: ¿Se puede considerar C# como multiplataforma?
Publicado por: Blowfish en 10 Marzo 2023, 19:13 pm
hola, C# en sí es el lenguaje principal de lo que es el framework .NET, lo que es multiplataforma es .NET.

Igual me he expresado mal, para mi todo gira en torno al IDE Visual Studio. Cuando hice mis pinitos con Java yo elegía el IDE que me diera la gana, las aplicaciones eran de consola, eso sí, en cambio ahora me toca hacer ejercicios con Windows Forms y estoy casi obligado a trabajar en entorno Windows.


Título: Re: ¿Se puede considerar C# como multiplataforma?
Publicado por: Locura_23 en 10 Marzo 2023, 19:27 pm
Pues la verdad es que sí, Visual Studio en mi opinión es un IDE 'pesado', pero ofrece muchas facilidades y herramientas para trabajar en Windows, sin duda la mejor es la interfaz grafica que te permite arrastrar los componentes de la forma con mucha facilidad.
Otra ventaja es que se actualiza a la última versión de .net.

Igual cuando quiero hacer un codigo sencillo en C# utilizo notepad++, con el plugin CS-Script, lo cual es mucho mas ligero y facil, pero la desventaja es que utiliza una versión de .net más atrasada.


Título: Re: ¿Se puede considerar C# como multiplataforma?
Publicado por: Blowfish en 12 Marzo 2023, 21:03 pm
Pues la verdad es que sí, Visual Studio en mi opinión es un IDE 'pesado', pero ofrece muchas facilidades y herramientas para trabajar en Windows, sin duda la mejor es la interfaz grafica que te permite arrastrar los componentes de la forma con mucha facilidad.
Otra ventaja es que se actualiza a la última versión de .net.

Igual cuando quiero hacer un codigo sencillo en C# utilizo notepad++, con el plugin CS-Script, lo cual es mucho mas ligero y facil, pero la desventaja es que utiliza una versión de .net más atrasada.

A ver, yo sin más, me mandan ejercicios en C# que usan la clase Windows.Forms y a partir de ahí veo que no puedo correr otro IDE que lo haga mejor. Me jodió porque tuve que instalar Windows en un netbook con pocos recursos y Visual Studio me iba a pedales, probé con VS Code, pero era todo para consola.

Desde mi ignorancia suponía que Java era el lenguaje de programación estandar en telefonos con Android. De ahí mi duda de si no sería mejor aprender Java y trabajar con algún IDE tipo Eclipse en la FP que estoy haciendo.


Título: Re: ¿Se puede considerar C# como multiplataforma?
Publicado por: Locura_23 en 12 Marzo 2023, 22:25 pm
Ya veo, pues yo tenia el mismo problema cuando queria aprender C# (me andaba mal el Visual Studio en una note que tengo), entonces usaba el metodo que te mencioné de Notepad++.

Por ejemplo, esto muestra un message box con el mensaje hello. Esto está hecho en notepad++. Fijate que se añade el espacio de nombres Windows.Forms, para usar esos componentes.

Código
  1. using System;
  2. using System.Windows.Forms;
  3.  
  4. namespace app
  5. {
  6. public class Program
  7. {
  8. static void Main(string[] args)
  9. {
  10. MessageBox.Show("Hello");
  11.  
  12. Console.ReadLine();
  13. }
  14. }
  15. }


Título: Re: ¿Se puede considerar C# como multiplataforma?
Publicado por: Locura_23 en 12 Marzo 2023, 22:27 pm
Ya veo, pues yo tenia el mismo problema cuando queria aprender C# (me andaba mal el Visual Studio en una note que tengo), entonces usaba el metodo que te mencioné de Notepad++.

Por ejemplo, esto muestra un message box con el mensaje hello. Esto está hecho en notepad++. Fijate que se añade el espacio de nombres Windows.Forms, para usar esos componentes.

Código
  1. using System;
  2. using System.Windows.Forms;
  3.  
  4. namespace app
  5. {
  6. public class Program
  7. {
  8. static void Main(string[] args)
  9. {
  10. MessageBox.Show("Hello");
  11.  
  12. Console.ReadLine();
  13. }
  14. }
  15. }

Luego se pueden programar aplicaciones para Android tanto en Java como en .NET (con xamarin).



Título: Re: ¿Se puede considerar C# como multiplataforma?
Publicado por: Blowfish en 17 Marzo 2023, 20:38 pm
Ya veo, pues yo tenia el mismo problema cuando queria aprender C# (me andaba mal el Visual Studio en una note que tengo), entonces usaba el metodo que te mencioné de Notepad++.

Por ejemplo, esto muestra un message box con el mensaje hello. Esto está hecho en notepad++. Fijate que se añade el espacio de nombres Windows.Forms, para usar esos componentes.

Código
  1. using System;
  2. using System.Windows.Forms;
  3.  
  4. namespace app
  5. {
  6. public class Program
  7. {
  8. static void Main(string[] args)
  9. {
  10. MessageBox.Show("Hello");
  11.  
  12. Console.ReadLine();
  13. }
  14. }
  15. }


Joder, pues igual es más fácil de lo que pensaba.

¿Solo con un "using System.Windows.Forms;" ya vale? Es decir, que yo creo la clase con su método constructor en un archivo, y luego otro archivo que será la interfaz del programa con "Windows.Forms" en la cabecera y ya está.

Yo veo muchos ficheros a parte de la clase y el Form1.cs.


Título: Re: ¿Se puede considerar C# como multiplataforma?
Publicado por: Meta en 30 Marzo 2023, 23:14 pm
Joder, pues igual es más fácil de lo que pensaba.

¿Solo con un "using System.Windows.Forms;" ya vale? Es decir, que yo creo la clase con su método constructor en un archivo, y luego otro archivo que será la interfaz del programa con "Windows.Forms" en la cabecera y ya está.

Yo veo muchos ficheros a parte de la clase y el Form1.cs.

No me funciona.

Además, al final se pone esto:

Código
  1. // Pulse cualquier tecla para salir.
  2. Console.ReadKey();


Título: Re: ¿Se puede considerar C# como multiplataforma?
Publicado por: Locura_23 en 31 Marzo 2023, 03:39 am
No me funciona.

Además, al final se pone esto:

Código
  1. // Pulse cualquier tecla para salir.
  2. Console.ReadKey();

Pues a mi sí que me funciona aún. La versión de notepad es 7.9.5 y el plugin es CS-Script 1.7.24. Si utilizas otra versión mas reciente de notepad tal vez no funcione.

y tanto leer un caracter
Código
  1. Console.ReadKey();

como leer una linea
Código
  1. Console.ReadLine();

son validas ambas, ya que la idea es hacer una pausa para que no se finalice inmediatamente la ejecución del programa.


Título: Re: ¿Se puede considerar C# como multiplataforma?
Publicado por: Meta en 1 Abril 2023, 08:55 am
Si pones ReadLine(); (https://learn.microsoft.com/es-es/dotnet/api/system.console.readline?view=net-7.0) pasa esto.
Citar
D:\Visual Studio 2022\Curso de C# desde las bases\Curso de C# desde las bases\bin\Debug\net7.0\Curso de C# desde las bases.exe (proceso 18108) se cerró con el código 0.
Para cerrar automáticamente la consola cuando se detiene la depuración, habilite Herramientas ->Opciones ->Depuración ->Cerrar la consola automáticamente al detenerse la depuración.
Presione cualquier tecla para cerrar esta ventana. . .

Por eso con ReadKey(); (https://learn.microsoft.com/es-es/dotnet/api/system.console.readkey?view=net-7.0) se cierra directamente sin tener que hacer nada. Es una ventajita, nada más. ;)

Por supuesto, son válidas, incluido solo Read(); (https://learn.microsoft.com/es-es/dotnet/api/system.console.read?view=net-7.0) ;)