קאַטעגאָריע אַרטשיוועס: שאַרעפּאָינט סאָלוטיאָנס דיזיין

קאַפּטשערינג “מאַילטאָ:” מעטריקס

I’m on a project where we need to collect metrics around a function named "Share a Story." The idea is very simple — אויב איר ניטאָ קוקן בייַ אַ טשיקאַווע אַרטיקל אויף די ינטראַנעט און ווילן צו טיילן עס מיט עמעצער, click a link labeled "Share this story" Email עס צו דיין באַדי.

מיר געשפילט אַרום מיט אַ מנהג פאָרעם פֿאַר דעם צוועק, אָבער אין די סוף, פּראָסט זינען וואַן די טאָג און מיר נאָר נוצן די באַקאַנט <אַ הרעף = מאַילטאָ:…> technique. (<אַ הרעף מאַילטאָ:…> איז אַ סאַפּרייזינגלי געזונט ביסל ביסל פון HTML; ווי אַ באָנוס, וואָס לינק ברענגט מיר צוריק צו מיין אַלט יוניקס מענטש בלעטער טעג; יענע האבן די טעג!).

דעם טעכניק גיט אַ גרויס צובינד פֿאַר סוף ניצערס זינט זיי באַקומען צו נוצן זייער באַקאַנט מס אַוטלוק קליענט (אָדער וועלכער Email קליענט זיי האָבן אינסטאַלירן).

עס מאכט דאס האַרדער אויף אונדז נעבעך דעוועלאָפּער טייפּס זינט זיי קליענט * אויך * וויל צו לויפן אַ באַריכט אין דער צוקונפֿט אַז ווייזט ווי אָפֿט ניצערס שער מעשיות און אַפֿילו וואָס מעשיות זענען שערד רובֿ אָפֿט.

We whiteboarded a few potential solutions. My favorite is to carbon copy (קק) a SharePoint list. That way, the end user still gets the outlook client while we get to capture the event because we’ll get a copy of the email ourselves. There are some obvious drawbacks. The main problem is that the user could simply blank out or otherwise mangle the CC address. און, we need to manage that event library of emails. We have a scheduled job on the white board responsible for that cleanup.

אויב איר האָט עטלעכע קלוג צוגאַנג צו סאַלווינג דעם פּראָבלעם, ביטע טאָן זאָגן.

</עק>

אַבאָנירן צו מיין בלאָג.

גיי מיר אויף טוויטטער בייַ http://www.twitter.com/pagalvin

דיפיינינג “גרויס” שאַרעפּאָינט רעקווירעמענץ

ווי געבעטן און צוגעזאגט, I’ve uploaded my presentation on how to obtain "great" requirements from end users for SharePoint projects and implementations. It’s here: הטטפּ://cid-1cc1edb3daa9b8aa.skydrive.live.com/self.aspx/SharePoint/Paul% 20גאַלווין% 20גרעאַט% 20רעקווירעמענצ.זיפּ

איך דערלאנגט דעם אין די שאַרעפּאָינט בעסטער פּראַקטיסעס זיצונג אין פעברואר 2009 (www.sharepointbestpractices.com). If you attended the conference, איר וועט אויך באַקומען דעם אויף דער זיצונג ווי.

The presentation includes a lot of notes with most slides. It’s not just bullet points.

