Miten määrittää ihmiset haun laajuus / Sisältölähteen SharePointin avulla 2013 REST API

Minulla oli syytä työskennellä SharePoint 2013 Search API kautta loput ensimmäisen kerran. Halusin etsiä henkilöitä, eikä tiedostoja. Oppi on, että voit määrittää sisältölähteiden kautta sen GUID-tunnus (tai ainakin tässä tapauksessa). Seuraava jQuery pätkä osoittaa miten:

    loadExpertsAsync: funktio() {

        jQuery.support.cors = tosi;

        $.Ajax({
            URL-osoite: Tämä.CreateFullApiUrl() +
                "?QueryText = "portaalit"&SourceId = "b09a7990-05ea-4af9-81ef-edfab16c4e31"" +
                "&selectproperties ='LinkedInProfileUrl,GoogleCirclesProfileUrl,BALargeProfilePictureUrls,BAGridPictures,WorkEmail,Taidot,AboutMe,Edut,Asema,PastProjects,PictureURL,PreferredName,TwitterHandle,LinkedInProfileUrl,PreferredName,GoogleCirclesProfileUrl "" +
                "&ROWLIMIT = 99",
            menetelmä: "SAADA",
            otsikot: { "Hyväksy": "sovellus/json; OData = verbose" },
            välimuisti: False,
            menestys: funktio (tulos) {

Minun tapauksessani, Olen käynnissä API vastaan SharePoint online. Saada GUID-tunnus, Olen seurannut näitä ohjeita:

  1. Käyttää SharePoint admin Centeriä
  2. Valitse "Etsi" vasemmalla navigointi
  3. Valitse "Hallitse tuloksen lähteet"
  4. Valitse "Paikalliset ihmiset tulokset"
  5. Tarkastella URL.

Minun URL näyttänyt jotain:

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

Lähde-entiteetin parametri on mikä työntekijä ajaksi we.

(Ymmärrän, että lähde-entiteetin voi itse asiassa olla sellainen pysyvä asia SP, but I’ll always check anyway 🙂 ).

</loppu>

undefinedTilaa blogiin.

Noudata minut viserrys http://www.twitter.com/pagalvin

Esimerkki SharePoint muualla puhelut

Tässä on näyte loput vaatii, että minua ja voi auttaa myös. Alkaen 02/2014, there are two examples 🙂

  1. Viitata sarakkeen tilat sen nimi
  2. Viittaus monen valitse sarake
  3. Ihmiset haku kautta muun

 

Laitan tähän aika kuluu.

Tässä on joitakin hyödyllisiä musteet löysin myös:

Viitata sarakkeen tilat sen nimi

Luon mukautetun luettelon saraketta nimeltä "Blogin kirjoittaja" (Blogi ja laatija väli).

$select viitata sarakkeen on:

image

Yksinkertaisesti korvata tilaa "_x0020_". Näemme monia esimerkkejä _x0020_ kaikkialla internets ja loput ei ole eroa.

Jos et tee sitä, et voi panna by erehdys asia kuin nyt kuluva:

Lauseke “Blogin kirjoittaja” ei kelpaa.

Helppoa.

Viittaus monen valitse hakusarake

Määrittäminen:

  1. Luo mukautettu luettelo nimeltä Luokat.
  2. Lisätä joitakin tavaraluokkia. Lisäsin luokat thusly:image
  3. Toisen mukautetun luettelon nimeltään MockBlog luominen ja Lisää kategoria Monivalintaluettelo sarakkeena (tai sivuston sarakkeen, jos se miten osoitat).

Joidenkin kohteiden lisääminen Mockblog ja olet valmis.

Ajax tyyli puheluun käyttäen jQuery näyttää suunnilleen tältä:

serverUrl  = "/_api/web/luettelot/GetByTitle("MockBlog")/kohteita" +
             "?$Valitse = otsikko,Luokat/otsikko,Blog_x0020_Author/otsikko" + 
             "&$Laajenna = Blog_x0020_Author,Luokat";

Jota kerromme SharePoint "antaa aihetta kaikissa luokissa (Luokat/otsikko). Todellisten arvojen saamiseksi Otsikko mukaan $LaajennaING Luokat-luettelosta." (Rauhallista siteeraten on luultavasti melko väljä, mutta Miten tulkitsen sen).

Jos teet tämän ohjelman ja käyttäen Viulunsoittaja tarkastella tuotannon, saat jotain tällaista:

 

image

(Edellä on JSON objekti)

Ihmiset haku kautta muun

Olen blogged tästä erikseen. Avain on määrittää sourceid-parametrin, jonka arvo on paikallisten asukkaiden sisältölähteen GUID-tunnus. (Sisältölähteiden käytetään nimitystä laajuuksia ja se on minun-oh-my niin vaikea olla kutsua kaikki varaa minulle!).

Lue lisää siitä täällä: http://www.mstechblogs.com/paul/?p=10385

 

</loppu>

undefinedTilaa blogiin.

Noudata minut viserrys http://www.twitter.com/pagalvin

Nopea ja helppo: Luoda SharePoint-sivuston käyttäen REST

On olemassa paljon rahoitusta, jotka osoittavat, miten tämä, mutta en löytänyt kattavaa mennä linkki, Joten tässä me olemme.

Voit luoda SharePoint-sivustoon käyttämällä REST API.  Tässä on täysin paistetaan esimerkki:

<!--
    SiteRequestForm.html: Kerätä tietoa ja luoda sivuston käyttäjälle.
-->

<Center>
<taulukko>
    <TR>
        <TD>Sivustonimi:</TD>
        <TD><Input tyyppi= "teksti" Nimi"SiteName =" tunnus"SiteName =" /></TD>
    </TR>
    <TR>
        <TD colspan"2 =">
            <Input tyyppi= "Lähetä" tunnus= "CreateSiteButton" arvo= "Luo sivusto" />
        </TD>
    </TR>
</taulukko>
</Center>

<Script src="../Plugins/jQuery-1.11.0.min.js"></Script>

<Script>
var CreateSiteLogicContainer = {

    createSiteData: {
            "parametrit": {
                __metadata: { "tyyppi": "SP.WebInfoCreationInformation" },
                URL-osoite: "Paultest1",
                Otsikko: "Paultest1",
                Kuvaus: "muun luomaa web Paul!",
                Kieli: 1033,
                WebTemplate: "s",
                UseUniquePermissions: False
            }
    },

    createSite: funktio () {

        jQuery.support.cors = tosi;

        CreateSiteLogicContainer.createSiteData.parameters.Url = $("#SiteName").Val();
        
        $.Ajax({
            URL-osoite: "https://bigapplesharepoint.sharepoint.com/NBAIADev/_api/web/webinfos/add",
            menetelmä: "POST",

            otsikot: {
                "hyväksy": "application/json; OData = verbose",
                content-type": "application/json;OData = verbose",
                "X-RequestDigest": $("#__REQUESTDIGEST").Val()
            },

            tiedot: JSON.stringify(CreateSiteLogicContainer.createSiteData),

            menestys: funktio () { hälytys("menestys"); },
            Virhe: funktio () { hälytys("virhe"); }

        });
    },

    wireUpForm: funktio () {
        $("#CreateSiteButton").Valitse(funktio () {
            hälytys("Aikeissa kokeilla ja luoda sivuston.");
            CreateSiteLogicContainer.createSite();
        });
    }


}

CreateSiteLogicContainer.wireUpForm();

</Script>

Kun onnistunut, Saat JSON paketin vastausta tältä:

image

Keskeisiä ajatuksia ja oppimistaan tällä:

  • Tämä lähestymistapa käyttää jQuery.  Minun tapauksessani, jQuery Kirjasto sijaitsee ".../ plugins. "  Haluat muuttaa hakea suosikki JQ sijainnin.
  • Kopioi ja liitä että koko pätkä sivun sisällön muokkaus-Web-osassa ja se toimii yhtä hyvin.  Haluat muuttaa API-kutsu päätepiste ja varmista, että viittaat JQ oikein.
  • Paikannin on suhteellinen API: n päätepiste.  Minun tapauksessani, se luo osa-sivustoja alla https://bigapplesharepoint.com
  • Sinun ei tarvitse antaa sisällön pituus. Blogiviestit ja MSDN asiakirja edellyttää, että teet, mutta tapahtui minulle automaattisesti, jonka oletan on hoitaa $.ajax puhelu itsessään.
  • Tämä rivi on välttämätöntä välttämiseksi "kielletty" vastaus: "X-RequestDigest": $("#__REQUESTDIGEST").Val().  On olemassa muita tapoja tehdä se, mutta tämä on ihan kiva.  Olen menettänyt linkki blogiin, että jos tämä pikakuvake.  Hännikäinen sinulle, salaperäinen blogger!

Onnea ja toivottavasti tämä auttaa jotakuta.

</loppu>

undefinedTilaa blogiin.

Noudata minut viserrys http://www.twitter.com/pagalvin

Voittaa kiusallisen ongelman kanssa SharePoint kiire aloittaa suhteellisia URL-osoitteita

Halusin linkin lisääminen pikakäynnistykseen navigointi toinen päivä ja kertoi SharePoint:

image

Pelkkää tekstiä joka on:

Varmista, että URL on kelvollinen ja alkaa joko kelvollinen merkki (numeron merkki (#) tai vinoviiva (/)) tai kelvollinen tuettu protokolla (esimerkiksi, "http://’, "https://’, "tiedosto://’, "ftp://’, "mailto:’, ' Uutiset:’).

"Blech ja pox!"Sanoin.

Workaround jotta nyt kuluva on ohjelman avulla löytää tunnettu link kiire aloittaa ja ohittaa sen.

Voit testata tämän, Lisää uusi linkki testi sivusto thusly:

image

Käytin jQuery. Ratkaista se, Ohjelman ja jQuery sivulle käyttämällä suosikki tekniikka ja rivi koodia kuten tämä:

 

$(asiakirja).valmis( funktio () {

    $("a:sisältää(Testaa URL korvaaminen)").Valitse(funktio () { hälytys("muuttunut napsautustoiminnasta!"); paluu False;});

});

Ja Bob on setäsi.

JQuery valitsin löytää joka <a> koodi, joka on "Testaa URL korvaaminen" sen nimi. Haluat ehkä löytää-biisi, joka riippuu linkki ja tällainen.

.click(funktio() ohittaa mitä SharePoint olisi tehnyt, kun käyttäjä napsauttaa. Varmista, että olet "return false" tai muuten se tehdä juttuja ja sitten yrittää href asia liian, joka ei lähes varmasti ole sinun tehtäväsi.

Näin tehtiin ja testi SharePoint online-ympäristöön, mutta olisi toimi hyvin 2010 ja aiemmin liian.

</loppu>

undefinedTilaa blogiin.

Noudata minut viserrys http://www.twitter.com/pagalvin

Nopea ja yksinkertainen: SharePoint loput soittaa vain palauttaa 100 Tietueet

Olen työskennellyt julkisen edessä web-sivuston SharePoint käytäntö täällä New York ja se käyttää paljon JavaScript ja loput vaatii Näytä sisältö.

Kaukoliikenteen kehityksen aikana, Luon pieni dataset on vain 10 tai niin rivien mukautetun luettelon ja loput puheluni sieltä.  Kerran bumped luettelo on muutamia satoja rivejä tiedot testata ennakoitu kasvu, Huomasin, että olin saada tarkalleen 100 palauttaa taaksepäin model after minun muut puhelut.

Tämä on hyvin yksinkertainen asia käsitellä.  Minun tapauksessani (ja mielestäni useimmiten), oletuksena loput vaatii SharePoint (ja mahdollisesti alan standardi?) paluu 100 rivit.  Palata enemmän kuin oletus, Käytä $top-parametria puhelu, kuten:

SAADA /Insights Dev/_api/web/lists/GetByTitle("MockBlog")/kohteita?$Valitse = ID,Otsikko,Luokat/otsikko,Blog_x0020_Author/otsikko,DatePublished,BlogSummary&$Laajenna = Blog_x0020_Author,Luokat&$suodatin =&$Top = 9999

Otin 9999 Tässä tapauksessa koska tiedän, että growth-wise, ei tule yli 200 tai niin rivejä lisätään luetteloon vuodessa.  Jos käy kömpelö, voimme toteuttaa joitakin henkilöhaku tiellä.

</loppu>

undefinedTilaa blogiin.

Noudata minut viserrys http://www.twitter.com/pagalvin

Nopea ja yksinkertainen: Ratkaista "virheellisen URL-osoitteen parametri” ongelma UpdateListItems lists.asmx

Kun työskentelet UpdateListItems kautta lists.asmx, on helppo tuottaa virhe:

Virheellinen URL-parametri.

Annettu URL-osoite sisältää virheellisen komennon tai arvon. Tarkista URL-osoite.

Tämä virhe voi esiintyä, kun unohdat sisällyttää ID päivitettävien kenttien luettelo.  Tämä, kuten paljon näitä SP www-palveluja, on vähän counterintuitive, koska sinun täytyy sisällyttää ID ID-määrite <Menetelmä> elementti.  Ja et ole päivitetty tunnus ja ikinä haluat ensimmäinen paikka.

SOAP-kirjekuori toimii:

<soapenv:Kirjekuori xmlns:soapenv ="http://schemas.xmlsoap.org/SOAP/Envelope/ ">
  <soapenv:Laitos>                      
    <UpdateListItems xmlns ="http://schemas.Microsoft.com/SharePoint/SOAP/ ">                     
      <listName>{C712E2EA-54E1-47AD-9D99-1848C7773E2F}</listName>                     
        <päivitykset>                     
         <Erän VirheenYhteydessä ="Edelleen">
          <Tunnus ="1" Cmd ="Update">
            <Kentän nimi ="CooperativeLock">lukittu!</Kenttä>
            <Kentän nimi ="ID">1</Kenttä>
          </Menetelmä>
        </Erä>                     
        </päivitykset>                
      </UpdateListItems>             
  </soapenv:Laitos>         
</soapenv:Kirjekuori>

Jos olet nauhat pois ID kenttäviittaus niin saat harmittaa "Virheellisen URL-osoitteen parametri" viesti.

</loppu>

undefinedTilaa blogiin.

Noudata minut viserrys http://www.twitter.com/pagalvin

 

Köyhän on välimuistin ohjelman

[TL;DR versio: käytä evästeitä vanhempi puhelut tulokset; tekevät viime vanhempi puhelut tulokset välittömästi ja vahvistaa niitä jälkeen sivun lataus.]

Olen työskennellyt SharePoint intranet-sivustossa asiakas että ominaisuudet, muun muassa, tyylitelty toissijaiseen selailuun jonka valikkovaihtoehdot hallinnoidaan kautta säännöllisesti vanha mukautetun luettelon.  Ajatuksena on, että asiakas saa hallita "niiden" sivuston valikko vaikuttamatta tai sairastumatta maailmanlaajuisen satelliittinavigointijärjestelmän ojensi sen.

(on jotain uskomattoman kumouksellista lisäämisestä CEWP, joka viittaa HTML-tiedosto joka lataa CSS ja JS perusteellisesti lähes kaikki sivuston käytös... mutta se on toiseen virkaan)

Melko yksinkertainen koodi:

Kipeä paikalla täällä on aina joku osuu sivuston sivut, käyttäjän selain ulottuu saada kohteita luettelosta.  Kun dev on valmis ja testaus on osoittanut asiat on vakaa ja täydellinen, Tämä kutsu on tarpeetonta yli 99% aikaa, koska valikko harvoin muuttuu.  On myös outo UI vaikuttaa, joka on yleinen uudessa uljaassa maailmassa hyper ajaxy verkkosivujen – kohdistuksessa ja vasta sitten valikko tehdä.  Se on hermostunut ja häiritseviä mielestäni.  Ja hermostuneisuus. Niin, välimuistiin. 

Olen muuttanut logiikan thusly:

  • Etsi evästeen selaimessa, joka sisältää valikon olen viimeksi lukenut
    • Jos löytyy, tehdä välittömästi.  Älä odota hotellipoika jotta lopettaa lastaus.  (Haluat Varmista, että HTML on strategisesti sijoitettu tähän, mutta se ei ole vaikea tehdä).
  • Odota, sivu latautunut ja tehdä asynkroninen soittaa lataamaan valikkovaihtoehtojen luettelosta, käyttäen loput tai lists.asmx tai mitä tahansa
  • Vertaa, mitä olen saanut vastaan evästeen
    • Jos se vastaa, Seis
    • Muuten, käyttäen jQuery, dynaamisesti täyttää joukko jos <Li>on tässä <UL>
  • Käytä CSS tehdä kaikki muotoilut
  • Voitto!

Jotkut teistä tulevat sanomaan, "Hei! ei ole todellista caching menossa täällä, kun luet menu joka tapauksessa joka kerta, kun.”  Ja olet oikeassa-en anna palvelimen kaikenlaista tauko.  Mutta koska puhelu asynkronisen ja tapahtuu jälkeen sivun alkuperäinen HTML payload täysin tekee, "tuntuu" enemmän altis jotta käyttäjä.  Valikko tekee melko sivun lähestyessä.  Jos valikon tapahtuu muutos, käyttäjä joutuu hermostunut uudelleen piirtää valikko, mutta vain tämän yhden kerran.

Olemassa joitakin keinoja tehostaa tämä välimuisti ja auttaa palvelimelle samaan aikaan:

  • Sisältö "cookie cache" on voimassa vähintään 24 tuntia tai muut aikataulua. Niin kauan kuin ei ole vanhentunut eväste, käyttää cookie's menu tilannevedosta ja koskaan osuma palvelimen.

No... se on kaikki mitä tulee mieleen juuri nyt :). 

Jos joku on mitään viisaita ajatuksia tästä olisi kiva tietää ne.

Ja lopuksi-tätä tekniikkaa voidaan käyttää muita juttuja.  Tämän asiakkaan sivulla on monia dataan perustuva asioita eri sivuille, Monet niistä muuttuvat melko harvoin (kerran viikossa tai kerran kuukaudessa).  Jos laadit tietyillä aloilla toiminnallisuutta, Voit antaa herkemmin UI vetämällä sisältöä paikallisen evästeen Storesta ja tekee välittömästi.  Tuntuu nopeammin käyttäjälle, vaikka ei tallennetaan palvelimen mitään sykliä.  Voit voi Tallenna palvelimen sykliä päättäessään joitakin edellytyksiä ja laukaisee mitätöidä paikallisen evästeen välimuistin.  Thats kaikki tilannekohtaista ja muka juttuja ja todella hauskaa :). 

</loppu>

undefinedTilaa blogiin.

Noudata minut viserrys http://www.twitter.com/pagalvin

Miten tehdään: Määritä yksikkö testi ja testin kattavuus QUnit.js ja Blanket.js toimisto 365 SharePoint App

Intro

Tutkineet yksikön testaus ja testata kattavuus ohjelman kuten olen työtä uusi SharePoint-app SharePoint Onlinessa toimistossa 365 Sviitti.  Ilmeinen tutkimus polkuja sai minut Qunit.js ja sen jälkeen, - Blanket.js.

QUnit haluan perustaa yksikkö testit ja ryhmittele ne moduulit.  Moduuli on yksinkertainen tapa järjestää liittyvät testit. (En ole varma, olen käyttänyt sitä tarkoitetulla tavalla, mutta se toimi minulle toistaiseksi pieni joukko tähän mennessä määritellyt).

Blanket.js integroituu Qunit ja se näyttää minulle todellinen riviä JavaScript, jotka olivat – ja mikä tärkeintä-ei itse asiassa suoritettu aikana testit.  Tämä on "kattavuus"-linjat, jotka suorittaa katetaan testi, toiset taas eivät.

Välillä perustaa hyvä testitapaukset kattavuus, voimme vähentää riskejä meidän koodi on piilotettu vikoja.  Hyvinä aikoina.

Qunit

Olettaen sinulla on Visual Studio project määrittää, Aloita lataamalla ohjelman Paketti http://qunitjs.com.  Lisää JavaScript- ja vastaavia CSS ratkaisusi.  Mine näyttää tältä:

image

Kuva 1

Kuten näette, Käytin 1.13.0 silloin kirjoitin tämä blogi. Älä unohda ladata ja lisätä CSS-tiedosto.

Että pois tieltä, Seuraava askel on luoda jonkinlainen testi valjaat ja viitata Qunit-bittiä.  Olen testaus joukko toimintoja kutsutaan "QuizUtil.js", joten olen luonut HTML sivu nimeltä "QuizUtil_test.html" kuten komentosarjatiedoston:

image Kuva 2

Tässä on koodi:

<!DOCTYPE HTML>
<HTML xmlns"http =://www.w3.org/ 1999/xhtml">
<pää>
    <otsikko>QuizUtil testi Qunit</otsikko>
    <linkki rel= "stylesheet" href="../CSS/qunit-1.13.0.CSS" />
    <Script tyyppi= text/javascript"" src="QuizUtil.js" tietoja-kansi></Script>
    <komentosarjan tyyppi ="text/javascript" src ="qunit-1.13.0.js"></Script>
    <komentosarjan tyyppi ="text/javascript" src ="blanket.min.js"></Script>

    <Script>
        moduuli("getIDFromLookup");
        testi("QuizUtil getIDFromLookupField", funktio () {
            var goodValue = "1;#Paul Galvin";

            yhtä suuri(getIDFromLookupField(goodValue) + 1, 2), "Tunnus [" + goodValue + "] + 1 olisi 2";
            yhtä suuri(getIDFromLookupField(ei määritetty), ei määritetty, "Määrittämätön syöteargumentin tulisi palauttaa tulos.");
            yhtä suuri(getIDFromLookupField(""), ei määritetty, "Tyhjä syöteargumentin tulisi palauttaa Määrittämätön arvo.");
            yhtä suuri(getIDFromLookupField("gobbledigood3-thq;dkvn ada;skfja sdjfbvubvqrubqer0873407t534piutheqw;VN"), ei määritetty,"Olisi aina palata tulos convertible kokonaisluku");
            yhtä suuri(getIDFromLookupField("2;#jonkun toisen henkilön"), "2", "Tarkistaminen [2;#jonkun toisen henkilön].");
            yhtä suuri(getIDFromLookupField("9834524;#Long-arvo"), "9834524", "Suuri arvo testi.");
            notEqual(getIDFromLookupField("5;#Kuka tahansa", 6), 6, "Testaus notEqual (5 ei vastaa 6 Tässä esimerkissä: [5;#Kuka tahansa]");

        });

        moduuli("htmlEscape");
        testi("QuizUtil htmlEscape()", funktio () {
            yhtä suuri(htmlEscape("<"), "&lt;", "Paeta vähemmän kuin-operaattori ('<')");
            yhtä suuri(htmlEscape("<div class =  "someclass">Tekstiä</div>"), "&lt;div class =&quot;someclass&quot;&gt;Tekstiä&lt;/div&gt;", "Monimutkaisempi merkkijono.");
        });

        moduuli("getDateAsCaml");
        testi("QuizUtil getDateAsCaml()", funktio () {
            yhtä suuri(getDateAsCaml(Uusi Päivämäärä("12/31/2013")), "2013-12-31T:00:00:00", "Testaus kova koodattu päivämäärä: [12/31/2013]");
            yhtä suuri(getDateAsCaml(Uusi Päivämäärä("01/05/2014")), "2014-01-05T:00:00:00", "Testaus kova koodattu päivämäärä: [01/05/2014]");
            yhtä suuri(getDateAsCaml(Uusi Päivämäärä("01/31/2014")), "2014-01-31T:00:00:00", "Testaus kova koodattu päivämäärä: [01/31/2014]");
            yhtä suuri(getTodayAsCaml(), getDateAsCaml(Uusi Päivämäärä()), "getTodayAsCaml() olisi sama getDateAsCaml(Uusi päivämäärä())");
            yhtä suuri(getDateAsCaml("hölynpölyä arvo"), ei määritetty, "Yritä saada päivämäärä hölynpölyä arvo.");
            yhtä suuri(getDateAsCaml(ei määritetty), ei määritetty, "Yritä saada päivämäärä [ei määritetty] päivämäärä.");
        });

        moduuli("getParameterByName");
        testi("QuizUtil getParameterByName (kyselyn merkkijonosta)", funktio () {
            yhtä suuri(getParameterByName(ei määritetty), ei määritetty, "Yritä saada määrittelemättömän parametrin tulee palauttaa undefined.");
            yhtä suuri(getParameterByName("ei ole olemassa"), ei määritetty, "Yritä saada parametrin arvon, kun tiedämme –parametria ei ole.");

        });

        moduuli("Evästeet");
        testi("QuizUtil eri evästeen toimintoja.", funktio () {
            yhtä suuri(setCookie("test", "1", -1), getCookieValue("test"), "Get asettaa evästeen pitäisi toimia.");
            yhtä suuri(setCookie("anycookie", "1", -1), tosi, "Asettaminen voimassa ruoanlaitto tulisi palauttaa"totta".");
            yhtä suuri(setCookie("hullu evästenimi !@#$%"%\^&*(()?/><.,", "1", -1), tosi, "Asettaminen huono evästenimi tulisi palauttaa"väärä".");
            yhtä suuri(setCookie(ei määritetty, "1", -1), ei määritetty, "Ohimennen epämääräinen kuin evästenimi.");
            yhtä suuri(getCookieValue("ei ole olemassa"), "", "Eväste ei ole testi.");
        });

    </Script>
</pää>
<kehon>
    <div tunnus= "qunit"></div>
    <div tunnus= "qunit-valaisin"></div>

</kehon>
</HTML>

On useita asioita tapahtuu täällä:

  1. Vertailemalla minun koodi (QuizUtil.js)
  2. Vertailemalla Qunity.js
  3. Osien tarkentaminen (getIDFromLookup, Evästeet, ym.)
  4. Saattaminen <div> jonka tunnus on "qunit".

Sitten, Vedän vain tämän sivun ja saat jotain tällaista:

image

Kuva 3

Jos katsot yläosassa, sinulla on muutamia vaihtoehtoja, joista kaksi mielenkiintoista:

  • Piilota läpäissyt testit: Selvältä.  Auttaa silmään vain nähdä ongelma-alueet ja ei paljon sotkua.
  • Moduuli: (pudota alas): Tämä suodattaa alas vain näiden ryhmien haluamasi testit testit.

Mitä testit itse-huomautuksia:

  • On sanomattakin selvää, että sinun täytyy kirjoittaa koodia niin, että se on testattavissa ensimmäinen paikka.  Työkalulla voi auttaa valvoa tätä kurinalaisuus. Esimerkiksi, Minulla oli toiminto nimeltä "getTodayAsCaml()”.  Tämä ei ole hyvin todentaa, koska ei ole syöteargumentin ja testata sitä tasa-arvoa, Meidän on jatkuvasti päivittää testi koodi vastaamaan nykyistä päivämäärää.  Refactored lisäämällä tietojen syöttöparametri sitten kulkee kun haluan päivästä CAML muodossa päivämäärä.
  • Qunit puitteet asiakirjat omat testit ja se näyttää melko vankka.  Se voi tehdä yksinkertaisia asioita, kuten testaus tasa-arvoa ja on myös tukea ajax tyyli vaatii ("oikeaa" tai pilkkasivat käyttämällä suosikki Mockeria).
  • Menossa läpi myös pakottaa ajattelemaan kautta edge tapauksissa – mitä tapahtuu "Määrittämätön" tai tulee toimia välitettiin Null-arvo.  Siinä on kuollut yksinkertainen testata näitä skenaarioita ulos.  Hyvää kamaa.

Kattavuus Blanket.js

Blanket.js täydentää Qunit seuraamalla todellinen riviä koodia, joka suoritetaan aikana näkyä testeissä.  Se yhdistää oikea Qunit joten vaikka se on koko erillinen app, sillä kauniisti-se todella näyttää se on saumaton app.

Tämä on blanket.js toiminnassa:

image Kuva 4

image

Kuva 5

(On todellakin yläreunassa olevaa "Ota kattavuus"-valintaruutua [Katso kuva 3] jotta mahdollistaa nyt kuluva.)

Kuvassa korostettuna rivit 5 ei ole suoritettu mitään minun testit, joten minun täytyy suunnitella testi, joka aiheuttaa ne suoritetaan jos haluan Täysi kattavuus.

Saada blanket.js toimi seuraavasti:

  1. Lataa se http://blanketjs.org/.
  2. Lisääminen projektiin
  3. Päivitä testi valjaat sivu (QuizUtil_test.html minun tapauksessani) Seuraava:
    1. Viite koodi
    2. Sisustaa oman <Script> viittaus näin:
    <Script tyyppi= text/javascript"" src="QuizUtil.js" tietoja-kansi></Script>

Blanket.js poimii "data-cover" määritteen ja ei sen taika.  Se koukut osaksi Qunit, päivittää UI lisätä "Salli kattavuus" vaihtoehto ja voila!

Yhteenveto (TL; DR)

Kirjoittaa testi tapauksissa Qunit avulla.

  • Lataa se
  • Lisääminen projektiin
  • Kirjoittaa testi valjaat sivu
  • Luo testit
    • Refactor koodi voidaan todentaa
    • Olla luova!  Crazy ajatella, mahdotonta skenaarioita ja testata niitä joka tapauksessa.

Blanket.js avulla voidaan kattaa

  • Varmista Qunit toimii
  • Lataa blanket.js ja lisääminen projektiin
  • Lisääminen testisivulle valjaat:
    • Lisätään viittaus blanket.js
    • Lisää "tiedot-cover"-määritteen sinun <Script> Tag
  • Qunit testit.

Ei koskaan ollut mitään vastaavaa ja oli alkeellinen juttuja työskentelevien kourallinen tunteja. 

Happy testaus!

</loppu>

undefinedTilaa blogiin.

Noudata minut viserrys http://www.twitter.com/pagalvin

Viime puku sinun koskaan käyttää?

[Quick Huomautus-Tämä on melko pitkä viesti työpaikkojen avaamista ryhmäni New Yorkissa ja sinun elää tri-valtion alueella, jos olet kiinnostunut.]

Liityin pujottelu Consulting 18 kuukausi sitten ja, joka tekee työni pitkäkestoisin vuodesta 2007. En aio sitä näin. Ennen merkkijono työ hopping joka alkoi minun harppaus SharePoint-maailmaan, Olin yhdessä paikassa 11 vuotta. Olen vihdoin löytänyt uuden, kestävä työpaikoilla pitkän matkan Slalom.

Tämä paikka kasvaa ja tarvitsen apua kasvien. Millaista apua tarvitsen on yleensä kutsutaan "SharePoint ratkaisuja arkkitehti", mutta olen löytänyt, arkkitehti sanan yli ja/tai väärin käyttää SharePoint-tilaa jo jonkin aikaa nyt. Olen ollut kamppailevat miten blogiin tästä. En halua luetella vain joukko bullet pistettä noppaa/Monster tyyli. Erinomainen rekrytointi ikäisensä ovat tehneet niin jo :). Niin, Päätin ottaa "day in the life"-lähestymistapa. Read it ohi ja harkita:

1) Jos se vetoaa ja

2) Onko tiedät luita, että voit tehdä sen.

Jos kyllä, yhteyttä minuun (Paul.Galvin@Slalom.com) ja Jutellaan.

Nämä ovat mitä voit odottaa tehdä ratkaisuja arkkitehtina ryhmäni on tyypillinen viikko/kuukausi:

  • Hankkeita, usein enemmän kuin yksi kerrallaan. Jotkut hankkeet ovat suuria, ja niin sinulla yksi projektin. "Päällä" tarkoittaa, että sinulla on valvontaa ja vastuuta toimituksen yleinen laatu. Lähes kaikissa tapauksissa sinulla on PM ja todella vahva joukkue devs, BAs, UX-ihmiset, jne., tukea teitä. Mutta sinun on main kasvot asiakas näkee, luottaa, jne. Ei ole piilossa varjoissa tämän roolin :). Laskutat tällä kertaa ja tavoitteena on pitää sinut kiireinen, tämä 80 prosenttia ajasta.
  • Apua paperityötä – emakot, RFPs, kannet – kaikki hyvät jutut. Mielestäni meillä EMAKKO-prosessia alas melko tiukka ja kiinteä, joten se on melko kaavamaista. Jos olet tottunut kirjallisesti emakot tänään, Prosessimme ei aio haaste sinulle. RFPs – Nämä ovat vähän vaikeampi. Ne ovat yleensä mittatilaustyönä tehtyjä luonnossa aluksi ja RFPs vetää yleensä useiden eri tekijöiden. Se on sekä hyviä että huonoja, mutta pääasiassa hyvä. Tämä voi saada scrambly, kun tarvitsemme tasapainoilemaan erinomaista asiakaspalvelua tarvetta kun myös yrittää voittaa uusi työ. Luultavasti ei omista RFP, mutta sinua pyydetään osallistumaan osat.
  • Myynti vaatii, mutta ei lähemmäksi. Kuukauden kuluessa, Voit odottaa mennä pari myynti vaatii myyntiimme. Sinulta pk-huoneessa, tehdä muistiinpanoja ja muovaamaan ratkaisu. Kuitenkin, sinun ei pyytänyt tai tarkoitus käsitellä myyntisyklin alusta loppuun. Sinun ei tarvitse myymään ","sinun täytyy vain olla rauhallinen ääni asiantuntija syy huoneessa. Tämä rakentaa luottamusta ja siksi olet siellä. Tietysti, Jos haluat myydä, sitten on tilaa kasvaa täällä.
  • Auttaa rekrytointi. Meillä on jonkinlainen viittausohjelma, Joten jos tiedät todella vahva ihmiset yhteisössä, että luulet pitäisi olla osa pujottelu, Käytettävissäsi on näin. Olemme omistaneet rekrytoijat (jotka ovat erinomaisia) tehdä tällaista työtä valtaosa. Todellista apua on haastatella – ovatko ne hyvä sovi kulttuurisesti? He tietävät niiden juttuja? He voivat tehdä * minun * elämästä helpompaa? 🙂 This comes in spurts, pari kertaa kuukaudessa, Vaikka joissakin kuukautta voit ei tee sitä ollenkaan.
  • Auttaa määrittelemään parhaat käytännöt, rakentaa meidän IP ja parantaa kilpailukykyä markkinoilla. Olet kokenut kaveri/gal. Olen ollut noin korttelin – paitsi SharePointissa, mutta sinulla on kokemusta muita tekniikoita ja kokeneet hyviä ja huonoja (jopa kauhea) hankkeiden koko. Tämän seurauksena, tiedät, mikä toimii ja mikä ei. Haluamme jakaa tämän kokemuksen kanssamme päivittäin taktinen mielessä (ts. suorittaa projekteja todella hyvin) mutta myös strategisesti. "Parhaat käytännöt" on vähän liian termi ja epäröi käyttää sitä. Perusajatuksena on, että olet tulossa kokenut henkilö syvä ja asiaa kokemus ja haluamme integroida sinun oppimistaan parhaiten miten voimme houkutella asiakkaita päivittäin tekemisissä.
  • Pidä hauskaa – Olemme hyvin integroitu joukko. Haluan välttää jälleen kuluneelta, mutta tässä tapauksessa se on todella apt-teemme kovasti töitä (tavallaan) ja vielä vaikeampi pelata :). On Aaron Sorkin jonkinlainen pilailla täällä, huoneessa on täynnä nokkela, Haluamme myös juoda ja järjestämme useita hauskoja tapahtumia – movie night, Baseball matkoja (Vaikka ne ovat Kamala, käytännössä paha joukkueet).

Jos summa sen kaiken Wordiin, Käytän sanaa "johtajuutta." Johtaa hanketta, ottaa johtava rooli käytännön rakentamiseen (IP, rakentaa joukkue), jne.

Mutta odota! On enemmän! Miksi muuten töissä pujottelu?

  • Huomattavan yhtenäinen tahallaan-jokainen haluaa kasvaa tämä asia pois. "Tämä juttu" on New Yorkin-toimisto. Jokainen on aluksella tämän.
  • Tuulen purjeet-sisko toimistot, sisko käytännöt – pujottelu on "täyden palvelun" consulting organisaatio. Johtavat SharePoint-käytäntö ("käytäntö alue johtaa" pujottelu Lingo). Minulla on sisko käytäntöjä on 11 Muut Slalom-toimistot. Joten vaikka olen kuningas niin pitkälle kuin SharePoint on huolestunut tästä pujottelu New York, Peer käytäntöjä on Chicago, Seattle, Dallas, Atlanta, Boston, jne. josta voi hyödyntää tukea. Se on todella parhaista puolista – huomattavan itsenäisesti New York mutta pääsyn tonnia lahjakkuutta organisaatiossa.
  • Tuuli myyntiä (2) – Teemme enemmän kuin SharePoint-paljon. Teemme BI, CRM, UX, Business consulting, Mobile, kehitystyö ja muut. Olemme hyviä rajat myy keskenämme ja olemme hyviä, maalaus- ja mikä tärkeintä, Kun – "täyden palvelun" kuva tuottaa asiakkaillemme. Tämä on erityisen houkuttelevia. Olen ollut monet pienemmät orgs toimi SharePoint keikoilla ja turhautunut uudestaan ja uudestaan, koska olimme kyyhkynen reikiä "SharePoint ihmisiä." Tämä ei tapahdu pujottelu ja saamme tehdä mielenkiintoisempia työn tuloksena.
  • Paikallinen malli – eikä matka.
  • Pitkän aikavälin kasvu-Slalom on menossa gangbusters. Paljon kasvua ja vakautta. Kasvu tarkoittaa myös sitä, että meidän täytyy palkata johtajat tänään johtamaan uutta joukkuetta, kuten lisäämme enemmän asiakkaita ja henkilöstön tukea niille asiakkaille.

Voisin, mutta olen luultavasti jo jatkunut jo liian kauan. Uskon, että olet valtasi ydin tässä. Jos olet ajatellut työpaikan vaihdon tämä näyttää hyvältä, Jutellaan.

Jos olet onnellinen nykyisessä työssäsi puhutaan joka tapauksessa! :). Olen ollut paljon paikkoja ja oli hyvin "onnellinen". Pujottelu on erilainen, ja toivoisin mahdollisuus vakuuttaa teille, että.

</loppu>

undefinedTilaa blogiin.

Noudata minut viserrys http://www.twitter.com/pagalvin

Nopea ja helppo: Asettaa koko kohteiden luettelo-ruudussa Windows Store App

Windows Store App luon, Haluan näyttää käyttäjälle eri tietosanomia.  Otin luetteloruudun työkalu näyttää, että he selata niitä ja kaikki hyvät jutut. 

Viestit ovat Tiedottava vain, joten ei ole tarpeen huolehtia kaiken sen ylimääräisen välilyönnin ympärillä, koska käyttäjä voi koskaan valita mistään.  ListBox oletustoimintaa tarjoaa paljon pehmusteet ja halusin päästä eroon siitä.  No.... et voi tehdä sellaista kentästä suoraan.  KUITENKIN, Voit tehdä sen lisäämäsi kohteet:

        Yksityinen mitättömäksi AddGameStateLogMessage(merkkijono theMessage)
        {
            Oppikirja t = Uusi Oppikirja();
            t.Text = GameStateCounter    + ": " + theMessage;
            t.TextWrapping = TextWrapping.Wrap;
            t.MinWidth = 400;
            Paksuus thisPadding = Uusi Paksuus(5, 0, 5, 0);
            t.Padding = thisPadding;
            t.FontSize = 12;

            ListBoxItem li = Uusi ListBoxItem();
            Li.Content = t;
            Li.MaxHeight = 25;
            thisPadding = Uusi Paksuus(5, 0, 5, 0);
            Li.Täyte = thisPadding;

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

Edellä, Luominen TextBox ja asettaa fontti, sen täyttäminen, jne.

Seuraava, Luo ListBoxItem ja asettaa sen sisältö muotoiltu oppikirja.

Lopuksi, ListBoxItem lisääminen luetteloruudusta.  (Haluan näyttää uusimmat viestit luettelon alkuun, Näin ollen lisätä(0,Li) etkä yksinkertainen lisää() vetoaminen.).

Aion säätämistä tämä vähän ennen, että olen todella tyytyväinen ListBox käyttäytyminen mutta malli yllä on ollut erittäin hedelmällistä.  Toivottavasti joku löytää apua.

</loppu>

undefinedTilaa blogiin.

Noudata minut viserrys http://www.twitter.com/pagalvin