1

私はMacでもWindows上で実行する必要があり、それぞれの店に展開する必要があるアプリケーションを作成しています。 GUIは、WebViewコントロールでローカルにホストされるHTMLベースのGUIになります。 GUIは主に単純なJsonメッセージを使用してシステムの残りの部分と通信します。MacとWindows用のクロスプラットフォームクラスライブラリC#を使用して

メインロジックは両方のプラットフォームで同じです。できるだけ多くのコードを共有したいと思います。 MacでXamarinを、Windowsで.NETを使用し、共有できる共通のクラスライブラリを構築することが考えられます。この共有アセンブリの対象とすべきか

(netstandard PCL、またはMacとWindows用の別のプロジェクトファイルを持っているだけで、ソースファイルを共有する?)

答えて

1

長期的にはPCLを置き換えるため、私はすべての新しいプロジェクトに.NET標準を使用します。 は、それが複数の.NETプラットフォームを標的とするための汎用性のあるクラスライブラリに置き換えられますので、あなたが.NET標準への切り替えを検討すべきである、ライブラリの作者として https://blogs.msdn.microsoft.com/dotnet/2016/09/26/introducing-net-standard/

上の段落As a library author, what should I do now?を参照してください。

.NET Standard 1.xの場合、使用可能なAPIのセットはPCLに非常に似ています。しかし、.NET Standard 2.xは大幅に大きなAPIセットを持ち、.NET Frameworkをターゲットとしたライブラリに依存することもできます。 PCLと.NET標準間

主な違いは、次のとおり

  • プラットフォームタイです。
  • プラットフォームの可用性。
  • ライブラリが利用可能です。

私は、プラットフォーム固有です小片を持っている必要があります場合にのみ、共有ライブラリ(コードファイル共有)を使用すると思います。しかし、通常はインターフェイスを作成し、そのインターフェイスを実装しているクラスでプラットフォームの仕様を実装するだけです。そして、依存関係注入を使用して、クロスプラットフォームライブラリの実際の実装を取得します。

0

私はPCLを使用することができアドバイス。私はAndroidとiOS(Xamarinフォーム)用のWindows 10(ネットコア)用のアプリを持っています。これらのアプリはPCLライブラリを使用します。それが最善の方法です。

+0

PCLが最適な方法である理由を正当に評価できますか? – thepirat000

関連する問題