문제

2007 API를 사용하여 SharePoint 객체 모델을 통과하는 솔루션을 코딩했습니다. 이제 SP 2003도 지원해야합니다. 이것을하는 가장 좋은 방법은 무엇입니까?

2007 API를 사용하여 2003 SharePoint Farm에 액세스 할 수 있습니까?

2007 API를 사용하는 경우, 더 이상 사용되지 않은 클래스를 사용하여 (예를 들어) 구성 데이터베이스를 참조해야합니까, 아니면 SPFARM과 같은 2007 클래스를 사용해야합니까?

또는 SP 2007 용 2007 API와 SP 2003의 2003 API를 사용합니까? 이것의 문제는 동일한 네임 스페이스와 클래스 이름을 사용한다는 것입니다. 그래서 그것은 지저분해질 수 있습니다. (다른 네임 스페이스를 참조하기 위해 별칭을 사용하는 경우를 제외하고?)

도움이 되었습니까?

해결책

나는 2007 API와 2003 API가 양립 할 수 없다는 것을 알고 있습니다. 그래서 네? 둘 다 구현해야합니다.

인터페이스 ISHAREPOINTAPI와 두 개의 구현 SharePoint2007api 및 SharePoint2003api를 가질 것을 제안 할 수 있습니다. 이 구현은 다른 어셈블리에도 포장 될 수 있으므로 참조 지옥이 없습니다 :). 이것은 또한 SharePoint2010api를 구현하는 것이기 때문에 2010 API 변경으로부터 귀하를 보호 할 것입니다 ...

다른 팁

인터페이스는 (주로) 네임 스페이스/클래스/멤버 사용에 호환되지만 올바른 버전의 SharePoint 버전에는 올바른 버전의 API를 사용해야합니다. 또한 WSS2/SPS2003에 의해 기본적으로 .NET1.1을 사용한다는 것을 고려해야합니다.

이것에 대한 나의 해결책은 사용하는 것입니다 MSBEE 그리고 일부 MSBuild Ninja는 소스 코드에서 두 버전을 뱉어 내기 위해 움직입니다.

첫 번째 대상 .net2 및 참조 Microsoft.sharePoint.dll v12 (WSS3/MOSS2007) 및 두 번째 대상 .NET1.1 및 참조 MicroSft.sharePoint.dll V11 (WSS2/SPS2003).

설정하기에는 FAF이지만 그 후에는 매우 잘 작동합니다. 코드 차이가있는 경우 조건부 편집을 사용할 수 있습니다.

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

이것 기사 조금 더 자세한 내용을 제공합니다. 그것의 큰 주제이며 나는 팁이있는 블로그 게시물을 작성하는 것을 의미했습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top