Kaip nurodyti žmonių kaip ieškos aprėptį / Turinio šaltinio naudojant SharePoint 2013 POILSIO API

Aš turėjau priežasčių dirbti su SharePoint 2013 Paieška API per likusį pirmą kartą. Aš norėjau ieškoti žmonių, ne tik dokumentų. Klavišą mokymosi čia yra tai, kad jūs nurodote turinio šaltinių per savo GUID (ar bent šiuo atveju). JQuery fragmentą pavaizduota kaip:

    loadExpertsAsync: funkcija() {

        jQuery.support.cors = tiesa;

        $.Ajax({
            URL: tai.CreateFullApiUrl() +
                "?querytext = "portalai"&SourceId = "b09a7990-05ea-4af9-81ef-edfab16c4e31"" +
                "&selectproperties ='LinkedInProfileUrl,GoogleCirclesProfileUrl,BALargeProfilePictureUrls,BAGridPictures,WorkEmail,Įgūdžių,AboutMe,Interesų,Pareigos,PastProjects,PictureURL,PreferredName,TwitterHandle,LinkedInProfileUrl,PreferredName,GoogleCirclesProfileUrl "" +
                "&rowlimit = 99",
            metodas: "GAUTI",
            antraštės: { "Priimti": "paraiškos/json; oData = kalbantys" },
            talpyklos: klaidinga,
            sėkmės: funkcija (rezultatas) {

Mano atveju, Aš einu API su SharePoint internete. Gauti GUID, Atlikau šiuos veiksmus:

  1. Prieigą prie SharePoint administravimo centro
  2. Pasirinkite "ieškoti" nuo kairλ ranka navigacija
  3. Pasirinkę punktą "Tvarkyti rezultatas šaltinių"
  4. Pasirinkite "Vietos žmonių rezultatai"
  5. Pažvelgti į URL.

Mano URL atrodė:

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

SourceId objektas yra ką dirbo už mane.

(Aš suprantu, kad sourceid iš tiesų gali būti savotiška nuolatinis dalykas su SP, but I’ll always check anyway 🙂 ).

</pabaigos>

undefinedPrenumeruoti savo dienoraštį.

Sekite mane Twitter ne http://www.twitter.com/pagalvin

Pavyzdys SharePoint poilsio skambučius

Čia yra tam tikrų bandinio poilsio skambučius, kad darbą už mane ir gali padėti jums atlikti taip pat. Nuo 02/2014, there are two examples 🙂

  1. Nurodyti stulpelį su tarpais, jos vardu
  2. Kelių elementų žymėjimo stulpelio nuoroda
  3. Žmonių ieškos per poilsio

 

Aš pievienošu tai laikui bėgant.

Štai keletas naudingų dažai radau taip pat:

Nurodyti stulpelį su tarpais, jos vardu

Sukurti pasirinktinį sąrašą su stulpelis, pavadinimu "Dienoraščio autorius" (tarpas tarp dienoraštį ir autorius).

$select nurodyti, kad stulpelis yra:

image

Tiesiog pakeisti vietos, su "_x0020_". Mes matome _x0020_ daugybė pavyzdžių per internetas ir poilsio nesiskiria.

Jei nenorite daryti, esate linkęs gauti klaidos pranešimą, kaip tai:

Išraiška “Dienoraščio autorius” negalioja.

Gana paprasta.

Multi-pasirinkite peržvalgos stulpelio nuoroda

Nustatyti:

  1. Kurti pasirinktinį sąrašą, pavadintas kategorijos.
  2. Pridėti kai kurių kategorijų. Dodałem kategorijų thusly:image
  3. Sukurti kitą pasirinktinį sąrašą ir pavadinti jį MockBlog ir Pridėk kategorijos kelių objektų žymėjimo sąrašo stulpelyje (ar svetainėje skiltyje, jei tai, kaip jūs roll).

Pridėti prekę į Mockblog sąrašą ir būsite pasiruošę.

Kai naudojant jQuery Ajax stiliaus skambina atrodys maždaug taip:

serverUrl   = "/_api/web/sąrašai/GetByTitle("MockBlog")/elementai" +
             "?$Pasirinkite = pavadinimas,Kategorijos/pavadinimas,Blog_x0020_Author/pavadinimas" + 
             "&$išplėsti = Blog_x0020_Author,Kategorijos";

Mes sakai SharePoint "man pavadinimas visų kategorijų (Kategorijos/pavadinimas). Gauti tikrąsias vertes Antraštinė dalis pagal $išplėstimas kategorijų sąrašą." (Mano ramus perfrazuojant yra turbūt gana platus, bet tai kaip aš jį žodžiu).

Jei jūs darote tai per JavaScript ir naudojant smuikininkas Žiūrėk, galite gauti kažką panašaus į tai mainais:

 

image

(Aukščiau yra JSON objektu)

Žmonių ieškos per poilsio

Aš blogų apie tai atskirai. Svarbiausia yra nustatyti sourceid parametrą, kurių vertė yra vietinių gyventojų turinio šaltinio GUID. (Šaltiniuose naudojama taip vadinama aprėpties ir ji yra mano-o-mano taip sunku ne skambinti viskas man apimtį!).

Plačiau apie jį: http://www.mstechblogs.com/paul/?p=10385

 

</pabaigos>

undefinedPrenumeruoti savo dienoraštį.

Sekite mane Twitter ne http://www.twitter.com/pagalvin

Greitai ir lengvai: Sukurti SharePoint svetainėje naudodami poilsio

Yra daug išteklių aplink tą parodyti kaip tai padaryti, bet aš negalėjo rasti išsamią pereiti į nuorodą, Taigi čia mes.

Galite sukurti SharePoint svetainėje naudodami poilsio API.  Čia yra visiškai keptos pavyzdys:

<!--
    SiteRequestForm.html: Rinkti informaciją ir kurti svetainę, skirtą vartotojo.
-->

<centras>
<lentelė>
    <TR>
        <TD>Svetainės pavadinimas:</TD>
        <TD><įvedimo tipo= "tekstas" vardas, pavadinimas= "SiteName" ID= "SiteName" /></TD>
    </TR>
    <TR>
        <TD stulpelio apimties= "2">
            <įvedimo tipo= "pateikti" ID= "CreateSiteButton" vertė= "Sukurti svetainės" />
        </TD>
    </TR>
</lentelė>
</centras>

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

<scenarijų>
var CreateSiteLogicContainer = {

    createSiteData: {
            "parametrai": {
                __metadata: { "tipo": "SP.WebInfoCreationInformation" },
                URL: "Paultest1",
                Antraštinė dalis: "Paultest1",
                Aprašymas: "poilsio sukurtas web by Paulius!",
                Kalba: 1033,
                Tinklalapio šablono: "sts",
                UseUniquePermissions: klaidinga
            }
    },

    createSite: funkcija () {

        jQuery.support.cors = tiesa;

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

            antraštės: {
                "Priimti": "paraiškos/json; oData = kalbantys",
                "content-type": "paraiškos/json;oData = kalbantys",
                "X-RequestDigest": $("#__REQUESTDIGEST").val()
            },

            duomenų: JSON.stringify(CreateSiteLogicContainer.createSiteData),

            sėkmės: funkcija () { perspėjimas("sėkmė"); },
            klaida: funkcija () { perspėjimas("klaida"); }

        });
    },

    wireUpForm: funkcija () {
        $("#CreateSiteButton").spustelėkite(funkcija () {
            perspėjimas("Pasiruošę išbandyti ir sukurti svetainę.");
            CreateSiteLogicContainer.createSite();
        });
    }


}

CreateSiteLogicContainer.wireUpForm();

</scenarijų>

Kai sėkmingai, Jūs gaunate JSON pakelio atsakymą kaip tai:

image

Mano pagrindinė mintis ir learnings nuo tokių:

  • Šis metodas naudoja jQuery.  Mano atveju, mano jQuery biblioteka įsikūrusi ".../ plugins. "  Jūs norite pakeisti, kad rodytų į jūsų mėgstamą JQ vietą.
  • Jūs galite kopijuoti ir įklijuoti tą visą fragmentą į turinio rengyklės žiniatinklio dalį puslapyje ir ji turi dirbti gerai.  Jūs norite pakeisti galutinis taškas iš API iškvietimas ir įsitikinkite, kad jūs nurodote JQ teisingai.
  • URL yra su savo API galutinį tašką.  Mano atveju, tai yra sukurti antrinės svetainės apačioje https://bigapplesharepoint.com
  • Jums nereikia būti turinį-trumpesni. Kai dienoraščio ir MSDN dokumente reiškia, kad jūs, bet atsitiko man automatiškai, Aš manau yra perkrauta .ajax $ skelbiant pati.
  • Šios eilutės yra reikalinga vengti "draudžiama" atsakymo: "X-RequestDigest": $("#__REQUESTDIGEST").val().  Yra ir kitų būdų tai padaryti, bet tai yra labai gražus.  Aš pamečiau nuorodą į dienoraštį, kad jeigu ši nuoroda.  H/T jums, paslaptingas blogger!

Geros kloties ir tikiuosi, kad tai padės kam nors.

</pabaigos>

undefinedPrenumeruoti savo dienoraštį.

Sekite mane Twitter ne http://www.twitter.com/pagalvin

Įveikti erzina problema su santykinis URL SharePoint greitai pradėti

Aš norėjau pridėti saitą prie greitosios paleisties navigacijos kitą dieną ir SharePoint man:

image

Grynojo teksto versija, kad yra:

Užtikrinti, kad URL yra galiojantis ir prasideda arba svarbių simbolių (skaičiaus ženklo (#) arba pasviruoju brūkšniu (/)) arba yra galiojanti veikė protokolo (pvz., "http://’, "https://’, "failas://’, "ftp://’, "mailto:’, "Naujienos:’).

"Blech ir raupų!"Man sakė:.

Tai problemos turi naudoti JavaScript rasti žinomų nuorodą į greitąją paleistį ir nepaisyti savo.

Norėdami tai patikrinti, Pridėti naują nuorodą į svetainę bandymo thusly:

image

Aš jQuery. Ją išspręsti, gauti kai kurių JavaScript ir jQuery ant puslapio, naudodami savo mėgstamiausiu metodu ir su kodo panašaus eilutę:

 

$(dokumento).paruošta( funkcija () {

    $("a:yra("Bandymo URL pakeitimo")").spustelėkite(funkcija () { perspėjimas("pakeistas paspaudimų elgseną!"); grįžti klaidinga;});

});

Ir Bob's jūsų dėdė.

JQuery selektorius nustato, kas <a> žyma, kad yra "Bandymas URL pakeitimas" savo vardu. Jūs galite rasti-melodija, priklausomai nuo jūsų nuorodą ir tokių.

Ir spauskite(funkcija() pakeičia nepriklausomai nuo SharePoint būtų padaryta tada, kai vartotojas spustelėjo. Įsitikinkite, kad jūs "return false" ar dar ji bus padaryti savo stuff ir tada bandyti href dalykas per, tai tikriausiai ne jūsų tikslas.

Tai buvo padaryta ir bandymo SharePoint online aplinkoje, bet turėtų dirbti gerai 2010 ir anksčiau per.

</pabaigos>

undefinedPrenumeruoti savo dienoraštį.

Sekite mane Twitter ne http://www.twitter.com/pagalvin

Greitas ir paprastas: SharePoint poilsio skambinti tik grąžina 100 Įrašai

Aš dirbu visuomenės susiduria su interneto svetainėje mano SharePoint praktikos čia Niujorkas ir ji naudoja daug JavaScript ir poilsio skambučių parinktis Rodyti turinį.

Per geležinkelio plėtros, Sukurti mažas dataset tik 10 arba taip eilučių pasirinktinį sąrašą ir mano poilsio ragina visus traukti iš ten.  Vieną kartą aš Iškilioji sąrašą, kad keletą šimtų eilučių duomenų mėginys tikėtasi augimas, Radau, kad aš gaunu tiksliai 100 eilučių grįžo atgal į savo poilsio skambučius.

Tai labai paprastas dalykas spręsti.  Mano atveju (ir manau, daugeliu atvejų), Numatytasis poilsio kviečia į "SharePoint" (ir galbūt kaip standartinė pramonės sektoriui?) grįžti 100 eilučių.  Grįžti daugiau nei numatyta, Naudokite parametrą $top jūsų pokalbio, kaip ir:

GAUTI /Insights Dev/_api/web/lists/GetByTitle("MockBlog")/elementai?$Pasirinkite = ID,Antraštinė dalis,Kategorijos/pavadinimas,Blog_x0020_Author/pavadinimas,DatePublished,BlogSummary&$išplėsti = Blog_x0020_Author,Kategorijos&$filtras =&$viršaus = 9999

Mane pasirinko 9999 Šiuo atveju, nes žinau, kad growth-wise, nebus daugiau nei 200 ar taip eilučių pridėti prie šio sąrašo per metus.  Jei ji tampa nevikrus, mes įgyvendiname kai ieškai žemyn kelio.

</pabaigos>

undefinedPrenumeruoti savo dienoraštį.

Sekite mane Twitter ne http://www.twitter.com/pagalvin

Greitas ir paprastas: Išspręsti "neteisingas URL parametrą” problema su UpdateListItems lists.asmx

Dirbant su UpdateListItems per lists.asmx, tai lengva generuoti klaidos:

Neleistina URL parametrą.

Į URL yra neleistina komanda arba vertė. Prašome dar kartą patikrinti URL.

Jūs galite gauti šią klaidą, kai jums pamiršti, kad ID į laukų atnaujinti sąrašą.  Tai, kaip daug šių SP interneto paslaugų, yra didelis counterintuitive, nes jums reikia įtraukti ID atributo ID į <Metodas> elementas.  Ir jūs ne atnaujinta ID ir tikriausiai niekada nenorės į pirmąją vietą.

Šis SOAP vokas veikia:

<soapenv:Voko xmlns:soapenv ="http://schemas.xmlsoap.org/SOAP/Envelope/ ">
  <soapenv:Įstaiga>                      
    <UpdateListItems xmlns ="http://schemas.Microsoft.com/SharePoint/SOAP/ ">                     
      <listName>{C712E2EA-54E1-47AD-9D99-1848C7773E2F}</listName>                     
        <atnaujinimai>                     
         <Paketinis Esant_klaidai ="Toliau">
          <Metodas ID ="1" Cmd ="Update">
            <Lauko pavadinimas ="CooperativeLock">užrakintas!</Lauko>
            <Lauko pavadinimas ="ID">1</Lauko>
          </Metodas>
        </Partijos>                     
        </atnaujinimai>                
      </UpdateListItems>             
  </soapenv:Įstaiga>         
</soapenv:Vokas>

Jei jūs juostelės iš lauko nuorodos kodą tada jūs gausite erzina "Neteisingas URL parametrą".

</pabaigos>

undefinedPrenumeruoti savo dienoraštį.

Sekite mane Twitter ne http://www.twitter.com/pagalvin

 

Vargšas spartinimo JavaScript

[TL;DR versija: naudoja slapukus saugoti async skambinti rezultatai; padaryti pastaruosius async skambinti rezultatai iš karto ir tada patvirtinti jas po puslapio apkrova.]

Aš dirbu SharePoint svetainę klientas kad funkcijos, be kita ko, stilizuoti antrinės navigacijos kurių meniu parinktys yra valdomi per reguliariai senas pasirinktinį sąrašą.  Idėja, kad klientas gauna valdyti "savo" svetainės meniu be paveikti ar paveiks jo irtis pasaulinės navigacijos.

(kažkas neįtikėtinai ardomąją apie naują CEWP, kuris atkreipia dėmesį į HTML failą, krovinys šiek tiek CSS ir JS iš esmės pakeisti beveik viską apie svetainės veikimą... bet tai kitai įstaigai)

Šis gana paprastas kodas:

Gerklės vietoje čia yra tai, kad kiekvieną kartą, kai kas nors pataiko vieną iš svetainės puslapių, to vartotojo naršyklėje siekiančiam gauti elementus iš sąrašo.  Dev baigtas ir testavimas įrodė, ko reikia stabilios ir užpildydamas, uo nebūtina daugiau nei 99% laiko nuo meniu retai keičiasi.  Ji taip pat turi keistą UI įtakos, kuri yra paplitusi šioje brave new world hiper ajaxy interneto svetainėse-puslapio teikia ir tik tada meniu padaryti.  Tai nervingumas ir blaško dėmesį, mano nuomone.  Ir nervingumas. Taigi, Kaupimas talpykloje. 

Modifikavau logika thusly:

  • Ieškoti slapuką į naršyklę, kuri yra meniu kaip paskutinį kartą skaityti
    • Jei nustatyta,, padaryti jį iš karto.  Negalima laukti puslapio įkėlimą.  (Jums reikia įsitikinkite, kad jūsų HTML yra strategiškai išdėstyti čia, Tačiau tai nėra sunku padaryti).
  • Palaukite, kol puslapio įkėlimą ir padaryti su async skambinti įkelti meniu elementus sąraše naudojant poilsio ar lists.asmx ar kas
  • Palyginti ką aš prieš slapukas
    • Jei jis atitinka, sustoti, sustok
    • Kitaip, naudojant jQuery, dinamiškai užpildyti krūva, jei <Li>'s – yra <UL>
  • Naudoti CSS padaryti visas formatavimas
  • Pelno!

Kai jūs ketinate pasakyti, "Ei! nėra jokių realių buferinės vyksta čia nuo jūs skaitote meniu bet kuriuo atveju kiekvieną kartą.”  Ir tu teisus-aš nepateikiu serverio jokios pertraukos.  Bet ir nes skambutis yra async ir atsitinka po pradinio puslapio HTML krovinio visiškai sudarytų sąlygas, tai "mano" jautriau reaguoti į vartotojo.  Meniu tampa gana daug, kaip puslapio atkreipia.  Jei meniu būna, kad pakeitimas, vartotojas yra veikiamas nervingumas iš naujo parengti meniu, bet tik tą vieną kartą.

Yra keletas būdų, kaip padaryti šį spartinimo veiksmingesnę ir padėti atlikti serverio vienu metu:

  • Įdėti, kad "slapukų talpyklą" galioja ne trumpiau kaip taisyklė 24 valandų arba kai kurie kiti terminai. Tol, kol nėra pasibaigęs slapuko, Naudokite slapuką 's meniu fotografiją ir niekada hit serveris.

Well... that's viską, kas ateina į galvą šiuo metu :). 

Jei kas nors turi kokių nors protingas idėjų čia aš norėčiau žinoti jų.

Ir galiausiai – šis metodas gali būti naudojamas kitų dalykų.  Šis klientas puslapyje yra daug dalykų, duomenų valdomas įvairiuose puslapiuose, Daugelis iš jų keičiasi gana retai (pavyzdžiui, kartą per savaitę arba kartą per mėnesį).  Jei taikote pagal konkrečias sritis funkcijos, galite pateikti ir kvalifikacijų UI traukimas turinį iš vietos slapukas parduotuvė ir padaryti iš karto.  Jis mano greičiau vartotojui, net jei ne serverio bet ciklų.  Jūs gali įrašyti serverio ciklų sprendžiant kai kurių sąlygų ir skatina panaikinti šios vietos slapukų talpyklą.  Tai visos situacijos ir artsy stuff ir tikrai labiausiai įdomus :). 

</pabaigos>

undefinedPrenumeruoti savo dienoraštį.

Sekite mane Twitter ne http://www.twitter.com/pagalvin

kaip: Konfigūruoti vienetas testas ir bandymų apimtį su QUnit.js ir Blanket.js biuras 365 SharePoint App

Intro

Aš tyrinėti tyrimų padalinys ir bandymo aprėpties JavaScript, kaip aš dirbu naują SharePoint App SharePoint internete biure 365 Suite.  Akivaizdus tyrimų keliai atvedė mane į QUnit.js ir iš karto po, į Blanket.js.

QUnit leiskite nustatyti vienetas testai ir sugrupuoti juos į modulius.  Modulis yra tik paprastas būdas organizuoti susijusius tyrimus. (Aš nesu įsitikinęs aš naudoju jį taip, kaip numatyta, bet ji dirba man kol kas su maža bandymų aš iki šiol viršun).

Blanket.js sujungia su Qunit ir jis parodys man tikrasis eilutės JavaScript buvo- ir dar svarbiau – buvo ne faktiškai atliktus metu veikia bandymus.  Tai yra "aprėptis"-eilutės, kurias vykdyti taikomos bandymo kitos yra ne.

Kuriant geras bandymų atvejus ir peržiūros aprėpties, Mes galime sumažinti riziką, kad mūsų kodas yra paslėptų defektų.  Gerus laikus.

QUnit

Darant prielaidą, kad turite jūsų Visual Studio projekto nustatyti, Pradek JavaScript paketą iš http://qunitjs.com.  Įtraukti JavaScript ir atitinkamas CSS į savo sprendimą.  Mano atrodo tai:

image

Paveikslas 1

Kaip matote, Aš naudoju 1.13.0 tuo metu aš rašiau šį pranešimą dienoraščio. Nereikia pamiršti, kad atsisiųsti ir įtraukti CSS failą.

Kad iš kelio, Kitas žingsnis yra sukurti tam tikros rūšies bandymo pakinktų ir nuoroda į Qunit bitų.  Aš esu bandymai su krūva funkcijų į scenarijaus failą pavadinimu "QuizUtil.js", aš sukurtas vadinamas "QuizUtil_test.html" kaip parodyta HTML puslapį:

image Paveikslas 2

Čia yra kodas:

<!DOCTYPE HTML>
<HTML xmlns= "http://www.w3.org/ 1999/xhtml">
<galvos>
    <antraštinė dalis>QuizUtil bandymas su Qunit</antraštinė dalis>
    <nuoroda rel= "stilių" href="../CSS/QUnit-1.13.0.CSS" />
    <scenarijų tipo= text/javascript"" src="QuizUtil.js" duomenų-cover></scenarijų>
    <scenarijų tipo ="text/javascript" src ="qunit-1.13.0.js"></scenarijų>
    <scenarijų tipo ="text/javascript" src ="blanket.min.js"></scenarijų>

    <scenarijų>
        modulis("getIDFromLookup");
        bandymas("QuizUtil getIDFromLookupField", funkcija () {
            var goodValue = "1;#Paul Galvin";

            vienodo(getIDFromLookupField(goodValue) + 1, 2), "ID [" + goodValue + "] + 1 2";
            vienodo(getIDFromLookupField(neįvardintas), neįvardintas, "Nenurodytas įvesties argumentas grąžinkite neapibrėžtas rezultatas.");
            vienodo(getIDFromLookupField(""), neįvardintas, "Tuščias įvesties argumentas turėtų grįžti yra neapibrėžta reikšmė.");
            vienodo(getIDFromLookupField("gobbledigood3-thq;dkvn ada;skfja sdjfbvubvqrubqer0873407t534piutheqw;VN"), neįvardintas,"Visada grąžinkite rezultatas Kabrioletas iki sveikojo");
            vienodo(getIDFromLookupField("2;#kito asmens"), "2", "Patikrinimo [2;#kito asmens].");
            vienodo(getIDFromLookupField("9834524;#Ilgojo sveikojo skaičiaus reikšmė"), "9834524", "Didelės vertės išbandymą.");
            notEqual(getIDFromLookupField("5;#kas nors", 6), 6, "Bandymai su notEqual (5 Nelygu 6 Šis mėginys: [5;#kas nors]");

        });

        modulis("htmlEscape");
        bandymas("QuizUtil htmlEscape()", funkcija () {
            vienodo(htmlEscape("<"), "&lt;", "Pabėgusi mažiau nei operatorius ('<')");
            vienodo(htmlEscape("<div class =  "someclass">Tekstą</DIV>"), "&lt;div class =&quot;SomeClass&quot;&gt;Tekstą&lt;/DIV&gt;", "Daugiau sudėtingų bandymų seka.");
        });

        modulis("getDateAsCaml");
        bandymas("QuizUtil getDateAsCaml()", funkcija () {
            vienodo(getDateAsCaml(naujas Data("12/31/2013")), "2013-12-31T:00:00:00", "Bandymų sunkiai koduojamų data: [12/31/2013]");
            vienodo(getDateAsCaml(naujas Data("01/05/2014")), "2014-01-05T:00:00:00", "Bandymų sunkiai koduojamų data: [01/05/2014]");
            vienodo(getDateAsCaml(naujas Data("01/31/2014")), "2014-01-31T:00:00:00", "Bandymų sunkiai koduojamų data: [01/31/2014]");
            vienodo(getTodayAsCaml(), getDateAsCaml(naujas Data()), "getTodayAsCaml() turėtų prilygti getDateAsCaml(naujos datos())");
            vienodo(getDateAsCaml("nesąmonė vertė"), neįvardintas, "Bandyti gauti dienos reikšmę nesąmonė.");
            vienodo(getDateAsCaml(neįvardintas), neįvardintas, "Pabandykite gauti dienos, [neįvardintas] data.");
        });

        modulis("getParameterByName");
        bandymas("QuizUtil getParameterByName (iš užklausos eilute)", funkcija () {
            vienodo(getParameterByName(neįvardintas), neįvardintas, "Pabandykite gauti nenurodytas parametras grąžinkite neapibrėžta.");
            vienodo(getParameterByName("nėra"), neįvardintas, "Stenkitės gauti parametro reikšmę, kai mes žinome, kad parametras nėra.");

        });

        modulis("Slapukai");
        bandymas("QuizUtil įvairias slapukų funkcijas.", funkcija () {
            vienodo(setCookie("bandymas", "1", -1), getCookieValue("bandymas"), "Get nustatyti slapuką turėtų dirbti.");
            vienodo(setCookie("anycookie", "1", -1), tiesa, "Nustatymas galioja maisto ruošimo grąžinkite"tiesa".");
            vienodo(setCookie("crazy slapukas pavadinimas !@#$%"%\^&*(()?/><.,", "1", -1), tiesa, "Nustatyti blogas slapukas pavadinimas turėtų grįžti 'false'.");
            vienodo(setCookie(neįvardintas, "1", -1), neįvardintas, "Passing nenurodyta kaip slapukas pavadinimas.");
            vienodo(getCookieValue("nėra"), "", "Slapukas neegzistuoja bandymų.");
        });

    </scenarijų>
</galvos>
<įstaiga>
    <DIV ID= "qunit"></DIV>
    <DIV ID= "qunit-rungtynių"></DIV>

</įstaiga>
</HTML>

Yra keletas dalykų, vyksta čia:

  1. Nuorodos mano kodas (QuizUtil.js)
  2. Nuoroda Qunity.js
  3. Nustatyti kai kurie moduliai (getIDFromLookup, Slapukai, ir kt.)
  4. Pateikimo, <DIV> kurio ID yra "qunit".

Tada, Aš tiesiog patraukite šiame puslapyje ir gausite kažką panašaus į tai:

image

Paveikslas 3

Jei jums atrodo per viršų, turite kelias parinktis, du iš jų yra įdomus:

  • Slėpti leista testai: Gana akivaizdus.  Gali padėti jūsų akis tik pamatyti probleminės sritys ir ne daug netvarkos.
  • Modulis: (išskleidžiamajame): Tai bus filtruoti bandymus iki tik tuos grupinius bandymus norite.

Kaip patys – keletą pastabų testai:

  • Savaime suprantama, kad jums reikia parašyti kodą taip, kad tai galintis būti testatorius į pirmąją vietą.  Įrankio naudojimas gali padėti įgyvendinti ši disciplina. Pavyzdžiui, Turėjau funkcija vadinama "getTodayAsCaml()”.  Tai nėra labai galintis būti testatorius, nes reikia ne įvesties argumentas ir išbandyti lygybės, mums reikia nuolat atnaujinti bandymas kodas atspindėti esamą datą.  Aš przebudowana jį pridedant duomenų įvesties parametras tada perduoti kai noriu dienos CAML formato dabartinę datą.
  • Pagal Qunit dokumentus savo bandymus ir atrodo gana tvirtas.  Tai galite padaryti tokie paprasti dalykai kaip bandymų lygybės ir palaiko ajax stiliaus skambučių ("real" arba tyčiojosi naudojant jūsų mėgstamiausių mocker).
  • Vyksta procesas taip pat verčia galvoti per krašto atvejai – kas atsitinka su "nenurodyta" arba null perduodama į funkcij±.  Todėl miręs paprasta patikrinti šiuos scenarijus.  Neblogai.

Padengimo su Blanket.js

Blanket.js papildo Qunit stebėjimo tikrasis eilučių kodo, kurios vykdomos per veikia savo bandymus.  Jis apima teisę į Qunit nors tai visiškai atskiras app, ji groja gražiai – ji tikrai atrodo kaip tai vienas besiūlių app.

Tai blanket.js veiksmų:

image Paveikslas 4

image

Paveikslas 5

(Iš tikrųjų turite paspausti ant "aprėptis" žymimąjį laukelį įgalinti viršuje [pav 3] norint sudaryti tam sąlygas.)

Pabrėžė eilučių skaičius 5 nebuvo įvykdyta kuri nors iš mano bandymai, Todėl reikia parengti testas, kuris sukelia jiems vykdyti, jeigu aš noriu visišką.

Gauti blanket.js dirba atlikdami šiuos veiksmus:

  1. Jį atsisiųsti iš http://blanketjs.org/.
  2. Įtraukti jį į savo projektą
  3. Atnaujinti savo bandymo pakinktų puslapį (QuizUtil_test.html mano atveju) taip:
    1. Nuoroda kodas
    2. Papuošti jūsų <scenarijų> nuoroda, kaip tai:
    <scenarijų tipo= text/javascript"" src="QuizUtil.js" duomenų-cover></scenarijų>

Blanket.js susitvarko atributą "duomenų-cover" ir neturi savo magija.  Jis kabliukai į Qunit, atnaujina UI pridėti parinktį "Įjungti aprėptis" ir voila!

Santrauka (TL; DR)

Naudoti Qunit parašyti savo bandymų atvejus.

  • Jį atsisiųsti
  • Įtraukti jį į savo projektą
  • Rašyti bandymo pakinktų puslapį
  • Sukurti savo bandymus
    • Refactor kai kurių jūsų kodas turi būti galintis būti testatorius
    • Būkite išradingi!  Manau, kad crazy, neįmanoma scenarijus ir išbandyti juos bet kokiu atveju.

Naudoti blanket.js su pažangiąja

  • Įsitikinkite, kad Qunit dirba
  • Parsisiųsti blanket.js ir įtraukti jį į savo projektą
  • Įtraukti jį į savo bandymo pakinktų puslapį:
    • Įtraukite nuorodą į blanket.js
    • Pridėti atributo "duomenų-padengti" į savo <scenarijų> žymė
  • Paleisti savo Qunit bandymai.

Aš niekada iš tikrųjų bet koks apie tai anksčiau ir turėjo kaiką primityvus dirba keletas valandų. 

Happy bandymai!

</pabaigos>

undefinedPrenumeruoti savo dienoraštį.

Sekite mane Twitter ne http://www.twitter.com/pagalvin

Paskutinis kostiumas jums kada nors dėvėti?

[Greitai dėmesį-tai gana ilgai po atidarymo savo grupės čia Niujorke darbą ir norite gyventi į tri-state sritis, jei jus domina.]

Įstojau slalomo konsultacijos per 18 mėnesiai ir daro tai mano ilgiausių patvarios darbas nuo 2007. Aš neturėjo plano ji tokiu būdu. Prieš darbą hopping seka kuris prasidėjo mano šuolis į SharePoint pasaulyje, Buvau vienoje vietoje vienuolika metų. Aš pagaliau rado naują, tvirta vietoje dirbti už ilgo nuotolio čia slalomo.

Šioje vietoje auga ir man reikia šiek tiek padėti kontroliuoti. Man reikia pagalbos rūšies paprastai vadinamas "SharePoint sprendimų Architektas" nors aš rasti architektas žodį daugiau kaip ir (arba) neteisingai naudoti SharePoint kosmoso gana, o dabar. Aš jau kovoja kaip į dienoraštį apie tai. Aš nenoriu tiesiog sąrašas ir kulka taškų kauliukai/Monster stilius. Puikus įdarbinti kolegomis jau daro, jau :). Taigi, Aš nusprendė imtis "gyvenimo diena" metodas. Read it baigtas, ir mano:

1) Jei jis kreipiasi ir

2) Ar jūs žinote, jūsų kaulai, kad jūs galite padaryti tai.

Jei taip, Susisiekite su manimi (Paul.Galvin@Slalom.com) ir let's talk.

Štai ką galite tikėtis, kad tai tipiškas savaitę/mėnesį sprendimus konstruktoriaus mano komanda:

  • Vykdyti projektai, dažnai daugiau nei vienu metu. Kai kurie projektai yra dideli ir kad būtų savo vieną projekto. "Veikia" projektas reiškia, kad turite priežiūrą ir atsakomybę už bendrą kokybę pristatymas. Beveik visais atvejais jūs turėsite PM ir tikrai stipri komanda, devs, BAs, UX žmonių, ir t. t., palaikyti jus. Bet jums bus pagrindinis veido klientas mato, investicinių fondų, ir tt. Nėra jokių paslėpti šešėliai šiame vaidmenyje :). Jūs būsite sąskaita šiuo metu ir siekiama išlaikyti pakankamai užimtas, tai 80 procentų laiko.
  • Padėti su dokumentų tvarkymo-paršavedžių, Statomi, deniai-visa tai neblogai. Manau, kad mes turime mūsų paršavedės procesas gana stora ir kietas, tai gana pastovus. Jei esate pripratę prie raštu paršavedžių šiandien, mūsų procesas yra nesiruošia būti jums iššūkį. Statomi – tai yra šiek tiek sunkiau. Jie linkę būti pagal užsakymą – pobūdžio prasideda ir statomi paprastai traukti į kelių skirtingų autorių. Tai ir geras ir blogas, bet daugiausia geros. Tai gali gauti scrambly, kai mes turime žongliruoti puikų klientų aptarnavimą reikia o taip pat bando laimėti naują darbą. Jūs tikriausiai nebus savo RFP bet jūsų bus paprašyta prisidėti skyriai.
  • Pardavimų skambučius, bet ne arčiau. Per mėnesį, galite tikėtis, kad eiti pora pardavimo skambučių su mūsų pardavimų komanda. Jūs būsite MVĮ kambaryje, užsirašyti pastabas ir padėti formuoti tirpalas. Tačiau, jums nebus prašoma ar tikimasi, kad dirbti pardavimų ciklo nuo pradžios iki pabaigos. Jums nereikia "parduoda,"reikia tik, kad ekspertų priežasties kambaryje ramus balsas. Tai sukuria pasitikėjimą ir tai, kodėl tu čia. žinoma, Jei jums patinka pardavimo, tada dar yra ką jums augti čia per.
  • Padėti įdarbinti. Mes turime tam tikros rūšies referalų programa, Taigi jei žinote tikrai stiprūs žmonės Bendrijoje jūsų manymu turėtų būti įtraukti į slalomo, jums gali būti naudinga tokiu būdu. Skyrėme darbdaviai (Kas yra puikus) padaryti didžiąją šios rūšies darbą. Reali pagalba yra pokalbius su kandidatais-ar jie gerai tinka kultūriškai? Jie žino savo daiktų? Jie gali padaryti * savo * gyvenimą lengviau? 🙂 This comes in spurts, porą kartų per mėnesį, Nors per keletą mėnesių jums padarys ne visai.
  • Padėti nustatyti gerosios patirties, sukurti savo IP ir daro mus labiau konkurencinga rinkoje. Jūs esate patyręs vaikinas/gal. Jūs buvote aplink blokas-ne tik į SharePoint, bet jūs turite patirties kitas technologijas ir gyveno per gera ir bloga (net baisi) projektų all over. Todėl, Jūs žinote, kas veikia ir kas ne. Mes norime Jums pasidalinti ta patirtimi su mumis konkrečiu dieną į taktiniai prasme (ty. paleisti savo projektus tikrai gerai) taip pat strategiškai, bet. "Geriausia praktika" yra šiek tiek viršijus kaip terminas ir aš nesiryžta naudotis ji. Pagrindinė idėja, kad ateina kaip patyręs asmuo su giliai ir atitinkamą patirtį ir mes norime, kad geriausias savo learnings integruoti kaip mes sudominti klientus konkrečiu dieną.
  • pasilinksmink – Mes esame labai integruota krūva. Aš noriu, kad būtų išvengta dar banalybė, bet tai tikrai apt šiuo atveju-dedame daug pastangų (tarsi) ir mes žaisti dar sunkiau :). Ten yra Aaron Sorkin rūšies Kpinkować čia, kambarys yra visada pilnas protingi žmonės, mums patinka mūsų gėrimais ir organizuojame nemažai įdomus renginiai – kino vakaras, Beisbolas keliones (net jei jie yra siaubinga, praktiškai blogio komandos).

Jei aš galėčiau suma jį visus į vieną žodį, Norėčiau naudoti žodį "Lyderystė." Sukelti projektai, imtis vadovaujančio vaidmens pastate, praktika (IP, kuriant komanda), ir tt.

Bet laukti! There's more! Kodėl dar dirbti slalomo?

  • Puikus vienybės ketinimų – kiekvienas nori augti, tai. "Tai" yra Niujorko biuro. Kiekvienas žmogus yra laive su šia.
  • Vėjo į jūsų bures-sesuo biurai, sesuo praktika – slalomo yra "pilno aptarnavimo" pasikonsultavusi su organizacijos. Aš sukelti SharePoint praktikos (a "praktikos srityje švinas" slalomo žargonas). Aš turiu seserį darbo metodais 11 kitas slalomo biurai. Taigi nors aš karalius kaip SharePoint yra čia nagrinėjamas slalomo Niujorke, Turiu kolegų praktiką Čikagoje, Sietlas, Dallas, Atlanta, Boston, ir tt. iš kurių aš remtis paramos. Tai tikrai geriausias abiejų pasaulio-pakankamai autonomiškai čia Niujorke, bet prieigą prie tonų talentą visoje organizacijoje.
  • Vėjo į jūsų pardavimai (2) – Mes darome daugiau nei SharePoint – daug daugiau. Mes BI, CRM, UX, verslo konsultavimo, Mobilus, Custom development ir kiti. Mes gerai kryžminio pardavimo tarp savęs ir mes labai gera tapyba- ir dar svarbiau, pristatymo į – "pilno aptarnavimo" nuotraukų mūsų klientams. Tai yra ypač patrauklus man. Aš jau ne daug mažesnių orgs darbo SharePoint koncertai ir nusivylė ir vėl, nes mes buvome Pidžinas holed kaip "SharePoint žmonės." Tai neturi įvykti su slalomo ir mes padaryti įdomesnį darbą todėl.
  • Vietos modelis – kelionės.
  • Ilgalaikį augimą – slalomo jau vyksta gangbusters. Daug augimo ir stabilumo. Augimas taip pat reiškia, kad mums reikia samdyti lyderiai šiandien galvos iki naujos komandos kaip mes įtraukiame daugiau klientams ir darbuotojams paramą tiems klientams.

Galėčiau eiti, bet aš tikriausiai jau dabar per ilgai. Manau, kad aš Paimkite esmė čia. Jei jūs galvojate apie keičiasi darbo vietų ir tai atrodo gerai, kad jūs, Pakalbėkime.

Jei jūs laimingas į savo dabartinį darbą-pakalbėkime vistiek :). Aš jau daug vietų ir tuo metu buvo labai "laimingas". Slalomo skiriasi ir norėčiau pasveikinti galimybę įtikinti jus, kad.

</pabaigos>

undefinedPrenumeruoti savo dienoraštį.

Sekite mane Twitter ne http://www.twitter.com/pagalvin

Greitai ir lengvai: Nustatyti dydį a elementų sąrašo lauke Windows Store App

Windows Store App aš sukurti, Aš noriu parodyti vartotojo įvairių informacinių pranešimų.  Mane pasirinko sąrašo lauką kaip priemonė parodyti, kad jie gali slinkti per juos ir visa, good stuff. 

Pranešimai yra informaciniai tik, Todėl nėra jokio reikalingumo aprūpinti visi, kad papildomos tarpus aplink juos, nes vartotojas gali niekada pasirinkti jiems nieko.  Sąrašo laukas numatytąsias parinktis suteikia didelę dalį prikimšti ir aš norėjau iš jos.  Gerai.... Jūs negalite padaryti dalykas dėl sąrašo laukas tiesiogiai.  TAČIAU, Jūs galite padaryti tai įtrauksite elementus:

        privačių negalioja AddGameStateLogMessage(eilutė theMessage)
        {
            Teksto laukas t = naujas Teksto laukas();
            t.Text = GameStateCounter   + ": " + theMessage;
            t.TextWrapping = TextWrapping.Wrap;
            t.MinWidth = 400;
            Storis thisPadding = naujas Storis(5, 0, 5, 0);
            t.Padding = thisPadding;
            t.FontSize = 12;

            ListBoxItem li = naujas ListBoxItem();
            Li.Turinio = t;
            Li.MaxHeight = 25;
            thisPadding = naujas Storis(5, 0, 5, 0);
            Li.Prikimšti = thisPadding;

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

pirmiau, Aš sukurti teksto lauką ir nustatyti jo šrifto, jo užpildymas, ir tt.

Kitas, Aš sukurti, ListBoxItem ir nukopijuojame suformatuoto teksto laukas.

Pagaliau, Įterpti į ListBoxItem į sąrašo laukas.  (Aš noriu parodyti naujausius pranešimus sąrašo viršuje, Taigi įterpti(0,Li) vietoj paprasta pridėti() pritaikymo.).

Aš bus truputį keisdami tai šiek tiek anksčiau aš esu labai laimingas su sąrašo lauko elgesį bet pirmiau pateiktas modelis buvo labai vaisingas.  Tikimės, kad kažkas mano, kad naudinga.

</pabaigos>

undefinedPrenumeruoti savo dienoraštį.

Sekite mane Twitter ne http://www.twitter.com/pagalvin