Intressant iPhone ansökan

image Det mobila teamet på Slalom har utvecklat en riktigt cool iPad applikation som kombinerar virtual reality augmentation med offline förmåga att tillhandahålla vad som kan vara den bästa New York tunnelbana finder och routning app finns idag.

Här är platsen som beskriver app mer i detalj: http://www.nycstationfinder.com/.

Jag har inte alla Apple-produkter så jag inte kan testa det själv, men det verkar ganska cool. Jag hoppas att de hamnar det över till Android snart.

</slutet>

Prenumerera på min blogg.

Följ mig på Twitter vid http://www.twitter.com/pagalvin

MVP igen

Microsoft re-awarded mig med SharePoint MVP den 1 juli i år och det är inte mindre spännande än det var första gången för fyra år sedan.

SharePoint gemenskapen är bara en fantastisk plats.  Jag minns när jag först infördes till SharePoint av min gamla arbetsgivare, Conchango.  Jag var inte glad om det Leende.  Jag hade levt i en värld som BizTalk-under ett år eller två ledde fram till mitt jobb det och innan, arbetade i en annan ökaraktär värld med människor och företag som försörjde sig på Framsteg Software.  Jag säger "öar" eftersom SharePoint världen är allt annat än!

Jag är ständigt glad och mycket glada över att vara en del av denna bisarra online gemenskap mellan människor som känner sig konstigt tvingas blogg oändligt, ge upp sina lördagar gratis konferenser, hemsöka forum online, bygga alla typer av whacked ut gratis produkter att sätta upp på CodePlex och en myriad av andra gemenskapens insatser i alla former och storlekar. 

Jag vet inte vad det handlar om denna produkt som inspirerar sådana ideelt och nedsänkning, men jag hoppas det aldrig ändringar.

</slutet>

Prenumerera på min blogg.

Följ mig på Twitter vid http://www.twitter.com/pagalvin

Låt lysande exempel leder vägen till ökad SharePoint antagande

Min första "rena" BrightStarr blogginlägg offentliggjordes idag.  Här är en teaser:

Det har varit mycket konversation på Internets för sent på avsnittet för SharePoint antagande och särskilt avsaknaden därav. Ingen vill gå till alla problem för att utforma en gård och säkerhet infrastruktur, deltar i workshops, att sätta ihop ett snyggt utseende, arbeta ut en solid rock-informationsarkitektur som klarar av företaget re-orgs och slutligen, en fanfar fyllda utbyggnaden bara för att upptäcka tre månader efter go-live som mindre än 50% företagets anställda använder SharePoint och de flesta av dem använder den för att ersätta de gamla filen nätverksservrarna ("S:\ enhet").

Ingen silver bullet (eller enstaka blogginlägg) kommer att lösa det problemet. Men, Det finns många saker du kan göra för att minska risken för en anemic SharePoint portal. En sådan teknik är det "Shining exempel mönstret."

Jag vill gärna veta om andra SharePoint anta strategier som du vill dela.  Om du delar, Vänligen lämna en kommentar på bloggen BrightStarr.

Läs hela saken här: http://www.brightstarr.com/US/Pages/blog-view.aspx?BlogID=52

</slutet>

Prenumerera på min blogg.

Följ mig på Twitter vid http://www.twitter.com/pagalvin

"Åtkomst nekad” till Default.aspx på en SharePoint 2010 Sub webbplats

En av mina klienter gick live med deras SharePoint 2010 miljön idag.  Vi har upptäckt att en viss grupp av användare inte kunde komma åt sina standardstartsida.  SharePoint svarade med "Åtkomst nekad" och det sedvanliga "logga in som en annan användare" eller "begära åtkomst" svar. 

När vi använt funktionen snitsig "Kontrollera åtkomst" bekräftas det att slutanvändarna verkligen har tillgång.  Ännu, de gick inte att hämta på sidan.

