Semplice e veloce: Eseguire il provisioning di un sito Web utilizzando il modello a oggetti di SharePoint In c#

Ho provato a cercare per un piccolo frammento di codice che Mostra come posso creare un nuovo SPWeb in una raccolta siti. Non ho trovato più velocemente o facilmente come mi aspettavo così ho pensato che sarebbe schiaffo insieme di voce un sull'argomento.

Questo codice crea un nuovo sito Wiki:

 SPSite siteCollection;

    siteCollection = Nuovo SPSite("http://conchang-o9l8qi");

    SPWeb w = siteCollection.OpenWeb();

    w.Webs.Add("xyzzy", "xyzzy titolo",
        "xyzzy Descrizione", 1033, SPWebTemplate.WebTemplateWIKI, falso, falso);

Mie ricerche iniziali non riuscita perché stavo cercando frasi come "eseguire il provisioning di un sito web utilizzando il modello a oggetti di sharepoint" e simili.

Se si ricerca per "Webs.Add()", troverete una serie di voci di blog molto utile, Articoli di MSDN e documentazione di SDK che vanno in profondità su questo argomento. Vi consiglio caldamente Questo sito.

</fine>

Iscriviti al mio blog.

Technorati Tags:

Integrare i flussi di lavoro di SharePoint Designer con i servizi Web

Ho giocato con azioni personalizzate per SharePoint Designer per qualche tempo (vedi qui per alcune cose dettagliate, Se che ti interessa).

Nel mio progetto attuale, Abbiamo bisogno di fare qualche lavoro abbastanza pesante e vogliamo utilizzare flussi di lavoro dichiarativi SPD per gestire il processo di business associate.

Lunga storia breve, Questo è del tutto possibile. Ho allungato il mio progetto Codeplex per richiamare un servizio di supporto"" e ora possiamo invocare un servizio web direttamente da un flusso di lavoro SPD.

Ecco la firma:

 pubblica stringa Oggetto Dispatcher(
        GUID WebID, // Passati per l'ambiente di runtime
        GUID SiteID, // Passati per l'ambiente di runtime
        stringa ListID, // Passavano la RTE (non so perché questa è una stringa, non un GUID)
        int ListItemID, // Passavano la RTE.
        stringa XmlMessage) // Passati da parte dell'utente, come dichiarato nella SPD.

Questo sfrutta il fatto che possiamo ottenere informazioni importanti del flusso di lavoro, come il sito, elenco ID, ecc. Questo è ben documentato in diversi posti per coloro che sono interessati nella creazione di proprie azioni personalizzate. L'idea è di estrarre la stringa XML come forniti dall'utente per inviare una procedura appropriata. Fun Stuff Fun stuff!

Purtroppo, Questo è ovviamente un biglietto di sola andata giù per "Loosey Goosey" Terra anti-pattern, ma è meglio che colpire un muro di mattoni 🙂

Esso è un anti-modello, se lo si fa anche se sai che è un anti-modello?

Spero di concludere questa all'interno di Codeplex nel prossimo futuro. Se siete interessati a me in questo modo, Dammi poke (Posta elettronica o lasciare un commento) e sarò più entusiasta di farlo 🙂

</fine>

Iscriviti al mio blog.

Technorati Tags: ,

Funny domenica: “Mi chiedo se la password è …”

Ho recentemente acquistato il pranzo per mio fratello (come al solito) e abbiamo finito per parlare di cose divertenti che abbiamo fatto nei nostri rispettivi College. Alla mia alma mater, Lafayette College, il reparto IT di supporto accademico aveva un modo molto comprensivi riguardo. Ci hanno dato un sacco di corda e ho approfittato di che a volte.

Due miei ricordi preferiti si riferiscono al mio buon amico, Gabe. Aveva fatto il terribile errore di raccontare il suo anno di matricola che "sono una matricola di persone, ma ho Sophomore in piedi" aveva preso a causa di varie classi di posizionamento avanzato, ecc. Molti di noi erano situati allo stesso modo, ma non parliamo tanto. Suo anno da senior, Quando abbiamo introdotto per persone, possiamo dire che "questo è Gabe. Egli è un Senior, ma lui ha Sophomore in piedi ".

Il Collegio ha avuto alcune workstation/server di Sun in esecuzione X-Window. Avevano gigantesco monitor e gli ingegneri li ha usati per CAD e altre cose noiose di ingegnere. Abbiamo CS persone li hanno utilizzati per imparare a programmare e, Naturalmente, Gioca giochi.

Non abbiamo come gli ingegneri computer-impotente a molto così una delle nostre cose preferite fare sarebbe telnet alla casella, essi erano su ed eseguire X-occhio su di loro. Questo pop-up un paio di occhi che seguirono il mouse sullo schermo. Si potrebbe pop-up ancora di più e hanno letteralmente una dozzina o più le applicazioni X-occhio in esecuzione. Cerca di non ridere ad alta voce quando uno sfortunato ingegnere sta cercando di chiudere X-eye dopo X-eye e borbottando sottovoce 🙂

Abbiamo anche giocato X-trek su quelle scatole. Per farlo, si doveva scaricare il sorgente, ottenere varie dipendenze ovunque si poteva trovare e costruirlo. Non ero un sofisticato programmatore C, ma ho potuto leggere i file di intestazione. Stavo guardando attraverso questi e trovato le direttive come "#DEFINE MAX_TORPEDO_DISTANCE 10". Ho giocato con che aumentano la gamma e potenza per fasi e siluri, ri-costruito e poi distrutto Gabe la prossima volta che abbiamo giocato.

Gabe è stato anche un grande fan di uno show televisivo chiamato Di Blake 7. Non l'avevo mai visto, ma che non impedisce a me di insistendo che Dr. Chi è lo spettacolo superior. Le discussioni a volte si accendevano 🙂

Un giorno, mi venne in mente che probabilmente ho potuto indovinare la password di UNIX. Io seduto accanto a lui un giorno e ha annunciato in un tono forte, "Io vado a indovinare la password adesso, Gabe." "sì, destra" fu la sua risposta. Ho quindi effettuato l'accesso, inserito il suo id utente, si girò per affrontarlo, scritto e detto ad alta voce, "Mi chiedo se è B-L-A-K-E-7" ? Dattilografia non ha mai dato come ottimi frutti, come ha fatto quel giorno.

La settimana prossima (o presto): Altre buffonate di camera di computer da college.

Avete qualche condividere? Lasciare un commento o e-mail me e io li pubblicherò qui.

</fine>

Iscriviti al mio blog.

Technorati Tags:

Annuncio pubblico minore: Impostazioni di protezione dal vivo di Windows e contattare i proprietari dello spazio

Ricevo una manciata di messaggi da individui tramite il built-in "Invia un messaggio" funzione Microsoft fornisce con spazi dal vivo (che ospita anche il mio blog) ogni mese.

Circa un terzo del tempo, Gli utenti hanno assicurato il loro account di live spaces tale che non posso rispondere. Si tratta di una sorta di funzione di anti-spam, che suppongo.

</fine>

Spiegazione semplice: “Valore non rientra nell'intervallo previsto.”

AGGIORNAMENTO: Un manifesto anonimo ha lasciato un commento grande circa i nomi interni. Assicuratevi di leggerlo.

Quando si lavora con ricevitori di eventi e altro codice che fa riferimento a elementi di elenco di SharePoint tramite il modello a oggetti, Spesso commettono errori che genera questo errore in fase di esecuzione:

Errore caricamento ed esecuzione di ricezione di eventi di Conchango.xyzzyEventReceiver in xyzzy, Version = 1.0.0.0, Cultura = neutral, PublicKeyToken = 0dc50a750396c3ac. Ulteriori informazioni sono sotto. : Valore non compreso nell'intervallo previsto.

