12

.NET 3.5 アセンブリを構築するプロジェクトが既にあるとします。ここで、Silverlight 用にこのアセンブリをビルドし、さらに最小限の労力でその Silverlight バージョンを維持したいと考えています。

受け入れられないもの:

  • Silverlight ビルド用に別のプロジェクトを作成する

許容されるもの:

  • カスタム ディレクティブを追加すると、MSBuild プロパティなどに応じて、Silverlight または .NET のいずれかをターゲットにすることができます。
  • Silverlight 用の特別なビルド構成の追加
  • #ifdef Silverlight / #endif セクションをソース コードに追加します。
  • 一般に、.csproj / .cs のその他の変更。

基本的に、私は 1 つのプロジェクトを維持したいのですが、2 つのフレームワークをターゲットにしています。新しいファイルを含めるのを忘れるなどの間違いにつながる可能性があるため、2 つの別々のプロジェクトを維持したくありません。多くのプロジェクトと大規模なチームがある場合、これはそのような間違いを排除するために非常に重要です.

これが完全に不可能な場合は、同様の利点を提供する任意のソリューションが受け入れられます。

4

5 に答える 5

8

また、Silverlight プロジェクトからプロジェクト内のファイルへのリンクを除外しましたか? これは、Silverlight と完全な CLR の間で実装を共有するためのかなり一般的なアプローチです。.NET と Silverlight プラットフォーム間でコードを共有する

また、Justin Angel によると、完全な CLR から Silverlight クラス ライブラリを参照して使用することができます。私はこれを自分で試したことがなく、いくつかの質問に答えていませんが、シナリオを簡単にします: http://silverlight.net/blogs/justinangel/archive/2008/12/29/using-silverlight-dlls-on -the-desktop.aspx

于 2009-07-03T18:45:24.850 に答える
1

私はスコットに同意します。多くの苦痛を自分で救ってください。同じコードベースを共有する 2 つのプロジェクトが最適です。両方の環境で VStudio を使用したり、異なるライブラリを使用したり、ファイルをインクルード/除外したり、非常に多くのことを行うために必要になります...簡単に!

2 つのプロジェクトを作成する理由は、1 つのプロジェクトを作成する言い訳よりもはるかに重要です。

于 2009-07-03T18:40:56.617 に答える
1

MSDN には、プラットフォームに関する詳細情報が含まれています

于 2010-06-16T15:44:51.013 に答える
0

あなたがする必要があるのは、これを適切に階層化することだと思います。Silverlight コードは、UI およびバックエンド WCF サービスとの通信専用にする必要があります。これらのサービスは、.NET 3.5 コード (共有したいコード) を実行します。そうすれば、共有と n 層も利用できます。

Silverlight コードでクライアント側で大量の計算を行い、それをサーバー (およびおそらくデータベース) に送信している場合、セキュリティ ホールが開いていると思います。

別のプロジェクトが Silverlight プロジェクトのコードにアクセスする必要がある理由について、説得力のある理由を示していません。

于 2009-07-03T19:35:52.297 に答える
0

mscorlib 参照が 2 つのプラットフォームで異なるため、2 つのプロジェクトが必要です。

この質問をチェックしてください: http://www.google.ca/search?hl=en&q=targetting+silverlight+and+wpf&meta=&aq=f&oq=

2 つの間で共有される通常の古い .NET ライブラリが必要な場合は、2 つのプロジェクト (Silverlight 用に 1 つ、通常用に 1 つ) を作成し、両方のプロジェクトに同じファイルを含めることをお勧めします。これは、他の開発者にとって非常に理解しやすいものです。

于 2009-07-03T18:22:38.373 に答える