Jag följde en mängd vägar till olika dead ends tills jag bestämde mig att jämföra webbdelarna på sidan bryts mot en liknande arbetar sida.  Jag gjorde det genom att placera sidan i underhà ¥ llsläge genom att lägga till"?innehållet = 1 "till sidan. Så, Det såg ut som "http://Server/Subsite/Subsite/default.aspx?innehållet = 1 ". 

Detta visade mig två webbdelar som heter "Fel" med en beskrivning som "Fel" på sidan bryts.  Jag trodde inte att ta en skärmen cap vid tidpunkten.

Jag bort dem och som löst problemet.

Jag har sett en fråga som denna kommer upp på forum tidigare och jag var mycket skeptisk till den affisch envishet att han hade säkerhet ställa in korrekt.  Jag * vet * jag hade säkerhet ställa in rätt Leende  Nästa gång, I be öppnare och mindre skeptisk.

</slutet>

Prenumerera på min blogg.

Följ mig på Twitter vid http://www.twitter.com/pagalvin

XSLT- med jQuery prover

Jag har gjort mycket av XSLT- och jQuery och trodde jag skulle dela några kodavsnitt som andra kan vara användbara i framtiden.

Exempel 1: Släpper ut enkelt JavaScript / jQuery i XSLT:

<XSL:mallen matchning = "något" XML:mellanslag = "bevara">

  <!– Tomt ut frågan vänligt filter dolt fält –>
  <skript type = "text/javascript">
    $(dokument).redo(funktionen(){
      $("#QueryFriendlyFilters").val("Tom");
    });
  </skript>

</XSL:mall>

Denna bit avger några JavaScript som väntar på sidan Slutför lastning (på grund av den $(dokument).redo(…)) och sedan anger värdet av ett dolt fält namnet QueryFriendlyFilters teckenvärde "Tom".

Exempel 2: Användning <XSL:om> att kontrollera "större än",  "mindre än", m.m..

<XSL:mallen matchning = "något" XML:mellanslag = "bevara">

  <div id = "fdcAllFilters">
 
    <XSL:om test="@Count>0">
      <span class = "fdcFilterLabel">Aktuella filter:</Spänn>
    </XSL:om>

    <!– mer grejer händer här. –>

</XSL:mall>

Ovanstående kodutdrag kontrollerar om ett attribut med namnet "Greve" av elementet "något" är större än noll.  XML-koden bakom detta skulle vara ungefär:”

<något Count = "5" />

Exempel 3: Iterera genom alla element, sammanblandningarna jQuery samtal.

<!– Iterera genom alla filter och visa rätt  Länkar. –>
<XSL:för varje Välj = "UserFilter">

  <en klass = "FilterHref" href = "javascript:mySubmitPage("RemoveUserFilter",'{@ ID}’)">[X]</en>

  <span class = "fdcFilterLabel"><XSL:värde-av select="@FilterValue"/></Spänn>

  <skript type = "text/javascript">

    $(dokument).redo(funktionen(){
        <XSL:texten><![CDATA[$("#QueryFriendlyFilters").val( ($("#QueryFriendlyFilters").val() + " ]]></XSL:texten>\"<XSL:värde-av select="@FilterValue"/>\"<XSL:texten><![CDATA["));]]></XSL:texten>
    });

  </skript>

</XSL:för varje>

Ovanstående kodutdrag är den mest komplicerade och det kan finnas enklare sätt att göra det.

XML-koden bakom detta ser ut ungefär så här:

<UserFilter ID = "123" FilterValue = "xyzzy" />

Detta utdrag iterera genom <UserFilter> noder. 

Det första avger en fästpunkt etikett som när du klickar på åberopar en JavaScript-funktion som redan finns på sidan, "mySubmitPage" och skickar värdet av ett attribut på det <UserFilter> noden heter "ID". 

Det avger sedan några jQuery som väntar på sidan om du vill läsa in.  Att jQuery uppdaterar ett dolt fält med namnet "QueryFriendlyFilters" genom att lägga till värdet för attributet FilterValue.  Observera alla crazy <XSL:texten> och <![CDATA[ … ]]> grejer.

Det är det, hoppas det hjälper!

</slutet>

Prenumerera på min blogg.

Följ mig på Twitter vid http://www.twitter.com/pagalvin

PerformancePoint och fel 33494

En av mina klienter som kallas idag när omgivningen PerformancePoint (i SharePoint 2010) bröt.  En av app servrar i gruppen ont om diskutrymme.  Samtidigt som, klienten avinstallerat "too much" och PP grejer alla slutat fungera.  Olika webbdelar skulle visa "ett oväntat fel uppstod. Fel 33494. Ytterligare detaljer har loggats för administratören":

image

Jag tittade upp felet och hittade inte något specifikt för "Fel 33494" men denna MSDN: S forum bokföring var användbar: http://social.technet.microsoft.com/forums/en-us/sharepoint2010setup/thread/E1FE189D-7F89-455D-A98B-C1A12D8626AB

Jag hittade ADOMD.NET här som en komponent i SQL Server 2008 Funktionspaket: http://www.microsoft.com/downloads/en/details.aspx?FamilyId=228DE03F-3B5A-428A-923F-58A033D316E1&displaylang=en

image

(Klicka för att förstora)

Jag hämtar och installerat som och det fasta allt.

Jag tror att detta är ett ganska oddball slags fel, men om du träffar det, du du ha minst ett alternativ.

</slutet>

Prenumerera på min blogg.

Följ mig på Twitter vid http://www.twitter.com/pagalvin

Lists.asmx, GetListItems och mappar

Jag gjorde lite forskning för någon dag runt webbtjänsten list.asmx som ingår i SharePoint 2010 (och tidigare).  Hon kunde få listobjekten i rotmappen (inklusive namnen på undermappar), men det gick inte att hämta objekt i undermappar.  Jag gjorde några titta på Internet och det är en förvånansvärt gemensamma fråga.  Ännu, Jag kunde inte få ett bra svar på den enkla frågan, "om jag vet att mappen, Hur skaffar jag objekten i mappen?”  Att vara ärlig, Jag försöker inte allt hårt eftersom jag har ville bild man ut på min egen ett tag Leende.

Att ställa in här, Jag har skapat en webbplats med namnet "Blogga Scenarios" och en anpassad lista med namnet "Anpassad lista med Sub mappar".  Mappar med följande namn skapas:

  • År 2005
  • År 2006
  • År 2007

Jag lade till ett par artiklar till mappen "År 2006".  Det är vad det ser ut:

image

Min vän inte skriva C#-kod utan snarare använda Java, SOAP-kuvertet var alltså det hon verkligen behövs.  Att få som, Jag skrev en bit av jQuery och sedan används Spelman för att få http-samtalet.

Här är den relevanta jQuery (Jag kopierade koden anges nedan om du vill kopiera och klistra in):

image

De första nyckeln är omfatta både en <queryOptions> och <QueryOptions> nod.  Den andra nyckeln är att den <Mappen> noden är en URL-adress som klienten har tillgång.

Det kan finnas andra sätt att få detta, men detta fungerat bra för mig när du använder jQuery.

Här är SOAP-kuvertet för ovanstående:

<soapenv:Kuvert xmlns:soapenv =’http://schemas.xmlsoap.org/soap/envelope/’>                
  <soapenv:Organ>
    <GetListItems xmlns =’
http://schemas.microsoft.com/SharePoint/SOAP/’>
      <Listnamn>Anpassad lista med undermappar</Listnamn>
      <viewFields>  
        <ViewFields>
          <FieldRef namn = "titel’ />
          <FieldRef namn ='EncodedAbsUrl’ />
        </ViewFields>
      </viewFields>
      <queryOptions>
        <QueryOptions>
          <Mappen>
http://demoserver1/Blogging Scenarier/listor/Custom lista med Sub mappar/år 2006</Mappen>
        </QueryOptions>
      </queryOptions>
   
</GetListItems>
  </soapenv:Organ>
</soapenv:Kuvert>

En hel del exempel och diskussion kring detta ledde mig att tro att allt jag behöver var <QueryOptions> och ange ett mappnamn.  För mig, Jag behöver både radbryta det inuti <queryOptions> samt ange en fullständig URL för den <Mappen> nod.

Här är jQuery AJAX installationsprogrammet:

$(dokument).redo(funktionen() {
       var soapEnv =
           "<soapenv:Kuvert xmlns:soapenv =’http://schemas.xmlsoap.org/soap/envelope/’> \
               <soapenv:Organ> \
                    <GetListItems xmlns =’http://schemas.microsoft.com/SharePoint/SOAP/’> \
                       <Listnamn>Anpassad lista med undermappar</Listnamn> \
                       <viewFields> \
                           <ViewFields> \
                              <FieldRef namn = "titel’ /> \
                              <FieldRef namn ='EncodedAbsUrl’ /> \
                          </ViewFields> \
                       </viewFields> \
                       <queryOptions> \
                         <QueryOptions> \
                           <Mappen>http://demoserver1/Blogging Scenarier/listor/Custom lista med Sub mappar/år 2006</Mappen> \
                         </QueryOptions> \
                       </queryOptions> \
                   </GetListItems> \
               </soapenv:Organ> \
           </soapenv:Kuvert>";

</slutet>

Prenumerera på min blogg.

Följ mig på Twitter vid http://www.twitter.com/pagalvin

Lists.asmx, GetList och "värde kan inte vara null”

Jag upptäckte idag att GetList() metod i lists.asmx webbtjänsten har att kallas mycket noggrant eller den är benägna att kasta en mystisk "Värdet får inte vara null" undantag (och som förutsatt att du kan komma förbi ännu värre allmänna felmeddelande, "-Undantag av typ" Microsoft.SharePoint.SoapServer.SoapServerException’ kastades.")  Särskilt, Jag tyckte att du inte kan tillhandahålla någon form av prefixet på metoden GetList.  Följande jQuery utdrag illustrerar punkten:

image

Om du gör det, webbtjänsten svarar med "Värdet får inte vara null" visas enligt detta Spelman-enligt HTTP avskrift:

<?XML-version = "1.0" Encoding = "utf-8"?>
  <tvål:Kuvert
     xmlns:SOAP ="
http://schemas.xmlsoap.org/soap/envelope/"    
     xmlns:xsi = "
http://www.w3.org/2001/XMLSchema-instance
     xmlns:XSD ="
http://www.w3.org/2001/XMLSchema">

  <tvål:Organ>
    <tvål:Fel>
      <faultcode>tvål:Servern</faultcode>
      <faultstring>
        -Undantag av typ "Microsoft.SharePoint.SoapServer.SoapServerException’ kastades.
      </faultstring>
      <detalj>
        <ErrorString xmlns ="
http://schemas.microsoft.com/SharePoint/SOAP/">
Värdet får inte vara null.
        </ErrorString>
      </detalj>
    </tvål:Fel>
  </tvål:Organ>
</tvål:Kuvert>

Självklart, du skulle inte förmodligen till att "s0" prefix på egen, men vissa verktyg är benägna att göra det. (som Eclipse).

Detta är desto mer förvirrande / frustrerande eftersom andra metoder tolerera prefix.  Till exempel, den GetListCollection metoden hänsyn inte till om det är förutfastställt, även med nonsens prefix som "xyzzy":

image

Detta "värdet inte får vara null" verkar ganska vanligt med lists.asmx så förhoppningsvis detta kommer att hjälpa någon i framtiden.

</slutet>

Prenumerera på min blogg.

Följ mig på Twitter vid http://www.twitter.com/pagalvin