Kagiliw-giliw na iPhone Application

image Ang mga mobile na koponan dito sa Slalom ay bumuo ng isang talagang cool na application iPad na pinagsasama ng virtual katotohanan pagpapalaki w / offline na kakayahan upang magbigay ng kung ano ang maaaring maging ang pinakamahusay na New York subway finder at pagruruta app magagamit na ngayon.

Narito ang site na naglalarawan sa app sa karagdagang detalye: http://www.nycstationfinder.com/.

Hindi ko magkaroon ng anumang mga produkto ng Apple kaya hindi ko maaaring subukan ito sa aking sarili, ngunit ito hitsura medyo cool na. Ako hoping nila ito port sa Android sa lalong madaling panahon.

</dulo>

Mag-subscribe sa aking blog.

Sundin ako sa Twitter sa http://www.twitter.com/pagalvin

MVP Muli

Microsoft re-iginawad sa akin sa SharePoint MVP sa Hulyo 1 taon na ito at ito ay walang mas nakapupukaw kaysa ito ay sa unang pagkakataon sa apat na taon na ang nakaraan.

Ang komunidad ng SharePoint ay lamang ng isang kahanga-hangang lugar.  Tandaan ako kapag ako ay unang ipinakilala sa sa SharePoint pamamagitan ng aking lumang employer, Conchango.  Ako ay hindi masaya tungkol dito ngiti.  Ako ay nakatira sa isang mundo BizTalk para sa isang taon o dalawang nangungunang hanggang sa aking trabaho doon at bago na, nagtrabaho sa isa pang tagapulo mundo ng mga tao at mga kumpanya na ginawa ng isang buhay na off ng Isinasagawa Software.  Sabihin ko "makitid ang isip" dahil ang mundo ng SharePoint ay anumang ngunit!

Ako ay patuloy na masaya at natutuwa na maging bahagi ng kakaibang online na komunidad ng mga tao na sa tingin strangely napilitang blog endlessly, sumuko kanilang Sabado para sa mga libreng komperensiya, maglalagi online forum, bumuo lahat ng mga uri ng mga nasampal ang libreng mga produkto upang ilagay sa CodePlex at hindi mabilang ng iba pang mga pagsisikap ng komunidad ng lahat ng hugis at sukat. 

Hindi ko alam kung ano ito ay tungkol sa produktong ito na inspires tulad volunteerism at pagsasawsaw, ngunit Umaasa ako na ito ay hindi nagbabago.

</dulo>

Mag-subscribe sa aking blog.

Sundin ako sa Twitter sa http://www.twitter.com/pagalvin

Hayaan ang mga nagniningning halimbawa Lead ang Way sa nadagdagan SharePoint pag-aampon

Ang aking unang "dalisay" BrightStarr blog entry ay nai-publish ngayon.  Narito ang isang teaser:

Mayroong nangyaring ng maraming pag-uusap sa Internets ng huli sa ang paksa ng pag-aampon ng SharePoint at lalo na ang kakulangan nito. Walang gustong pumunta sa lahat ng mga problema ng pagdisenyo ng isang sakahan at imprastraktura ng seguridad, lumalahok sa workshop, paglalagay ng magkasama ng isang snazzy hitsura at pakiramdam, nagtatrabaho out ng isang bato na matatag na arkitektura ng impormasyon na maaari mapaglabanan ang vicissitudes ng kumpanya re-orgs at sa wakas, isang tokata-punong rollout lamang upang matuklasan ang tatlong buwan post pumunta-mabuhay na mas mababa sa 50% ng ang mga empleyado ng kumpanya ay gumagamit ng SharePoint at karamihan sa kanila ay gumagamit ng ito upang palitan ang lumang mga server ng network ng file ("the S:\ drive").

Walang silver bullet (o solong blog post) ay pagpunta sa malutas na ang problema. Gayunman, may maraming mga bagay ang maaari mong gawin upang mabawasan ang panganib ng isang anemiko SharePoint portal. One such technique is the "Shining Example Pattern."