(זען דאָ פֿאַר מיין אנדערע פּרעזענטירונג אויף אַ גאַווערנאַנס פאַל לערנען: http://paulgalvin.spaces.live.com/blog/cns!1CC1EDB3DAA9B8AA!3099.entry

</עק>

אַבאָנירן צו מיין בלאָג.

גיי מיר אויף טוויטטער בייַ http://www.twitter.com/pagalvin

זיך-סערוויס מאַפּע קרעאַטיאָן איז נישט עקסאַקטלי וועגן שאפן זייטלעך

ווי פילע שאַרעפּאָינט קאָנסולטאַנט טייפּס, I’ve been exposed to a lot of SharePoint functionality. עטלעכע מאל, I dive pretty deep. Other times I just notice it as I’m flying by to another set of menu options. One of those is "self-service site creation." I haven’t had a need for it until this week.

דעם וואָך, I need to solve a business problem which I think is going to become more common as companies loosen up and embrace more direct end user control over SharePoint. אין דעם פאַל, I’ve designed a site template to support a specific end user community. Folks in this community should be able to create their own sites at will using this template whenever the urge strikes them.

I recalled seeing "self-service site creation" before and I’ve always tucked that away in the back of my head thinking that "self service site creation" איז שאַרעפּאָינט לינגאָ טייַטש, דאָך גענוג, something like "turn me on if you want end users to be able to create sites when they want to."

אַזוי, איך קער עס אויף, פּרובירן עס אויס און פֿאַר מיר, it’s not creating sites. It’s creating site זאמלונגען. Pretty big difference. That’s not what I want, גאָרנישט.

It is possible to let end users create new sub sites via a custom permission level. This is exactly where I would have gone in the first place except that the label "self-service site creation" label deceived me. Via twitter, איך לערנען אַז עס ס פארפירט אנדערע ווי געזונט 🙂

איך בין נאָך ארבעטן אויס ווי צו צושטעלן אַ קליין ביסל פון אַ מער סטרימליינד פּראָצעס בשעת סטייינג ריין אויס פון די קעסטל, but there’s a definite path to follow. Just don’t get distracted by that label.

</עק>

אַבאָנירן צו מיין בלאָג.

גיי מיר אויף טוויטטער בייַ http://www.twitter.com/pagalvin

טעטשנאָראַטי טאַגס:

ספּיננינג אַרויף צייטווייליגע ווירטואַל וופע ס פֿאַר ון און פּראָפיט

איך איז געווען איינער פון 20 אָדער 30 (אָדער אפֿשר 100?) פּאַנאַליסץ לעצטע נאַכט בייַ די ניו יארק שאַרעפּאָינט ניצערס גרופע meeting. Instead of the usual presentation format, דאָס איז געווען אַלע וועגן ק&A between the audience and the panel members. Early on, מיכאל לאַטער באַקענענ מיר צו אַ נייע געדאַנק און איך געוואלט צו טיילן.

An audience member described how his company had paid a consultant to write an application for his company. The consultant wrote it as a console application using the SharePoint object model. ווי אַ רעזולטאַט, this meant that the program had to be run on a server in the farm. This meant that anyone that wanted to use the app would have to log onto the server, do the work and log off. אין ערשטער, דאָס איז געווען ניט אַ פּראָבלעם, אָבער באַלד, מער און מער (ניט-טעכניש) users needed to use the utility. His question was (פּעראַפרייזינג):

"What are my options? I don’t want to keep letting users log directly onto the server, אָבער זיי דאַרפֿן אַז פאַנגקשאַנאַליטי."

מיכאל לאַטער סאַגדזשעסטיד אַז ער קאַנפיגיער אַ נייַ ווירטואַל מאַשין, join it to the farm as a WFE and let users run the application from there.

This is a pretty stunning idea for me. Generalizing this solution brings to mind the notion of essentially temporary, almost disposable WFE’s. I think it’s a pretty neat concept. This temporary WFE can run a console application that uses the SharePoint object model. You could also use it to run stsadm commands. It doesn’t have to be part of regular local balancing. If it goes down or gets wrecked, you can just spin up a new one. I repeat myself, אָבער איך נאָר האָבן צו זאָגן אַז איך טראַכטן עס ס אַ טאַקע ציכטיק געדאַנק.

</עק>

אַבאָנירן צו מיין בלאָג.

גיי מיר אויף טוויטטער בייַ http://www.twitter.com/pagalvin

טעטשנאָראַטי טאַגס:

גרויס-וואָג מאָך דאָקומענט פאַרוואַלטונג פּראַדזשעקס: 50ק פּער טאָג, 10 מיליאָן גאַנץ

דאס פאַרגאַנגענהייַט וואָך, עמעצער געפרעגט אַ קשיא וועגן שאפן אַ שאַרעפּאָינט סוויווע וואָס וואָלט שעפּן אַ שיין הויך באַנד פון נייַ דאָקומענטן (10,000 +/- אין דעם פאַל). I don’t know much about this, אָבער דאַנק צו דעם ווייַס פּאַפּיר, איך פילן פיל בעסער ינפאָרמד.

פֿאַר מיר, דאָס ווייַס פּאַפּיר איז שיין פיל נאָר אַ בוך צייכן אין די מאָמענט, but I did start reading through it and thought I’d highlight my main take-away. SharePoint can be scaled to handle, בייַ אַ מינימום, דעם מאַסע:

  • 50ק נייַ דאָקומענטן פּער טאָג.
  • 10 מיליאָן דאָקומענטן גאַנץ.

I write the 50k/10MM figures because they are easy enough to remember. As long as you know they are minimums, you won’t get into trouble. The maximums are at least 10 פּראָצענט העכער ווי אַז און מיט עקסטרעם טונינג, עפשער אַ פּלאַץ העכער.

דאַנק, מייק וואַלש, אַמאָל ווידער פֿאַר זייַן וואכנשריפט ווסס FAQ דערהייַנטיקונגען און קערעקשאַנז פּאָסטן. If you’re not subscribed to it, איר זאָל עמעס טראַכטן וועגן טאן עס.

</עק>

אַבאָנירן צו מיין בלאָג.

שפּאָרן עלטער מס אָפיס פילעס צו שאַרעפּאָינט ניצן וועבדאַוו — פּראָבלעמס און פיקסיז

בעת דער פאַרגאַנגענהייַט וואָך, מייַן colleague and I were doing some work for a client in NYC. We were testing a different aspects of a MOSS implementation using their "standard" ווערקסטיישאַן בויען (ווי קעגן צו אונדזער לאַפּטאָפּס). While doing that, מיר געלאפן אין אַ ביסל ערראָרס דורך ווייַטערדיק די טריט:

  • Open up an MS word document via windows explorer (which uses WebDAV).
  • Make a change.
  • Save it.

We came to realize that some times (usually the first time) מיר געראטעוועט דעם דאָקומענט, the save didn’t "stick." Save did not save. We would pull that document back up and our changes simply were not there.

מיר האבן נישט פֿאַרשטיין די וואָרצל אַרויסגעבן אין דעם פונט, but we figured that we should make sure that the latest MS Office service pack had been installed on that work station. The IT folks went and did that. We went through the test again and we discovered a new problem. When we saved it, מיר איצט גאַט דעם טעות:

בילד

דאס מאָל, עס געווען ווי יעדער ענדערונג איז געווען, אין פאַקט, געהאלפן, whether we answered Yes or No to the scripts question.

מיר לעסאָף האט אַ קוק אין די פאַקטיש ווערסיע פון ​​אָפיס און עס טורנס אויס אַז די ווערקסטיישאַן איז פליסנדיק מס אָפיס 2000 מיט דינען פּאַק 3 וואָס ווייזט זיך אונטער הילף -> About as "Office 2002".

דער מאָראַל פון דער געשיכטע: איך וועל שטענדיק נוצן אָפיס 2003 ווי מיין מינימום באַסעלינע אָפיס ווערסיע ווען ניצן וועבדאַוו און מאָך.

</עק>

אַבאָנירן צו מיין בלאָג.

טעטשנאָראַטי טאַגס:

(פֿאַר זוכן מאָטאָר צוועקן, דאָס איז דער טעות ס טעקסט):

ליניע: 11807

טשאַר: 2

גרייַז: כייפעץ טוט נישט שטיצן דעם פאַרמאָג אָדער אופֿן

קאָדעקס; 0

URL: http://sharepoint01/DocumentReview/_vti_bin/owssvr.dll?location=Documents/1210/testworddocument.doc&dialogview=SaveForm

צי איר ווילן צו פאָרזעצן פליסנדיק סקריפּס אויף דעם בלאַט?

שאַרעפּאָינט מיגראַטיאָן טיפּ: נוצן “ונטאַגגעד דאַטן” קוקן פֿאַר ינקרעמענטאַל מיגראַטיאָן

אין איין אָדער מיין זייער ערשטער בלאָג הודעות, איך דיסקרייבד די קוילעלדיק פּראָצעס מיר נאכגעגאנגען צו מייגרייט אַ קונה פון ספּס 2003 to MOSS. A reader left a comment asking for more detail and here it is.

פֿאַר וואָס מייגריישאַן פּרויעקט, מיר האט צו געפינען אַ גוט וועג צו מאַך אַ פּלאַץ פון ספּס 2003 documents over to MOSS. The initial load was easy enough. Create a new target document library in MOSS and use windows explorer to move the documents.

דאס איז די נייַ דאָקומענט ביבליאָטעק:

בילד

Open up two windows explorers. Point the first at SPS 2003 and the second at the new document library in MOSS. The following screen shot shows this. Note that the top browser is actually pointing at my c:\טעמפּ פאָר, אָבער איר קענען ימאַדזשאַן עס פּוינטינג צו אַ ספּס 2003 דאָקומענט ביבליאָטעק:

בילד

נאָך וואָס שלעפּן און קאַפּ אָפּעראַציע, מיין ציל קוקט ווי דעם:

בילד

Now it’s time to deal with the metadata. Assume we have just one column of metadata for these documents named "location." We can see from the above "all documents" view that the location is blank. It’s easy enough to use a data sheet view to enter the location, or even go into each document’s properties one by one to add a location. Let’s assume that there is no practical way to assign the location column a value automatically and that end users must do this by hand. דערצו, לאָזן ס יבערנעמען עס זענען הונדערטער פון דאָקומענטן (אפֿשר טויזנטער) and that it will take many many days to update the metadata. As we all know, no one is going to sit down and work for four of five days straight updating meta data for documents. אַנשטאָט, they will break that out over a period of weeks or possibly longer. To facilitate this process, we can create an "untagged data" קוק ווי געוויזן:

בילד

איצט, ווען עמעצער זיצט אַראָפּ צו פאַרברענגען זייער אַלאַקייטיד טעגלעך שעה אָדער צוויי צו פאַרבינדן מייגרייטיד דאָקומענטן, they can use the "untagged documents" קוק צו פאָקוס זייער מי:

בילד

ווי ניצערס פאַרבינדן דאָקומענטן, זיי פאַלן אַוועק דעם רשימה.

This notion of an untagged data view can also help with a class of data validation problem people inquire about on the forums. אויס פון די קעסטל, there’s no way to prevent a user from uploading a document to MOSS and then not enter meta data. We can specify that a particular site column is mandatory and the user won’t be allowed to push the save button. אָבער, אויב דער באַניצער ופּלאָאַדס און דעמאָלט קלאָוזיז דעם בלעטערער (אָדער ניצט Windows Explorer צו צופֿעליקער די דאָקומענט), מיר קענען ניט קראַפט די באַניצער צו אַרייַן מעטאַ דאַטן (ווידער, אויס פון די קעסטל).

This approach can be used to help with that situation. We can use a "poorly tagged data" view to easily identify these documents and correct them. Couple this with a KPI and you have good visibility to the data with drill-down to manage these exceptional circumstances.

</עק>

אַבאָנירן צו מיין בלאָג.

טעטשנאָראַטי טאַגס:

מאָך קליינע פאַרם ינסטאַללאַטיאָן און קאָנפיגוראַטיאָן מלחמה סטאָרי

דעם וואָך, I’ve struggled a bit with my team to get MOSS installed in a simple two-server farm. Having gone through it, איך האָבן אַ גרעסער אַפּרישייישאַן פֿאַר די מינים פון פּראָבלעמס מענטשן באַריכט אויף די מסדן גרופּעס און אנדערש.

די לעצט פאַרם קאַנפיגיעריישאַן:

  • סקל / אינדעקס / ינטראַנעט וופע ין דער פירעוואַלל.
  • וופע אין די דיעמזי.
  • Some kind of firewall between the DMZ and the internal server.

Before we started the project, we let the client know which ports needed to be open. During the give and take, back and forth over that, we never explicitly said two important things:

  1. SSL means you need a certificate.
  2. The DMZ server must be part of a domain.

טאָג איין, we showed up to install MOSS and learned that the domain accounts for database and MOSS hadn’t been created. To move things along, we went ahead and installed everything with a local account on the intranet server.

אין דעם פונט, מיר דיסקאַווערד דער צעמישונג איבער די ססל באַווייַזן און, סאַדלי, decided to have our infrastructure guy come back later that week to continue installing the DMZ server. אין דער מיינען צייַט, מיר לייזונג אַרקאַטעקץ אריבערגעפארן פאָרויס מיט די געשעפט שטאָפּן.

א אָפּרוטעג גייט דורך און דער קליענט באקומט די באַווייַזן.

אונדזער ינפראַסטראַקטשער באָכער ווייזט אַרויף און דיסקאַווערז אַז די דיעמזי סערווער איז נישט איינגעשריבן צו קיין פעלד (אָדער אַ פּערימעטער פעלד מיט לימיטעד צוטרוי אָדער די ינטראַנעט פעלד). We wasted nearly a 1/2 day on that. If we hadn’t let the missing SSL certificate bog us down, we would have discovered this earlier. Oh well….

אן אנדער טאָג פּאַסיז און די פארשידענע זיכערהייַט קאמיטעטן, אינטערעסירט פּאַרטיעס און (ניט אַזוי) אומשולדיק בייסטאַנדערז אַלע שטימען אַז עס ס 'גוט צו פאַרבינדן די דיעמזי סערווירער מיט די ינטראַנעט פעלד (דאָס איז אַ פּאָק, נאָך אַלע, נישט אַ פּראָדוקציע לייזונג).

Infrastructure guy comes in to wrap things up. This time we successfully pass through the the modern-day gauntlet affectionately known as the "SharePoint Configuration Wizard." We have a peek in central administration and … יי כאָ! … DMZ server is listed in the farm. We look a little closer and realize we broke open the Champaign a mite bit early. WSS services is stuck in a "starting" מאַצעוו.

לאנג געשיכטע קורץ, it turns out that we forgot to change the identity of the service account via central administration from the original local account to the new domain account. We did that, re-ran the configuration wizard and voila! We were in business.

</עק>

אַבאָנירן צו מיין בלאָג.

טעטשנאָראַטי טאַגס:

וויסן די האַרד ווייַ — דיעמזי וופע דאַרף זייַן אין אַ פעלד

כאָטש עס ס 'נישט ממש אמת, ווי אַ פּראַקטיש ענין, אַ אינטערנעט-פייסינג וועב פראָנט סוף אין אַ דיעמזי מוזן זייַן אין אַ פעלד (י.ע. ניט עטלעכע סטאַנדאַלאָנע סערווער אין זייַן אייגן ביסל וואָרקגראָופּ). It doesn’t need to be in the same domain as the internal WFE(ס) און אנדערע סערווערס (און מיסטאָמע זאָל ניט), אָבער עס דאַרף צו זייַן אַ פעלד.

My colleagues and I spent an inordinate amount of time on a proposal which included SharePoint pre-requisites. This included a comprehensive list of firewall configurations that would enable the DMZ server to join the farm and so forth. סאַדלי, מיר ניט אַנדערש צו לייגן אַ זאַץ ערגעץ אַז האט, צו די ווירקונג, "the whole bloody point of this configuration is to allow your DMZ WFE server, אין אַ פעלד, צו פאַרבינדן די ינערלעך פאַרם."

א גאנץ שטורעם פון געשעענישן, ווו מיר בייסיקלי געקוקט לינקס ווען מיר זאל האָבן געקוקט רעכט, קאַנספּייערד צו באַהאַלטן דעם פּראָבלעם פון אונדז ביז פערלי שפּעט אין דער פּראָצעס, אַזוי פּרעווענטינג מיר פון ינוואָוקינג מיין "זאָגן שלעכט נייַעס פרי" הערשן.

זיפץ.

אַבאָנירן צו מיין בלאָג.

טעטשנאָראַטי טאַגס:

ימפּלאַמענטינג האר / דעטאַל רעלאַטיאָנשיפּס ניצן מנהג ליס

Forum users frequently as questions like this:

> העלא,
>
> ביטע זאָגן מיר אויב עס זענען קיין פּאַסאַבילאַטיז צו בויען אַ מנהג רשימה מיט
> בעל און דעטאַל טיפּ (ווי ינווויסיז) without using InfoPath.
>

שאַרעפּאָינט גיט עטלעכע אויס פון די קעסטל פֿעיִקייטן וואָס שטיצן מינים פון געשעפט באדערפענישן ווי אַז.

ינ אַלגעמיין, one links two lists together using a lookup column. List A contains the invoice header information and list B contains invoice details.

Use additional lists to maintain customer numbers, product numbers, אאז"ו ו.

Use a content query web part (in MOSS only) and/or a data view web part to create merged views of the lists. SQL Server Reporting Services (SRS) is also available for the reporting side of it.

אָבער, there are some important limitations that will make it difficult to use pure out-of-the-box features for anything that is even moderately complex. These include:

  • Size of related lookup lists vs. "smartness" of the lookup column type. A lookup column type presents itself on the UI differently depending on whether you’ve enabled multi-select or not. In either case, the out-of-the-box control shows all available items from the source list. If the source list has 1,000 זאכן, that’s going to be a problem. The lookup control does not page through those items. אַנשטאָט, it pulls all of them into the control. That makes for a very awkward user interface both in terms of data entry and performance.
  • Lookups "pull back" one column of information. You can never pull back more than one column of information from the source list. לעמאָשל, you cannot select a customer "12345" and display the number as well as the customer’s name and address at the same time. The lookup only shows the customer number and nothing else. This makes for an awkward and difficult user interface.
  • No intra-form communication. I’ve written about this here. You can’t implement cascading drop-downs, conditionally enable/disable fields, אאז"ו ו.
  • No cascading deletes or built-in referential integrity. SharePoint treats custom lists as independent entities and does not allow you to link them to each other in a traditional ERD sense. לעמאָשל, SharePoint allows you to create two custom lists, "customer" and "invoice header". You can create an invoice header that links back to a customer in the customer list. דעמאָלט, you can delete the customer from the list. אויס פון די קעסטל, there is no way to prevent this. To solve this kind of problem, you would normally use event handlers.

It may seem bleak, but I would still use SharePoint as a starting point for building this kind of functionality. Though there are gaps between what you need in a solution, SharePoint enables us to fill those gaps using tools such as:

  • Event handlers. Use them to enforce referential integrity.
  • Custom columns: Create custom column types and use them in lieu of the default lookup column. Add paging, buffering and AJAX features to make them responsive.
  • בדק. This MOSS-only feature enables us to query other SharePoint lists with a superior user interface to the usual lookup column. BDC can also reach out to a back end server application. Use BDC to avoid replication. Rather than replicating customer information from a back end ERP system, use BDC instead. BDC features provide a nice user interface to pull that information directly from the ERP system where it belongs and avoids the hassle of maintaining a replication solution.

    BDC is a MOSS feature (not available in WSS) and is challenging to configure.

  • ASP.NET web form: Create a full-featured AJAX-enabled form that uses the SharePoint object model and/or web services to leverage SharePoint lists while providing a very responsive user interface.

The last option may feel like you’re starting from scratch, but consider the fact that the SharePoint platform starts you off with the following key features:

  • Security model with maintenance.
  • Menu system with maintenance.
  • "Master table" (י.ע. מנהג רשימות) with security, built-in maintenance and auditing.
  • זוכן.
  • Back end integration tools (בדק).

If you start with a new blank project in visual studio, you have a lot of infrastructure and plumbing to build before you get close to what SharePoint offers.

I do believe that Microsoft intends to extend SharePoint in this direction of application development. It seems like a natural extension to the existing SharePoint base. Microsoft’s CRM application provides a great deal of extensibility of the types needed to support header/detail application development. Although those features are in CRM, the technology is obviously available to the SharePoint development team and I expect that it will make its way into the SharePoint product by end of 2008. If anyone has an knowledge or insight into this, ביטע לאָזן אַ באַמערקונג.

</עק>