WinForms en entrée. Multiplateforme en sortie.
Majorsilence.Forms est une bibliothèque WinForms multiplateforme pour .NET — une
couche de compatibilité Windows Forms qui fait passer les applications WinForms existantes et
modernes sur une pile moderne. Gardez vos Forms, vos contrôles,
vos gestionnaires d'événements et vos fichiers *.Designer.cs tels quels —
exécutez-les sous Linux,
sous macOS et sous Windows depuis
une seule compilation, avec le mobile et le web à portée de main grâce aux cibles
Android, iOS et Browser propres à
Avalonia ou grâce à
Uno Platform. Sept backends
hôtes partagent un même modèle de contrôles — dont une fenêtre GTK 4 sous Linux, un terminal, et
des passerelles WinForms et WPF qui permettent à une application Windows de migrer un contrôle à la fois.
Réduisez la migration, pas votre base de code.
Migrer une application WinForms signifie généralement une réécriture complète dans un nouveau paradigme d'interface — XAML, MVVM, le web. C'est coûteux, risqué, et cela jette des années de logique métier et d'expérience utilisateur qui fonctionnent. Majorsilence.Forms reproduit la surface d'API de WinForms et fournit une couche de compatibilité pour que vos formulaires, contrôles et code existants passent de l'autre côté avec bien moins de remaniements.
Réutiliser, pas réécrire
Le même modèle de contrôles et le même code événementiel que vous avez écrits en WinForms. Pas de XAML, pas de réécriture MVVM imposée, pas de framework à réapprendre.
Multiplateforme par construction
Tout est dessiné avec SkiaSharp et s'exécute sur un backend hôte interchangeable — Avalonia par défaut pour le bureau, avec ses propres cibles Android/iOS/Browser comme une voie vers le mobile et le web, Uno Platform comme une autre, et une vraie fenêtre GTK 4 sous Linux.
Migrer un contrôle à la fois
Les backends WinForms et WPF, réservés à Windows, hébergent des contrôles Majorsilence.Forms dans l'application que vous livrez déjà — ToWinFormsControl(), ToWpfElement() — sur .NET 10 ou .NET Framework 4.8. Portez morceau par morceau, puis changez de backend pour passer au multiplateforme.
Thème en CSS
Un petit sous-ensemble de CSS, entièrement documenté, définit chaque jeton de couleur et de police et stylise les contrôles par type et par état. Modifiez en direct dans Theme Studio, et appliquez la même feuille à de vrais contrôles WinForms ou Avalonia natifs dans une application mixte.
MVVM quand vous le voulez
Majorsilence.Forms.Mvvm relie INotifyPropertyChanged et ICommand aux contrôles sans réflexion — compatible trimming et AOT, et à l'aise aux côtés de CommunityToolkit.Mvvm. Optionnel ; jamais obligatoire.
Moderne sous le capot
Rendu Skia accéléré par le GPU, HiDPI, gestes tactiles, trames d'animation, .NET à jour — plus Majorsilence.Forms.Essentials pour le stockage sécurisé, la synthèse vocale et l'ouverture de liens sur chaque plateforme.
Testable et accessible
Un seul arbre d'automatisation pilote les tests d'interface en processus, un serveur W3C WebDriver pour Selenium, un serveur MCP pour les assistants IA, les lecteurs d'écran Windows et un miroir DOM ARIA dans le navigateur.
Boîtes de dialogue asynchrones, partout
Chaque modale a un jumeau asynchrone — ShowDialogAsync, MessageBox.ShowAsync — pour que le même code s'exécute dans le navigateur et sur les téléphones, où une boucle bloquante n'est pas possible. Un analyseur fourni signale les appels bloquants avant la livraison.
Un seul modèle de contrôles, un hôte interchangeable en dessous.
Majorsilence.Forms possède les contrôles et le rendu ; le backend ne fait que poser des pixels à
l'écran et acheminer les entrées. C'est cette couture qui permet à la même application de cibler
Avalonia aujourd'hui et Uno demain — ou de s'exécuter sans modification dans un terminal. Le cœur
cible à la fois net8.0,
net10.0 et netstandard2.0 ;
les backends WinForms et WPF ajoutent net48 pour qu'une application
.NET Framework 4.8 puisse aussi l'héberger.
Program.cs, inchangé.
using Majorsilence.Forms;
public class MainForm : Form
{
}
static void Main (string [] args)
{
Application.Run (new MainForm ());
}
De vraies applications, pas des démos jouets.
Explorez tous les exemples du dépôt — un clone de l'Explorateur Windows, un clone d'Outlook, une application de point de vente client/serveur avec sa propre API et sa base de données, la même galerie de contrôles complète tournant sur le bureau, Uno, GTK 4, le navigateur, Android, iOS, WPF et dans un terminal, un Theme Studio CSS en direct, une interopérabilité WinForms bidirectionnelle, et Majorsilence.Forms intégré dans des applications hôtes Avalonia, Uno, GTK 4 et WinForms.
La réponse à la question qui vous a amené ici.
La plupart des gens arrivent en cherchant une chose précise — si Windows Forms peut tourner sous Linux, ce que coûte réellement une couche de compatibilité WinForms, ou comment cela se compare à une réécriture en MAUI ou Avalonia. Chacune de ces questions a sa propre page.
WinForms multiplateforme, expliqué
Pourquoi System.Windows.Forms est réservé à Windows, les trois façons de contourner cela, et ce qu'une réimplémentation compatible au niveau de l'API abandonne.
WinForms peut-il tourner sous Linux ?
Pas tel quel — le portage de Mono a disparu depuis longtemps et GDI+ n'y est pas. Ce qui fonctionne à la place sous Ubuntu, Fedora et Debian, et comment le livrer.
WinForms peut-il tourner sous macOS ?
NSWindow natif sur Apple Silicon et Intel, ce qui n'y fait pas très Mac, et l'empaquetage d'un .app.
Migrer une application existante
La CLI majorsilence-migrate fait la réécriture mécanique — espaces de noms, fichiers projet, ressources — sous la forme d'un diff git lisible.
Alternatives à WinForms comparées
MAUI, Avalonia, Uno Platform, Eto.Forms, WPF et Wine — mesurés selon la part de votre code existant que chacun conserve.
FAQ
Les fichiers Designer fonctionnent-ils encore ? Y a-t-il un concepteur visuel ? Qu'en est-il de VB.NET, de DataGridView, de System.Drawing et de la maturité pour la production ?
Dernières nouvelles
Ce qui a atterri depuis août : 26.9.0, quatre nouveaux backends, thèmes CSS et l'audit de comportement
Sept semaines et 557 commits : hôtes GTK 4, Terminal, WinForms et WPF, prise en charge de .NET Framework 4.8, thèmes CSS, boîtes de dialogue exclusivement asynchrones sur mobile...
Lire l'article →Présentation de Majorsilence.Forms
Un framework d'interface de style WinForms pour porter des applications WinForms anciennes ou récentes sur une pile multiplateforme — sans réécriture.
Lire l'article →Backends de plateforme : Avalonia, Uno et Headless
Majorsilence.Forms dessine lui-même chaque contrôle avec SkiaSharp — le toolkit de fenêtrage en dessous n'est qu'un hôte. Voici comment fonctionne la couture.
Lire l'article →