Pregunta

¿Utiliza arquitectura de capa de la empresa al crear soluciones de SharePoint? ¿Me puede dar un proyecto de sitio codeplex.com/other como ejemplo, donde puedo encontrar un diseño en capas? (Interfaz / BL / DAL)

¿Fue útil?

Solución

Yo uso arquitectura en capas en todos mis soluciones de SharePoint y SharePoint tratamiento generalmente como la capa de interfaz de usuario, manteniéndolo muy delgada. Cualquier lógica entra en el modelo de negocio y tengo envoltorios DAL a abstraer la infraestructura lista (lo que también ayuda con la prueba).

Para una buena lectura de la arquitectura en capas en ASP.NET echa un vistazo a este artículo aquí . Es ASP.NET y NHibernate, pero los principios son los mismos. También hay una muestra de arquitectura en capas en .NET aquí en CodePlex. Una vez más, no SharePoint específico, pero los principios son los mismos.

Mantener la interfaz de usuario de SharePoint delgada y resistir la tentación de comenzar a leer / escribir en las listas en el código de la parte web. Tratarla como una base de datos (porque lo es!)

Otros consejos

De acuerdo con Bil.

Los elementos Web, controles web, páginas de aplicación, etc deben ser sólo la capa de interfaz de usuario que llamadas en una capa que es agnóstico del contexto de llamada originales; llamando contexto podría ser un receptor de eventos, aplicación de consola, trabajo del temporizador, el flujo de trabajo, etc. Siempre asegurarse de que esta capa compartida llamas al no tener una dependencia de SPContext.Current ya que no es siempre allí! Aceptar SPWebs, SPLists, etc SPLisItems como parámetros del método y los parámetros del constructor. En un contexto web se puede pasar éstos de la SPContext.Current, pero en una aplicación de consola que le construir estos usted mismo.

Para mejorar la facilidad de depuración (simplemente presione F5) y acortar el ciclo comentarios de los desarrolladores, que suele empezar a escribir una sencilla aplicación de consola que pone en la capa que contendrá la lógica de la base, pasando en un SPWeb la que he construido en el Aplicación de consola. Una vez finalizada la lógica de la base, escribo un WebControl delgada o WebPart para reemplazar la aplicación de consola, lea la SPWeb del contexto en lugar de construirlo, configurar los controladores de eventos, etc.

Para Bil y Jaap (o cualquier otro),

Me pregunto qué tipo de objetos / interfaces de pasar entre las capas? Cómo se pasa de vuelta un SPListItem o no se pasa de vuelta algún tipo de interfaz que representa la SPListItem?

SharePoint es una bestia extraña debido a que el usuario realmente tiene la capacidad de cambiar la estructura de datos a través de la interfaz web (se pueden añadir / quitar / modificar columnas en una lista). Si se pasa de vuelta un objeto / interfaz, cada vez que una lista es modificada por un usuario, tendría que volver a compilar (y desplegado) para dar cabida a la nueva columna (propiedad) del código. Si se pasa de vuelta al SPListItem, que, en efecto, romper la capa de al permitir el acceso directo a la fuente de datos (SharePoint).

Licenciado bajo: CC-BY-SA con atribución
scroll top