質問

2007 APIを使用してSharePointオブジェクトモデルを走査するソリューションをコーディングしました。次に、SP 2003もサポートする必要があります。これを行う最良の方法は何ですか?

2007 APIを使用して2003 SharePointファームにアクセスすることは可能ですか/推奨されていますか?

2007 APIを使用する場合、廃止されたクラスを使用して(たとえば)構成データベースを参照する必要がありますか、または2007クラス(SPFarmなど)を使用しますか?

または、SP 2007の2007 APIとSP 2003の2003 APIを使用しますか?これに関する問題は、両方が同じ名前空間とクラス名を使用することです。そのため、面倒になります。 (エイリアスを使用して異なる名前空間を参照する場合を除く)

役に立ちましたか?

解決

2007 APIと2003 APIには互換性がないことを知っています。あ、はい?両方を実装する必要があります。

ISharePointAPIインターフェイスと、SharePoint2007APIおよびSharePoint2003APIの2つの実装を持つことをお勧めします。この実装は別のアセンブリにパッケージ化することもできるため、参照地獄はありません:)。必要なのはSharePoint2010APIを実装することであるため、2010 APIの変更からも保護されます...

他のヒント

インターフェースは(ほとんど)名前空間/クラス/メンバーUSAGEで互換性がありますが、正しいバージョンのSharePointには正しいバージョンのAPIを使用する必要があります。また、WSS2 / SPS2003ではデフォルトで.NET1.1を使用することを考慮する必要があります。

これに対する私の解決策は、 MSBEE といくつかのMSBUILDを使用することです。忍者はソースコードから2つのバージョンを吐き出します。

最初のターゲットは.NET2で、Microsoft.SharePoint.dll v12(WSS3 / MOSS2007)を参照し、2番目のターゲットは.NET1.1でMicrosft.Sharepoint.dll v11(WSS2 / SPS2003)を参照します。

セットアップはかなり簡単ですが、その後は非常にうまく機能します。コードに違いがある場合は、条件付きコンパイルを使用できます:-

#if FX1_1
   // WSS2/SPS2003 specific code
#else
   // WSS3/MOSS2007 specific code
#endif

この記事では、もう少し詳しく説明しています。それは大きなトピックであり、私はいくつかのヒントでブログ記事を書くつもりでした。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top