Pregunta

Es un antiguo batalla entre ITpro y desarrollador. ITpros los odio debido a problemas de actualización, los desarrolladores como la libertad que les da sin tener que hacer limpieza de la casa con la función de grapado.

¿Cuál es su preferencia, y cuando lo usa usted?

Cuando se pega con OOTB SDT ¿Cómo agregar personalizaciones?

Personalmente tiendo a sólo el uso SDT personalizada al hacer WCM (para obtener ID), o en casos raros cuando una intranet necesidades de recolección de sub sitio para ser limpiado para artefactos excesivos.

Últimamente cuando me customie OOTB ETS i prefiero proveedores de aprovisionamiento a medida (en ambos sitios raíz y sub sitios) en combinación con receptores de funciones para una máxima flexibilidad. En mi último proyecto que incluso hicimos un CPP general que podría ser configurado utilizando XML donde se puede configurar páginas por defecto, lo que las plantillas sub sitio y los diseños de página deben ser visibles, listas de instanciar y elementos de lista mediante programación, qué partes de Internet para el suministro, diferentes configuraciones al igual que la auditoría que permite, configuración de navegación, las definiciones de funciones, etc.

Avísame su forma favorita de hacer esto, y por qué prefiere hacerlo así.

[Marcado comunidad wiki]

¿Fue útil?

Solución 6

aceptable en SharePoint 2010 hay un nuevo jugador en el campo:. Plantillas web personalizado

ahora estoy utilizando ellas casi exclusivamente, en lugar de las definiciones de sitio personalizadas.

Plantillas web ofrecen algunas ventajas sobre las definiciones de sitio personalizadas:

Pros

  • manifiestos se pueden actualizar (esto no es compatible con defs sitio!)
  • puede ejecutarse dentro del recinto de seguridad y por lo tanto ser utilizado para SharePoint Online (defs sitio no puede!)
  • apoyar tanto en alcance colección de sitios de la granja y para el despliegue granular
  • promesa de una mejor actualización desde el sitio parece haber sido creada con las definiciones de sitio fuera de banda

Contras

  • todavía un poco con errores! Idioma y Subweb atributos no funciona actualmente
  • grapado característica no funciona (ya que no hay identificación para fijarlo en), esto no es realmente un problema ya que se puede editar Onet.xml de una manera apoyada ...
  • ninguna manera fuera de banda para determinar qué Plantilla Web se utiliza para el suministro de un sitio (establecer un ID a sí mismo en las propiedades web)
  • no soportado para variantes de sitio

Para SharePoint 2010 plantillas web personalizadas debe ser su elección por defecto! Hay situaciones en las que a pesar de ello utilizar las definiciones de sitio personalizadas, pero la lista es corta.

Para obtener más información sobre las plantillas web personalizadas leer estos dos artículos de Vesa Juvonen:
definiciones del sitio vs Plantillas Web
SharePoint 2010 y plantillas web

Otros consejos

La definición de sitio perfecto está vacía. El incorporada en las plantillas son inútiles en otra cosa que las soluciones más simples. Incluso si el cliente quiere exactamente lo que está en la plantilla de sitio de equipo, todavía recreación que como una solución WSP y deply usando código.

Código es el camino a seguir, ya que da una mezcla de lo que los administradores quieren y lo que los desarrolladores necesitan. el último es más importante como un buen dev hará que el trabajo de administración fácil.

Capacidad de actualización es también rara vez es un problema real, ya que es más fácil crear una nueva solución en lugar de trabajar en torno a los problemas de las actualizaciones en WSS3. WSS4, sin embargo, mejora enormemente la capacidad de actualización e introduce característica de versiones para permitir múltiples versiones de la misma característica funcionando al mismo tiempo en diferentes sitios.

Creo que en realidad voy a escribir un blog sobre esto ...

.B

Estoy programática todo el camino. Australia en TechEd 2009 presenté sobre este tema, a la espera de la emisión web para ir en vivo. Se lo recomendaría verlo, ver mi blog para el anuncio.

Sólo para añadir a esta discusión el SharePointDevWiki tiene dos páginas relevantes: CAML vs Código programático Sitios plantillas vs definiciones de sitio vs Características

Actualmente Prefiero trabajar con el "sitio mínima def" sólo para obtener un ID y, a continuación, utilizar receptores para agregar las cosas interesantes. Esto se debe principalmente al hecho de que creo que hacer el trabajo más rápido y que puede actualizar la solución más fácil (y de una manera compatible).

Me escribió un artículo sobre esto hace un par de días Evitar XML basado en SharePoint Características -. utilizar la API de manera

