Questo è uno di quei "Sapevi che potresti farlo? " Molte persone hanno capito che C#/F#/.NET è multipiattaforma e open0source e funziona praticamente su qualsiasi sistema operativo. Le persone lo usano per creare microservizi, siti Web e webAPI dappertutto. Per non parlare di iPhone/Android app con Xamarin e videogiochi con Unity e MonoGame.
E per quanto riguarda le interfacce utente multipiattaforma?
Anche se non è ufficialmente supportato da Microsoft, puoi fare cose fantastiche... così come dovrebbe funzionare Open Source! Ricorda che ora esiste una famiglia di .NET Runtime, c'è .NET Framework su Windows, c'è xplat .NET Core e c'è xplat Mono.
Eto.Forms è in sviluppo dal 2012 ed è un framework multipiattaforma per la creazione di applicazioni GUI (Graphical User Interface, natch) con .NET che funzionano su più piattaforme utilizzando il loro toolkit nativo. Non come Java negli anni '90 con pulsanti dipinti personalizzati su tela.
Viene usato per cose vere! In effetti, PabloDraw è un editor di testo Ansi/Ascii di cui non sapevi di aver bisogno nella tua vita. Ma lo fai. Funziona su Windows, Mac e Linux ed è stato scritto utilizzando Eto.Forms ma ha un'interfaccia utente nativa su ciascuna piattaforma. Assicurati di controllare l'account Twitter di Curtis Wensley per alcuni fantastici esempi di ciò che PabloDraw ed Eto.Forms possono fare!
- OS X:MonoMac o Xamarin.Mac (e anche iOS tramite Xamarin)
- Linux:GTK# 2 o 3
- Windows:Windows Forms (tramite GDI o Direct2D) o WPF
Ecco un esempio Hello World. Nota che non è solo Code First, puoi anche usare Xaml o anche Json (.jeto) per il layout dei tuoi moduli!
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());
}
}
Oppure posso solo File | Nuovo progetto con la relativa estensione di Visual Studio. Dovresti assolutamente provarlo.
Anche sulla stessa piattaforma (Windows nell'esempio seguente) sorprendentemente Eto.Forms può utilizzare qualsiasi controllo nativo tu preferisca. Ecco un ottimo esempio di zip con app di test precompilate.
Dopo aver installato una nuova versione di Mono su Ubuntu, puoi eseguire lo stesso esempio di Gtk3, come sto facendo qui in una VM. INCREDIBILE.
Ecco alcuni esempi di applicazioni che sono in natura, utilizzando Eto.Forms:
- Strumento Pipeline MonoGame - Gestione contenuti per MonoGame
- Manager - Software di contabilità
- PabloDraw - Applicazione di disegno basata sui personaggi
- JabbR.Desktop - Client JabbR
- Notedown - Applicazione per prendere appunti
- Eto.Test - Applicazione per testare le funzionalità di ogni widget
- DotImaging.UI - Elementi dell'interfaccia utente portatili per DotImaging
Ci sono così tante cose interessanti che stanno accadendo in .NET open source in questo momento ed Eto.Forms è attivamente alla ricerca di aiuto. Vai a dare un'occhiata al loro eccellente Wiki, leggi i Tutorial e magari lasciati coinvolgere!
Sponsor: Ottieni l'ultimo JetBrains Rider per il debug di codice .NET di terze parti, Smart Step Into, ulteriori miglioramenti del debugger, C# Interactive, nuova procedura guidata di progetto e formattazione del codice nelle colonne.