Penso che questo è un errore abbastanza generico che è potenzialmente causato molti modi diversi. Tuttavia, una semplice spiegazione è che faccio riferimento un campo in modo non corretto. Se il nome del campo è "Data scadenza", Devo riferimento come questo in un ricevente di eventi:

Proprietà.ListItem["Data di scadenza"]

Quando ho errato o utilizzare il caso sbagliato quando si fa riferimento al campo, SharePoint genera il sopra menzionato errore di runtime. Per esempio, Questo è sbagliato:

Proprietà.ListItem["data di scadenza"]

</fine>

Iscriviti al mio blog.

Technorati Tags:

Suggerimento rapido utente finale: Visualizzazioni di sorta in una raccolta documenti, Elenco, ecc.

Siamo in grado di, dovrebbe e creare molti punti di vista in elenchi di SharePoint (raccolte documenti, elenchi personalizzati, ecc). Elenchi di SharePoint sempre viste disponibili in ordine alfabetico. Non possiamo cambiare questo utilizzando fuori la funzionalità di. Se questo può essere fatto tramite personalizzazione (e non sono sicuro che può), è lontano a tecnico per il tipico utente finale.

Se si desidera controllare l'ordine in cui SharePoint elenca le viste disponibili, semplicemente anteporre un numero o una lettera a nome della vista, come in:

1 – Dal tipo di materiale
2 – Tutti i documenti
3 – Data di scadenza

-o-

A – Dal tipo di materiale
B – Tutti i documenti
C – Data di scadenza

Ho anche creato viste in cui scopo è rigorosamente per alimentare un indicatore KPI. Ho seguito questa convenzione di denominazione:

Z_KPI_[descrizione]

Che provoca il mio "KPI" viste a comparire nella parte inferiore dell'elenco.

</fine>

Iscriviti al mio blog.

Funny domenica: “Quando ero un ragazzino”

Come un genitore, da qualche parte lungo la linea ho scoperto la "quando ero un ragazzino" trucco.

Mio figlio, probabilmente quattro o cinque al momento, stava giocando un pallone e come i più piccoli ragazzi che giocano con palloni, ha spuntato. Era molto arrabbiato. Il mondo era giunto alla fine. Ho detto a lui, "quando ero ragazzino, Ho avuto un pallone e ha rilanciato e alla fine, Ho un nuovo palloncino." Sembrava per aiutarlo a far fronte con la sua sconfitta e ha condotto ad un divertente parlare di com'era quando ero un ragazzino.

Che ha funzionato bene come una tecnica di consolazione e ho usato un diverse volte nel successivo periodo di tempo. Ho avuto una volta nei guai quando suo Monster Rancher 3 creatura è morta. Parlato di come il mio cane, Principe, era morto in un incidente d'auto. Stavolta, la sua risposta è stata, "Ora mi sento male circa due cose!" Evitato utilizzando la "quando ero un ragazzino" tecnica per consolazione dopo che.

Prima dell'incidente del cane morto, Tuttavia, Avevo anche iniziato ad utilizzare la tecnica per convincerlo a fare le faccende. "Quando ero un ragazzino, Ho dovuto andare a prendere il giornale", "pulire la mia stanza", "ottenere la mamma sua tazza di caffè", ecc.

Questo era troppo abbastanza successo per un po', ma ha iniziato a sempre più ribellarsi contro la tirannia della mia infanzia. Un evento, in particolare, segnò la fine. Gli ho detto di riportare i bidoni della spazzatura da marciapiede in garage. Egli ha sostenuto e ha risposto, "Quando ero un ragazzino, Ho dovuto prendere la spazzatura torna al garage." Ha risposto, "Oh sì! Beh, quando eri un ragazzino, che era stupido!".

</fine>

Iscriviti al mio blog.

Technorati Tags:

Viste e colonne di elenchi e raccolte di documenti non possono essere protette

