XAMLマークアップ言語でWebインターフェイスを構築し、モバイルまたはデスクトップアプリケーションよりも同じビューモデルにバインドします。
MWMは純粋に実験的です。生産対応であるとは絶対に考えられていません。これは、ASP.NETコアとウェブケットの上にあるナイーブな実装の概念の証明です。
Sumarize:それは私がまだ知らないテクノロジーを楽しんでいるだけです!醜いコードと悪いアーキテクチャが期待できます。これはすべて、クリーンなデザインフェーズなしで一度に行われているからです。
さらに、Google Chrome-バージョン59.0.3071.115(64ビット)とFirefox -Version 54.0でのみテストされ、 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 > ( ) ,
} ) ;
} リポジトリをクローンし、MWM.Sampleプロジェクトを開始して、3つのサンプルをプレビューします。



すぐにスクリーンショット...
すべてのロジックは、Webアプリからコマンドを送信して聴くASP.NETコアミドルウェアによって実行されます。すべてのプロパティの変更、ユーザーインタラクションイベント、ナビゲーションは、WebSocketsを介してJavaScriptクライアントに伝播されます。
詳細:mwmmiddleware.cs、elementobserver.cs
カスタムの簡略化されたXAML層が、制御のためにゼロから構築されています。現在、コンポーネントと世代は非常に基本的です。すべてのXAMLは、ビルド時にC#ファイルを生成します。理論的には、同じ概念はXamarin.formsに適用できる必要がありますが、より多くの作業が必要です。 :)
詳細:mwm.ui、mwm.ui.xaml.build
貢献は大歓迎です!バグが見つかった場合は、報告してください。機能が必要な場合は、報告してください。
コードを提供したい場合は、問題を提出し、現在の開発ブランチからブランチを作成し、プルリクエストを提出してください。
MIT©AloïsDeniel