Domanda

Il suo vecchio battaglia tra ITpro e sviluppatore. ITpros li odiano a causa di problemi relativi all'aggiornamento, sviluppatori come la libertà che dà loro, senza dover fare la pulizia della casa con la funzione di pinzatura.

Qual è la vostra preferenza, e quando si usa cosa?

Quando si bastone con OOTB SDT come si fa ad aggiungere le personalizzazioni?

Personalmente tendo a solo SDT uso personalizzato quando si fa WCM (per ottenere ID), o in rari casi in cui una rete intranet esigenze di raccolta sub sito di essere ripulito per artefatti eccessivi.

Ultimamente quando ho customie OOTB STD preferisco personalizzato provisioning fornitori (sia su sito radice e siti secondari) in combinazione con la caratteristica di ricevitori per la massima flessibilità. Sul mio ultimo progetto abbiamo anche fatto un CPP generale che potrebbe essere configurato utilizzando XML in cui è possibile impostare le pagine di default, quello che i modelli di sub del sito e layout di pagina dovrebbero essere visibili, elenchi istanziare e voci di elenco di programmazione, quali parti di Internet per disposizione, diverse configurazioni come di audit permettendo, la configurazione di navigazione, definizioni di ruolo, ecc.

Fammi sapere il tuo modo preferito di fare questo, e perché si preferisce farlo in quel modo.

[Contrassegnato comunità wiki]

È stato utile?

Soluzione 6

Ok, quindi in SharePoint 2010 c'è un nuovo giocatore in campo:. Modelli Web personalizzato

Ora sto usando loro quasi esclusivamente, invece di definizioni di sito personalizzate.

Modelli web offrono alcuni vantaggi rispetto definizioni di sito personalizzate:

Pro

  • manifesti possono essere aggiornati (questo non è supportato su defs sito!)
  • può essere eseguito all'interno della sandbox e quindi essere utilizzato per SharePoint Online (defs del sito non può!)
  • supportare sia portata azienda agricola e di raccolta siti per la distribuzione granulare
  • promessa migliore aggiornamento dal sito sembra essere stato creato con le definizioni di sito OOB

Contro

  • ancora un po 'buggy! Locale e Web secondario attributi attualmente non funziona
  • funzione di pinzatura non funziona (come ci sono alcun ID di pin su), questo non è davvero un problema dal momento che è possibile modificare Onet.xml in un modo supportato ...
  • alcun modo OOB per determinare quali template web è stato utilizzato per il provisioning di un sito (impostato un id te sulle proprietà web)
  • non supportato per varianti di sito

per SharePoint 2010 modelli web personalizzato dovrebbe essere la vostra scelta di default! Ci sono situazioni in cui si sarebbe ancora usare definizioni di sito personalizzate, ma l'elenco è breve.

Per ulteriori informazioni su modelli web personalizzate leggere questi due articoli di Vesa Juvonen:
Le definizioni di sito vs modelli Web
SharePoint 2010 e modelli web

Altri suggerimenti

La definizione perfetta sito è vuoto. Il built-in modelli sono inutili in niente, ma le soluzioni più semplici. Anche se il cliente vuole esattamente ciò che è nel modello di sito del team, ho ancora ricostruire che come soluzione WSP e deply utilizzando il codice.

Codice è la strada da percorrere, perché dà un mix di ciò che gli amministratori vogliono e ciò gli sviluppatori hanno bisogno. il secondo è più importante come un buon dev renderà il lavoro di amministrazione facile.

Aggiornabilità è anche raramente un problema reale, in quanto è più facile creare una nuova soluzione piuttosto che lavorare intorno ai temi di aggiornamenti in WSS3. Wss4, tuttavia, migliora notevolmente aggiornabilità e introduce dispongono di versioni per consentire la versione multipla della stessa caratteristica in esecuzione allo stesso tempo in diversi siti.

Penso che effettivamente scrivere un post su questo ...

.b

Sono programmatica tutta la strada. Al TechEd Australia 2009 ho presentato su questo argomento, ancora in attesa per il cast Web per andare a vivere. Lo consiglio a guardarlo, guardare il mio blog per l'annuncio.

Giusto per aggiungere a questa discussione lo SharePointDevWiki ha due pagine rilevanti: CAML vs Codice programmatico Templates vs definizioni di sito vs Caratteristiche

Al momento preferisco lavorare con il "sito minimal def" solo per ottenere un ID, e quindi utilizzare ricevitori per aggiungere la roba fresca. Ciò è dovuto principalmente al fatto che penso di ottenere il lavoro fatto più velocemente e che è possibile aggiornare la soluzione più semplice (e in modo supportato).

ho scritto un pezzo su questo un paio di giorni fa Evitare basato su XML SharePoint Caratteristiche -. Utilizzare l'API Way

Nel fare siti di pubblicazione (WCM) Penso che si ha realmente bisogno di usare un Def sito, se non altro per ottenere un ID, ma per il resto mi piace tenere vuota e utilizzare le funzioni per tutto il resto, di solito codifica caratteristica ricevitori a fare il grosso del lavoro.

Nel corso dell'estate, però, stavo iniziando a farsi convincere da alcuni progettisti di SharePoint molto intelligenti che ci possono essere alcuni benefici per permettendo loro di incidere fino ONET e un sacco di scrittura di CAML-- dichiarativa la premessa è che, anche se è più facile per me scrivere caratteristica ricevitori, nel contesto di avere un designer / di branding esperto facendo siti di pubblicazione, può in realtà essere più facile per loro di modificare le cose in modo dichiarativo che scrivere codice C #. Non lo so, non ho in realtà ancora testato questa teoria.

Quello che non mi compro anche se è la nozione che non si deve utilizzare il sito di definizione perché farà l'aggiornamento più difficile. Anche se questo può essere stato vero in passato, ci sono stati tutta una serie di cose che hanno reso più difficile l'aggiornamento che non sono caduto a quasi la loro quota equa.

Mi piace usare entrambe le definizioni del sito e funzionalità per fornire contenuti. Devo solo a pesare ciò che è necessario per il lavoro. Se conosco i requisiti per il web stanno per essere contenute in alcune liste, mi piacerebbe andare con una caratteristica e utilizzare il sito OTB def. Se il web è completamente personalizzato o ha bisogno di molte caratteristiche, mi piacerebbe iniziare con un sito def che si avvicina la mia funzionalità di base e quindi scrivere alcune caratteristiche per fornire il resto. La definizione del sito deve essere usati per fornire roba che una caratteristica è più difficile da fare come diverso pagina master, tema default.aspx, ecc E 'meglio per ITPro per usare il mio definizione del sito per costruire quella rete poi capire quali caratteristiche per attivare e in quale ordine. Ora con caratteristiche Le CAML e il codice del ricevitore è un atto di bilanciamento. A volte si può fare in CAML, ma il suo più veloce di scrivere in codice o viceversa. Credo CAML dichiarativo è più facile da catturare per il controllo di origine e tweaking del server, ma non tutto può essere fatto in CAML come connessioni tra web part e istanza di alcune parti web. Ogni volta che si ha la possibilità di definire il proprio ID, farlo -. Rende sostegno e extensiblity molto più facile

Personalmente, preferisco andare con un modello di sito magra e quindi utilizzando funzione di pinzatura. Io di solito creo una caratteristica genitore che ha depedencies attivazione in diverse funzioni figlio. Ho poi fiocco quella caratteristica genitore su qualunque definizione del sito. Il motivo per cui in questo modo è che posso disattivare e riattivare la funzione per aggiornare il sito esistente. Esso permette anche a me di creare un po 'utilizzando CAML e codifica minima.

sto usando SPWebProvisioningProvider tutto il tempo per avere il controllo quali caratteristiche per attivare quando e nell'ordine che voglio. È più facile penso a devel e il sito debug e liste di provisioning quindi utilizzando ONET.XAML e CAML.

Un motivo che uso Modelli sito (e mi fanno eco i dati riportati in alto per tenerli puliti e funzioni di collegamento) è che mi piace l'esperienza dell'utente finale di scegliere modello My Custom dalla pagina Crea siti. L'aggiunta di nuovi file Webtemp è facile, la copia di un modello di sito vuoto e modifing è facile. Permette il progetto (se ha bisogno di un modello personalizzato) di alzarsi e andare in fretta, yo ottenere la prima automazione WSP fatto in modo rapido e di lavoro attraverso l'intero ciclo di vita dev, prima di dover scavare in qualsiasi codice C #.

Se il progetto ha richiesto che ho bisogno di modificare il sito OOB, per esempio MySite, quindi vorrei sempre andare la funzione di percorso pinzatura.

Ho sviluppato il mio piccolo quadro (troppo grande parola) per ottenere la completa aggiornabilità dei miei soluzioni. Questo è stato importante problema per la maggior parte dei miei clienti.

In breve: sto dando da mangiare il mio quadro sulla funzione (de) attivazione con alcuni molto semplificata definizioni CAML e ho coperto nel codice maggior parte delle cose comunemente necessarie (aggiungendo / liste di riqualificazione, ricevitori, i tipi di contenuto, colonne del sito etc. ). Cambiando le mie definizioni e riattivazione di funzionalità che posso facilmente fare aggiornamenti necessari per la soluzione già implementata (che era uno degli obiettivi principali). Sto usando il codice aggiuntivo ricevitore funzione per fare tutti gli altri 'roba' che non è coperto dal mio quadro.

Mi piace fare questo modo perché utilizzando il codice Sono pienamente responsabile di tutto ciò, posso facilmente trovare gli errori, posso risolvere anche alcuni scenari complessi in brevissimo periodo di tempo e posso riutilizzare qualsiasi soluzione con facilità.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a sharepoint.stackexchange
scroll top