AGGIORNAMENTO (02/29/08): Questo nuovo progetto codeplex sembra fornire un metodo per la protezione delle singole colonne: http://www.codeplex.com/SPListDisplaySetting. Se avete qualche esperienza di lavoro con esso, si prega di lasciare un commento.

Manifesti Forum spesso porre una domanda come questa: "Ho una visione responsabile ed e una visualizzazione personale di un elenco. Come a proteggere la vista manager in modo che personale non può usarlo?"

Essi spesso porre una domanda correlata: "Voglio garantire una colonna di metadati specifici che solo i gestori possono modificare tale colonna mentre gli altri possono non ancora vederlo."

Queste risposte si applicano a entrambi WSS 3.0 e MOSS:

  • SharePoint non fornisce il supporto out-of-the-box per la protezione delle visualizzazioni.
  • SharePoint non fornisce il supporto out-of-the-box per le colonne di sicurezza.

Ci sono diverse tecniche si possono seguire per soddisfare questi tipi di requisiti di sicurezza. Ecco cosa mi viene in mente:

  • Utilizzare la protezione a livello di elemento di out-of-the-box. Viste rispettano sempre la configurazione di sicurezza a livello di elemento. Ricevitori di eventi e/o flusso di lavoro può automatizzare la protezione assegnazione.
  • Utilizzare le visualizzazioni personali per "privilegiati" Visualizzazioni. Queste sono abbastanza facile da configurare. Tuttavia, Grazie alla loro "personale" natura, questi devono essere configurate per ogni utente. Utilizzare la configurazione standard di sicurezza per impedire chiunque altro di creare una visualizzazione personale.
  • Utilizzare una web part visualizzazione dati e implementare una sorta di soluzione di limitazione per motivi di sicurezza AJAXy.
  • Rotolare la propria funzionalità di visualizzazione elenco e incorporare la rimozione della protezione a livello di colonna.
  • Modificare le forme di entrata di dati e utilizzare JavaScript in congiunzione con il modello di sicurezza per implementare la rimozione della protezione a livello di colonna.
  • Utilizzare un modulo di InfoPath per inserimento dati. Implementare la rimozione della protezione di livello di colonna tramite chiamate al servizio web di SharePoint e condizionalmente nascondere i campi come necessario.
  • Rotolare una propria funzione di immissione dati ASP.NET che implementa la rimozione di protezione a livello di colonna.

Nessuna di queste opzioni sono davvero quel grande, ma c'è almeno un percorso da seguire se avete bisogno di, anche se è difficile.

NOTA: Se andate giù uno qualsiasi di questi percorsi, non dimenticare di "azioni-> Apri con Esplora risorse di Windows". Volete essere sicuri che prova con quella caratteristica per assicurarsi che non funziona come una "back door" e sconfiggere il vostro regime di sicurezza.

Se avete altre idee o esperienze con fissaggio colonne o visualizzazioni, per favore email me o lasciare un commento e aggiornerò questo distacco come appropriato.

</fine>

Iscriviti al mio blog.

Technorati Tags:

Suggerimento rapido: Numeri di versione del file ADF BDC sono il tuo amico

Se stai mano-codificazione ADF file e facendo un sacco di cicli di prova/codice/importazione, utilizzare il numero di versione per rendere la vita più facile.

Odio ammetterlo, ma fino a questa settimana, Ero sempre l'eliminazione di file ADF e quindi reimportandoli. Questo sarebbe rompere mio colonne di dati business e farmi ri-li filo. Tutte le inutili.

Questo file sotto "è evidente una volta che si vede".

Esempio:

<LobSystem
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://schemas.Microsoft.com/Office/2006/03/BusinessDataCatalog BDCMetadata.xsd" Tipo="WebService" Versione="1.2.0.0" Nome="xyzzyDocumentReview" xmlns="http://schemas.Microsoft.com/Office/2006/03/BusinessDataCatalog">

