Arkivat mujore: Qershor 2008

Qershor 2008 Konferenca SUGDC — Kjo është një Wrap

I ndjekur ime e parë ndonjëherë SharePoint konferencë this past weekend and it was a blast.

Enjte pasdite, Unë kope poshtë në Virxhinia, udhëhequr nga blera rishtazi ime $50 GPS appliance plug-in thing to my phone. The device was flawless. After the five hour drive, I kishte energji për të bërë një të kandidojë bukur në mulli të ecurit dhe pastaj, edhe më e habitshme, 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 minuta e 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, Unë do ta lidhë këtë informacion në seri e mia gjatë në EUSP.com for End Users trying to get the most use out of that tool. I blew through my slides and demo in 35 minuta, to my dismay at the time. Për fat të mirë, Q&Një ishte gjallë, no doubt helped by the fact that it was early morning before lunch. Q&A is my favorite part of any presentation.

Ka pasur shumë tema interesante dhe unë shpresoj për të blog rreth tyre në hollësi këtë javë (Ora lejuar, si gjithmonë). 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) për 3 ose 4 orë (dhe se, pasi kisha mbaruar të pijshëm për një natë). I don’t often get to talk about Farscape ose Babylon 5 me banorët e qytetit Kansas.

Bob Fox ishte atje dhe si zakonisht, është një shakullinë i intros, chats and just plain frenetic energy. He invited me to Saturday breakfast with Sahil Malik and that was great.

E shtunë (ditë 2), Mike Lotter zvarritur veten në konferencë për të folur në lidhje me InfoPath dhe pastaj ai u bashkua me Becky në fund të ditës për të bërë një lloj të përgjithshëm Q&Një sesion për rreth 30 në 45 minuta u përqendrua kryesisht në InfoPath (Mikrofon) dhe 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" duke shkuar përpara.

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. Më në fund, Unë dua të falenderoj publikisht Gary Blatt, Gary Vaughn and Bob Fox for alerting me to and allowing me to speak at the conference. Sigurisht, 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, është i frikshëm për takim me të gjitha ato personalitete online ju keni njohur nëpërmjet blogs, eksitim, Forume, etj.

</fund>

Abonohen në blogun tim.

Technorati Tags:

FBA dhe SQL Server: A 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 (as opposed to embedding a user ID in a SQL query or some other approach).

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, për mungesë të një fjale më të mirë, manually impersonating an AD user so that we could connect to SQL such that SQL data level security works.

Even though FBA is an ASP.NET feature, we SharePoint Nation people have taught the various search engines that if you’re querying for 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.

Në rrjedhën e kërkimeve kjo, ne ri-lexuar ky artikull: ASP.NET imitim

Më shumë hulumtime na çoi në këtë artikull codproject: http://www.codeproject.com/KB/cs/cpimpersonation1.aspx

Kjo na ndihmoi shkruani kodin tonë, which I’ve included below. It’s not the most elegant stuff, por ai ka punuar. I hope you find it helpful.

Këtu është kodi që ka punuar për ne:

mbrojtur void btnSearchCarrier_Click(dërguesi objekt, E EventArgs)
 {
 mundohem
 {
 U = ImpersonateUser i ri ImpersonateUser();
 // TË GJITHA: Replace kredencialet
 ("DomainName", "UserName", "Password");

//
 KODI I
//

 iU.Undo();
 }
 kap (Ex Përjashtim)
 {

 }
 }

// Përdorimi imitim klasë siç u përmend më poshtë.

publik klasë ImpersonateUser
 {
 [DllImport("advapi32.dll", SetLastError = i vërtetë)]
 publik i pandryshueshëm nga jashtë bool LogonUser(
 LpszUsername String,
 String lpszDomain,
 String lpszPassword,
 dwLogonType int,
 int dwLogonProvider,
 ref IntPtr phToken);

 [DllImport("kernel32.dll", Charset = CharSet.Auto)]
 privat nga jashtë i pandryshueshëm bool CloseHandle(Trajtojë IntPtr);

 privat i pandryshueshëm IntPtr tokenHandle = i ri IntPtr(0);
 privat i pandryshueshëm WindowsImpersonationContext impersonatedUser;

 // Nëse ju përfshijnë këtë kod në një DLL, të jetë i sigurt për të kërkuar që ajo
 // shkon me FullTrust.
 [PermissionSetAttribute(SecurityAction.Demand, Name = "FullTrust")]
 publik pavlefshme të bëhem(string DomainName, userName string, string fjalëkalimi)
 {
 mundohem
 {

 // Përdorni funksionin e pakontrolluar LogonUser për të marrë shenjë përdoruesit për
 // përdorues specifikuar, sferë, pseudonimi dhe fjalëkalimi.
 const int = LOGON32_PROVIDER_DEFAULT 0;

 // Kalimi këtë parametër shkakton LogonUser për të krijuar një shenjë primare.
 const int = LOGON32_LOGON_INTERACTIVE 2;
 tokenHandle = IntPtr.Zero;

 // Hap -1 Telefononi LogonUser për të marrë një trajtuar në një shenjë të qasjes.
 bool = returnValue LogonUser(
 userName,
 domain name,
 fjalëkalim,
 LOGON32_LOGON_INTERACTIVE,
 LOGON32_PROVIDER_DEFAULT,
 Pronës tokenHandle); // tokenHandle - re të sigurisë token

 nëse (== false returnValue)
 {
 int ret = Marshal.GetLastWin32Error();
 Console.WriteLine("LogonUser call failed with error code : " +
 e drejtë);
 hedh System.ComponentModel ri.Win32Exception(e drejtë);
 }

 // Hap - 2
 WindowsIdentity newId = i ri WindowsIdentity(tokenHandle);
 // Hap -3
 impersonatedUser = newId.Impersonate();

 }
 kap (Ex Përjashtim)
 {
 Console.WriteLine("Exception occurred. " + ex.Message);
 }
 }


 /// <përmbledhje>
 /// Stacionet imitim
 /// </përmbledhje>
 publik Undo pavlefshme()
 {
 impersonatedUser.Undo();
 // Lironi argumentet.
 nëse (tokenHandle != IntPtr.Zero)
 CloseHandle(tokenHandle);
 }
 }

