Interessant iPhone Application

image The mobile team her i slalåm har utviklet et kult iPad program som kombinerer virtual reality augmentation m / frakoblet evne til å gi det som kan være den beste New York subway finder og ruting app tilgjengelig i dag.

Her er området som beskriver app nærmere: http://www.nycstationfinder.com/.

Jeg har ikke Apple-produkter så jeg ikke kan test den ut selv, men det ser ganske kult. Jeg håper de port det. til Android snart.

</slutten>

Abonner på bloggen min.

Følg meg på Twitter på http://www.twitter.com/pagalvin

MVP igjen

Microsoft re-awarded meg med SharePoint MVP på 1 juli i år, og det er ikke mindre spennende enn det var fire år siden for første gang.

SharePoint-samfunnet er bare en fantastisk sted.  Jeg husker da jeg ble først introdusert til SharePoint ved min gamle arbeidsgiver, Conchango.  Jeg var ikke glad om det. Smil.  Jeg hadde bodd i en BizTalk-verden i et år eller to frem til min jobb det, og før det, arbeidet i en annen insular verden av personer og selskaper som gjorde en leve av Fremdrift programvare.  Jeg sier "insular" fordi SharePoint-verden er alt annet enn!

Jeg er kontinuerlig glad og stolte over å være del av denne bisarre online fellesskap av folk som føler merkelig tvunget til å bloggen uendelige, gi opp sine lørdager gratis konferanser, hjemsøke nettfora, Bygg alle typer whacked ut gratis produkter for å sette opp på CodePlex og et mylder av andre samfunnets innsats av alle former og størrelser. 

Jeg vet ikke hva det handler om dette produktet som inspirerer slike volunteerism og nedsenking, men jeg håper det aldri endringer.

</slutten>

Abonner på bloggen min.

Følg meg på Twitter på http://www.twitter.com/pagalvin

La skinner eksempler bly måten å økt SharePoint-bruk

Min første "ren" bloggpost BrightStarr ble publisert i dag.  Her er en teaser:

Det har vært mye av samtalen på Internets i det siste på temaet SharePoint adopsjon og spesielt mangel derav. Ingen vil gå tatt deg bryet med å utforme en gård og garanti infrastructure, delta i workshops, å sette sammen en snazzy utseendet, trent en rock solid information architecture som kan tåle vicissitudes av selskapet re-Information og til slutt, en fanfare-fylt distribusjon bare for å oppdage tre måneder innlegget go live-som mindre enn 50% selskapets ansatte bruker SharePoint og de fleste av dem bruker det til å erstatte de gamle nettverksfilservere ("S:\ stasjon").

Ingen silver bullet (eller enkelt blogginnlegg) kommer til å løse det problemet. Men, Det er mange ting du kan gjøre for å redusere risikoen for en anemic SharePoint portal. En slik teknikk er "Shining eksempel mønsteret."

Jeg vil gjerne vite om andre SharePoint adopsjon strategier som du lyst til å dele.  Hvis du deler, Legg igjen som en kommentar på bloggen BrightStarr.

Lese hele her: http://www.brightstarr.com/US/Pages/blog-view.aspx?BlogID=52

</slutten>

Abonner på bloggen min.

Følg meg på Twitter på http://www.twitter.com/pagalvin

"Access Denied” til Default.aspx på et SharePoint 2010 Sekundært webområde

En av mine klienter gikk live med deres SharePoint 2010 miljøet i dag.  Vi oppdaget at en bestemt gruppe av brukere ikke har tilgang til deres standardhjemmesiden.  SharePoint svarte med "Ingen tilgang", og den vanlige "Logg på som en annen bruker" eller "be om tilgang" svar. 

Når vi har brukt funksjonen for kjekk liten "Sjekk Access" bekreftet det at sluttbrukerne virkelig har tilgang.  Ennå, de kunne ikke komme til siden.

Jeg fulgte mange veier til ulike døde ender før jeg bestemte meg å sammenligne webdelene på siden brutt mot en lignende arbeider side.  Jeg gjorde det ved å sette siden i vedlikeholdsmodus ved å legge til"?innholdet = 1 "til siden. Så, det så ut som "http://Server/subsite/subsite/default.aspx?innholdet = 1 ". 

Dette viste meg to web-deler som er kalt "Feil" med en beskrivelse som "Feil" på siden brutt.  Jeg gjorde ikke tror å ta en cap på skjermen samtidig.

Jeg fjernet dem og som løst problemet.

Jeg har sett et spørsmål som kommer opp på fora i siste, og jeg var veldig skeptisk om plakatens insisterte på at han hadde sikkerhet som er satt opp riktig.  Jeg * vet * jeg hadde konfigurert tryggleik høyre Smil  Neste gang, Jeg vil være mer åpne og mindre skeptiske.

</slutten>

Abonner på bloggen min.

Følg meg på Twitter på http://www.twitter.com/pagalvin

XSLT og jQuery gratisprøver

Jeg har gjort mye av XSLT og jQuery og tenkte jeg ville dele noen utdrag som andre vil finne nyttig i fremtiden.

Eksempel 1: Avgi enkel JavaScript / jQuery i XSLT:

<XSL:malen kamp = "noe" XML:Space = "bevare">

  <!– Viske ut det skjulte feltet for spørring-vennlig filtre –>
  <script type = "text/javascript">
    $(dokumentet).klar(funksjonen(){
      $("#QueryFriendlyFilters").Val("tom");
    });
  </skriptet>

</XSL:mal>

At bit avgir noen JavaScript som venter på side å slutten lessing (grunn av den $(dokumentet).klar(…)) og deretter Sett verdien for et skjult felt kalt QueryFriendlyFilters til den litterale verdien "tom".

Eksempel 2: Bruk <XSL:Hvis> å sjekke "større enn",  "mindre enn", osv..

<XSL:malen kamp = "noe" XML:Space = "bevare">

  <div id = "fdcAllFilters">
 
    <XSL:Hvis test="@Count>0">
      <span class = "fdcFilterLabel">Gjeldende filtre:</utstrekningen>
    </XSL:Hvis>

    <!– flere ting som skjer her. –>

</XSL:mal>

Ovenfor snippeten kontrollerer Hvis et attributt kalt "Antall" av "noe"-elementet er større enn null.  XML bak dette ville være noe sånt som:”

<noe Count = "5" />

Eksempel 3: Gå gjennom alle elementer, Interspersing jQuery samtaler.

<!– Gå gjennom alle filtre og vise riktig  koblinger. –>
<XSL:for each Velg = "UserFilter">

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

  <span class = "fdcFilterLabel"><XSL:verdien av select="@FilterValue"/></utstrekningen>

  <script type = "text/javascript">

    $(dokumentet).klar(funksjonen(){
        <XSL:tekst><![CDATA[$("#QueryFriendlyFilters").Val( ($("#QueryFriendlyFilters").Val() + " ]]></XSL:tekst>\"<XSL:verdien av select="@FilterValue"/>\"<XSL:tekst><![CDATA["));]]></XSL:tekst>
    });

  </skriptet>

</XSL:for each>

Ovenfor snippeten er den mest kompliserte, og det kan være enklere måter å gjøre det.

XML bak dette ser omtrent slik ut:

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

Denne tekstutdrag veksle <UserFilter> noder. 

Den avgir først et anker kode som når klikket påkaller en JavaScript-funksjon som allerede finnes på siden, "mySubmitPage" og sender verdien av et attributt på den <UserFilter> kalt "ID"-noden. 

Den deretter avgir noen jQuery som venter på siden for å laste inn.  At jQuery oppdaterer et skjult felt som heter "QueryFriendlyFilters" ved å legge til verdien av attributtet FilterValue.  Legg merke til alle sprø <XSL:tekst> og <![CDATA[ … ]]> ting.

Det er det, håpe det hjelper!

</slutten>

Abonner på bloggen min.

Følg meg på Twitter på http://www.twitter.com/pagalvin

PerformancePoint og feil 33494

En av mine klienter i dag kalt når miljøet PerformancePoint (i SharePoint 2010) brøt sammen.  En av app servere i farmen var lite diskplass.  Under behandlingen som, klienten avinstallert "for mye" og PP ting alle stoppet fungerer.  Ulike webdeler ville vise "en uventet feil oppstod. Feil 33494. Flere detaljer er loggført for systemansvarlig":

image

Jeg så opp feilen, og ikke fant noe konkret "Error 33494" men dette MSDN-foraene postering var nyttig: http://social.technet.microsoft.com/forums/en-us/sharepoint2010setup/thread/E1FE189D-7F89-455D-A98B-C1A12D8626AB

Jeg fant ADOMD.NET her som en komponent i SQL Server 2008 Funksjonspakke: http://www.microsoft.com/downloads/en/details.aspx?FamilyId=228DE03F-3B5A-428A-923F-58A033D316E1&displaylang=en

image

(Klikk for å forstørre)

Jeg laster ned og installert som og det faste alt.

Jeg tror dette er en pen oddball type feil, men hvis du treffer den, du minst har du muligheten.

</slutten>

Abonner på bloggen min.

Følg meg på Twitter på http://www.twitter.com/pagalvin

Lists.asmx, GetListItems og -mapper

Jeg gjorde noen undersøkelser for noen i dag rundt list.asmx-webtjeneste som en del av SharePoint 2010 (og tidligere).  Hun var i stand til å få listeelementene i rotmappen (deriblant med navn på undermapper), men kunne ikke få elementer i undermapper.  Jeg gjorde noen ser på internets, og det er en overraskende vanlige spørsmål.  Ennå, Jeg kunne ikke få en bra svar pσ enkelt spørsmål, "Hvis jeg vet mappen, Hvordan får jeg elementene i mappen?”  For å være ærlig, Jeg gjorde ikke prøve alle at hardt siden jeg har ønsket å figur dette en ut på min egen for en stund Smil.

Sette opp dette, Jeg laget et nettsted som heter "Blogging scenarier" og en egendefinert liste som heter "Egendefinert liste med Sub mapper".  Jeg deretter opprettet mapper med navnet:

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

Jeg har lagt noen elementer til mappen "Year 2006".  Dette er hvordan det ser ut:

image

Min venn er ikke skrive C#-kode, men heller benytter Java, SOAP-konvolutten var så hva hun virkelig trengte.  Å få det, Jeg skrev en bit av jQuery og deretter brukt fiddler for å få faktiske HTTP samtale.

Her er den aktuelle jQuery (Jeg kopierte koden ned nedenfor hvis du vil kopiere/lime):

image

De første nøkkelen er å inkludere både en <queryOptions> og <QueryOptions> noden.  Den andre nøkkelen er at den <Mappen> noden er en URL-adresse som klienten har tilgang.

Det kan være andre måter å få dette, men dette jobbet godt for meg da ved hjelp jQuery.

Her er SOAP-konvolutten for det over:

<soapenv:Konvolutt xmlns:soapenv =’http://schemas.xmlsoap.org/SOAP/Envelope/’>                
  <soapenv:Kroppen>
    <GetListItems xmlns =’
http://schemas.Microsoft.com/SharePoint/SOAP/’>
      <listName>Egendefinert liste med Sub-mapper</listName>
      <viewFields>  
        <ViewFields>
          <FieldRef navn =' tittel’ />
          <FieldRef navn ='EncodedAbsUrl’ />
        </ViewFields>
      </viewFields>
      <queryOptions>
        <QueryOptions>
          <Mappen>
http://demoserver1/Blogging Scenarier, lister, egendefinert liste med Sub-mapper/år 2006</Mappen>
        </QueryOptions>
      </queryOptions>
   
</GetListItems>
  </soapenv:Kroppen>
</soapenv:Konvolutt>

Mange eksempler og diskusjon rundt dette førte meg til å tro at alt jeg trenger var <QueryOptions> og angi et mappenavn.  For meg, Jeg trenger både brytes det i <queryOptions> i tillegg til å angi et fullstendig kvalifisert for den <Mappen> noden.

Her er oppsettet jQuery AJAX:

$(dokumentet).klar(funksjonen() {
       var soapEnv =
           "<soapenv:Konvolutt xmlns:soapenv =’http://schemas.xmlsoap.org/SOAP/Envelope/’> \
               <soapenv:Kroppen> \
                    <GetListItems xmlns =’http://schemas.Microsoft.com/SharePoint/SOAP/’> \
                       <listName>Egendefinert liste med Sub-mapper</listName> \
                       <viewFields> \
                           <ViewFields> \
                              <FieldRef navn =' tittel’ /> \
                              <FieldRef navn ='EncodedAbsUrl’ /> \
                          </ViewFields> \
                       </viewFields> \
                       <queryOptions> \
                         <QueryOptions> \
                           <Mappen>http://demoserver1/Blogging Scenarier, lister, egendefinert liste med Sub-mapper/år 2006</Mappen> \
                         </QueryOptions> \
                       </queryOptions> \
                   </GetListItems> \
               </soapenv:Kroppen> \
           </soapenv:Konvolutt>";

</slutten>

Abonner på bloggen min.

Følg meg på Twitter på http://www.twitter.com/pagalvin

Lists.asmx, GetList og "verdi kan ikke være null”

Jeg oppdaget i dag som GetList() metoden i lists.asmx webtjenesten har å bli kalt veldig nøye, eller det er utsatt for å kaste en mystisk "Verdi kan ikke være null"-unntak (og som er forutsatt du kan komme forbi enda verre generisk feilmelding, "Unntak av typen ' Microsoft.SharePoint.SoapServer.SoapServerException’ ble kastet.")  Spesielt, Jeg fant ut at du ikke kan tilby noen form for prefiks i GetList-metoden.  Følgende jQuery snippeten illustrerer poenget:

image

Hvis du gjøre det, Webtjenesten svarer med "Verdi kan ikke være null" i henhold til dette Fiddler-gitt HTTP transkripsjon:

<?XML version = "1.0" Encoding = "utf-8"?>
  <såpe:Konvolutt
     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">

  <såpe:Kroppen>
    <såpe:Feilårsak>
      <faultcode>såpe:Server</faultcode>
      <faultString:>
        Unntak av typen ' Microsoft.SharePoint.SoapServer.SoapServerException’ ble kastet.
      </faultString:>
      <detalj>
        <xmlns errorString ="
http://schemas.Microsoft.com/SharePoint/SOAP/">
Verdien kan ikke være null.
        </errorString>
      </detalj>
    </såpe:Feilårsak>
  </såpe:Kroppen>
</såpe:Konvolutt>

selvfølgelig, du vil ikke sannsynligvis legge prefikset "s0" på egen hånd, men noen verktøy er tilbøyelig til å gjøre det. (som Eclipse).

Dette er alle mer forvirrende / frustrerende fordi andre metoder tolerere prefikser.  For eksempel, den GetListCollection metoden oppmerksom ikke på hvis det er blitt prefikset, selv med tull prefikser som "xyzzy":

image

Dette "verdi ikke kan være null" synes ganske vanlig med lists.asmx så forhåpentligvis vil dette hjelpe noen ut i fremtiden.

</slutten>

Abonner på bloggen min.

Følg meg på Twitter på http://www.twitter.com/pagalvin