Cambiare quella versione e reimportazione e la colonna di dati aziendali esistenti utilizza la versione aggiornata automaticamente con alcuna configurazione aggiuntiva richiesta.

</fine>

Iscriviti al mio blog.

Technorati Tags:

Soluzione: BDC Picker Mostra solo una colonna di risultati

Nei miei tentativi in corso a fornire un colonna di ricerca più utile utilizzare BDC, Mi ha colpito un muro con il selettore BDC. Se non avete ancora vederlo, il selettore BDC è simile a una selezione di utenti che funziona con colonne di tipo "dati aziendali".

Si accede al selettore facendo clic sull'icona del libro aperto di una colonna di dati di business come mostrato:

immagine

L'immagine sopra mostra una colonna di dati di business denominata "Master documento Id". Tale colonna è collegata, Via BDC, a un servizio web. Il servizio web restituisce due colonne di informazioni: Titolo e ID di documento. Lo scopo di affari qui è quello di fornire un "questo documento è basato su" funzione. Gli utenti selezionano un maestro"" documento e quando si salva, un ricevitore di evento copia campi di meta dati dal master cui si fa riferimento.

Per impostazione predefinita, il selettore BDC assomiglia a questo quando la ricerca per un documento cui ID = "38":

clip_image002

Che è utile, ma non abbastanza buono. La gente non pensa in termini di IDs, pensano in termini di titoli e/o altri dati di meta. Il selettore consente di cercare su altre colonne (e. g. Titolo) ma non mostrerà l'elenco effettivo dei titoli che ha trovato, solo loro DocId s come indicato qui:

clip_image002[1]

(La schermata non è così grande, perché non scegliere una ricerca che restituisce risultati validi, ma si può vedere che se fosse trovato alcuni risultati, e solo dimostrato di DocId, titoli non).

Ho cercato di alta e bassa per la risposta a questa e non riuscita. Il mio collega, il Venerabile Jonathan Bradshaw, aveva affrontato e risolto questo problema. Quando ho raggiunto a lui per aiuto, Egli mi ha segnalato nella giusta direzione.

Configurare la selezione per visualizzare le colonne multiple tramite il ShowInPicker"" Proprietà nell'ADF:

<Proprietà Nome="ShowInPicker" Tipo="System. Boolean">true</Proprietà>

Più in dettaglio:

  <!-- Titolo -->
  <TypeDescriptor TypeName="System. String" Nome="Titolo" >
    <LocalizedDisplayNames>
      <LocalizedDisplayName LCID="1033">Titolo</LocalizedDisplayName>
    </LocalizedDisplayNames>
    <Proprietà>
      <Proprietà Nome="DisplayByDefault" Tipo="System. Boolean">true</Proprietà>
      <Proprietà Nome="ShowInPicker" Tipo="System. Boolean">true</Proprietà>
    </Proprietà>
  </TypeDescriptor>

L'impostazione di questa proprietà introdurre un problema minore. Non appena si imposta una volta, è necessario impostarlo per ogni colonna che si desidera visualizzare. Nel mio caso, Selezione BDC ha mostrato DocId per impostazione predefinita. Tuttavia, una volta ho aggiunto "ShowInPicker" a titolo, DocId non più visualizzati. Ho risolto impostando in modo esplicito la proprietà ShowInPicker per ID Doc.

Ecco il risultato:

immagine

(Ti spiego la strana "168 – CamlSchema.xsd" costruzione in un futuro post del blog. In breve, è una stringa concatenata che permette un'esperienza utente leggermente migliore).

Naturalmente, Dopo aver scritto questo post di Blog, Ho appena fatto una ricerca per "ShowInPicker" e ha trovato numerosi successi, compreso questo: http://msdn2.microsoft.com/en-us/library/ms583986.aspx. Spiega il significato di tale proprietà insieme ad alcune altre cose buone di BDC.

</fine>

Iscriviti al mio blog!

Technorati Tags: