</scop>
Iunie 2008 Conferinta SUGDC — Ce este un Wrap
Am participat la primul meu vreodată Conferinţa de SharePoint Acest trecut weekend si aceasta a fost o explozie.
Joi după-amiază, Am condus la Virginia, ghidat de meu nou achiziţionat $50 GPS aparat plug-in-lucru la telefonul meu. Aparatul a fost fără cusur. După cinci ore cu maşina, Am avut de energie pentru a face o rula frumos pe moara benzii de rulare şi apoi, chiar şi mult mai surprinzător, avut de energie la cap în lobby pentru un vorbitor publicitate oră cocktail. Conferinta n00b ce sunt, it turned out that the cocktail hour was really a ruse to get speakers to show up and help stuff papers and swag into shoulder bags for conference attendees 🙂
A avut o zi grea de dormit deoarece am fost vorbind primul lucru vineri AM. Nervozitate, un sentiment sâcâială că am nevoie pentru a adăuga un diapozitiv la prezentarea mea şi un spectacol de pisica foarte deranjante pe Animal Planet ma ţinut târziu. Din moment ce m-am dus la culcare târziu, Am în mod natural am trezit devreme. Adăuga un diapozitiv de arhitectura destul de detaliate tehnice. A fost bine merita efortul, deoarece 25 minute de Q&A ar fi fost penibil fără ea. Am fost norocos pentru a obţine primul slot în pista tehnice. Sahil Malik a fost iniţial va pentru a vorbi vineri AM şi am fost de gând să vorbească sambata dar el necesare pentru a ori de swap. Acest lucru a permis-mi să fac prezentarea mea şi apoi stai pe spate şi bucuraţi-vă de tot ce se întâmplă înainte vineri si sambata.
Prezentare a mers OK. Am cu siguranta loc să-l îmbunătăţească. Am vorbit despre cum putem accesa şi utiliza serviciile web la un flux de lucru SharePoint Designer folosind o acțiune particularizată. În timp, Eu va lega aceste informaţii în seria mea la peste EUSP.com pentru utilizatorii finali, încercarea de a obţine cele mai multe utilizarea din acest instrument. A suflat prin intermediul slide-uri mea şi demo în 35 minute, spre uimirea mea la momentul. Din fericire, Q&A fost plin de viaţă, fără îndoială, ajutat de faptul că a fost dimineaţa devreme înainte de prânz. Q&A este partea mea favorita din orice prezentare.
Au existat multe subiecte interesante şi sper să blog despre ele în detaliu mai mare în această săptămână (timp care să permită, ca întotdeauna). Un coleg de la CMS ceas prevăzut o revizuire extrem de critice încă foarte plin de speranţă a SharePoint pe pozitia pe piata. O discuţie diferite axat pe numărul mic de dificultate că recrutorii au găsirea talente bun, care este, de asemenea, "accesibil şi resursele SharePoint" in aceasta piata foarte strans. Tip CMS ceas prevăzute la piscina de resursele umane SharePoint ca fiind ca un "breasla." Sunt în principal de familiarizat cu acest termen în termeni de MMORPG-ul şi mi-a dat un fior pic, to be honest 🙂
Punctul culminant al conferinţei a fost doar întâlnire şi prinderea cu oameni am "cunoscut" online pentru un timp. Cel mai bun a fost stau la bar cu Becky Isserman (MossLover) pentru 3 sau 4 ore (şi că, după ce am terminat de băut pentru noapte). Nu primesc frecvent pentru a vorbi despre Farscape sau Babilon 5 cu locuitorii din Kansas City.
Bob Fox a fost acolo si ca de obicei, este un vârtej de intro, chat-uri şi pur şi simplu de energie frenetice. El ma invitat să sâmbătă micul dejun cu Sahil Malik şi că a fost mare.
Sâmbătă (Ziua 2), Mike Lotter însuşi târât la Conferinţa de a vorbi despre InfoPath şi apoi s-a alăturat Becky la sfârşitul zilei pentru a face un fel de Q generale&O sesiune de despre 30 pentru a 45 minute axat în principal pe InfoPath (Mike) Ajax (Becky). Doresc Becky a fost în măsură să treacă prin prezentarea ei plin/formală, dar eu sunt sigur că voi primi o sansa de a vedea că una din aceste zile. Am un sentiment ea vei fi "lovit circuit" merge înainte.
Am putea merge pe şi de pe. Două puncte de ultimul — financiare scopul conferinţei a fost pentru a strange bani pentru copii minune reţea şi a ridicat $5,000. Asta a fost minunat. În cele din urmă, Vreau să mulţumesc publicului Gary Blatt, Gary Vaughn şi Bob Fox pentru alertarea mine să şi permiţându-mi să vorbesc la Conferinţa. desigur, Gary două a avut o echipă de oameni de sprijin şi organizare şi toate dintre voi au fost minunat. Am avut aşteptări mari înainte de m-am dus şi a fost mai bine decât am sperat pentru.
Să păstreze alertă pentru următoarea conferinţă programată pentru 7 noiembrie si 8. În afară de unele conţinut mare, este grozav pentru întâlnire cu toate acele personalităţi online te-am cunoscut prin Blogurile, stare de nervozitate, forumuri, etc.
</scop>
FBA şi SQL Server: O poveste de dragoste
Colegul meu a fost de lucru pe o parte de web într-un mediu FBA. Printre alte lucruri, partea web trage unele date la SQL server. Marele plan pentru acest proiect dictează că un DBA configurează securitatea la nivel de date în SQL (spre deosebire de a embedding un ID de utilizator într-o interogare SQL sau unele alte abordări).
Problema este că SQL server nu ştie nimic despre mediul nostru FBA, astfel încât ea nu poate avea încredere în noi. Am rezolvat această problemă prin, din lipsa unui cuvânt mai bun, manual pretinde un utilizator AD, astfel încât am putut conecta la SQL astfel încât SQL datele de nivel de securitate de lucrări.
Chiar dacă FBA este o caracteristică de ASP.NET, am SharePoint Nation oameni învăţaţi motoarele de căutare diferite care, în cazul în care o interogaţi pentru FBA, tu trebuie să însemne care doriţi ştiu cum să configuraţi FBA în SharePoint. Nu am reuşit să găsească găsi orice informaţii despre cum să activaţi un FBA orientate ASP.NET cerere pentru a comunica cu SQL în modul în care avem nevoie.
În cercetarea acest lucru, am re-citit acest articol: ASP.NET personificare
Mai mult de cercetare ne-a condus la acest articol codproject: http://www.codeproject.com/KB/cs/cpimpersonation1.aspx
Care ne scrie codul nostru ajutat, care am inclus de mai jos. Nu este cel mai elegant chestii, dar a lucrat. Sper că vi se pare util.
Aici este codul care a lucrat pentru noi:
protejate void btnSearchCarrier_Click(obiect expeditor, EventArgs e) { încercaţi { ImpersonateUser UI = noi ImpersonateUser(); // TODO: Înlocuiţi acreditările iU.Impersonate("Domeniului", "Utilizator", "Parola"); // COD // iU.Undo(); } prinde (Excepţie ex) { } } // Folosind clasa personificare ca menţionate mai jos. publice Clasa ImpersonateUser { [DllImport("advapi32.dll", SetLastError = adevărat)] publice statice extern bool LogonUser( Șir lpszUsername, Șir lpszDomain, Șir lpszPassword, int dwLogonType, int dwLogonProvider, Ref IntPtr phToken); [DllImport("kernel32.dll", CharSet = CharSet.Auto)] privat extern statice bool CloseHandle(Mâner IntPtr); privat statice IntPtr tokenHandle = noi IntPtr(0); privat statice WindowsImpersonationContext impersonatedUser; // În cazul în care să includă acest cod într-un DLL, Asiguraţi-vă că să ceară că // se execută cu FullTrust. [PermissionSetAttribute(SecurityAction.Demand, Nume = "FullTrust")] publice nule personificare(şir domeniului, şir de utilizator, şir de parola) { încercaţi { // Funcţia negestionat LogonUser pentru a obţine simbolică pentru utilizator // utilizatorul specificat, domeniu, şi parola. const int LOGON32_PROVIDER_DEFAULT = 0; // Trece acest parametru determină LogonUser pentru a crea un simbol primar. const int LOGON32_LOGON_INTERACTIVE = 2; tokenHandle = IntPtr.Zero; // Pas -1 Sunaţi LogonUser pentru a obţine un mâner pentru un token de acces. bool returnValue = LogonUser( userName, Domeniului, parola, LOGON32_LOGON_INTERACTIVE, LOGON32_PROVIDER_DEFAULT, Ref tokenHandle); // tokenHandle - nou simbol de securitate Dacă (false == returnValue) { int ret = Marshal.GetLastWin32Error(); Console.WriteLine("LogonUser apelul nu a reuşit cu codul de eroare : " + RET); arunca noi System.ComponentModel.Win32Exception(RET); } // Pas - 2 WindowsIdentity newId = noi WindowsIdentity(tokenHandle); // Pas -3 impersonatedUser = newId.Impersonate(); } prinde (Excepţie ex) { Console.WriteLine("Excepţie a avut loc. " + ex.Mesaj); } } /// <Rezumat> /// Staţii de personificare /// </Rezumat> publice Anulare nule() { impersonatedUser.Undo(); // Gratuit jetoanele. Dacă (tokenHandle != IntPtr.Zero) CloseHandle(tokenHandle); } }
</scop>
Adăugarea la Lore: SSRS Tells eu “rsAccessDenied”, dar … Într-adevăr au acces
Câteva săptămâni în spate, Am fost de lucru cu colegul meu de dezvoltator pe un proiect care implică SQL Server Reporting Services plug-in pentru MOSS. El a fost în curs de dezvoltare o parte web care oferă un lux front-end la raportul corespunzătoare (Principala caracteristică fiind o căutare inteligent pe un parametru cu mai multe mii de valori căutate în spatele ei).
Acest lucru a fost mare lucru în mediul de dezvoltare, dar în testele de acceptare utilizator (UAT) mediu, Aceasta nu ar funcţiona. Ardere depanator, ne-ar vedea detalii excepţiei ca aceasta:
Permisiunile acordate pentru utilizator 'UAT_domainmosssvc' sunt insuficiente pentru a efectua această operație.(rsAccessDenied).
Dacă faci o căutare live pe eroarea de mai sus, găsiţi că este destul de comună. Scarily comune. Cel mai rau tip de comune deoarece are multe rădăcină potenţial diferit provoacă şi tuturor sugerat soluţia "se simte" dreptul de. Am încercat-le pe toate, probabil.
În cazul nostru, problema a fost că am făcut o copie de rezervă/restaurare a DEV a UAT. Undeva în date, ceva a fost încă referindu-se la "DEV_domain" (în loc de actualizat "UAT_Domain"). Am creat un nou site, adăugat partea web şi că rezolvat problema noastră.
Sperăm că acest lucru va salva pe cineva o oră sau două în jos linie.
</scop>
Iute Fix: Accesarea site-ul SharePoint aruncă [HttpException (0x 80004005): Solicitare expirată.]
Unul dintre colegii mei de dezvoltator a fost de lucru pe un proiect în această săptămână şi a fugit într-o problemă de timeout în timp ce lucrează pe o parte web nebun de constructii. Său parte web a fost bine, dar "brusc" un site independent a devenit foarte lent şi frequently a expirat cu această eroare:
[HttpException (0x 80004005): Solicitare expirată.]
Am autentificat şi am văzut că mai multe alte site-uri au fost doar bine. Am suspectat că au existat unele părţi ascunse web pagină şi folosind de incredere ?conţinutul = 1 depanare tehnica, De fapt am gasit 11 părțile Web din pagina, doar două dintre care au fost vizibile. Chiar mai bine (dintr-o perspectivă let's-hope-I-find-something-ugly-here-that-I-can-fix), trei dintre aceste părți web închise a avut un nume de "Eroare".
Am şters acele părți web (care în sine a avut un surprinzator de mult timp) şi că rezolvat problema. For today 🙂
</scop>
În clasa de formare rapidă este excelent
Am început ziua 4 de rapid pe partenerul de formare condus de Larry Kaye aici în Needham, MARIAN.
Această sesiune de 5 zile este defalcate pe clase (3 şi 2 zile respectiv) intitulat "repede ESP: Dezvoltarea de aplicatii de căutare particularizată pentru Alianţă parteneri I" şi "repede ESP: Dezvoltarea de aplicatii de căutare particularizată pentru partenerii de alianţă II".
Aceasta este o clasa de tip reale boot camp. Materialul este profund (foarte, foarte profunde). Instructor (Larry) stie clar lucrurile lui. Am foarte recomanda această formare dacă vă considerându-l.
</scop>
SharePoint şi rapid — Reese cupe unt de arahide de aplicaţii de întreprindere?
L-am terminat de zi 2 de formare rapide în sunny Needham, MARIAN, si eu sunt de rupere cu idei (toate bună pregătire claselor pe care face pentru mine). Un aspect particular de repede a-mi gândire şi am vrut să-l scrie în jos, în timp ce era încă proaspătă şi normale de zi cu zi "chestii" împins-o din capul meu.
Am SharePoint AAC 3.0 / MOSS implementatori frecvent se confruntă cu o problemă greu cu orice proiect de SharePoint în mod rezonabil şi mijlocii: Cum putem obţine toate datele fără taguri încărcate în SharePoint, astfel încât totul se potriveşte în interiorul nostru perfect conceput informaţii arhitectura?
Destul de des, Acest lucru nu este o problemă greu, pentru că ne-am domeniul de aplicare-ne necazuri: "Nu ne pasă de nimic mai mult 3 luni." "Ne vom descurca lucruri toate că vechi cu cuvinte cheie de căutare şi merge-transmite vom face aceasta dreptul de drum…" Etc.
dar, ce se întâmplă dacă suntem noi înşine nu poate aplicare necazuri si ne uitam la cartilor de 10 de mii sau 100 de mii (sau chiar milioane) de docs — încărcare şi marcare care este dorinta noastra devotat?
RAPID ar putea fi răspunsul.
Procesul de căutare rapid pe include o mulţime de piese în mişcare, dar este o vizualizare simplificată:
- Un proces de crawler-ul Arată pentru conţinutul.
- Se găseşte conţinutul şi mâinile-l la un proces de broker care gestionează o piscină de procesoare de document.
- Procesul de broker mâini la unul dintre procesoarele de documente.
- Procesor document analizează documentul şi printr-un proces de conducte, analizează bejeezus din document şi mâinile-l la un proces de tip index constructor.
Pe navă rapidă, avem o multime de control asupra documentului conducte de procesare. Ne puteţi amesteca şi potrivi despre 100 conducta de componente şi, cele mai interesant, putem scrie propriile noastre componente. Cum am spus, FAST este analiza documentelor, fiecare mod în care dar duminică şi se reuneşte o mulţime de informaţii utile despre aceste documente. Acei oameni nebuni rapid sunt clar nebun şi obsesiv despre document de analiză, deoarece acestea au instrumente şi/sau strategii pentru a clasifica într-adevăr documente.
Deci … folosind repede în combinaţie cu propriile noastre Componenta particularizată conducte, ne putem apuca toate aceste informaţii de context la rapid şi feed-l înapoi la MOSS. Acesta ar putea merge ceva de genul asta:
- Documentul este alimentat în rapid din MOSS.
- Document rapid normal nebun-obsesiv parsarea şi categorizare se întâmplă.
- Propriile noastre Componenta particularizată conducta picături de unele dintre aceste informaţii de context de pe o bază de date.
- Un proces de propriile noastre de design Citeşte informaţii de context, face unele decizii pe cum pentru a se potrivi acel document de muşchi în nostru IA şi se marchează folosind un serviciu web şi modelul de obiect.
desigur, nici un astfel de proces automat poate fi perfect, dar datorită obsesiv (şi, eventual, insane-but-in-a-good-way de persoane rapid), am putea avea o adevarata lupta împuşcat la un proces de încărcare masă cu adevărat eficiente, care umple mai mult decât o bază de date SQL cu un buchet de abia de căutat documente.
</scop>
De învăţare despre utilizatorii finali la www.EndUserSharePoint.com
Mark Miller peste la http://www.endusersharepoint.com a construit, în experienţa mea, cel mai bun utilizatorului final axat site-ul SharePoint în "sfera. În ultima lună, El a înrolat unele dintre bloggeri de premier pentru utilizatorul final, sa concentrat în jurul pentru a contribui la "prima pagina" mod regulat, inclusiv dar nu limitat la Paul Culmsee, Chris Quick, şi Roxana Lunsford. El are altele aliniat sus şi gata să contribuie ca programele lor permite.
Am sărit pe şansa de a participa şi inaugurală meu post este aici. Am scris o serie despre cum să utilizați SharePoint Designer pentru a crea soluţiilor de flux de lucru clasa întâi. În conformitate cu EUSP.com focus, aceste articole va păstra întotdeauna utilizatorului final fata si centru.
Personal am tendinţa de a împărţi lumea SharePoint în trei grupuri largi: SharePoint consultanţi, Full-Time SharePoint personalul dezvoltatorii şi utilizatorii finali. Când scriu, Adesea mă întreb, care dintre aceste grupuri ar putea fi interesat de subiect? Cele mai multe ori, Ajung sa scris pentru primele două (tehnice) grupuri, în principal pentru că eu sunt un consultant de mine; este întotdeauna mai uşor şi mai autentică a scrie despre aceste lucruri cu care tu esti cel mai familiar la un nivel personal.
Aşa cum I-am menţionat înainte, Comunitatea de utilizatorul final este departe, mult mai mari decât comunitatea tehnice. EUSP.com este top notch şi recomandăm din toată inima la toate trei grupe. Pe site-ul cu laser este, evident, valoros pentru utilizatorii finali. Cu toate acestea, noi dezvoltatorii şi consultanţi pot fi doar mai bine la profesia noastră dacă ne putem înţelege şi în mod eficient răspunde la nevoile utilizatorilor finali servim. I know I need all the help I can get 🙂 Check it out.
</scop>
Invocă SSRS servicii Web la AAC / MUŞCHI în FBA mediu
Avem nevoie pentru a invoca "CreateSubscription" metoda o SSRS serviciu de web care este găzduit într-o FBA reuşit MOSS mediu la o parte web personalizată. Am pastrat obtinerea variante de:
- 401: Nu sunt autorizate
- Obiect mutat
"Obiectul mutat" mesajul a fost cel mai interesant, deoarece aceasta a fost spunând că "obiectul" (Serviciul nostru de SSRS) a "mutat" pentru login.aspx. Acest lucru a însemnat în mod clar am avut un fel de problemă de autentificare.
În cele din urmă am dat seama că am avut semn de carte-o intrare de blog de Robert Garret cele descrise cum se invocă un scop general AAC/MOSS web serviciu trăiesc în interiorul unui mediu FBA. Reţineţi că imposibil de legat direct la un articol (ca de 06/09/08) pentru că vrea să se autentifice. Link-ul am oferi te aduce la un "toate mesajele" Vezi si tu poate localiza articolul specifice de cercetare pentru "Accesarea MOSS Web Services utilizând autentificarea de baza forme".
Aici este codul care a lucrat pentru noi:
ReportingService2006 rs = nul; // Autentificare Autentificare auth = noi Autentificare(); Dacă (rezultatul.ErrorCode == LoginErrorCode.NoError) încercaţi { RS.CreateSubscription(raport, extSettings, desc, eventType, matchData, parameters1); } prinde (Excepţie ex) { Console.WriteLine(ex.Message.ToString()); } |
Am interpreta lucruri de lucru de genul asta:
- Partea noastră de web are nevoie de a dial-up serviciu de autentificare şi spun, "Hei, Tony, este de mine!".
- Serviciul de autentificare răspunde zicând:, "Hei, Eu te cunosc. Cum sunt copiii? Aici este un simbol."
- Vom apela la serviciul de SSRS şi spun, "Tony mi-a trimis, Aici este simbolul."
</scop>
Au efectuat analiza căutare lunar?
Este o bună practică, probabil chiar şi cele mai bune practici, să revizuiască rapoarte Căutaţi o dată pe lună şi să caute oportunităţi de a adăuga cele mai bune pariuri, Tune dvs Lexicon şi poate chiar să descopere unele informaţii de afaceri altfel ascunse pentru managementul.
Este deja al 3-lea a lunii. Timp pe awastin’ 🙂
</scop>