SilverlightとWPFの両方で開発されるアプリケーションを計画しています。SilverlightとWPFの互換性
私たちはXAMLのインターフェイスを実装するので、両方のテクノロジで互換性があるかどうかを知りたがっていましたか?
テクノロジを別のテクノロジに移植する際に、どのような問題が予想されますか?
SilverlightとWPFの両方で開発されるアプリケーションを計画しています。SilverlightとWPFの互換性
私たちはXAMLのインターフェイスを実装するので、両方のテクノロジで互換性があるかどうかを知りたがっていましたか?
テクノロジを別のテクノロジに移植する際に、どのような問題が予想されますか?
最終的にSilverlightは/ WPFエンティティのサブセットのみであるた、したがって、あなたがシルバーに移植する際にWPFの不在で利用可能な要素のいくつかを見つけるために傾向があり、そのようなものが含まれます:特定の結合の
Triggers
ではなくSilverlightを使用してコードでトリガーされます。など。
ほとんどの問題を抱えているのは、あなたのカスタムコントロールの移植でしょうと思います。これは、他の多くのコードと同じように、ほとんど転送可能ですが、間にはっきりとした警告がありますマークアップとコードの背後にある。おそらくSilverlightでコンパイルするためにほとんどのWPFコントロールを微調整し、テンプレートやリソースなどの値を変更したり、あるコントロールを別のコントロールに置き換えたりする必要があります(または、目標を達成するために独自のコントロールを作成する必要がありますSilverlightにはUniformGrid
がありません))。
私はリンクを投稿しますが、他の人はあなたがウェブについて知っておく必要があるすべてを公開しているようです。楽しむ。
ストーリーボードは、両方の視覚的な状態遷移を通じてキックオフすることができますフレームワーク。あなたがwpfとsilverlightをターゲットにしているなら、それはそれを行う方法ではありませんか? – Justice
あなたはおそらく正しいでしょう。私は、ストーリーボード.Beginを手動で呼び出さなければならないことに私が沸騰したことの過去の経験から思い出しています - 私はあなたが提案する代替案に遭遇しませんでした。 –
私はデュアルターゲットのsilverlight/wpfアプリケーションを作成しました。 1つを別のものに移植するのと同じくらい簡単ではありません...
最初の手順は、wpfとsilverlightの相違点に関するドキュメントを参照して、少しうまく問題を理解することです。XAML Processing Differences Between Silverlight and WPFそこで止まないでください。さまざまなアプリケーション環境に基づいて動作するデザインパターンを理解する。今あなたはあなたが扱っているもののアイデアを得るために始めています。
wpfとsilverlightの両方のUIを構築する場合は、コントロールと使用されている名前空間に非常に注意する必要があります。 UIコードの共有は非常に面倒なことがあります。適用可能な共有テンプレートを使用する2つの個別のUIレイヤーを作成する方が簡単です。リッチクライアントアプリケーションのUI機能の多くは、Silverlightアプリケーションの機能とは異なるものになります。あなたはおそらくあなたのWPFのアプリでより豊かなデータの強烈なビューを提供し、銀色のアプリでより簡潔なビューとは対照的です。結局、あなたはおそらく同じ目標を達成することができるでしょうが、それは単にターゲットを絞って展開するよりも厳しいものになるでしょう。
初めてアプリケーションを作成する場合は、wpfアプリケーションとSilverlightアプリケーションを同時にビルドすることをお勧めします。こうすることで、さまざまな環境で使用されるサービスレイヤとデータアクセス戦略を抽象化する機会を得ることになります。 SilverlightはWebサービス経由でデータにアクセスする必要があり、wpfアプリケーションはローカルデータベースインスタンスと通信する必要があります。これはかなり容易に達成することができます。適切なサービス実装を注入するには、IoCコンテナなどを使用します。この領域は、コードを再利用する機会を提供します。ビューロジックとサービスロジックをすべて作成して、2つのUI間で共有することができます。共有ビジネスロジックとデータアクセスロジックを作成することもできます。
リッチクライアントアプリケーションでローカルデータストアを使用しない場合は、次の段落を忘れてしまいます。
時々接続されているオフラインクライアント(wpf app)を使用する予定がある場合は、おそらく何らかの同期戦略とアーキテクチャが必要です。データ構造の複雑さにもよりますが、これはむしろ難しいことがあります。利用可能なフレームワークを有する複雑な同期ロジックを構築することは、P.I.T.Aである。自分でビルドしなければならないかもしれません。アドバイスの
一つの文:テストを開始し、テストで終わるの
重複http://stackoverflow.com/questions/3626936/silverlight-4-and-wpf-compatibilityとhttp://stackoverflow.com/questions/598703/definitive-sources-the-difference-between-the-silverlight-and-wpf –
またdstのhttp://stackoverflow.com/questions/944608/ – SergioL