</einde>
Junie 2008 SUGDC Konferensie — Dit is 'n wrap
Ek het my eerste keer ooit SharePoint konferensie this past weekend and it was a blast.
Donderdagmiddag, Ek het toe af na Virginia, gelei deur my nuut gekoop $50 GPS appliance plug-in thing to my phone. The device was flawless. After the five hour drive, Ek het die energie wat 'n lekker run te doen op die loopvlak meul en dan, selfs meer verbasend, had the energy to head to the lobby for an advertised speaker’s cocktail hour. Conference n00b that I am, 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 🙂
Had a hard time sleeping because I was speaking first thing Friday AM. Nervousness, a nagging feeling that I needed to add a slide to my presentation and a very disturbing cat show on Animal Planet kept me up late. Since I went to sleep late, I naturally got up early. I did add a fairly detailed technical architecture slide. It was well worth the effort because the 25 minute van Q&A would have been very awkward without it. I was lucky to get the first slot in the technical track. Sahil Malik was originally going to speak Friday AM and I was going to speak Saturday but he needed to swap times. This allowed me to do my presentation and then sit back and enjoy everything going forward Friday and Saturday.
The presentation went OK. I definitely have room to improve it. I spoke about how we can access and use web services from a SharePoint Designer workflow using a custom action. Over time, Ek sal bind hierdie inligting in my reeks oor by EUSP.com for End Users trying to get the most use out of that tool. I blew through my slides and demo in 35 minute, to my dismay at the time. Luckily, V&A was lewendige, no doubt helped by the fact that it was early morning before lunch. V&A is my favorite part of any presentation.
Daar was baie interessante onderwerpe en ek hoop om te blog oor hulle in groter detail hierdie week (tyd dit toelaat, soos altyd). A fellow from CMS Watch provided a highly critical yet very hopeful review of SharePoint’s position in the market. A different discussion focused on the paucity of SharePoint resources and the difficulty that recruiters have finding good talent that is also "affordable" in this very tight market. The CMS Watch guy referred to the SharePoint human resources pool as being like a "guild." I’m mainly familiar with that term in MMORPG terms and it gave me a little thrill, to be honest 🙂
The highlight of the conference was just meeting and catching up with people I’ve "known" online for a while. The best was sitting at the bar with Becky Isserman (MossLover) vir 3 of 4 uur (en dat, nadat ek klaar drink vir die nag). I don’t often get to talk about Farscape of Babilon 5 met Kansas City inwoners.
Bob Fox was daar en soos gewoonlik, is 'n storm van die intro, chats and just plain frenetic energy. He invited me to Saturday breakfast with Sahil Malik and that was great.
Saterdag (dag 2), Mike Lotter gesleep hom na die konferensie te praat oor Path en dan het hy by Becky aan die einde van die dag het 'n soort van algemene Q te doen&'N sessie vir ongeveer 30 aan 45 minute hoofsaaklik gefokus op Path (Mike) and AJAX (Becky). I wish Becky had been able to go through her full/formal presentation but I’m sure I’ll get a chance to see that one of these days. I have a feeling she’ll be "hitting the circuit" vorentoe.
I could go on and on. Two last points — the financial purpose of the conference was to raise money for the Children’s Miracle Network and it raised $5,000. That was awesome. Ten slotte, Ek wil in die openbaar te bedank Gary Blatt, Gary Vaughn and Bob Fox for alerting me to and allowing me to speak at the conference. Natuurlik, the two Gary’s had a team of people supporting and organizing and all of you were awesome. I had high expectations before I went and it was better than I had hoped for.
Keep on the alert for the next conference scheduled for November 7th and 8th. Aside from some great content, dit is geweldig vir die vergadering met al die aanlyn persoonlikhede wat jy deur middel van blogs het bekend, Twitter, forums, ens..
</einde>
Die FBA en SQL Server: 'N Love Story
My colleague has been working on a web part in an FBA environment. Among other things, the web part pulls some data from SQL server. The grand plan for this project dictates that a DBA configures data level security in SQL (in teenstelling met die inbedding van 'n gebruiker-ID in 'n SQL-navraag of 'n ander benadering).
The problem is that SQL server doesn’t know anything about our FBA environment so it can’t trust us. We solved this problem by, vir 'n gebrek van 'n beter woord, manually impersonating an AD user so that we could connect to SQL such that SQL data level security works.
Selfs al FBA is 'n ASP.NET-funksie, ons die SharePoint Nasie mense geleer het om die verskillende soekenjins dat as jy bevraagteken vir FBA, you must mean you want know how to configure FBA in SharePoint. I failed to find find any information on how to enable an FBA oriented ASP.NET application to communicate with SQL in the way we needed.
In die loop van die ondersoek, ons weer lees hierdie artikel: ASP.NET imiteren
Meer navorsing gelei het tot hierdie codproject artikel: http://www.codeproject.com/KB/cs/cpimpersonation1.aspx
Wat gehelp het om ons skryf ons kode, which I’ve included below. It’s not the most elegant stuff, maar dit het gewerk. I hope you find it helpful.
Hier is die kode wat vir ons gewerk het:
beskerm nietig btnSearchCarrier_Click(voorwerp sender, EventArgs e) { probeer { ImpersonateUser IE = nuwe ImpersonateUser(); // ALLE: Plaas geloofsbriewe ("Domain Name", "Gebruikersnaam", "Password"); // KODE // iU.Undo(); } vang (Uitsondering ex) { } } // Die gebruik van imiteren klas soos hieronder vermeld. openbare klas ImpersonateUser { [DllImport("Advapi32.dll", SetLastError = waar)] openbare statiese eksterne Bool LogonUser( String lpszUsername, String lpszDomain, String lpszPassword, int dwLogonType, int dwLogonProvider, ref IntPtr phToken); [DllImport("Kernel32.dll", Charset = CharSet.Auto)] private eksterne statiese Bool Close Handle(IntPtr hanteer); private statiese IntPtr tokenHandle = nuwe IntPtr(0); private statiese WindowsImpersonationContext impersonatedUser; // As jy hierdie kode insluit in 'n DLL, seker wees om dit te eis dat // lopies met FullTrust. [PermissionSetAttribute(SecurityAction.Demand, Noem = "FullTrust")] openbare nietig voorhou(string domein, string gebruikersnaam, string wagwoord) { probeer { // Gebruik die onbeheerde LogonUser funksie te kry die gebruiker teken vir // die gespesifiseerde gebruiker, domein, en wagwoord. konst int LOGON32_PROVIDER_DEFAULT = 0; // Aparte slaag van hierdie parameter veroorsaak LogonUser 'n primêre teken te skep. konst int LOGON32_LOGON_INTERACTIVE = 2; tokenHandle = IntPtr.Zero; // Stap -1 Bel LogonUser 'n handvatsel te verkry tot 'n toegang teken. die Bool returnValue = LogonUser( gebruikersnaam, Domeinnaam, wagwoord, LOGON32_LOGON_INTERACTIVE, LOGON32_PROVIDER_DEFAULT, ref tokenHandle); // tokenHandle - nuwe sekuriteit gebrand indien (valse == returnValue) { int ret = Marshal.GetLastWin32Error(); Console.WriteLine("LogonUser oproep misluk met foutkode : " + reg); gooi nuwe System.ComponentModel.Win32Exception(reg); } // Stap - 2 WindowsIdentity newId = nuwe WindowsIdentity(tokenHandle); // Stap -3 impersonatedUser = newId.Impersonate(); } vang (Uitsondering ex) { Console.WriteLine(Msgstr "Uitsondering het voorgekom. " + ex.Message); } } /// <opsomming> /// Tops nabootsing /// </opsomming> openbare nietig Undo() { impersonatedUser.Undo(); // Vry om die tekens. indien (tokenHandle != IntPtr.Zero) Close Handle(tokenHandle); } }
</einde>
Toe te voeg tot die Lore: SSRS my vertel “rsAccessDenied”, Maar … Ek het regtig Het Access
'N Paar weke terug, I was working with my developer colleague on a project involving SQL Server Reporting Services plug-in for MOSS. He was developing a web part that provides a fancy front-end to the report proper (die belangrikste kenmerk van 'n slim lookup op 'n parameter met 'n paar duisend soekbare waardes agter dit).
Dit was groot werk in die omgewing nie, maar in die gebruiker aanvaarding toets (UAT) omgewing, it wouldn’t work. Firing up the debugger, ons sal sien uitsondering besonderhede soos hierdie:
Die regte aan gebruikers 'UAT_domain mosssvc' onvoldoende is vir die uitvoering van hierdie aksie.(rsAccessDenied).
As jy 'n live soektog op die bogenoemde fout, you find it’s quite common. Scarily common. The worst kind of common because it has many different potential root causes and everyone’s suggested solution "feels" reg. We probably tried them all.
In ons geval, the problem was that we had done a backup/restore of DEV to UAT. Somewhere in the data, iets was nog verwys na "DEV_domain" (in plaas van die updated "UAT_Domain"). We created a new site, bygevoeg op die web deel en wat ons probleem opgelos.
Hopelik sal iemand 'n uur of twee te red in die ry.
</einde>
Quick fix: Toegang tot SharePoint Site gooi [HttpException (0x80004005): Versoek uitgetel.]
One of my developer colleagues was working on a project this week and ran into a timeout problem while working on building some crazy web part. His web part was fine, maar "skielik" 'n onverwante plek het baie stadig en dikwels met hierdie fout uitgetel:
[HttpException (0x80004005): Versoek uitgetel.]
I logged in and saw that several other sites were just fine. I suspected that there were some hidden web parts on the page and using die betroubare ?inhoud = 1 debug tegniek, Ek het in werklikheid 11 die web dele op die bladsy, only two of which were visible. Even better (uit 'n let's-hoop-ek-kry-iets-lelike-hier-dat-ek-kan-los perspektief), drie van daardie geslote web dele het 'n naam van "Fout".
Ek verwyder die web dele (wat self het 'n verrassende lang tyd) and that solved the problem. For today 🙂
</einde>
In sy klas FAST Opleiding is 'n uitstekende
Ek begin vandag 4 FAST se vennoot opleiding gelei deur Larry Kaye hier in Needham, MA.
Die 5-dag-sessie afgebreek word in klasse (3 en 2 dae onderskeidelik) entitled "FAST ESP: Ontwikkeling van Custom Search Aansoeke vir alliansievennote ek" and "FAST ESP: Developing Custom Search Applications for Alliance Partners II".
Dit is 'n ware boot camp tipe klas. Die materiaal is diep (baie, baie diep). Die instrukteur (Larry) duidelik weet sy dinge. I highly recommend this training if you considering it.
</einde>
SharePoint en FAST — die Reese se Peanut Butter koppies Enterprise Apps?
Ek het klaar op dag 2 van FAST opleiding in sonnige Needham, MA, en ek bars met idees (wat al die goeie opleiding klasse aan my doen). One particular aspect of FAST has me thinking and I wanted to write it down while it was still fresh and normal day-to-day "stuff" druk dit uit my kop.
Ons SharePoint WSS 3.0 / MOSS implementeerders dikwels 'n moeilike probleem met 'n redelik-grootte SharePoint-projek in die gesig staar: Hoe kry ons al die ongemerkte data gelaai in SharePoint so dat dit alles inpas in ons perfek inligting argitektuur?
Dikwels genoeg, dit is nie so 'n moeilike probleem omdat ons onsself omvang uit die moeilikheid: "Ons gee nie om nie oor enigiets meer as 3 months old." "We’ll handle all that old stuff with keyword search and going-forward we’ll do it the RIGHT way…" Etc.
Maar, what happens if we can’t scope ourselves out of trouble and we’re looking at 10’s of thousands or 100’s of thousands (of selfs miljoene) van Dokumente — die laai en Die kodering waarvan is ons toegewyde wens?
Vinnig kan die antwoord wees.
FAST se soek-proses sluit in 'n baie bewegende dele, maar een vereenvoudigde siening is dit:
- 'N kruiper lyk vir die inhoud.
- Dit vind inhoud en gee dit aan 'n makelaar wat die bestuur van 'n poel van die dokument verwerkers.
- Broker proses oorhandig dit aan een van die dokument verwerkers.
- Die dokument verwerker analiseer die dokument en via 'n pypleiding, analiseer die bejeezus van die dokument en gee dit af tot 'n indeks bouer tipe.
Op op die skip vinnig, we have a lot of control over the document processing pipeline. We can mix and match about 100 die pyplyn komponente en, baie interessant, we can write our own components. Like I say, FAST is analyzing documents every which way but Sunday and it compiles a lot of useful information about those documents. Those crazy FAST people are clearly insane and obsessive about document analysis because they have tools and/or strategies to REALLY categorize documents.
So … die gebruik van vas, in kombinasie met ons eie persoonlike pyplyn komponent, we can grab all that context information from FAST and feed it back to MOSS. It might go something like this:
- Die dokument word gevoed in vinnig van Moss.
- Normale Crazy-obsessiewe vinnige dokument parsing en kategorisering gebeur.
- Ons eie persoonlike pyplyn komponent val 'n paar van daardie konteks inligting aan 'n databasis.
- 'N proses van ons eie ontwerp lees die konteks inligting, maak 'n paar besluite oor hoe dit mos dokument te pas binne ons IA en merk dit met behulp van 'n web-diens en die voorwerp model.
Natuurlik, geen so 'n outomatiese proses kan perfek wees nie, maar te danke aan die obsessiewe (en moontlik stapelgek-maar-in-'n-goeie-manier FAST mense), ons kan 'n ware gevegte geskiet op 'n werklik effektiewe massa-vrag proses wat doen meer as net 'n SQL databasis vul met 'n klomp van skaars soekbare dokumente.
</einde>
Leer oor Eindgebruikers Op www.EndUserSharePoint.com
Mark Miller oor te http://www.endusersharepoint.com het 'n ingeboude, In my ervaring, the best end-user focused SharePoint site in the ‘sphere. In die afgelope maand, he has enlisted some of the premier end-user focused bloggers around to contribute to the "front page" op 'n gereelde basis, insluitend maar nie beperk tot Paul CULMSEE, Chris Quick, en Dessie Lunsford. He has others lined up and ready to contribute as their schedules allow.
Ek gespring op die geleentheid om deel te neem en my eerste post hier. I’m writing a series on how to use SharePoint Designer to create first-class business workflow solutions. In keeping with the EUSP.com’s focus, die artikels sal altyd die eindgebruiker voor-en middelpunt.
Ek persoonlik is geneig om die SharePoint wêreld te verdeel in drie breë groepe: SharePoint consultants, full-time SharePoint staff developers and end users. When I write, Ek vra dikwels myself, watter van hierdie groepe dalk belangstel in die onderwerp? Most often, Ek beland skryf vir die eerste twee (tegniese) groepe, hoofsaaklik omdat ek 'n konsultant myself; it’s always easier and more authentic to write about those things with which you’re most familiar on a personal level.
Soos ek voor opgemerk, die eindgebruiker gemeenskap is ver, far larger than the technical community. EUSP.com is top-notch and I heartily recommend it to all three groups. The site’s laser focus is obviously valuable to end users. Egter, we developers and consultants can only be better at our profession if we can understand and effectively respond to the needs of the end users we serve. I know I need all the help I can get 🙂 Check dit uit.
</einde>
Invoking SSRS Web dienste van WSS / Die MOSS in FBA Omgewing
Ons moes die "CreateSubscription te roep" method on an SSRS web service that is hosted in an FBA managed MOSS environment from a custom web part. We kept getting variations of:
- 401: Nie gemagtig
- Voorwerp het
Die voorwerp het" boodskap was baie interessant, want dit het gesê dat die "voorwerp" (ons SSRS diens) het geskuif" to login.aspx. This clearly meant we had some kind of authentication problem.
Ek het uiteindelik besef dat ek moes geboekmerk 1 blog inskrywing by Robert Garret that described how to invoke a general purpose WSS/MOSS web service living inside an FBA environment. Note that I can’t link directly to the article (soos van 06/09/08) because it wants to authenticate. The link I provide brings you to an "all posts" sien en kan jy die spesifieke artikel vind deur te soek vir "Toegang tot MOSS Web Services deur gebruik te maak van Vorms verifikasie".
Hier is die kode wat vir ons gewerk het:
ReportingService2006 rs = nul; // Verifiëer Verifikasie auth = nuwe Verifikasie(); indien (result.ErrorCode == LoginErrorCode.NoError) probeer { rs.CreateSubscription(verslag, extSettings, desc, eventType, matchData, parameters1); } vang (Uitsondering ex) { Console.WriteLine(ex.Message.ToString()); } |
Ek interpreteer om dinge uit te werk soos hierdie:
- Ons web deel moet inbel die verifikasie diens en sê, "Hey, Tony, dit is my!".
- Verifikasie diens antwoorde sê, "Hey, I know you. How are the kids? Here’s a token."
- Ons doen 'n beroep op die SSRS diens en sê, "Tony het my gestuur, hier is die bewys."
</einde>
Het jy Jou maandelikse Soek Analise?
Dit is 'n goeie praktyk, waarskynlik selfs 'n Beste Praktyk, te hersien om jou soektog is een keer oor 'n maand en kyk vir geleenthede om die beste verbintenis te voeg, tune your thesaurus and maybe even uncover some business intelligence that is otherwise hidden to management.
It’s already the 3rd of the month. Time’s awastin’ 🙂
</einde>