Kijan pou Spécifier moun tankou yon objektif Recherche / Contenu sous ki itilize SharePoint 2013 LÒT API

Mwen te gen rezon pou travay avèk SharePoint a 2013 API rechèch via pou la pwemye fwa yo POZE. Mwen te vle pou fè rechèch pou moun, pa dokiman. Kle a apwann isit la se sa ou espesifye sous contenu via GUID li (ou pou pi piti nan ka sa). Suivant jQuery extrait montre kouman:

    loadExpertsAsync: fonksyon() {

        jQuery.support.cors = vre;

        $.ajax({
            adrès entènèt: sa a.CreateFullApiUrl() +
                "?querytext = 'portails'&sourceid = 'b09a7990-05ea-4af9-81ef-edfab16c4e31'" +
                "&selectproperties ='LinkedInProfileUrl,GoogleCirclesProfileUrl,BALargeProfilePictureUrls,BAGridPictures,WorkEmail,Compétences,AboutMe,Enterè,JobTitle,PastProjects,PictureURL,PreferredName,TwitterHandle,LinkedInProfileUrl,PreferredName,GoogleCirclesProfileUrl'" +
                "&rowlimit = 99",
            metòd: "JWENN",
            en-têtes: { "Aksepte": "aplikasyon/json; odata = détaillé" },
            kachèt: pa vre,
            siksè: fonksyon (rezilta) {

Nan ka mwen, M' ap kouri pou API a kont SharePoint sou liy. Pou jwenn GUID a, Mwen te swiv étapes sa yo:

  1. Accès sant admin SharePoint
  2. Fè chwa "recherche" de la navigasyon men gòch
  3. Sélectionnez "Gérer sous rezilta yo"
  4. Fè chwa "Pèp lokal rezilta"
  5. Gade nan adrès entènèt la.

Adrès entènèt m' gade yon bagay tankou:

https://xyzzy-admin.sharepoint.com/_layouts/15/searchadmin/EditResultSource.aspx?level=tenant&sourceid=b09a7990%2D05ea%2D4af9%2D81ef%2Dedfab16c4e31&view=1

Paramètre sourceid a se sa te travay pou mwen.

(Mwen konprann ke sourceid a aktyèlman ka gen yon kalite bagay pèmanan ak SP, but I’ll always check anyway 🙂 ).

</fen>

undefinedVous pou m' blog.

Swiv mwen sou Twitter nan http://www.twitter.com/pagalvin

Egzanp SharePoint lòt apèl

Isit la se yon ansanm echantiyon lòt apèl sa travay pou m' ka fè pou ou tou. Patid 02/2014, there are two examples 🙂

  1. Référence yon kolòn ak mache sou non li
  2. Yon kolòn plizyè Sélectionnez referans
  3. Fè yon moun chache via lòt

 

M ap ajoute sa a tankou lè kat.

Isit la, gen kèk encre itil mwen jwenn osi byen:

Référence yon kolòn ak mache sou non li

Mwen kreye yon lis personnalisé ak yon kolòn ki rele "Blog otè" (ant Blog Et otè).

A $select pou référence kolòn sa se:

image

Ranplase senpleman pase ak "_x0020_". Nou wè _x0020_ nan anpil egzanp travèse internets yo ak lòt pa gen diferans.

Si ou pa fè sa, w ap ka jwenn yon mesaj manti konsa:

Espresyon an “Blog otè” pa valab.

Fasil ase.

Yon kolòn plizyè Sélectionnez Recherche referans

Mete sou pye:

  1. Kreye yon lis repòtaj ki rele kategori.
  2. Ajoute kategori kèk. Mwen te ajoute kategori thusly:image
  3. Kreye yon lòt koutim lis ki te rele MockBlog ak ajoute kategori kòm yon kolòn plizyè sélectionnez lis (ou kote kolòn si se jan ou ti pen).

Ajoute yon atik nan lis Mockblog ou Et w ap pare.

Yon Ajax stil apèl itilize jQuery pwal sanble yon bagay tankou sa:

serverUrl  = "/_api/web/lis/GetByTitle('MockBlog')/atik" +
             "?$fè chwa = Tit,Kategori/Tit,Blog_x0020_Author/Tit" + 
             "&$pran estansyon = Blog_x0020_Author,Kategori";

Nou ap di SharePoint "ban m' Tit pou tout kategori (Kategori/Tit). Obtenir réel valè pou Tit pa $pran estansyonLè nou konsidere pi lis kategori la." (M' Jardins pour pwobableman ase k'ap fè jennès, Men, jan mwen menm entèpretasyon li).

Si w ap fè sa via JavaScript Et itilize Fiddler pou ap chèche la sortie, ou gen yon bagay tankou sa an retou:

 

image

(CI-dessus a se yon bagay JSON)

Fè yon moun chache via lòt

Mwen blogged osijè de sa grenn pa grenn. Kle a se pou spécifier sourceid paramètre yon valè ki se GUID de sous contenu pèp lokal la. (Contenu sous yo te itilize pou y' a rele étendues Et se m-o-m pas twò difisil pou rele tout yon entansyon pou mwen!).

Lire ankò sou sa isit la: http://www.mstechblogs.com/paul/?p=10385

 

</fen>

undefinedVous pou m' blog.

Swiv mwen sou Twitter nan http://www.twitter.com/pagalvin

Rapide Et fasil: Kreye yon sit SharePoint ki itilize lòt

Gen anpil resous autour montre sa kijan pou fè sa, Men, mwen pa t kapab jwenn yon comprehensive ale-pou lyen, Se konsa isit la nou ye.

Ou kapab kreye yon sit SharePoint ki itilize API rete a.  Isit la se yon ekzanp entièrement kwit nan fou:

<!--
    SiteRequestForm.html: Kolekte enfòmasyon ak kreye yon kote ki gen pou moun kap itilize li an.
-->

<sant>
<tab>
    <tr>
        <td>Kote ki gen non:</td>
        <td><enèji absòbe tip= "tèks" fe-apel= "SiteName" didantite= "SiteName" /></td>
    </tr>
    <tr>
        <td colspan= "2">
            <enèji absòbe tip= "soumèt" didantite= "CreateSiteButton" valè= "Kreye sit la" />
        </td>
    </tr>
</tab>
</sant>

<script src="../Plugins/jquery-1.11.0.min.js"></script>

<script>
var CreateSiteLogicContainer = {

    createSiteData: {
            "paramètres": {
                __metadata: { "jan de": "SP.WebInfoCreationInformation" },
                Adrès entènèt: "Paultest1",
                Tit: "Paultest1",
                Dekri teren: "rete te kreye web pa Paul!",
                Lang: 1033,
                WebTemplate: "sts",
                UseUniquePermissions: pa vre
            }
    },

    createSite: fonksyon () {

        jQuery.support.cors = vre;

        CreateSiteLogicContainer.createSiteData.parameters.Url = $("#SiteName").val();
        
        $.ajax({
            adrès entènèt: "https://bigapplesharepoint.sharepoint.com/NBAIADev/_api/web/webinfos/add",
            metòd: "PÒS",

            en-têtes: {
                "aksepte": "aplikasyon/json; odata = détaillé",
                contenu tip"": "aplikasyon/json;odata = détaillé",
                "X RequestDigest": $(NIMEWO __REQUESTDIGEST"").val()
            },

            done: JSON.stringify(CreateSiteLogicContainer.createSiteData),

            siksè: fonksyon () { sou kiviv("siksè"); },
            erreur: fonksyon () { sou kiviv("erreur"); }

        });
    },

    wireUpForm: fonksyon () {
        $("#CreateSiteButton").Sur(fonksyon () {
            sou kiviv("A pou eseye kreye sit la.");
            CreateSiteLogicContainer.createSite();
        });
    }


}

CreateSiteLogicContainer.wireUpForm();

</script>

Lè siksè, ou jwenn yon paquet JSON nan repons konsa:

image

Kle lide m' Et apprentissage de sa a genyen ladan:

  • Metòd sa a itilize jQuery.  Nan ka mwen, bibliyotèk jQuery mwen trouve nan "../ plugins. "  Ou ap vle pou chanje sa pou montre m kote JQ pi renmen ou ye.
  • Ou kapab kopi e pat extrait tout sa antre nan pati entènèt Contenu editè yon nan yon paj Et li ta dwe travay jis byen.  Ou ap vle chanje a fin point D' API apèl e asire w ou référence JQ kòrèkteman.
  • Adrès entènèt la se relative to Point API ou.  Nan ka mwen, li kreye pozisyon de baz anba https://bigapplesharepoint.com
  • Ou pa bezwen pou bay yon longueur contenu. Kèk blog postes Et MSDN dokiman implique pou ou fè, Men te rive pou m' otomatikman, ki mwen sipoze te lantremiz $.ajax apèl tèt li.
  • Liy sa a mande pou kapab evite yon repons "entèdi": "X RequestDigest": $(NIMEWO __REQUESTDIGEST"").val().  Genyen lòt fason pou ou fè l, Men sa bèl bèl.  Mwen te pèdi lyen pou blog ki te founi raccourci sa a.  H/T ou, mistik blogger!

Bòn chans nou ak tout espwa sa a te ede yon moun deyò.

</fen>

undefinedVous pou m' blog.

Swiv mwen sou Twitter nan http://www.twitter.com/pagalvin

Bat enèvan pwoblèm ak fanmi Urls nan anlanse SharePoint rapide

Mwen te vle pou ajoute yon ki lye anlanse rapide navigasyon a lòt jou Et SharePoint te di m:

image

Tèks nan vèsyon de sa se:

Asire ke adrès entènèt la an valab e kòmanse avèk soit yon bon karaktè (yon nimewo siy (#) ou Avant out kouto (/)) ou se yon bon en pwotokòl (pa ekzanp, ' http://’, ' https://’, ' dosye://’, la ftp://’, la mailto:’, ' nouvèl:’).

"Blech Et du!"Mwen te di.

Yon solution pou sa a, se pou sèvi ak JavaScript pou jwenn yon konnen ki lye nan anlanse rapide Et remplacement konpòtman li.

Pou tès sa a, ajoute yon nouvo lyen pou ou kote ki gen tès thusly:

image

Mwen te gen abitid jQuery. Pou rezoud li, gen kèk JavaScript Et jQuery sou paj la ap itilize teknik pi renmen ou, ak yon liy de kòd kon sa:

 

$(dokiman).pare( fonksyon () {

    $("yon:contient('Tès adrès entènèt ranplasman')").Sur(fonksyon () { sou kiviv("Sur chanje konpòtman!"); retounen pa vre;});

});

Et Bob a tonton ou.

La sélection jQuery trouve chak <yon> etikèt ki gen "Ranplasman adrès entènèt tès" nan li yo, non. Ou ka vle jwenn-mizik sa selon ou ki lye ak comme.

A .click(fonksyon() Sur sa SharePoint ta fè lè moun kap itilize li an Sur. Pou pi si ou "retounen nan bay manti" ou autre li ap fè bagay ou e lè sa a eseye href bagay tou, ki se pweske sètènman pa objectif ou.

Sa te fè ak tès nan yon anviwonman online SharePoint men dwe travay byen nan 2010 Et plus twò.

</fen>

undefinedVous pou m' blog.

Swiv mwen sou Twitter nan http://www.twitter.com/pagalvin

Rapide Et senp: SharePoint, lòt, ki rele sèlman Renvoie 100 Dosye

Mwen te gen t ap travay sou yon piblik fas sit entènèt pou m' SharePoint pratique isit la nan New York epi li itilize yon bann JavaScript ak lòt apèl pou montre contenu.

Pandan devlopman mainline, Mwen kreye yon ti dataset ak sèlman 10 ou se konsa èskonbwit nan yon lis personnalisés Et apèl REPO m' yo tout kote yo te.  Yon sèl fwa m' a leve lis pou kèk santèn èskonbwit enfòmasyon pou tès pou prévu la croissance, Mwen te twouve ke mwen t' ap exactement 100 èskonbwit ki te retounen nan do m' apèl yo te rete.

Sa se yon bagay trè fasil pou adrès ou.  Nan ka mwen (e mwen kwè nan pi fò ka yo), defo a rete rele pou SharePoint (e petèt tankou yon endistri estanda?) retounen 100 èskonbwit.  Pou li retounen nan pi plis pase a defo, sèvi ak paramètre $top a sou apèl ou, menm jan nan:

PRAN /Insights Dev/_api/web/lists/GetByTitle('MockBlog')/atik?$fè chwa = Didantite,Tit,Kategori/Tit,Blog_x0020_Author/Tit,DatePublished,BlogSummary&$pran estansyon = Blog_x0020_Author,Kategori&$filtre =&$sou tèt = 9999

Mwen pran 9999 nan ka sa depi mwen konnen sa growth-wise, p ap gen plis pase 200 ou se konsa èskonbwit vin ajoute nan lis sa a nan yon ane.  Si l' vin ungainly, nou ka aplike kèk échange desann nan wout la.

</fen>

undefinedVous pou m' blog.

Swiv mwen sou Twitter nan http://www.twitter.com/pagalvin

Rapide Et senp: Rezoud "non adrès entènèt Paramètre” pwoblèm ak UpdateListItems nan lists.asmx

Lè travay ak UpdateListItems via lists.asmx, se fasil pou générer erreur a:

Adrès entènèt non Paramètre.

Adrès entènèt te founi contient yon non kòmand ou valè. Tanpri, tchyeke adrès entènèt la ankò.

Ou ka jwenn erè sa lè ou bliye gen ladan yo Didantite nan a lis jaden pou jour.  Sa a, tankou anpil nan sèvis entènèt sa yo tou KOLE, yon ti kras counterintuitive depi ou bezwen pou mete Didantite a nan tout kalite Didantite de la <Metòd> eleman.  E ou pa santi w à Didantite Et pwobableman pa janm vle nan premye plas.

Fè enveloppe SAVON sa a:

<soapenv:Enveloppe xmlns:soapenv =' http://schemas.xmlsoap.org/Soap/envelope/'>
  <soapenv:Kò>                      
    <UpdateListItems xmlns =' http://schemas.Microsoft.com/sharepoint/Soap/'>                     
      <listName>{C712E2EA-54E1-47AD-9D99-1848C7773E2F}</listName>                     
        <à>                     
         <Par OnError ="Kontinye">
          <Metòd Didantite ="1" Cmd ="Ajou">
            <Champ non ="CooperativeLock">akle!</Jaden>
            <Champ non ="DIDANTITE">1</Jaden>
          </Metòd>
        </Lot>                     
        </à>                
      </UpdateListItems>             
  </soapenv:Kò>         
</soapenv:Anvlòp>

Si ou bande soti referans jaden Didantite Apre sa ou ap pran mesaj "Non adrès entènèt paramètre" gênantes.

</fen>

undefinedVous pou m' blog.

Swiv mwen sou Twitter nan http://www.twitter.com/pagalvin

 

Pòv la nan JavaScript

[TL;Doktè vèsyon pipiti de youn: sèvi ak lekòl pou stocker rezilta yo de async apèl; rendu rezilta yo de apèl async sot pase imedyatman Et puis valider yo apwè paj-chay.]

Mwen te gen t ap travay sou sit intranet SharePoint pou kliyan an yon fonctionnalités sa, pami lòt bagay, yon stylisé akote navigasyon ki opsyon kat sont gérés via regilye lis koutim granmoun.  Lide an se kliyan a obtient pou kontwole kat sit "yo" san ki afekte ou global navigasyon ki te mete pou l' te touche.

(se yon bagay très sibvèsif sou yo pandan l ajoute yon CEWP ki points pou yon fichier HTML sa charge kèk CSS Et JS fondamentalement ye prèske tout sou konpòtman sit yon... Men se pou yon lòt pòs)

Kòd la pou pote lestonmak li bèl sa a:

Ici Sur blese a se sa chak fwa yon moun hits yonn nan paj sit la, browser web utilisateur sa rive pou jwenn atik nan lis la.  Yon fwa ke dev nèt sou tout pwen Et pou fè tès ki éprouvée sa ki gen pou rete estab Et nèt sou tout pwen, apèl sa a pa nesesè plis pase 99% nan tan depi kat la raman chanje.  Li genyen tou yon bizarre Sur UI ki komen nan mond new brave sa a de hyper-ajaxy web pozisyon – paj la renders Et se sèlman lè sa fè kat a rendu.  Li instable Et trouble nan vi mwen.  Et instable. Se konsa, la. 

Mwen modifye lojik a thusly:

  • Chèche pou yon bonbon nan browser ki genyen kat la, menm jan mwen dènye li li
    • Si te jwenn, rendu li imedyatman.  Pa tann pou paj pou m fini chaje.  (Ou bezwen pou asire w ou HTML èstratejikman mete isit la, Men li pa di pou fèt).
  • Paj pou fini chaje ak fè yon async ki te rele pou chaje moute kat atik nan yon lis ki te itilize RÈS ou lists.asmx ou tou sa se pou tann
  • Konpare sa mwen gen kont bonbon a
    • Si l' alimè, Rete
    • San sa, w ap itilize jQuery, dynamique peple Ann, si <li>la nan yon <ul>
  • Sèvi ak CSS pou yo fè tout la mise
  • Avantaj!

Anpil nan nou ap vin di, "alo! se pa vrèman en kap pase isit la depi lè ou ap lecture kat sa a? chak fwa moun ki pa marye.”  Ou gen rezon – mwen pral pa bay sèvè a nenpòt kalite saut.  Men, paske apèl se async Et rive aprè paj la an premye HTML chaj entièrement renders, "santi l" plis aux pou moun kap itilize li an.  Kat la renders très kantite paj enspirasyon.  Si kat a rive pou chanje a, moun kap itilize li an soumis pou yon instable re-trase de kat la, Men se sèlman sa yon sèl fwa.

Genyen kèk fason pou fè sa a la pi efikas kont e ede sèvè la an menm tan:

  • Mete yo nan yon regleman sa a "bonbon cache" valab pou yon minimòm 24 Lè ou gen kèk lòt délai. Osi lontan ke pa gen okenn a bonbon, sèvi ak kat snapshot bonbon a Et la sèvè a te fwape pa janm.

Pi rekòt kafe/zaboka ki se tout sa ki vin chonje m kounye a :). 

Si yon moun gen okenn lide pran pòz isit la mwen ta renmen konnen yo.

Et, enfin-teknik sa ka sèvi pou lòt bagay.  Paj kliyan sa a gen yon bann bagay pa par done sou plizyè paj, anpil nan yo chanje relativement raman (tankou yon fwa pa semèn ou yon fwa pa mwa).  Si ou cible espesifik zòn de fonctionnalités, ou kapab bay yon plis aux UI en contenu de bonbon lokal nan magazen an ak rendu imedyatman.  Ou santi l lwa pou moun kap itilize li an menm si w ap pa enregistrement sèvè a cycles tout.  ou kapab mete sou kote cycles sèvè yo pa deside sou kèk kondisyon Et déclenche pou annuler kache bonbon lokal sa a.  La tout bagay artsy Et vrèman ki amizan :). 

</fen>

undefinedVous pou m' blog.

Swiv mwen sou Twitter nan http://www.twitter.com/pagalvin

kijan: Configure inite w la tès ak tès lwa sekirite sosyal ak QUnit.js ak Blanket.js pou yon biwo 365 SharePoint App

Intro

Mwen te gen te explorer inite w la tès ak tès garanti pou JavaScript menm jan mwen travay sou yon nouvo app SharePoint pou SharePoint ale nan biwo a 365 chanm.  Chemins evidan rechèch yo te dirije m' pou Qunit.js Et dwat aprè sa, pou Blanket.js.

QUnit kite m' mete sou pye tès inite w la ak gwoup yo nan modules.  Yon modile ki se jis yon fason byen senp pou òganize tès liés. (Mwen pa si se mwen menm ki itilize li kòm destinés, Men sa travay pou m' twò lwen ak ti ansanm lan nan tès sa yo mwen te defini byen lwen konsa).

Blanket.js entegre ak Qunit e li pwal montre m' réel lignes de JavaScript ki ont- epi pi enpòtan toujou-te pa aktyèlman exécuté devwa yo kouri tès yo.  Se sa rele "garanti" – lignes exécuté sont kouvri anba tès lan pandan lòt moun yo pa.

Ant òganize ka sonde yo bon ak affichage lwa sekirite sosyal, nou kapab redwi risk pou yo ke nou kòd ki hidden défauts.  Bon.

Qunit

En ou gen ou izyèl estidyo pwojè an mete sou pye, kòmanse téléchargement pakè JavaScript a de http://qunitjs.com.  Ajoute JavaScript e CSS korespondan pou ou kapab jwenn solisyon.  Tèren pyeje recherche kon sa:

image

Figi 1

Menm jan ou kapab wè, Mwen te itilize 1.13.0 Lè mwen te ekri sa a blog pas. Pa bliye, pou rale dosye e ajoute CSS dokiman an.

Sa soti nan wout la, pwochèn pa se pou kreye yon jan de tès lekipay Et référence ti kal pen te Qunit.  M ap sonde yon pakèt moun fonksyon nan yon fichier script ki rele "QuizUtil.js", se konsa mwen te kreye yon paj HTML ki rele "QuizUtil_test.html" jan montre:

image Figi 2

Isit la se kòd la:

<!DOCTYPE html>
<html xmlns= "http://www.w3.org/ 1999/xhtml">
<tèt>
    <tit>Tès QuizUtil ak Qunit</tit>
    <lyen rel= "stylesheet" HREF="../CSS/qunit-1.13.0.css" />
    <script tip= tèks/javascript"" src="QuizUtil.js" done pwotèj></script>
    <script tip ="tèks/javascript" src ="qunit 1.13.0.js"></script>
    <script tip ="tèks/javascript" src ="blanket.min.js"></script>

    <script>
        modile("getIDFromLookup");
        tès("QuizUtil getIDFromLookupField", fonksyon () {
            var goodValue = "1;#Paul Galvin";

            egal-ego(getIDFromLookupField(goodValue) + 1, 2), "Didantite de [" + goodValue + "] + 1 yo ta dwe 2";
            egal-ego(getIDFromLookupField(non), non, "Endefini D' diskisyon ta dwe retounen endefini rezilta yo.");
            egal-ego(getIDFromLookupField(""), non, "Vid D' diskisyon ta dwe retounen yon valè endefini.");
            egal-ego(getIDFromLookupField("gobbledigood3 thq;dkvn ada;skfja sdjfbvubvqrubqer0873407t534piutheqw;vn"), non,"Ta dwe toujou retounen yon rezilta convertible pou yon nonm antye");
            egal-ego(getIDFromLookupField("2;#kèk lòt moun"), "2", "Tcheke [2;#kèk lòt moun].");
            egal-ego(getIDFromLookupField("9834524;#valè tan"), "9834524", "Gwo valè tès.");
            notEqual(getIDFromLookupField("5;#Si yon moun", 6), 6, "Sonde yon notEqual (5 pa rive fè 6 pou sa a echantiyon: [5;#Si yon moun]");

        });

        modile("htmlEscape");
        tès("QuizUtil htmlEscape()", fonksyon () {
            egal-ego(htmlEscape("<"), "&lt;", "Ke yon te ranmase pi piti pase operatè ('<')");
            egal-ego(htmlEscape("<klas div =  "someclass">Kèk tèks</div>"), "&lt;klas div =&quot;someclass&quot;&gt;Kèk tèks&lt;/div&gt;", "Plis konplèks tès chaîne.");
        });

        modile("getDateAsCaml");
        tès("QuizUtil getDateAsCaml()", fonksyon () {
            egal-ego(getDateAsCaml(nouvo Dat("12/31/2013")), "2013-12-31T:00:00:00", "Sonde di code dat: [12/31/2013]");
            egal-ego(getDateAsCaml(nouvo Dat("01/05/2014")), "2014-01-05T:00:00:00", "Sonde di code dat: [01/05/2014]");
            egal-ego(getDateAsCaml(nouvo Dat("01/31/2014")), "2014-01-31T:00:00:00", "Sonde di code dat: [01/31/2014]");
            egal-ego(getTodayAsCaml(), getDateAsCaml(nouvo Dat()), "getTodayAsCaml() ta dwe rive nan menm getDateAsCaml(nouvo dat())");
            egal-ego(getDateAsCaml("vye koze valè"), non, "Eseye pou jwenn dat li yon valè vye koze.");
            egal-ego(getDateAsCaml(non), non, "Eseye jwenn dat li a [non] dat.");
        });

        modile("getParameterByName");
        tès("QuizUtil getParameterByName (de la chaîne requête)", fonksyon () {
            egal-ego(getParameterByName(non), non, "Eseye jwenn endefini paramètre ta dwe retounen nan endefini.");
            egal-ego(getParameterByName("pa egziste"), non, "Eseye pou jwenn valè paramètre lè nou konnen paramètre a pa egziste.");

        });

        modile("Lekòl");
        tès("QuizUtil plizyè kalite fonksyon bonbon.", fonksyon () {
            egal-ego(setCookie(tès"", "1", -1), getCookieValue(tès""), "Obtenir, yon bonbon mwen mete ta dwe travay yo.");
            egal-ego(setCookie("anycookie", "1", -1), vre, "Mete yon bon manje ta dwe retounen 'laverite'.");
            egal-ego(setCookie("bonbon fou non !@#$%"%\^&*(()?/><.,", "1", -1), vre, "Mete yon move bonbon non ta dwe retounen 'manti'.");
            egal-ego(setCookie(non, "1", -1), non, "Pase endefini tankou non bonbon.");
            egal-ego(getCookieValue("pa egziste"), "", "Bonbon pa egziste tès.");
        });

    </script>
</tèt>
<>
    <div didantite= "qunit"></div>
    <div didantite= qunit fixe""></div>

</>
</html>

Genyen anpil bagay ki pase isit la:

  1. Référence m' kòd (QuizUtil.js)
  2. Qui Qunity.js
  3. Defini modules kèk (getIDFromLookup, Lekòl, ak lòt)
  4. Mete yon <div> Didantite ki se "qunit".

apre, Mwen jis rale moute nan paj sa yo ak ou jwenn yon bagay tankou sa:

image

Figi 3

Si ou gade lòt sou tèt, ou gen kèk chwa, de nan ki yo enteresan:

  • Te pase tès ki kache: Assez aklè.  Ka ede je ou annik wè zòn sa yo pwoblèm Et pa yon bann de l'.
  • Modile: (gout (n)): Sa ap filtre tès yo desann nan gwoup sèlman sa yo nan tès sa yo ou vle.

Tankou tès yo-kèk sijesyon:

  • Sa se pa di sa ou bezwen pou yo ekri kòd ou comme ke li testable nan premye plas.  W ap itilize a konnen si yon moun ka ede appliquer disiplin sa. Ekzanp, Mwen te gen yon fonksyon ki rele "getTodayAsCaml()”.  Bagay sa a pa trè testable depi li pwan pa chire pit D' Et teste li pou egalite, nou ta bezwen constamment à kòd tès pou reflete dat aktyèl la.  Mwen refactored li pa pandan l ajoute yon paramètres D' done konsa pase dat aktyèl la lè m vle dat jodi a nan CAML fòma.
  • A Qunit-documents tès pwòp e li pi sanble ki trè gaya.  Li kapab fè sa tankou tès pou egalite e li gen sipò pou ajax stil apèl (les "reyèl" ou mocked yo ap itilize mocker pi renmen ou).
  • Ap pase nan pwosesis la tou fòs ou panse à bord ka-sa k rive koukouloukou ak "endefini" ou null te pase nan yon fonksyon.  Li fè l' mouri senp pou tès scénarios sa yo deyò.  Bon bagay.

Lwa sekirite sosyal ak Blanket.js

Blanket.js complète Qunit pa Suivi réel lignes de kòd ki te akonpli diran okou kouri tès ou.  Li entegre dwat nan Qunit menm se konsa menm si li se yon tout separe app, jwe bien – li vrèman sanble se yon sèl app sans.

Se sa rele blanket.js nan aksyon:

image Figi 4

image

Figi 5

(Ou aktyèlman gen Sur sou a "Pèmèt lwa sekirite sosyal" à nan tèt [wè figi 3] pou pèmèt sa.)

Les lignes en nan figi 5 pa te egzekite pa okenn nan tès sa yo m, Se konsa mwen bezwen devise yon tès ki koze yo pou yo egzekite si mwen vle plen lwa sekirite sosyal.

Gen blanket.js ki te travay pa swiv étapes sa yo:

  1. Rale dosye l http://blanketjs.org/.
  2. Ajoute pwojè ou
  3. À paj lekipay tès ou (QuizUtil_test.html nan ka mwen) comme piba:
    1. Référence kòd la
    2. Ekore ou <script> référence kon sa:
    <script tip= tèks/javascript"" src="QuizUtil.js" done pwotèj></script>

Blanket.js travayè kalite "done kouvèti" a epi ki fè sanp li.  Li crochets nan Qunit, à la UI pou ajoute a opsyon "Pèmèt lwa sekirite sosyal" Et Vwala!

Rezime (TL; DOKTÈ)

Sèvi ak Qunit pou yo ekri ou ka sonde.

  • Rale dosye l
  • Ajoute pwojè ou
  • Ekri yon paj lekipay tès
  • Kreye tès ou
    • Refactor kèk nan kòd ou en testable
    • Être kreyatif!  Panse a fou, scénarios enposib ak tès yo?.

Sèvi ak blanket.js pou asire ke lwa sekirite sosyal

  • Pou pi si Qunit ap travay
  • Rale dosye blanket.js Et ajoute pwojè ou
  • Ajoute paj lekipay tès ou:
    • Ajoute yon referans a blanket.js
    • Ajoute yon kalite "done kouvèti" pou ou <script> etikèt
  • Lage kous nou tès Qunit.

Mwen pa janm fè anyen nan sa deja Et te gen kèk bagay rudimentaire kap travay nan yon ti ponyen heures. 

Benediksyon pou sonde!

</fen>

undefinedVous pou m' blog.

Swiv mwen sou Twitter nan http://www.twitter.com/pagalvin

Dènye de ben ou tout tan tout tan ap pote?

[Rapide note-sa se yon bèl lontan pòs sou yon travay ki louvri pou m' gwoup isit la nan New York Et ou bezwen pou viv nan zòn twa ak leta a si ou pa te enterese.]

Mwen fin antre Slalom Consulting sou 18 mwa de sa e sa ap fè sa m' travay plus dirab depi 2007. M pa t plan li pou fason sa. Anvan yon seri de travay èspwa sa a avè m' leap sou latè SharePoint, Mwen te nan menm kote pase onzan. Mwen te finalman jwenn yon nouvo, mouri kite kote pou yo travay pou bwote long isit la nan Slalom.

Isit la en Et mwen bezwen kèk èd pou kontwole sa. Ki kalite èd m bezwen toujou rele yon "SharePoint solisyon achitek" Malgre ke mwen te jwenn pawòl achitek pase ak pas itilize espas SharePoint a pou jan sa dwe fèt yon ti tan koulye a. Mwen te gen te konbat sou kijan pou blog osijè de sa. Mwen pa vle tou senpleman lis soti yon pakèt moun bal ki gen nan fason Dés/mons. Recrutement pairs trè byen m' te konn fè sa deja :). Se konsa, Mwen te deside pou li pran yon apwòch "jou nan lavi a". Li li Et konsidere:

1) Si l' appel Et

2) Èske w konnen nan tout zo nan kò ou pou ou ka fè l.

Si wi, kontakte m (Paul.galvin@slalom.com) an n pale.

Se sa ou kapab espere pou yo fè nan type senmenn/mwa kòm yon solisyon achitek nan ekip mwen:

  • Lage kous pwojè, souvan plis ke yonn nan yon moman. Kèk pwojè sont gwo Et se konsa ou ta ka posede yon pwojè sa. "Kouri" yon pwojè moyens ke ou gen sipèvizyon ak responsabilite pou tout kalite akouchman an. Nan pwèske chak ka ou pral gen yon h Et yon ekip vrèman yo gwo de devs, Ba, UX moun, pwoblèm kè, pou sipòte ou. Men, ou menm ki ap pwensipal figi kliyan a wè, approuve, ets. Se pa kamoken opozan sere nan ombres yo nan wòl sa a :). Ou ap lokatif fwa sa a ak objektif lan se pou pwoteje nou okipe ase pou w fè sa 80 pousan nan tan.
  • Ede ak administratives-Reproductrices, Appels, ponts-tout bon bagay. Mwen panse ke nou dwe pwosesis Des nou trè sere e dirab se sak rive vre assez formule. Si w ap itilize pou ekri Reproductrices jodi a, pwosesis nou pa pwal fè yon defi pou ou. Appels-yon ti konsèy. Yo gen tandans pou Sur nati avec commencer Et Appels en rale nan plizyè diferan otè. Li tou de ak sa ki pa bon, Men, principalement bon. Sa ka jwenn scrambly lè nou bezwen avec la bezwen pou sèvis Kliyantèl trè byen pandan tou eseye pou genyen nouvo travay. Ou kapab byen pa p posede yon OFFRES men yo pral mande w pou kontribye seksyon.
  • Vente apèl, Men se pa yon plus. Natirèlman yon mwa, ou kapab espere pou ale sou de vente apèl yo ak vente ekip nou an. Ou ap PME la nan sal la, pran nòt epi ede ranje kò a solisyon. Sepandan, ou pa p ka te mande ou te espere pou yo fè lè la vente ik de démarrer pou m fini. Ou pa bezwen "vann,"ou annik bezwen pou yo sou blòk glas li tande rezon ladrès nan sal. Sa baze confiance Et non konfyans epi yo se poutèt sa ou ap gen. Men wi, Si ou renmen vann, Lè sa a pa gen plas pou ou a rete isit la twò.
  • Ede ak poutèt li anrole. Nou gen yon kalite pwogram oye kay yon espesyalis, Se konsa si w konnen gens fò nan kominote a sa ou panse ta dwe fè pati Slalom, ou ka benefisye konsa. Nou te dédié moun k ap (kiyès ki pwal trè byen) fè pati lyon yo nan sa a jan de travay. Èd reyèl avec kandida-n' a jwenn yon bon tonbe plan? Fè yo konnen bagay sa yo? Yo ka fè * m * lavi vin pi fasil? 🙂 This comes in spurts, de fwa pa mwa, Malgre ke nan kèk mwa ou ta fè sa nan tout.
  • Ede defini pratik ki pi bon, konstwi IP nou ak pou fè nou vin pi konpetitif nan mache a. Ou gen yon eksperyans nèg/nègès. Ou te otou katye an – pa sèlman nan SharePoint, Men, nou gen eksperyans nan lòt teknoloji pou yo kapab viv tout bon ak sa ki mal (menm ase rale mennen vini) pwojè les sou. Kòm yon rezilta, ou konnen sa ap travay ak sa ki pa. Nou ap vle ou pou pataje eksperyans sa avèk nou sou yon baz jou nan yon sans taktik (c'est-à-dire. lage kous pwojè nou vrèman byen) Men tou èstratejikman. "Meyè pratik" yon ti kras peut kòm yon tèm Et mwen ezite pou sèvi avè l. De baz lide a se sa ou ap vini tankou yon moun konn ak eksperyans gwo basen byen fon Et pertinente Et nou vle pou li entegre pi bon bagay de apprentissages ou nan jan nou angaje ak kliyan sou yon baz jou an jou.
  • pran plezi -nou se yon pakèt trè entegre. Mwen vle pou evite yon lòt platitude, Men sa vrèman jis nan ka sa – nou travay di (type de) epi nou menm plus jwe :). Se yon Aaron Sorkin kalite fraz isit la, nan sal toujou plen moun pran pòz, nou renmen nou bwè ak nou òganize yon bann bèl gwo plezi evènman-sinema aswè, bezbòl vwayaj (menm si yo tèrib, prèxke move ekip).

Si mwen te kapab somme li tout nan yon sèl pawòl, Mwen ta sèvi ak pawòl Bondye a "lidè." Kondwi yon pwojè, pran yon wòl plon nan kay soti pwatik lan (IP, ekip la te rebati), ets.

Men, ret tann! Pa gen plis! Lòt Poukisa travay nan Slalom?

  • Remakab inite de lentansyon-tout moun vle pouse bagay sa a soti. "Bagay sa a", ki se biwo New York la. Tout moun, se sou sa.
  • Vent vwal ou-sè nan biro yo, sè pratiques-Slalom se yon "tout sèvis" konseye sou òganizasyon. Mwen mennen kanpe la pratique SharePoint (yon "Pratique zòn mennen" nan Slalom lingo). Mwen gen sè pratiques nan 11 lòt biwo Slalom. Se konsa menm si se mwen menm ki wa osi lwen ke SharePoint konsène isit la nan Slalom, New York, Mwen gen gwoup pratik nan Chicago, Seattle, Dallas, Atlanta, Boston, ets. kote mwen kapab trase sou sipò. Se konsa menm pi bon bagay de deux mondes-important otonomi isit la nan New York men aksè a tòn mil goud Sur òganizasyon an.
  • Vent nan vant ou (2) -Nou fè pi plis pase SharePoint-nou pa bezwen plis. Nou fè Jounal, CRM, UX, biznis konsiltasyon, Mobil, personnalisés developman e lòt yo. Nou bon nan cross vann pami tèt nou e nou ap bon nan tablo- Et pi enpòtan toujou, ap fè livrezon sou-yon foto "tout service" pou kliyan nou. Sa sitou appel m '. Mwen te nan anpil plus orgs ki ap travay sou SharePoint gigs Et fwistre sou kou pase ankò paske nou te pijon sont kòm "SharePoint pèp la." Sa pa rive ak Slalom Et nou jwenn pou yo fè travay pi enteresan kòm yon rezilta.
  • Lokal modèl-vwayaj pa.
  • Lon tèm croissance-Slalom la ap mache gangbusters. Yon pakèt de croissance ak estabilite. Croissance siyifi tou sa nou bezwen pou m lidè yo jodi a pou tèt moute nouvo ekip yo menm jan nou ajoute plis kliyan yo pou sipòte kliyan sa yo.

Mwen te kapab kontinye, Men, mwen te pwobableman deja ale sou twò lontan. Mwen panse mwen te gen te kaptire esans isit la. Si ou panse osijè de chanje travay ak sa sanble mache byen pou ou, an n pale.

Si ou pa kontan nan travay kouran ou-an n pale? :). Mwen te nan yon lòt vil Et te trè "bon" epòk. Slalom diferan e mwen ta resevwa yon chans pou yo asire ou de sa.

</fen>

undefinedVous pou m' blog.

Swiv mwen sou Twitter nan http://www.twitter.com/pagalvin

Rapide Et fasil: Chita la Taille de yon atik nan yon lis bwat nan yon App fenèt magazen an

Nan yon fenèt magazen App mwen menm ki kreye, M vle pou montre moun kap itilize li an plizyè informational mesaj mwen.  M pran yon ListBox kòm a konnen si yon moun pou montre l' lè sa a, yo ka faites par les Et tout bon bagay. 

Mesaj sont informational sèlman, Se konsa, pa gen okenn nesesite pou bay tout sa supplémentaires whitespace autour yo depi ke moun kap itilize li an pa janm ka chwazi yo pou anyen ankò.  Defo konpòtman de ListBox a bay yon montan importante de remplissage Et mwen te vle pou debarase li de sa.  byen.... ou pa kapab fè sa kalite bagay sou ListBox a tou dwat.  SEPANDAN, ou ka fè l' pou nou ajoute atik yo:

        pwive vid AddGameStateLogMessage(filè theMessage)
        {
            TextBox t = nouvo TextBox();
            t.Text = GameStateCounter     + ": " + theMessage;
            t.TextWrapping = TextWrapping.Wrap;
            t.MinWidth = 400;
            Pesè thisPadding = nouvo Pesè(5, 0, 5, 0);
            t.Padding = thisPadding;
            t.FontSize = 12;

            ListBoxItem li = nouvo ListBoxItem();
            li.Contenu = t;
            li.MaxHeight = 25;
            thisPadding = nouvo Pesè(5, 0, 5, 0);
            li.Marge = thisPadding;

            GameStateLog.Items.Insert(0,li);
        }

nan CI-dessus a, Mwen menm ki kreye yon TextBox Et mete li klavye, Marge li, ets.

Pwochen, Mwen kreye yon ListBoxItem Et définir contenu li pou tout en TextBox.

A la fen, Mwen mete an ListBoxItem nan ListBox la.  (Mwen vle montre mesaj ki pi resan nan tèt lis la, Insérez la(0,li) olye de yon senp Ajouter() invocation.).

Mwen pral fè réglages sa yon ti kras anvan mwen vwèman an jwa ak konpòtman ListBox men ki pa gen fòm montre pi wo pase trè fwitye.  Yon lòt moun twouve l' konsèy pou ede.

</fen>

undefinedVous pou m' blog.

Swiv mwen sou Twitter nan http://www.twitter.com/pagalvin