Al hacer sitios de publicación (WCM) Creo que realmente necesita utilizar una definición del sitio, si para nada más para obtener una identificación, pero por lo demás me gustaría mantenerlo vacío y usar las funciones para todo lo demás, por lo general de codificación receptores cuentan con hacer la mayor parte del trabajo.

Durante el verano, sin embargo, yo estaba empezando a convencerse por algunos diseñadores SharePoint muy inteligentes que puede haber algunos beneficios para dejarlos piratear hasta ONET y un montón de escritura de CAML-- declarativa la premisa aquí es que a pesar de que es más fácil para que escriba receptores de funciones, en el contexto de tener un diseñador / experto en marcas haciendo sitios de publicación, en realidad puede ser más fácil para ellos para modificar las cosas de forma declarativa que escribir el código C #. No sé, en realidad no han probado esta teoría todavía.

Lo que no me compro, aunque es la noción de que no se debe utilizar el sitio def es porque va a hacer más difícil la actualización. Si bien esto puede haber sido cierto en el pasado, había todo tipo de cosas que hacían más difícil la actualización que no queda eliminado casi les corresponde.

Me gusta usar tanto Sitio Definiciones y Características para entregar el contenido. Sólo tengo que sopesar lo que se necesita para el trabajo. Si sé que los requisitos para la web van a estar contenida en algunas listas, me gustaría ir con una característica y utilizar el sitio OTB def. Si la web está totalmente personalizada o necesita muchas características, me gustaría empezar con un sitio de definición que se acerque a mi funcionalidad de base y luego escribir algunas de las características de entregar el resto. La definición de sitio se debe utilizar para entregar cosas que una característica es más difícil de hacer como página maestra diferente, tema, default.aspx, etc. Es mejor para ITPro usar mi definición de sitio para construir esa web a continuación, averiguar qué características para activar y en qué orden. Ahora, con la cuenta y el código de CAML receptor es un acto de equilibrio. A veces se puede hacer en CAML pero su rápido a escribir en código o viceversa. Creo CAML declarativa es más fácil de captura para el control de la fuente y ajustes del servidor, pero no todo se puede hacer en CAML como conexiones de elementos Web y generar ejemplares de algunas piezas de la tela. Cada vez que tenga la oportunidad de definir su propio ID, hacerlo -. Que tiene el apoyo y la extensibilidad mucho más fácil

En lo personal, prefiero ir con una plantilla de sitio magra y luego usar función de grapado. Por lo general crear un elemento principal que tiene depedencies activación en varias operaciones hijas. Luego de que la grapa de elemento principal en cualquier definición de sitio. La razón por la que como esto es que puedo desactivar y reactivar la función para actualizar el sitio existente. También me permite crear un poco usando CAML y un mínimo de codificación.

Estoy usando SPWebProvisioningProvider todo el tiempo para tener un control qué características para activarse cuando y en el orden que quiera. Es más fácil que creo que devel y el sitio de depuración y las listas de aprovisionamiento a continuación utilizando ONET.XAML y CAML.

Una de las razones que utilizo plantillas de sitio (y que se hacen eco de los datos mencionados, para mantenerlos limpios y características de enlace) es que me gusta la experiencia del usuario final de la selección plantilla de My Custom de la página Crear sitios. La adición de nuevos archivos Webtemp es fácil, copiando una plantilla de sitio en blanco y modifing es fácil. Permite el proyecto (si se necesita una nueva plantilla) que levantarse e ir rápido, yo conseguir el primer automatización WSP realiza de forma rápida y el trabajo a través de todo el ciclo de vida dev, antes de tener que excavar en cualquier código C #.

Si el proyecto requiere que necesito para modificar el sitio fuera de banda, por ejemplo MySite, entonces yo siempre ir a la ruta de grapado función.

he desarrollado mi propio marco (palabra demasiado grande) para lograr la capacidad de actualización completa de mis soluciones. Esto era importante problema para la mayoría de mis clientes.

En resumen: me la alimentación de mi marco sobre la función (de) la activación con algunos muy simplificada definiciones CAML y he cubierto en el código de la mayor parte de las cosas comúnmente necesario (añadir / listas de mejora, receptores, tipos de contenido, columnas de sitio, etc. ). Al cambiar mis definiciones y por la reactivación de la función que puedo hacer fácilmente actualizaciones necesarias a la solución ya desplegada (que era uno de los objetivos principales). Estoy utilizando el código adicional en función del receptor de hacer todos los demás 'cosas' que no está cubierto por mi marco.

Me gusta que lo haga de esta manera porque mediante el uso de código que estoy completamente a cargo de todo, puedo encontrar fácilmente los errores, puedo resolver incluso algunos escenarios complejos en período muy corto de tiempo y puedo volver a utilizar cualquier solución con facilidad.

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