C'est l'un de ces "Saviez-vous que vous pouviez faire ÇA ? " Beaucoup de gens ont compris que C#/F#/.NET est multiplateforme et open0source et fonctionne sur pratiquement n'importe quel système d'exploitation. Les gens l'utilisent pour créer des microservices, des sites Web et des API Web partout. Sans parler de l'iPhone/Android des applications avec Xamarin et des jeux vidéo avec Unity et MonoGame.
Mais qu'en est-il des interfaces utilisateur multiplateformes ?
Bien qu'il ne soit pas officiellement pris en charge par Microsoft, vous pouvez faire des choses géniales... comme c'est ainsi que l'Open Source est censé fonctionner ! N'oubliez pas qu'il existe maintenant une famille de runtimes .NET, il y a le .NET Framework sur Windows, il y a xplat .NET Core et il y a xplat Mono.
Eto.Forms est en développement depuis 2012 et est un framework multiplateforme pour la création d'applications GUI (interface utilisateur graphique, natch) avec .NET qui s'exécutent sur plusieurs plates-formes à l'aide de leur boîte à outils native. Pas comme Java dans les années 90 avec des boutons personnalisés peints sur toile.
Il est utilisé pour de vrais trucs! En fait, PabloDraw est un éditeur de texte Ansi/Ascii dont vous ne saviez pas avoir besoin dans votre vie. Mais si. Il fonctionne sous Windows, Mac et Linux et a été écrit à l'aide d'Eto.Forms, mais possède une interface utilisateur native sur chaque plate-forme. Assurez-vous de consulter le compte Twitter de Curtis Wensley pour quelques exemples intéressants de ce que PabloDraw et Eto.Forms peuvent faire !
- OS X :MonoMac ou Xamarin.Mac (et également iOS via Xamarin)
- Linux :GTK# 2 ou 3
- Windows :Windows Forms (utilisant GDI ou Direct2D) ou WPF
Voici un exemple Hello World. Notez qu'il n'y a pas que Code First, vous pouvez également utiliser Xaml, ou même Json (.jeto) pour mettre en page vos formulaires !
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());
}
}
Ou je peux simplement Fichier | Nouveau projet avec leur extension Visual Studio. Vous devriez certainement essayer.
Même sur la même plate-forme (Windows dans l'exemple ci-dessous), Eto.Forms peut étonnamment utiliser les contrôles natifs que vous préférez. Voici un excellent exemple de zip contenant des applications de test précompilées.
Une fois que vous avez installé une nouvelle version de Mono sur Ubuntu, vous pouvez exécuter le même exemple que Gtk3, comme je le fais ici dans une VM. INCROYABLE.
Voici quelques exemples d'applications qui sont dans la nature, utilisant Eto.Forms :
- MonoGame Pipeline Tool - Gestionnaire de contenu pour MonoGame
- Responsable - Logiciel de comptabilité
- PabloDraw - Application de dessin basée sur des caractères
- JabbR.Desktop :client JabbR
- Notedown - Application de prise de notes
- Eto.Test - Application pour tester la fonctionnalité de chaque widget
- DotImaging.UI - Éléments d'interface utilisateur portables pour DotImaging
Il se passe tellement de choses intéressantes dans .NET open source en ce moment, et Eto.Forms recherche activement de l'aide. Allez voir leur excellent Wiki, lisez les Tutoriels et participez peut-être !
Parrain : Obtenez le dernier JetBrains Rider pour le débogage du code .NET tiers, Smart Step Into, d'autres améliorations du débogueur, C# Interactive, un nouvel assistant de projet et le formatage du code dans les colonnes.