2 つの世界の間でビジネス ロジックを再利用できるように、.NET クラス ライブラリ、または少なくともその一部を Silverlight に移行するのにどれだけの作業が必要かを確認するために、小さな実験セッションを行ったところです。他の人がこの種の経験を持っているかどうか疑問に思っています。
私が気づいたこと、私の頭の上から:
- 多くの属性が欠落しています (たとえば、Browsable(false))
- 多くのインターフェイスが欠落しているか、存在するが空である (ICloneable が非表示、ITypedList が欠落している)
- リフレクションの違い (到達可能なものはすべて公開する必要があります)
- いくつかの基本クラスの違い (コンポーネントがない?)
だから私は疑問に思っています、これを可能性として見ることさえ本当に実現可能ですか?
最初のコードを実行しましたが、ITypedList といくつかの基本クラスに基づいているため、主にリストの処理に関する多くの基本機能をコメントアウトする必要がありました。どうやら、Silverlight で ObservableCollection に変更する必要があるようです。対応するには、ベース コード全体を変更する必要があります。
私が作成した実際のビジネス テスト クラスは、.NET 用に作成したものと 99.5% 同一です。.NET でも簡単に使用できる小さな変更がいくつかあるだけです。シルバーライト。つまり、基本クラスの互換性を確保できれば、ビジネス ロジックを共有することは可能に見えます。
明確にするために、私が話していることは、基本的には .NET 用と Silverlight 用の 2 つのプロジェクト ファイルを持つことになりますが、実際の C# ソース コードは同じで、2 つの間で共有されるということです。
それで、誰もこれについて何か経験がありますか?ヒントやガイドラインはありますか?
それはそれだけの価値がありますか?それは確かにもっと調べる必要があります。