GNU/Linux >> Tutoriales Linux >  >> Linux

GUI multiplataforma con .NET de código abierto usando Eto.Forms

Este es uno de esos "¿Sabías que puedes hacer ESO? " Mucha gente se ha dado cuenta de que C#/F#/.NET es multiplataforma y de código abierto y se ejecuta básicamente en cualquier sistema operativo. La gente lo usa para crear microservicios, sitios web y webAPI por todas partes. Sin mencionar iPhone/Android apps con Xamarin y videojuegos con Unity y MonoGame.

Pero, ¿qué pasa con las interfaces de usuario multiplataforma?

Si bien no es oficialmente compatible con Microsoft, puede hacer algunas cosas increíbles... ¡así es como se supone que funciona el código abierto! Recuerde que ahora hay una familia de .NET Runtimes, está .NET Framework en Windows, está xplat .NET Core y está xplat Mono.

Eto.Forms ha estado en desarrollo desde 2012 y es un marco multiplataforma para crear aplicaciones GUI (interfaz gráfica de usuario, natch) con .NET que se ejecutan en múltiples plataformas utilizando su kit de herramientas nativo. No como Java en los años 90 con botones personalizados pintados sobre lienzo.

¡Se está utilizando para cosas reales! De hecho, PabloDraw es un editor de texto Ansi/Ascii que no sabías que necesitabas en tu vida. Pero lo haces. Se ejecuta en Windows, Mac y Linux y se escribió con Eto.Forms, pero tiene una interfaz de usuario nativa en cada plataforma. ¡Asegúrese de consultar la cuenta de Twitter de Curtis Wensley para ver algunos ejemplos geniales de lo que PabloDraw y Eto.Forms pueden hacer!

  • OS X:MonoMac o Xamarin.Mac (y también iOS a través de Xamarin)
  • Linux:GTK# 2 o 3
  • Windows:Windows Forms (usando GDI o Direct2D) o WPF

Aquí hay un ejemplo Hola Mundo. Tenga en cuenta que no es solo Code First, ¡también puede usar Xaml o incluso Json (.jeto) para diseñar sus formularios!

using Eto.Forms;
using Eto.Drawing;

public class MyForm : Form
{
public MyForm ()
{
Title = "My Cross-Platform App";
ClientSize = new Size(200, 200);
Content = new Label { Text = "Hello World!" };
}

[STAThread]
static void Main()
{
new Application().Run(new MyForm());
}
}

O simplemente puedo Archivo | Nuevo proyecto con su extensión de Visual Studio. Definitivamente deberías darle una oportunidad.

Incluso en la misma plataforma (Windows en el ejemplo a continuación), sorprendentemente, Eto.Forms puede usar los controles nativos que prefiera. Este es un gran ejemplo de zip que tiene aplicaciones de prueba precompiladas.

Una vez que haya instalado una nueva versión de Mono en Ubuntu, puede ejecutar la misma muestra que Gtk3, como lo estoy haciendo aquí en una máquina virtual. INCREÍBLE.

Aquí hay algunas aplicaciones de ejemplo que están en la naturaleza, usando Eto.Forms:

  • MonoGame Pipeline Tool:administrador de contenido para MonoGame
  • Administrador - Software de contabilidad
  • PabloDraw - Aplicación de dibujo basada en personajes
  • JabbR.Desktop:cliente de JabbR
  • Notedown:aplicación para tomar notas
  • Eto.Test - Aplicación para probar la funcionalidad de cada widget
  • DotImaging.UI:elementos portátiles de la interfaz de usuario para DotImaging

Hay tantas cosas geniales sucediendo en .NET de código abierto en este momento, y Eto.Forms está buscando ayuda activamente. ¡Ve a ver su excelente Wiki, lee los tutoriales y tal vez participe!

Patrocinador: Obtenga el último JetBrains Rider para depurar código .NET de terceros, Smart Step Into, más mejoras del depurador, C# Interactive, nuevo asistente de proyectos y formato de código en columnas.


Linux
  1. Uso compartido de archivos de código abierto con esta herramienta de Linux

  2. Realice análisis forense de memoria de Linux con esta herramienta de código abierto

  3. System76 presenta computadoras portátiles con BIOS coreboot de código abierto

  4. Los empleadores aumentarán la contratación de profesionales de TI con habilidades de código abierto

  5. Veracrypt:una herramienta de cifrado de disco multiplataforma de código abierto

Administre su presupuesto en Linux con esta herramienta financiera de código abierto

Cómo uso Stream Deck en Linux con herramientas de código abierto

Actualiza dispositivos de forma remota con esta herramienta de código abierto

Pruebe Linux en su Mac con virtualización de código abierto

Crear un SDN en Linux con código abierto

ZEIT ahora implementa aplicaciones web ASP.NET Core de código abierto con Docker