Aplicación para iPhone interesante

image O equipo móbil aquí no Slalom desenvolveu unha aplicación para iPad moi legal que combina realidade virtual aumento w / capacidade offline para facilitar o que pode ser o mellor de Nova York metro localizador e encamiñamento aplicación dispoñible hoxe.

Aquí está o sitio web que describe a aplicación en máis detalles: http://www.nycstationfinder.com/.

Non teño ningún produto de Apple, así que non podo probalo só, pero parece moi legal. Estou esperando que porta-lo sobre a Android en breve.

</final>

Rexístrate para o meu blog.

Siga-me no Twitter http://www.twitter.com/pagalvin

Unha vez máis MVP

Microsoft re-me concedeu o SharePoint MVP o 01 de xullo deste ano e non é menos excitante que foi a primeira vez desde hai catro anos.

A comunidade do SharePoint é só un lugar incrible.  Lembro cando foi introducido por primeira vez para o SharePoint polo meu antigo empresario, Conchango.  I was not happy about it sorriso.  I had been living in a BizTalk world for a year or two leading up to my job there and before that, worked in another insular world of people and companies that made a living off of Progress Software.  I say “insular” because the SharePoint world is anything but!

I’m continually glad and excited to be part of this bizarre online community of people that feel strangely compelled to blog endlessly, give up their Saturdays for free conferences, haunt online forums, build all kinds of whacked out free products to put up on CodePlex and a myriad of other community efforts of all shapes and sizes. 

I don’t know what it is about this product that inspires such volunteerism and immersion, but I hope it never changes.

</final>

Rexístrate para o meu blog.

Siga-me no Twitter http://www.twitter.com/pagalvin

Deixe brillantes exemplos Mostremos o camiño para a adopción do SharePoint Maior

O meu primeiro "puro" blog BrightStarr publicouse hoxe.  Aquí está o teaser:

Houbo moita conversa sobre as Internets da tarde sobre o tema da adopción do SharePoint e sobre todo, a falta dela. Ninguén quere ir a todos os problemas de deseño dunha facenda e infraestruturas de seguridade, a participación en talleres, a construción dun ollar snazzy e sentir, elaboración dunha arquitectura de información sólida que pode soportar as vicisitudes da empresa re-orgs e finalmente, un lanzamento cheo de pompa só para descubrir tres meses pos go-live que menos do 50% dos empregados da empresa están a usar SharePoint ea maioría deles están a usar para substituír os antigos servidores de ficheiros de rede ("the S:\ drive").

Non hai bala de prata (ou simple post de blog) vai resolver este problema. Con todo, hai moitas cousas que podes facer para reducir o risco de un portal SharePoint anemia. One such technique is the "Shining Example Pattern."

Encantaríame saber sobre outras estratexias de adopción do SharePoint que desexa compartir.  Se forma parte, por favor, deixe como un comentario no blog BrightStarr.

Ler todo aquí: http://www.brightstarr.com/US/Pages/blog-view.aspx?BlogID=52

</final>

Rexístrate para o meu blog.

Siga-me no Twitter http://www.twitter.com/pagalvin

"Acceso denegado” para Default.aspx nun SharePoint 2010 Sub web

Un dos meus clientes foi vivir co seu SharePoint 2010 ámbito de hoxe.  Descubrimos que un determinado grupo de usuarios non podían acceder á súa páxina de inicio estándar.  SharePoint respondeu con "acceso denegado" e "sinal como outro usuario" normal ou "solicitude de acceso" resposta. 

Cando usamos a función bacana "Check acceso" confirma que os usuarios finais realmente teñen acceso.  Aínda, non poderían ir á páxina.

Seguín unha morea de camiños a varios becos sen saída ata que decidín comparar as partes da web na páxina do partido contra a páxina de traballo semellante.  Eu fixen iso por poñer a páxina en modo de mantemento, engadindo "?contido = 1 "para a páxina. Así, parecía "http://servidor / subsitio / subsitio / default.aspx?contido = 1 ". 

Iso me mostrou dúas pezas sitio chamado "erro" cunha descrición como "erro" na páxina do partido.  Eu non creo que tomar un cap pantalla no momento.

Tirei eles e que resolveu o problema.

Vin unha pregunta como esta veña foros no pasado e eu estaba moi escéptico sobre a insistencia do cartel que puxera de seguridade correctamente.  I * sei * eu tiña definido seguridade ata certo sorriso  Próxima vez, Eu vou ser máis aberta e menos escéptico.

</final>

Rexístrate para o meu blog.

Siga-me no Twitter http://www.twitter.com/pagalvin

XSLT e mostras jQuery

Teño benvida a facer unha chea de XSLT e jQuery e pensei en compartir algúns tramos que os outros poden ser útiles no futuro.

Exemplo 1: Emit JavaScript simple / jQuery en XSLT:

<XSL:template match="something" xml:space = "preserve">

  <!– En branco a filtros agradable campo oculto consulta –>
  <script type="text/javascript">
    $(documento).preparado(función(){
      $("#QueryFriendlyFilters").val("empty");
    });
  </guión>

</XSL:modelo>

Este bit emite algún JavaScript que agarda a páxina para completar a carga (por mor da $(documento).preparado(...)) e, a continuación, define o valor dun campo oculto chamado QueryFriendlyFilters ao valor literal "baleiro".

Exemplo 2: Usar <XSL:se> para comprobar a "maior que",  "Less than", etc.

<XSL:template match="something" xml:space = "preserve">

  <div id="fdcAllFilters">
 
    <XSL:if test="@Count>0">
      <span class="fdcFilterLabel">Filtros actuais:</van>
    </XSL:se>

    <!– máis cousas acontece aquí. –>

</XSL:modelo>

O tramo anterior para saber se un atributo chamado "Count" do elemento "algo" é maior que cero.  O XML detrás diso sería algo como:"

<algo Count = "5" />

Exemplo 3: Percorrer todos os elementos, intercalando chamadas jQuery.

<!– Percorrer todos os filtros e amosar o correcto  Ligazóns. –>
<XSL:for-each select="UserFilter">

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

  <span class="fdcFilterLabel"><XSL:value-of select="@FilterValue"/></van>

  <script type="text/javascript">

    $(documento).preparado(función(){
        <XSL:texto><![CDATA[$("#QueryFriendlyFilters").val( ($("#QueryFriendlyFilters").val() + " ]]></XSL:texto>\"<XSL:value-of select="@FilterValue"/>\"<XSL:texto><![CDATA["));]]></XSL:texto>
    });

  </guión>

</XSL:a-cada>

O tramo anterior é o máis complexo e pode haber formas máis fáciles de facer isto.

O XML detrás desa aparencia máis ou menos así:

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

Este fragmento é iterado <Filtro de usuario> nodos. 

En primeiro lugar, el emite unha marca de referencia que, cando premendo chama unha función JavaScript que xa está na páxina, "MySubmitPage" e pasa o valor dun atributo no <Filtro de usuario> no chamado "ID". 

A continuación, el emite algúns jQuery que espera a páxina cargar.  Que as actualizacións jQuery un campo oculto chamado "QueryFriendlyFilters", engadindo o valor do atributo FilterValue.  Teña en conta todo o tolo <XSL:texto> e <![CDATA[ ... ]]> cousas.

É iso aí, espero que axude!

</final>

Rexístrate para o meu blog.

Siga-me no Twitter http://www.twitter.com/pagalvin

PerformancePoint e erro 33494

Un dos meus clientes hoxe chamado cando o seu ámbito PerformancePoint (en SharePoint 2010) rompe.  Un dos servidores de aplicacións no farm estaba correndo pouco espazo en disco.  A pesar de afrontar este, cliente desinstalar "máis" e as cousas PP todo marcha detido.  Varias partes da web que mostran "Produciuse un erro inesperado. Erro 33494. Detalles adicionais foron rexistrados para o administrador ":

image

Mirei para o erro e non atopou nada específico para "Erro 33494", pero iso foros MSDN post foi útil: http://social.technet.microsoft.com/forums/en-us/sharepoint2010setup/thread/E1FE189D-7F89-455D-A98B-C1A12D8626AB

I ADOMD.NET aquí como un compoñente en SQL Server 2008 Feature Pack: http://www.microsoft.com/downloads/en/details.aspx?FamilyId=228DE03F-3B5A-428A-923F-58A033D316E1&displaylang=en

image

(clic para ampliar)

Eu descargar e instalar iso e corrixido todo.

Creo que este é un tipo excéntrico moi de erro, pero se bater, ti, polo menos ten unha opción.

</final>

Rexístrate para o meu blog.

Siga-me no Twitter http://www.twitter.com/pagalvin

Lists.asmx, GetListItems e carpetas

Eu estaba facendo unha investigación para alguén hoxe en todo o servizo web list.asmx seleccionado como parte do SharePoint 2010 (e máis cedo).  Ela foi capaz de obter os elementos da lista no cartafol raíz (incluíndo os nomes dos subcartafoles), pero non podía elementos en subcartafoles.  I did some looking around on the internets and it’s a surprisingly common question.  Aínda, I couldn’t get a good answer to the simple question, “if I know the folder, how do I get the items in the folder?"  To be honest, I didn’t try all that hard since I’ve wanted to figure this one out on my own for a while sorriso.

To set this up, I created a site named “Blogging Scenarios” and a custom list named “Custom List with Sub Folders”.  I then created folders named:

  • Year 2005
  • Year 2006
  • Year 2007

I added a few items to the folder “Year 2006”.  Isto é o que parece:

image

My friend isn’t writing C# code but rather using Java, so the SOAP envelope was what she really needed.  To get that, I wrote a bit of jQuery and then used fiddler to get the actual HTTP conversation.

Here’s the relevant jQuery (I copied the code down below if you want to copy/paste):

