Créez des interfaces Web avec le langage de balisage XAML et liez-la aux mêmes modèles de vue que vos applications mobiles ou de bureau.
Le MWM est purement expérimental . On ne pense absolument pas être prêt pour la production, il s'agit davantage d'une preuve de concept d'une implémentation naïve en plus d'ASP.NET Core et WebSockets.
Pour sumariser: c'est juste que je m'amuse avec les technologies que je ne sais pas encore! Vous pouvez vous attendre à un code laid et à une mauvaise architecture depuis que tout cela a été fait en une seule fois ... sans phase de conception propre.
De plus, il n'a été testé qu'avec Google Chrome - version 59.0.3071.115 (64 bits) et Firefox - version 54.0 , fonctionnant sur MacOS 10.12 .

Home.xaml
< Page
xmlns = " http://schemas.microsoft.com/winfx/2006/xaml/presentation "
xmlns : x = " http://schemas.microsoft.com/winfx/2006/xaml "
x : Class = " Mwm.Sample.Home " >
< StackPanel Margin = " 10 " >
< TextBlock x : Name = " title " Margin = " 10 " Text = " Count: 0 " />
< Button Margin = " 10 " Text = " +1 " Click = " Add " />
</ StackPanel >
</ Page >Home.xaml.cs
namespace Mwm . Sample
{
using System ;
public partial class Home
{
public Counter ( )
{
this . Initialize ( ) ;
}
private int count ;
private void Add ( object sender , EventArgs args )
{
this . title . Text = $ "Count: { ++ count } " ;
}
}
}Startup.cs
public void Configure ( IApplicationBuilder app , IHostingEnvironment env , ILoggerFactory loggerFactory )
{
loggerFactory . AddConsole ( Configuration . GetSection ( "Logging" ) ) ;
loggerFactory . AddDebug ( ) ;
app . UseWebSockets ( ) ;
app . UseMwm ( new MwmOptions
{
UIBuilder = new FactoryBuilder ( ) . Register < Home > ( ) ,
} ) ;
} Clone le référentiel et démarrer le projet MWM.Sample pour prévisualiser trois échantillons:



Capture d'écran bientôt ...
Toute la logique est exécutée par un middleware ASP.NET Core qui envoie et écoute les commandes à partir d'une application Web. Tous les changements de propriété, les événements d'interaction utilisateur, la navigation se propagent au client JavaScript via WebSockets.
Détails : mwmmiddleware.cs, elementObserver.cs
Une couche XAML simplifiée personnalisée a été construite à partir de la terre pour le contrôle. Les composants et la génération sont très basiques pour le moment. Tous les XAML généreront un fichier C # au moment de la construction. Théoriquement, le même concept doit être appliqué à xamarin.Formes mais avec beaucoup plus de travail. :)
Détails : MWM.UI, MWM.UI.XAML.BUILD
Les contributions sont les bienvenues! Si vous trouvez un bug, veuillez le signaler et si vous souhaitez une fonctionnalité, veuillez le signaler.
Si vous souhaitez contribuer du code, veuillez déposer un problème et créer une branche de la branche de développement actuelle et déposer une demande de traction.
MIT © Alois Deniel