Pregunta

He codificado una solución que usa la API 2007 para atravesar el modelo de objetos de SharePoint. Ahora también necesito soportar SP 2003. ¿Cuál es la mejor manera de hacer esto?

¿Es posible / recomendado usar la API 2007 para obtener acceso a una granja de SharePoint 2003?

Si uso la API de 2007, ¿tengo que usar las clases en desuso para (por ejemplo) hacer referencia a una base de datos de configuración, o uso las clases de 2007, como SPFarm?

¿O uso la API de 2007 para SP 2007 y la API de 2003 para SP 2003 ...? El problema con esto es que ambos usan los mismos espacios de nombres y nombres de clase. Entonces puede ponerse desordenado. (¿Excepto tal vez si uso alias para hacer referencia a los diferentes espacios de nombres?)

¿Fue útil?

Solución

Hasta donde sé, la API de 2007 y la API de 2003 son incompatibles. ¿Entonces sí? necesitará implementar ambos.

Puedo sugerir tener una interfaz ISharePointAPI y dos implementaciones SharePoint2007API y SharePoint2003API. Estas implementaciones incluso se pueden empaquetar en diferentes ensamblajes, por lo que no tendrá un infierno de referencia :). Esto también lo protegerá de los cambios de API de 2010, ya que lo que necesitará es implementar SharePoint2010API ...

Otros consejos

Las interfaces son (en su mayoría) compatibles en un USO de espacio de nombres / clase / miembro, pero debe usar la versión correcta de la API para la versión correcta de SharePoint. También debe tener en cuenta que WSS2 / SPS2003 usa .NET1.1 de forma predeterminada.

Mi solución para esto es usar MSBEE y algunos MSBUILD ninja se mueve para escupir dos versiones de su código fuente.

El primer objetivo .NET2 y hace referencia a Microsoft.SharePoint.dll v12 (WSS3 / MOSS2007) y el segundo apunta a .NET1.1 y hace referencia a Microsft.Sharepoint.dll v11 (WSS2 / SPS2003).

Es bastante fácil de configurar, pero funciona muy bien después de eso. Cuando tenga diferencias de código, puede usar la compilación condicional: -

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

Este artículo da un poco más de detalles. Es un gran tema y he tenido la intención de escribir una publicación de blog con algún consejo.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top