Gusto ko iyan upang malaman tungkol sa iba pang mga estratehiya sa pag-aampon ng SharePoint na mahalaga sa iyo upang ibahagi.  Kung gagawin mong ibahagi, mangyaring iwanang bilang isang puna sa blog BrightStarr.

Basahin ang buong bagay dito: http://www.brightstarr.com/US/Pages/blog-view.aspx?BlogID=52

</dulo>

Mag-subscribe sa aking blog.

Sundin ako sa Twitter sa http://www.twitter.com/pagalvin

"Access denied” sa Default.aspx sa isang SharePoint 2010 Sub Site

Isa ng aking mga kliyente na nagpunta live na sa kanilang SharePoint 2010 kapaligiran ngayon.  Natuklasan namin na ang isang tiyak na grupo ng mga gumagamit ay hindi maaaring ma-access ang kanilang mga default na home page.  SharePoint ay tumugon sa "Access Tinanggihan" at ang karaniwang "sign in bilang ibang gumagamit" o "kahilingan access" na tugon. 

Kapag ginamit namin ang nakakatawang "Check Access" na function na ito ay nakumpirma na ang mga end user talagang may access.  Pa, hindi sila makakuha ng sa pahina ng.

Sinundan ko ng maraming ng mga kalsada sa iba't ibang mga patay dulo hanggang sa napagpasyahan ko upang ihambing ang mga bahagi ng web sa sirang pahina laban sa isang katulad na nagtatrabaho pahina.  Ko na sa pamamagitan ng paglagay sa pahina sa maintenance mode sa pamamagitan ng pagdaragdag "?nilalaman = 1 "sa pahina. Kaya, ito ay tumingin tulad ng "http://server / subsite / subsite / default.aspx?nilalaman = 1 ". 

Ito nagpakita sa akin ang dalawang bahagi ng web na pinangalanang "Error" na may isang paglalarawan tulad ng "Error" sa sirang pahina.  Hindi ko tingin sa isang screen cap sa oras.

Inalis ko sa kanila at na malutas ang problema.

Nakita ko na ng isang katanungan tulad nito na dumating sa ang forum sa nakaraan at ako ay lubos na may pag-aalinlangan tungkol sa paggigiit ng poster na siya ay seguridad-set up nang maayos.  Ko * alam * ko ay seguridad-set up ang karapatan ngiti  Susunod na, Kukunin ko na maging mas bukas at mas may pag-aalinlangan.

</dulo>

Mag-subscribe sa aking blog.

Sundin ako sa Twitter sa http://www.twitter.com/pagalvin

XSLT at jQuery mga halimbawa

Ako ay paggawa ng maraming ng XSLT at jQuery at naisip gusto kong ibahagi ang ilang mga snippet na ang mga iba ay maaaring kapaki-pakinabang sa hinaharap.

Halimbawa 1: Magbuga simpleng JavaScript / jQuery sa XSLT:

<xsl:template match = "ng isang bagay,,en,script type = "text / javascript",,en,"#QueryFriendlyFilters",,en,"Walang laman",,en,div id = "fdcAllFilters",,en,kung test = "@ Count,,en,span class = "fdcFilterLabel",,en,para-sa-bawat pumili = "UserFilter",,en,isang class = "FilterHref,,en,href = "javascript,,en,'RemoveUserFilter',,en,sulit ng mga piling = "@ FilterValue" /,,en" xml:space="preserve">

  <!– Blangko ang ang query friendly na mga filter nakatagong patlang –>
  <script type="text/javascript">
    $(dokumento).nakahanda(tungkulin(){
      $("#QueryFriendlyFilters").Val("empty");
    });
  </script>

</xsl:template>

Na bit emits ilang JavaScript na naghihintay para sa mga pahina upang tapusin ang loading (dahil sa $(dokumento).nakahanda(...)) at pagkatapos ay nagtatakda ng halaga ng isang nakatagong patlang pinangalanan QueryFriendlyFilters na ang literal na halaga na "walang laman".

Halimbawa 2: Gamitin <xsl:kung> check ang "mas higit",  "Mas mababa", at iba pa.

<xsl:template match = "ng isang bagay,,en,script type = "text / javascript",,en,"#QueryFriendlyFilters",,en,"Walang laman",,en,div id = "fdcAllFilters",,en,kung test = "@ Count,,en,span class = "fdcFilterLabel",,en,para-sa-bawat pumili = "UserFilter",,en,isang class = "FilterHref,,en,href = "javascript,,en,'RemoveUserFilter',,en,sulit ng mga piling = "@ FilterValue" /,,en" xml:space="preserve">

  <div id="fdcAllFilters">
 
    <xsl:if test="@Count>0">
      <span class="fdcFilterLabel">Kasalukuyang filter:</maikling panahon>
    </xsl:kung>

    <!– higit pang mga bagay-bagay ang mangyayari dito. –>

</xsl:template>

Ang itaas na snippet sumusuri upang makita kung ang isang katangian na pinangalanan na "Count" ng element na "bagay" ay mas mataas sa zero.  Ang XML sa likod ng ito ay magiging isang bagay tulad ng:"

<bagay Count = "5" />

Halimbawa 3: Umulit sa pamamagitan ng lahat ng mga elemento, interspersing tawag jQuery.

<!– Umulit sa pamamagitan ng lahat ng mga filter at ipakita ang tamang  mga link. –>
<xsl:for-each select="UserFilter">

  <a class="FilterHref" href="javascript:mySubmitPage(‘RemoveUserFilter’,'{@ ID}')">[X]</isang>

  <span class="fdcFilterLabel"><xsl:value-of select="@FilterValue"/></maikling panahon>

  <script type="text/javascript">

    $(dokumento).nakahanda(tungkulin(){
        <xsl:teksto><![CDATA[$("#QueryFriendlyFilters").Val( ($("#QueryFriendlyFilters").Val() + " ]]></xsl:teksto>\"<xsl:value-of select="@FilterValue"/>\"<xsl:teksto><![CDATA["));]]></xsl:teksto>
    });

  </script>

</xsl:para sa-bawat>

Ang itaas na snippet ay ang pinaka masalimuot at maaaring may mas madaling paraan upang gawin ito.

Ang XML sa likod na ito ay mukhang halos tulad nito:

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

Snippet na ito ay iterating sa pamamagitan ng <UserFilter> nodes. 

Unang ito emits isang anchor tag na kapag nag-click invokes ng isang function na JavaScript na nasa sa pahina, Sa "mySubmitPage" at magbabalik ang halaga ng isang attribute sa <UserFilter> node na pinangalanang "ID". 

Pagkatapos ito emits ilang jQuery na naghihintay para sa pahina upang i-load.  Na jQuery update ng isang nakatagong mga patlang na pinangalanang "QueryFriendlyFilters" sa pamamagitan ng pagdaragdag ng halaga ng FilterValue ang attribute.  Tandaan ang lahat ng mga nakatutuwang <xsl:teksto> at <![CDATA[ ... ]]> mga bagay.

Iyan na ang lahat, Umaasa ito ay tumutulong sa!

</dulo>

Mag-subscribe sa aking blog.

Sundin ako sa Twitter sa http://www.twitter.com/pagalvin

PerformancePoint at Error 33494

Isa ng aking mga kliyente na tinatawag na ngayon kapag ang kanilang PerformancePoint kapaligiran (sa SharePoint 2010) Nasira.  Isa sa mga server ng app sa ang mga sakahan ay mababa sa disk space.  Habang Pagtugon na, client uninstall "masyadong maraming" at ang PP bagay-bagay ang lahat tumigil gumagana.  Iba't-ibang bahagi ng web ay magpapakita ng "May hindi inaasahang error na naganap. Mali 33494. Karagdagang mga detalye ay naka-log para sa iyong administrator ":

image

Tumingin ako ang error at hindi mahanap ang anumang partikular na sa "Error 33,494" ngunit ito MSDN forums-post ay helpful: http://social.technet.microsoft.com/forums/en-us/sharepoint2010setup/thread/E1FE189D-7F89-455D-A98B-C1A12D8626AB

Natagpuan ko ang ADOMD.NET dito bilang isang bahagi sa ang SQL Server 2008 Feature Pack: http://www.microsoft.com/downloads/en/details.aspx?FamilyId=228DE03F-3B5A-428A-923F-58A033D316E1&displaylang=en

image

(i-click upang palakihin)

Download ko at naka-install na at naayos na ang lahat.

Tingin ko ito ay isang magandang uri oddball ng error, ngunit kung pinindot ninyo ito, hindi bababa sa ikaw ay may isang pagpipilian.

</dulo>

Mag-subscribe sa aking blog.

Sundin ako sa Twitter sa http://www.twitter.com/pagalvin

Lists.asmx, GetListItems at folder

Ako ay paggawa ng ilang pananaliksik para sa isang tao ngayon sa paligid list.asmx web serbisyo na ibinigay bilang bahagi ng SharePoint 2010 (at mas maaga).  Siya ay upang makakuha ng listahan ng mga item sa folder ng ugat (kabilang ang mga pangalan ng mga sub-folder), ngunit hindi maaaring makakuha ng mga item sa sub-folder.  Ko ng ilang mga naghahanap sa paligid sa internets at ito ay isang nakakagulat na karaniwang tanong.  Pa, Hindi ako maaaring makakuha ng isang magandang sagot sa simpleng tanong, "Kung alam ko ang folder, paano ko makukuha ang mga item sa folder?"  Upang maging matapat, Hindi ko subukan ang lahat na mahirap dahil ko na nais na malaman ang isang ito sa aking sarili para sa isang habang ngiti.

Upang itakda ang up, Lumikha ako ng isang site na pinangalanang "Blogging sitwasyon" at isang pasadyang listahan na pinangalanang "Custom Listahan na may Sub Folder".  Ako pagkatapos nilikha folder na may pangalang:

  • Taon 2005
  • Taon 2006
  • Taon 2007

Ako ay nagdagdag ng ilang mga item sa ang "Taon 2006" na folder.  Ito ay kung ano ang tila:

image

Ang aking kaibigan ay hindi pagsulat ng C # code ngunit sa halip na paggamit ng Java, kaya ang SOAP sobre ay ano ang kanyang talagang kinakailangan.  Upang makakuha ng na, Sinulat ko isang bit ng jQuery at pagkatapos ay ginagamit ng fiddler upang makakuha ng aktwal na pag-uusap ng HTTP.

Narito ang kaugnay jQuery (Ko makopya ang code sa ibaba kung nais mong kopyahin / i-paste):

image

Sila unang susi ay upang isama ang parehong <queryOptions> at <QueryOptions> node.  Ang ikalawang key ay ang <Folder> node ay isang URL na kung saan ang client ay may access.

Maaaring may iba pang mga paraan upang makakuha ng ito, ngunit ito nagtrabaho na rin para sa akin kapag gumagamit ng jQuery.

Narito ang ang SOAP sobre para sa itaas:

<soapenv:Sobre xmlns:soapenv =’http://schemas.xmlsoap.org / sabon / sobre /’>                
  <soapenv:Katawan>
    <GetListItems xmlns =’
http://schemas.microsoft.com / sa sharepoint / sabon /’>
      <listname>Pasadyang Listahan na may Sub Folder</listname>
      <viewFields>  
        <ViewFields>
          <FieldRef Pangalan = 'Pamagat’ />
          <FieldRef Pangalan = 'EncodedAbsUrl ang’ />
        </ViewFields>
      </viewFields>
      <queryOptions>
        <QueryOptions>
          <Folder>
http://demoserver1/Blogging Sitwasyon / listahan / Custom Listahan na may Sub Folder / Taon 2006</Folder>
        </QueryOptions>
      </queryOptions>
   
</GetListItems>
  </soapenv:Katawan>
</soapenv:Sobre>

Ang isang pulutong ng mga halimbawa at discussion sa paligid na ito na humantong ako sa naniniwala na ang lahat ng kailangan ko ay <QueryOptions> at tukuyin ang isang pangalan ng folder.  Sa akin, Kailangan ko sa parehong pambalot na ito sa loob <queryOptions> pati na rin tukuyin ang isang ganap na kwalipikadong URL para sa <Folder> buko.

Narito ang jQuery AJAX setup:

$(dokumento).nakahanda(tungkulin() {
       ay soapEnv =
           "<soapenv:Sobre xmlns:soapenv =’http://schemas.xmlsoap.org / sabon / sobre /’> \
               <soapenv:Katawan> \
                    <GetListItems xmlns =’http://schemas.microsoft.com / sa sharepoint / sabon /’> \
                       <listname>Pasadyang Listahan na may Sub Folder</listname> \
                       <viewFields> \
                           <ViewFields> \
                              <FieldRef Pangalan = 'Pamagat’ /> \
                              <FieldRef Pangalan = 'EncodedAbsUrl ang’ /> \
                          </ViewFields> \
                       </viewFields> \
                       <queryOptions> \
                         <QueryOptions> \
                           <Folder>http://demoserver1/Blogging Sitwasyon / listahan / Custom Listahan na may Sub Folder / Taon 2006</Folder> \
                         </QueryOptions> \
                       </queryOptions> \
                   </GetListItems> \
               </soapenv:Katawan> \
           </soapenv:Sobre>";

</dulo>

Mag-subscribe sa aking blog.

Sundin ako sa Twitter sa http://www.twitter.com/pagalvin

Lists.asmx, GetList at "VALUE ay hindi maaaring maging null”

Natuklasan ko na ngayon ang GetList() pamamaraan sa lists.asmx web serbisyo ay upang matawag napaka mabuti o ito ay madaling kapitan ng sakit upang ihagis ng isang mahiwaga "Halaga ay hindi maaaring maging null" sa pagbubukod (at na ipagpalagay na maaari kang makakuha ng nakalipas na ang kahit na mas masahol pa generic na mensahe ng error, “Exception of type ‘Microsoft.SharePoint.SoapServer.SoapServerException’ ay itinapon. ")  Tiyakan, Nakita ko na hindi ka maaaring magbigay ng anumang uri ng unlapi sa GetList pamamaraan.  Ang mga sumusunod na snippet jQuery ay naglalarawan ng point:

image

Kung gagawin mo na, web mga serbisyo ay tumutugon sa "Halaga ay hindi maaaring maging null" bilang per ito fiddler-ibinigay HTTP transcript:

<?xml version="1.0" encoding="utf-8"?>
  <sabon:Sobre
     xmlns:sabon ="
http://schemas.xmlsoap.org / sabon / sobre /"    
     xmlns:xsi = "
http://www.w3.org/2001/XMLSchema-instance"
     xmlns:xsd ="
http://www.w3.org/2001/XMLSchema">

  <sabon:Katawan>
    <sabon:Kasalanan>
      <faultcode>sabon:Server</faultcode>
      <faultstring>
        Exception of type ‘Microsoft.SharePoint.SoapServer.SoapServerException’ ay itinapon.
      </faultstring>
      <detalye>
        <error string xmlns ="
http://schemas.microsoft.com / sa sharepoint / sabon /">
Halaga ay hindi maaaring maging null.
        </errorstring>
      </detalye>
    </sabon:Kasalanan>
  </sabon:Katawan>
</sabon:Sobre>

Talaga, malamang na hindi nais na magdagdag ng "S0" prefix sa iyong sariling, ngunit ang ilang mga tool ay madaling kapitan ng sakit na gawin ito (tulad ng Eclipse).

Ito ay ang lahat ng mga mas nakalilito / nakakadismaya dahil ang iba pang mga pamamaraan tiisin prefixes.  Halimbawa, ang GetListCollection pamamaraan ay hindi tututol kung ito ay nai-prefix, kahit na may mga bagay na walang kapararakan prefix tulad ng "xyzzy":

image

Ang "halaga ay hindi maaaring maging null" tila medyo pangkaraniwan sa lists.asmx kaya sana ito ay makakatulong sa isang tao out sa hinaharap.

</dulo>

Mag-subscribe sa aking blog.

Sundin ako sa Twitter sa http://www.twitter.com/pagalvin