</fine>
Giugno 2008 Conferenza SUGDC — Che è un Wrap
Ho frequentato il mio primo mai Conferenza di SharePoint lo scorso fine settimana ed è stato un vero spasso.
Giovedì pomeriggio, Ho guidato fino a Virginia, guidati dal mio appena acquistato $50 Cosa plug-in apparecchio GPS al mio telefono. Il dispositivo è stato impeccabile. Dopo cinque ore d'auto, Ho avuto l'energia per fare una bella corsa sul battistrada mulino e poi, ancor più sorprendentemente, aveva l'energia di testa alla lobby per ora del cocktail di un altoparlante pubblicizzato. N00b di conferenza che sono, si è scoperto che l'ora del cocktail era davvero uno stratagemma per convincere i relatori a presentarsi e aiutare a riempire i documenti e a infilarsi nelle borse a tracolla per i partecipanti alla conferenza?
Ho fatto fatica a dormire perché stavo parlando prima cosa venerdì mattina. Nervosismo, una fastidiosa sensazione che avevo bisogno di aggiungere una diapositiva alla mia presentazione e molto inquietante spettacolo gatto su Animal Planet mi ha tenuto sveglio fino a tardi. Da quando andavo a dormire fino a tardi, Naturalmente mi sono alzato presto. Ho fatto aggiungere una diapositiva di architettura tecnica abbastanza dettagliata. Ne è valsa la pena perché il 25 minuti di Q&A sarebbe stato avere molto scomodo senza di essa. Sono stato fortunato ad ottenere il primo slot nella pista tecnica. Sahil Malik originalmente stava andando a parlare di venerdì mattina e stavo andando a parlare sabato ma aveva bisogno di scambiare volte. Questo mi ha permesso di fare la mia presentazione e poi sedersi e godere di tutto ciò che va avanti venerdì e sabato.
La presentazione è andato OK. Ho sicuramente spazio per migliorare. Ho parlato di come possiamo accedere e utilizzare servizi web da un flusso di lavoro SharePoint Designer utilizzando un'azione personalizzata. Nel corso del tempo, Queste informazioni saranno a legare nella mia serie Oltre a EUSP.com per gli utenti finali, cercando di ottenere il massimo utilizzo di tale strumento. Ho fatto saltare attraverso le mie diapositive e demo in 35 minuti, per il mio sgomento nel momento. Per fortuna, Q&A era vivace, senza dubbio aiutato dal fatto che si trattava di mattina presto prima di pranzo. Q&A è la mia parte preferita di qualsiasi presentazione.
C'erano molti soggetti interessanti e spero al blog su di loro più dettagliatamente questa settimana (tempo permettendo, come sempre). Un collega da CMS Watch fornito una recensione altamente critica ancora molto fiducioso della posizione di SharePoint nel mercato. Una discussione diversa focalizzata sulla scarsità delle risorse di SharePoint e la difficoltà che i reclutatori hanno trovare buon talento che è anche "conveniente" in questo mercato molto stretto. Il ragazzo di CMS Watch di cui al pool di risorse umane di SharePoint come essendo come una "corporazione." Principalmente ho familiarità con quel termine in termini MMORPG e mi ha dato un piccolo brivido, ad essere sincero
Il clou della conferenza era solo incontro e mettersi al passo con le persone che ho "conosciuto" online per un po'. Il migliore era seduto al bar con Becky Isserman (MossLover) per 3 o 4 ore (e che, dopo che ebbi finito di bere per la notte). Spesso non riesco a parlare Farscape o Babylon 5 i residenti di Kansas City.
Bob Fox era lì e come al solito, è un vortice di intro, Chat e semplicemnte frenetica energia. Mi ha invitato a colazione sabato con Sahil Malik e che era fantastico.
Sabato (giorno 2), Mike Lotter trascinato lui stesso alla conferenza per parlare di InfoPath e poi si unì Becky alla fine della giornata per fare una sorta di generale Q&Una sessione per circa 30 A 45 minuti si concentra principalmente su InfoPath (Mike) e AJAX (Becky). Vorrei Becky era stato in grado di passare attraverso la sua presentazione completa/formale, ma io sono sicuro che avrò la possibilità di vedere che uno di questi giorni. Ho la sensazione che lei potrà essere "colpire il circuito" andando avanti.
Potrei andare avanti. Due ultimi punti — lo scopo finanziario della conferenza era quello di raccogliere fondi per Miracle Network i bambini e ha sollevato $5,000. E ' stato fantastico. Infine, Voglio ringraziare pubblicamente Gary Blatt, Gary Vaughn e Bob Fox per avvisare me e che mi permette di parlare alla conferenza. Naturalmente, Gary due aveva un team di persone sostenendo e organizzando e tutti voi erano eccezionali. Avevo aspettative elevate prima sono andato ed era meglio di quanto avessi sperato.
Tenere in allerta per la prossima conferenza prevista per il 7 novembre e 8. A parte alcuni grandi contenuti, è fantastico per un incontro con tutte quelle personalità online, che tu hai conosciuto attraverso il Blog, Twitter, Forum, ecc.
</fine>
FBA e SQL Server: Una storia d'amore
Il mio collega ha lavorato su una web part in un ambiente di FBA. Tra le altre cose, la web part estrae alcuni dati da SQL server. Il grande piano per questo progetto impone che un amministratore di database Configura protezione a livello di dati in SQL (al contrario di incorporamento di un ID utente in una query SQL o qualche altro approccio).
Il problema è che SQL server non sa nulla di nostro ambiente FBA così che non puoi fidarti di noi. Abbiamo risolto questo problema da, per la mancanza di una parola migliore, manualmente impersonando un utente di Active Directory in modo che abbiamo potuto collegare a SQL tale che SQL dati livello sicurezza opere.
Anche se FBA è una caratteristica ASP.NET, persone di SharePoint nazione abbiamo insegnato i vari motori di ricerca che se sta eseguendo la query per FBA, deve dire che si desidera sapere come configurare FBA in SharePoint. Non sono riuscito a trovare tutte le informazioni su come attivare un FBA orientata applicazione ASP.NET per comunicare con SQL in modo abbiamo bisogno di trovare.
Nel corso di questa ricerca, abbiamo riletto questo articolo: Rappresentazione di ASP.net
Ulteriori ricerche ci hanno portato a questo articolo codproject: http://www.codeproject.com/KB/cs/cpimpersonation1.aspx
Che ci ha aiutato a scrivere il nostro codice, che ho incluso qui sotto. Non è la roba più elegante, ma ha funzionato. Spero che troverete utile.
Ecco il codice che ha lavorato per noi:
protetti Sub btnSearchCarrier_Click(Object sender, EventArgs e) { provare { ImpersonateUser iU = Nuovo ImpersonateUser(); // TODO: Sostituire le credenziali iU.Impersonate("NomeDominio", "Nome utente", "Password"); // CODICE // iU.Undo(); } catture (Exception ex) { } } // Utilizzando la rappresentazione classe come indicato di seguito. pubblica classe ImpersonateUser { [DllImport("advapi32. dll", SetLastError = true)] pubblica statico extern bool LogonUser( String lpszUsername, String lpszDomain, String lpszPassword, int dwLogonType, int dwLogonProvider, Rif IntPtr phToken); [DllImport("Kernel32. dll", CharSet = Charset)] privato extern statico bool CloseHandle(IntPtr handle); privato statico IntPtr tokenHandle = Nuovo IntPtr(0); privato statico WindowsImpersonationContext impersonatedUser; // Se è incorporare questo codice in una DLL, Assicuratevi di chiedere che esso // viene eseguito con FullTrust. [PermissionSetAttribute(SecurityAction. Demand, Nome = "FullTrust")] pubblica Impersonate Sub(String domainName, String userName, password: String) { provare { // Utilizzare la funzione LogonUser non gestita per ottenere il token dell'utente // l'utente specificato, dominio, e la password. const int LOGON32_PROVIDER_DEFAULT = 0; // Passando questo parametro determina LogonUser creare un token primario. const int LOGON32_LOGON_INTERACTIVE = 2; tokenHandle = IntPtr. zero; // Passo -1 Chiamare LogonUser per ottenere un handle per un token di accesso. bool returnValue = LogonUser( userName, NomeDominio, password, LOGON32_LOGON_INTERACTIVE, LOGON32_PROVIDER_DEFAULT, Ref tokenHandle); // tokenHandle - nuovo token di sicurezza Se (false = = returnValue) { int ret = GetLastWin32Error(); Console. WriteLine("LogonUser chiamata non riuscita con codice di errore : " + RET); Throw nuovo System. ComponentModel.Win32Exception(RET); } // Passo - 2 WindowsIdentity newId = Nuovo WindowsIdentity(tokenHandle); // Passo -3 impersonatedUser = newId.Impersonate(); } catture (Exception ex) { Console. WriteLine("Eccezione. " + ex.Messaggio); } } /// <Riassunto> /// Rappresentazione di fermate /// </Riassunto> pubblica void Undo() { impersonatedUser.Undo(); // Libera i token. Se (tokenHandle != IntPtr. zero) CloseHandle(tokenHandle); } }
</fine>
Aggiunta per la Lore: SSRS mi dice “rsAccessDenied”, Ma … Veramente avete accesso
Poche settimane fa, Stavo lavorando con il mio collega sviluppatore su un progetto che coinvolge il plug-in SQL Server Reporting Services per MOSS. Stava sviluppando una web part che fornisce un front-end per il rapporto corretto di fantasia (la caratteristica principale di essere una ricerca intelligente su un parametro con diversi valori ricercabili mille dietro di esso).
Questo è stato grande lavoro nell'ambiente di sviluppo, ma nel test di accettazione utente (UAT) ambiente, non avrebbe funzionato. Accensione del fuoco il debugger, Vorremmo vedere Dettagli eccezione come questo:
Le autorizzazioni concesse all'utente 'UAT_domainmosssvc' sono sufficienti per eseguire questa operazione.(rsAccessDenied).
Se fate una ricerca diretta sull'errore di cui sopra, troverete che è abbastanza comune. Spaventosamente comuni. Il peggior tipo di comune perché ha molti diversi potenziali radice causa e soluzione suggerita di tutti "si sente" destra. Probabilmente li abbiamo provati tutti.
Nel nostro caso, il problema era che avevamo fatto un backup/restore di DEV per UAT. Da qualche parte nei dati, qualcosa ancora si riferiva a "DEV_domain" (invece l'aggiornamento "UAT_Domain"). Abbiamo creato un nuovo sito, aggiunto che la parte web e che ha risolto il nostro problema.
Speriamo che questo salverà qualcuno un'ora o due lungo la linea.
</fine>
Quick Fix: Accedere al sito SharePoint genera [HttpException (0x 80004005): Richiesta scaduta.]
Uno dei miei colleghi di sviluppatore stava lavorando su un progetto di questa settimana e sono imbattuto in un problema di timeout mentre si lavora sulla costruzione di qualche parte pazzo web. Da parte sua web andava, ma "improvvisamente" un sito correlato è diventato molto lento e spesso timed out con questo errore:
[HttpException (0x 80004005): Richiesta scaduta.]
Sono loggato e ho visto che molti altri siti erano proprio bene. Ho sospettato che c'erano alcuni nascosti web part nella pagina e l'utilizzo di il fidato ?contenuto = 1 tecnica di debug, Ho infatti trovato 11 Web part nella pagina, solo due delle quali erano visibili. Ancora meglio (dal punto di vista let's-hope-I-find-something-ugly-here-that-I-can-fix), tre di quelle parti web chiuso hanno un nome di "Errore".
Ho cancellato quelle parti del web (che a sua volta ha preso un tempo sorprendentemente lungo) e che ha risolto il problema. Per oggi
</fine>
Formazione veloce in classe è eccellente
Sto a partire dal giorno 4 di veloce di partner di formazione diretta da Larry Kaye qui in Needham, MA.
Questa sessione di 5 giorni è suddiviso in classi (3 e 2 giorni rispettivamente) intitolato "FAST ESP: Lo sviluppo di applicazioni di ricerca personalizzato per Alliance Partner I" e "FAST ESP: Lo sviluppo di applicazioni di ricerca personalizzato per Alliance Partner II".
Questa è una classe di tipo reale boot camp. Il materiale è profondo (molto, molto profondo). L'istruttore (Larry) chiaramente conosce la sua roba. Consiglio vivamente questa formazione se si considera.
</fine>
SharePoint e FAST — Tazze di burro di arachidi di Reese di applicazioni aziendali?
Ho finito il giorno 2 di formazione veloce nella soleggiata Needham, MA, e sono traboccanti di idee (fare a me, che tutte le classi di buona formazione). Un aspetto particolare della veloce mi ha pensare e volevo scriverlo mentre era ancora fresco e normale giorno per giorno "roba" spinto dalla mia testa.
Abbiamo SharePoint WSS 3.0 / Gli implementatori MOSS spesso affrontano un problema difficile con qualsiasi progetto SharePoint di dimensioni ragionevoli: Come possiamo ottenere tutti i dati senza tag caricati in SharePoint, tale che tutto si inserisce all'interno della nostra architettura informazioni perfettamente progettato?
Abbastanza spesso, Questo non è un problema difficile, perché noi stessi abbiamo portata fuori dai guai: "Non ci interessa di niente più di 3 mesi di età." "Ci occuperemo di tutto ciò che cose con ricerca per parola chiave e andare avanti lo faremo nel modo giusto…" Ecc.
Ma, cosa succede se siamo noi stessi non possiamo definire l'ambito fuori dai guai e stiamo guardando decine di migliaia o centinaia di migliaia (o addirittura milioni) di documenti — il caricamento e tagging di cui è nostro desiderio devoto?
VELOCE potrebbe essere la risposta.
Processo di ricerca di FAST include un sacco di parti in movimento, ma questo è una visione semplificata:
- Un processo di cingolo cerca contenuto.
- Trova il contenuto e le mani fuori a un processo di broker che gestisce un pool di processori di documento.
- Processo di broker si passa a uno dei processori documento.
- Il processore del documento analizza il documento e tramite un processo di pipeline, analizza il bejeezus fuori il documento e le mani fuori da un processo di tipo generatore di indice.
Sulla nave veloce, Abbiamo un sacco di controllo sulla pipeline di elaborazione dei documenti. Siamo in grado di mescolare e abbinare su 100 componenti della pipeline e, più interessante, possiamo scrivere i nostri propri componenti. Come ho detto, FAST è analizzando i documenti ogni modo ma domenica e compila un sacco di informazioni utili su tali documenti. Quei pazzi veloce sono chiaramente pazzo e ossessivo di analisi dei documenti perché hanno strumenti e/o strategie per davvero categorizzare i documenti.
Così … utilizzo veloce in combinazione con il nostro componente personalizzato, Siamo in grado di afferrare tutte le che informazioni di contesto da FAST e alimentarlo torna a MOSS. Potrebbe andare qualcosa di simile:
- Documento è alimentato in fretta da MOSS.
- Normale documento veloce pazzo-ossessivo, l'analisi e la classificazione avviene.
- Nostro componente personalizzato scende alcune di tali informazioni di contesto fuori a un database.
- Un processo del nostro design legge le informazioni di contesto, rende alcune decisioni su come adattare quel documento muschio all'interno del nostro IA e segna utilizzando un servizio web e il modello di oggetto.
Naturalmente, nessun processo automatizzato può essere perfetta ma grazie ossessivo (e forse insane-but-in-a-good-way persone veloce), possiamo avere un vero e proprio colpo a un processo di caricamento di massa veramente efficace che riempiono più appena di un database SQL con un mucchio di documenti ricercabili a malapena di combattimento.
</fine>
Conoscere gli utenti finali a www.EndUserSharePoint.com
Mark Miller, oltre al http://www.endusersharepoint.com ha costruito, nella mia esperienza, l'utente finale migliore focalizzata sito di SharePoint nella ' sfera. Nell'ultimo mese, Egli ha arruolato alcuni dei blogger premier per l'utente finale incentrato intorno a contribuire per la prima pagina di"" su base regolare, incluso ma non limitato a Paul Culmsee, Chris Quick, e Dessie Lunsford. Lui ha altri fila e pronto a contribuire come loro pianificazioni consentono.
Ho saltato sulla possibilità di partecipare e il mio post inaugurale è qui. Sto scrivendo una serie su come utilizzare SharePoint Designer per creare soluzioni di flusso di lavoro di business di prima classe. In linea con lo stato attivo il di EUSP.com, tali articoli manterrà sempre l'utente finale davanti e al centro.
Io personalmente tendo a dividere il mondo di SharePoint in tre grandi gruppi: Consulenti di SharePoint, sviluppatori di personale a tempo pieno SharePoint e gli utenti finali. Quando scrivo, Spesso mi chiedo, quale di questi gruppi potrebbero essere interessati a soggetto? Più spesso, Finisco scrivendo per i primi due (tecnico) gruppi, soprattutto perché sono un consulente di me stesso; è sempre più facile e più autentica a scrivere quelle cose con cui si ha più familiarità a livello personale.
Come ho osservato in prima, la comunità di utenti finali è di gran lunga, ben più grandi di comunità tecnica. EUSP.com è di prim'ordine e lo consiglio vivamente a tutti i tre gruppi. Fuoco del laser del sito è ovviamente utile per gli utenti finali. Tuttavia, gli sviluppatori e consulenti possiamo solo essere meglio la nostra professione se possiamo capire e rispondere efficacemente ai bisogni degli utenti finali che serviamo. So di aver bisogno di tutto l'aiuto possibile 🙂 Check it out.
</fine>
Richiamando SSRS Web Services da WSS / MUSCHIO in ambiente FBA
Abbiamo bisogno di richiamare il "CreateSubscription" Metodo su un servizio web SSRS è ospitata in un FBA MOSS ambiente gestito da una web part personalizzata. Abbiamo continuava a variazioni di:
- 401: Non autorizzato
- Oggetto spostato
"L'oggetto spostato" messaggio era più interessante perché si diceva che l'oggetto"" (il nostro servizio SSRS) aveva "spostato" a login. aspx. Questo chiaramente significava che abbiamo avuto qualche problema di autenticazione.
Alla fine mi sono accorto che avevo segnalibro a blog entry di Robert Garret che descritto come richiamare un servizio web di uso generale WSS/MOSS vivono all'interno di un ambiente di FBA. Nota che io non riesco a collegare direttamente a questo articolo (come di 06/09/08) perché si vuole autenticare. Il link che fornisco, si raggiunge un "tutti i messaggi" vista e si può individuare l'articolo specifico cercando "Accessing MOSS Web Services utilizzando l'autenticazione di base".
Ecco il codice che ha lavorato per noi:
ReportingService2006 rs = null; // Autenticare Autenticazione auth = Nuovo Autenticazione(); Se (risultato.ErrorCode = = LoginErrorCode.NoError) provare { RS.CreateSubscription(relazione, extSettings, desc, eventType, matchData, parameters1); } catture (Exception ex) { Console. WriteLine(ex.ToString()); } |
Interpretare le cose a lavorare come questo:
- Da parte nostra web ha bisogno di dial-up il servizio di autenticazione e dire, "Hey, Tony, si tratta di me!".
- Servizio di autenticazione risponde dicendo:, "Hey, Io ti conosco. Come stanno i bambini? Qui è un token."
- Chiamiamo il servizio SSRS e dire, "Tony mi ha inviato, qui è il token."
</fine>
Si sono esibiti tua analisi mensile di ricerca?
Essa è una buona pratica, probabilmente anche una Best Practice, per rivedere i rapporti di ricerca una volta al mese e cercare nuove opportunità di aggiungere le migliori scommesse, sintonizzare il thesaurus e forse anche scoprire alcuni business intelligence che è altrimenti nascosti alla gestione.
È già il 3 ° del mese. Awastin di tempo’ 🙂
</fine>