image

They first key is to include both a <queryOptions> e <QueryOptions> node.  The second key is that the <Folder> node is a URL to which the client has access.

There may be other ways to get this, but this worked well for me when using jQuery.

Here is the SOAP envelope for the above:

<soapenv:Envelope xmlns:soapenv=’http://schemas.xmlsoap.org / xabón / Sobre /’>                
  <soapenv:Corpo>
    <GetListItems xmlns=’
http://schemas.microsoft.com / SharePoint / xabón /’>
      <listName>Custom List with Sub Folders</listName>
      <viewFields>  
        <ViewFields>
          <FieldRef Name=’Title’ />
          <FieldRef Name=’EncodedAbsUrl’ />
        </ViewFields>
      </viewFields>
      <queryOptions>
        <QueryOptions>
          <Folder>
http://demoserver1/Blogging Scenarios/lists/Custom List with Sub Folders/Year 2006</Folder>
        </QueryOptions>
      </queryOptions>
   
</GetListItems>
  </soapenv:Corpo>
</soapenv:Sobre>

A lot of examples and discussion around this led me to believe that all I need was <QueryOptions> and specify a folder name.  Para min, I need to both wrap it inside <queryOptions> as well as specify a fully qualified URL for the <Folder> node.

Here’s the jQuery AJAX setup:

$(documento).preparado(función() {
       var soapEnv =
           "<soapenv:Envelope xmlns:soapenv=’http://schemas.xmlsoap.org / xabón / Sobre /’> \
               <soapenv:Corpo> \
                    <GetListItems xmlns=’http://schemas.microsoft.com / SharePoint / xabón /’> \
                       <listName>Custom List with Sub Folders</listName> \
                       <viewFields> \
                           <ViewFields> \
                              <FieldRef Name=’Title’ /> \
                              <FieldRef Name=’EncodedAbsUrl’ /> \
                          </ViewFields> \
                       </viewFields> \
                       <queryOptions> \
                         <QueryOptions> \
                           <Folder>http://demoserver1/Blogging Scenarios/lists/Custom List with Sub Folders/Year 2006</Folder> \
                         </QueryOptions> \
                       </queryOptions> \
                   </GetListItems> \
               </soapenv:Corpo> \
           </soapenv:Sobre>";

</final>

Rexístrate para o meu blog.

Siga-me no Twitter http://www.twitter.com/pagalvin

Patróns de fluxo de traballo do SPD, Consellos e Truques

I gave my presentation today at SharePoint Fest in Denver. Here’s the PowerPoint presentation itself: http://www.mstechblogs.com/paul/wp-content/uploads/2011/05/SharePointFest.pptx

Rexístrate para o meu blog.

Siga-me no Twitter http://www.twitter.com/pagalvin

Lists.asmx, GetList e "Valor non pode ser nulo”

Descubrín onte que o GetList() método lists.asmx servizo web ten que ser chamado con moito coidado ou é propenso a lanzar un misterioso "Valor non pode ser nulo" excepción (e iso supoñendo que pode pasar a mensaxe de erro aínda peor xenérico, “Exception of type ‘Microsoft.SharePoint.SoapServer.SoapServerException’ foi lanzada. ")  Especificamente, Eu penso que non pode fornecer calquera tipo de prefixo do método GetList.  O tramo a continuación ilustra o punto jQuery:

image

Se fai iso, o servizo web responde con "Valor non pode ser nulo", segundo este violinista-indicado transcrición HTTP:

<?xml version="1.0" encoding="utf-8"?>
  <xabón:Sobre
     xmlns:xabón ="
http://schemas.xmlsoap.org / xabón / Sobre /"    
     xmlns:xsi = "
http://www.w3.org/2001/XMLSchema-instance"
     xmlns:XSD ="
http://www.w3.org/2001/XMLSchema">

  <xabón:Corpo>
    <xabón:Culpa>
      <FaultCode>xabón:Servidor</FaultCode>
      <faultstring>
        Exception of type ‘Microsoft.SharePoint.SoapServer.SoapServerException’ foi lanzado.
      </faultstring>
      <detalle>
        <xmlns cadea de erro ="
http://schemas.microsoft.com / SharePoint / xabón /">
O valor non pode ser nulo.
        </errorString>
      </detalle>
    </xabón:Culpa>
  </xabón:Corpo>
</xabón:Sobre>

Por suposto, probablemente non quere engadir que o prefixo "S0" no seu propio país, pero algunhas ferramentas son propensos a facelo (como Eclipse).

Isto é aínda máis confuso / frustrante, porque outros métodos tolerar prefixos.  Por exemplo, o GetListCollection método non lle importa se foi precedido, mesmo con prefixos sen sentido como "xyzzy":

image

Este "valor non pode ser nulo" parece bastante común con lists.asmx polo que espera que isto vai axudar a alguén no futuro.

</final>

Rexístrate para o meu blog.

Siga-me no Twitter http://www.twitter.com/pagalvin