</fund>

Abonohen në blogun tim.

Technorati Tags:

Shtimi tek Lore: SSRS tregon mua “rsAccessDenied”, Por … Unë vërtetë nuk kanë qasje

A few weeks back, 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 (the main feature being a clever lookup on a parameter with several thousand searchable values behind it).

This was working great in the development environment but in the user acceptance testing (UAT) mjedis, it wouldn’t work. Firing up the debugger, we would see exception details like this:

The permissions granted to user ‘UAT_domain\mosssvc’ are insufficient for performing this operation.(rsAccessDenied).

If you do a live search on the above error, 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" e drejtë. We probably tried them all.

Në rastin tonë, the problem was that we had done a backup/restore of DEV to UAT. Somewhere in the data, something was still referring to "DEV_domain" (instead of the updated "UAT_Domain"). We created a new site, added the web part and that solved our problem.

Hopefully this will save someone an hour or two down the line.

</fund>

Abonohen në blogun tim.

Technorati Tags:

Fix shpejtë: Përdorimi SharePoint site Hedh [HttpException (0x80004005): Kërkesa kohë jashtë.]

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, but "suddenly" një faqe palidhur u bë shumë i ngadaltë dhe shpesh në kohën e duhur me këtë gabim:

[HttpException (0x80004005): Kërkesa kohë jashtë.]

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 besueshëm ?Përmbajtja = 1 teknikë debug, Unë në fakt kam gjetur 11 pjesët web në faqen, only two of which were visible. Even better (nga një let's-shpresoj-i-gjej-diçka-të shëmtuar-Ja-se-I-mund-fix perspektivë), three of those closed web parts had a name of "Error".

Unë fshihet ato pjesë web (e cila në vetvete mori një kohë të gjatë çuditërisht) and that solved the problem. For today 🙂

</fund>

Abonohen në blogun tim.

Technorati Tags:

Trajnimi në klasë FAST është Shkëlqyer

I’m starting day 4 of FAST’s partner training headed up by Larry Kaye here in Needham, MA.

This 5-day session is broken down into classes (3 dhe 2 days respectively) entitled "FAST ESP: Developing Custom Search Applications for Alliance Partners I" and "FAST ESP: Developing Custom Search Applications for Alliance Partners II".

This is a real boot camp type class. The material is deep (very, very deep). The instructor (Larry) clearly knows his stuff. I highly recommend this training if you considering it.

</fund>

SharePoint dhe FAST — Gjalpë Kikirik Reese së Kupat e Ndërmarrjeve Apps?

Unë kam mbaruar deri ditën e 2 e trajnimit shpejtë në diell Needham, MA, dhe unë jam duke shpërthyer me ide (të cilat të gjitha klasat trajnimi të mirë të bëjë për mua). 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" pushed it out of my head.

We SharePoint WSS 3.0 / MOSS implementers frequently face a tough problem with any reasonably-sized SharePoint project: How do we get all the untagged data loaded into SharePoint such that it all fits within our perfectly designed information architecture?

Often enough, this isn’t such a hard problem because we scope ourselves out of trouble: "We don’t care about anything more than 3 months old." "We’ll handle all that old stuff with keyword search and going-forward we’ll do it the RIGHT way…" Etc.

Por, 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 (or even millions) of docs — the loading dhe tagging of which is our devout wish?

FAST might be the answer.

FAST’s search process includes a lot of moving parts but one simplified view is this:

  • A crawler process looks for content.
  • It finds content and hands it off to a broker process that manages a pool of document processors.
  • Broker process hands it off to one of the document processors.
  • The document processor analyzes the document and via a pipeline process, analyzes the bejeezus out of the document and hands it off to an index builder type process.

On the starship FAST, we have a lot of control over the document processing pipeline. We can mix and match about 100 pipeline components and, most interestingly, 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.

Kështu … using FAST in combination with our own custom pipeline component, we can grab all that context information from FAST and feed it back to MOSS. It might go something like this:

  • Document is fed into FAST from MOSS.
  • Normal crazy-obsessive FAST document parsing and categorization happens.
  • Our own custom pipeline component drops some of that context information off to a database.
  • A process of our own design reads the context information, makes some decisions on how to fit that MOSS document within our IA and marks it up using a web service and the object model.

Sigurisht, no such automated process can be perfect but thanks to the obsessive (and possibly insane-but-in-a-good-way FAST people), we may have a real fighting shot at a truly effective mass load process that does more than just fill up a SQL database with a bunch of barely-searchable documents.

</fund>

Abonohen në blogun tim.

Technorati Tags: , ,

Mësoni Rreth Përdoruesit Fundi Në www.EndUserSharePoint.com

Mark Miller gjatë në http://www.endusersharepoint.com has built, në përvojën time, the best end-user focused SharePoint site in the ‘sphere. In the last month, he has enlisted some of the premier end-user focused bloggers around to contribute to the "front page" mbi një bazë të rregullt, including but not limited to Paul Culmsee, Chris Quick, dhe Dessie Lunsford. He has others lined up and ready to contribute as their schedules allow.

I jumped on the chance to participate and my inaugural post is here. 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, those articles will always keep the End User front and center.

I personally tend to divide the SharePoint world into three broad groups: SharePoint consultants, full-time SharePoint staff developers and end users. When I write, I often ask myself, which of these groups might be interested in the subject? Most often, I end up writing for the first two (technical) groups, mainly because I’m a consultant myself; it’s always easier and more authentic to write about those things with which you’re most familiar on a personal level.

As I’ve noted before, the end user community is far, 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. Megjithatë, 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 it out.

</fund>

Abonohen në blogun tim.

Duke u thirrur SSRS Shërbimet e Internetit Nga WSS / MOSS në mjedis FBA

We needed to invoke the "CreateSubscription" 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: Nuk është i autorizuar
  • Objekti Moved

The "object moved" message was most interesting because it was saying that the "object" (Shërbimi SSRS tonë) had "moved" to login.aspx. This clearly meant we had some kind of authentication problem.

I eventually realized that I had bookmarked a blog entry 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 (si i 06/09/08) because it wants to authenticate. The link I provide brings you to an "all posts" view and you can locate the specific article by searching for "Accessing MOSS Web Services using Forms Based Authentication".

Këtu është kodi që ka punuar për ne:

ReportingService2006 rs = zero; 
// Authenticate Authentication auth = i ri Authentication(); 
auth.Url = "http://URL/_vti_bin/Authentication.asmx";
auth.CookieContainer =
i ri CookieContainer();
LoginResult result = auth.Login("userid", "password");
nëse (result.ErrorCode == LoginErrorCode.NoError) 
{
// No error, so get the cookies.
CookieCollection cookies = auth.CookieContainer.GetCookies(i ri Uri(auth.Url));
Cookie authCookie = cookies[result.CookieName];
rs =
i ri ReportingService2006();
rs.Url =
"http://server/_vti_bin/ReportServer/ReportService2006.asmx";
rs.CookieContainer =
i ri CookieContainer();
rs.CookieContainer.Add(authCookie);
}
mundohem
{
  rs.CreateSubscription(report, extSettings, desc, eventType, matchData, parameters1);
}
kap (Ex Përjashtim)
{
  Console.WriteLine(ex.Message.ToString());
}

I interpret things to work like this:

  • Our web part needs to dial up the authentication service and say, "Hey, Tony, it’s me!".
  • Authentication service replies saying, "Hey, I know you. How are the kids? Here’s a token."
  • We call up the SSRS service and say, "Tony sent me, here’s the token."

</fund>

Abonohen në blogun tim.

A keni kryer analizën tuaj mujor Kërko?

Kjo është një praktikë e mirë, ndoshta edhe një Praktika më e mirë, për të rishikuar kërkimit tuaj raporton një herë në muaj dhe të shohim për mundësi për të shtuar baste të mira, 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’ 🙂

</fund>

Abonohen në blogun tim.

Technorati Tags:

Faceted Gardh Kërko Sitter No More

I had reason today to play about with the codeplex faceted search project today.

Ajo ka qenë rreth e rrotull për një kohë, por kam hezituar që të shkarkoni dhe të përdorni atë për arsyet e zakonshme (kryesisht mungesa e kohës), plus outright fear 🙂

Nëse ju jeni në kërkim për të përmirësuar kërkimin tuaj dhe të eksplorojnë mundësitë e reja, download it and install it when you have an hour or so of free time. I followed the installation manual’s instructions and it took me less than 20 minutes to have it installed and working. It provides value minute zero.

It does look pretty hard to extend. The authors provide a detailed walk-through for a complex BDC scenario. I may be missing it, but I wish they would also provide a simpler scenario involving one of the pre-existing properties or maybe adding one new managed property. I shall try and write that up myself in the next period of time.

Bottom line — in minutes, you can install, configure it, use it and add some pretty cool functionality to your vanilla MOSS search and be a hero 🙂

</fund>

Abonohen në blogun tim.

Technorati Tags: