Cree interfaces web con el lenguaje de marcado XAML y enléelo a los mismos modelos de vista que sus aplicaciones móviles o de escritorio.
MWM es puramente experimental . No se cree que esté listo para estar listo, esto es más una prueba de concepto de una implementación ingenua sobre ASP.NET Core y WebSockets.
Para sumarizar: ¡Solo soy yo divirtiéndome con tecnologías que aún no conozco! Puede esperar un código feo y una mala arquitectura ya que todo esto se ha hecho de una vez ... sin una fase de diseño limpio.
Además, solo se ha probado con Google Chrome - Versión 59.0.3071.115 (64 bits) y Firefox - Versión 54.0 , que se ejecuta en 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 el repositorio y comience el proyecto mwm.sample para obtener una vista previa de tres muestras:



captura de pantalla pronto ...
Toda la lógica es ejecutada por un middleware Core ASP.NET que envía y escucha los comandos desde una aplicación web. Todos los cambios de propiedad, eventos de interacción del usuario, navegación se propagan al cliente JavaScript a través de WebSockets.
Detalles : mwmmiddleware.cs, elementobserver.cs
Se ha construido una capa XAML simplificada personalizada desde cero para control. Los componentes y la generación son muy básicos en este momento. Todo XAML generará el archivo C# en la hora de compilación. Teóricamente, el mismo concepto debe ser aplicable a Xamarin.Forms pero con mucho más trabajo. :)
Detalles : MWM.UI, MWM.UI.XAML.BUILD
¡Las contribuciones son bienvenidas! Si encuentra un error, infórmelo y si desea una función, informe.
Si desea contribuir con código, presente un problema y cree una rama de la rama de desarrollo actual y presente una solicitud de extracción.
MIT © aloïs Deniel