Kuidas määrata inimeste otsingu ulatus / SharePointi sisuallika 2013 PUHKUS API

Mul oli põhjust töötamiseks SharePointi 2013 Otsi API kaudu ülejäänud esimest korda. Ma tahtsin inimesi otsima, mitte dokumentide. Õppimine on see, et võti Määrake sisuallikate kaudu oma GUID (või vähemalt antud juhul). Järgmised jQuery väljavõte näitab kuidas:

    loadExpertsAsync: funktsioon() {

        jQuery.support.cors = True;

        $.AJAX({
            URL-i: See.CreateFullApiUrl() +
                "?querytext = "portaale"&SourceId = "b09a7990-05ea-4af9-81ef-edfab16c4e31"" +
                "&selectproperties ='LinkedInProfileUrl,GoogleCirclesProfileUrl,BALargeProfilePictureUrls,BAGridPictures,WorkEmail,Oskused,AboutMe,Huvide,Ametinimetus,PastProjects,PictureURL,PreferredName,TwitterHandle,LinkedInProfileUrl,PreferredName,GoogleCirclesProfileUrl "" +
                "&Auditipäringu = 99",
            meetod: "SAADA",
            päised: { "Aktsepteeri": "taotlus/json; odata = verbose" },
            vahemälu: väär,
            edu: funktsioon (tulemus) {

Minu puhul, Jooksen API vastu SharePoint online. Saada GUID, Ma järgisin järgmiselt.:

  1. Juurdepääs SharePointi administreerimiskeskuses
  2. Valige "Otsi" vasakul navigeerimine
  3. Valige "Halda tulemus allikad"
  4. Valige "Kohalike inimeste tulemused"
  5. Pilk URL.

Minu URL otsisin midagi sellist:

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

Sourceid parameeter on, mis töötas minuga.

(Ma saan aru, et sourceid võib tegelikult olla selline pidev asi SP, but I’ll always check anyway 🙂 ).

</lõpp>

undefinedTelli minu blogi.

Järgi mind vidistama kell http://www.twitter.com/pagalvin

Näiteks SharePointi ülejäänud kõnedele

Siin on proov ülejäänud kõned, mis töö minu ja võib aidata teil ka komplekt. Seisuga 02/2014, there are two examples 🙂

  1. Veeru tühikuid oma nimi
  2. Mitme valikuga veeru
  3. Teha inimeste otsingu kaudu ülejäänud

 

Ma lisada see aeg möödub.

Siin on mõned kasulikud tindid märkasin samuti:

Veeru tühikuid oma nimi

Ma luua kohandatud loendi veerg nimega "Blogi autor" (Blogi ja autori vahel).

Selle veeru viide $select on:

image

Ruumi lihtsalt asendada "_x0020_". Me näeme palju näiteid _x0020_ kogu selle internets ja ülejäänud ei erine.

Kui sa ei tee seda, sa oled kohustatud sellist kuvatakse tõrketeade:

Avaldis “Blogi autori” ei sobi.

Piisavalt lihtne.

Viide hulgivaliku otsinguveerg

Saate seadistada:

  1. Luua kohandatud loendi Kategooriad.
  2. Lisada mõned kategooriad. Lisasin kategooriad thusly:image
  3. Luua teise custom loendi nimega MockBlog ja lisada kategooriaid hulgivaliku veeruna (saidi veeru, kui see, kuidas te veeretate või).

Mõne üksuse lisamiseks loendisse Mockblog ja olete valmis.

Ajax stiilis kõne kasutades jQuery otsib midagi sellist:

serverUrl  = "/_api/web/loendid/GetByTitle('MockBlog')/üksused" +
             "?$Valige pealkiri =,Kategooria/pealkiri,Blog_x0020_Author/pealkiri" + 
             "&$laiendamine = Blog_x0020_Author,Kategooriad";

Me levitame SharePointi "andke mulle pealkirja kõik kategooriad (Kategooria/pealkiri). Saada tegelikud väärtused Pealkiri poolt $LaiendaKategooriate loetelu Ing." (Minu kosutava parafraseerides on ilmselt päris lahti, Aga see kuidas ma olen tõlgendamisel).

Kui sa teed kaudu JavaScript ja kasutades viiuldaja vaadata väljund, saad midagi sellist vastutasuks:

 

image

(Kohal on JSON objekti)

Teha inimeste otsingu kaudu ülejäänud

I blogged about seda eraldi. Oluline on määrata sourceid parameeter, mille väärtus on kohalikele elanikele sisuallika GUID. (Sisuallikaid varem nimetati ulatuste ja see on minu-oh-minu nii raske mitte helistada kõik võimalused mulle!).

Loe lähemalt siit: http://www.mstechblogs.com/paul/?p=10385

 

</lõpp>

undefinedTelli minu blogi.

Järgi mind vidistama kell http://www.twitter.com/pagalvin

Kiire ja lihtne: Luua SharePointi saidil, kasutades ülejäänud

Seal on palju ressursse ümber mis näitavad selle, kuid ma ei suutnud leida tervikliku go-to link, nii et siin me oleme.

Saate luua SharePointi saidil, kasutades ülejäänud API.  Siin on täielikult küpsetatud näide:

<!--
    SiteRequestForm.html: Teabe kogumine ja saidi kasutaja loomine.
-->

<keskus>
<Tabel>
    <TR>
        <TD>Saidi nimi:</TD>
        <TD><sisend tüüp= "tekst" Nimi"SiteName =" ID"SiteName =" /></TD>
    </TR>
    <TR>
        <TD ColSpan= "2">
            <sisend tüüp= "saadad" ID= "CreateSiteButton" väärtus= "Loo sait" />
        </TD>
    </TR>
</Tabel>
</keskus>

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

<skripti>
var CreateSiteLogicContainer = {

    createSiteData: {
            "parameetrid": {
                __metadata: { "tüüp": "SP.WebInfoCreationInformation" },
                URL-i: "Paultest1",
                Pealkiri: "Paultest1",
                Kirjeldus: "ülejäänud loodud web Paul!",
                Keel: 1033,
                WebTemplate: "sts",
                UseUniquePermissions: väär
            }
    },

    createSite: funktsioon () {

        jQuery.support.cors = True;

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

            päised: {
                "Võta vastu": "rakendus/json; odata = verbose",
                "sisutüüp": "rakendus/json;odata = verbose",
                "X-RequestDigest": $("#__REQUESTDIGEST").Val()
            },

            andmed: JSON.stringify(CreateSiteLogicContainer.createSiteData),

            edu: funktsioon () { märguanne("edu"); },
            tõrge: funktsioon () { märguanne("viga"); }

        });
    },

    wireUpForm: funktsioon () {
        $("#CreateSiteButton").Klõpsake nuppu(funktsioon () {
            märguanne("Umbes et proovida ning luua veebilehe.");
            CreateSiteLogicContainer.createSite();
        });
    }


}

CreateSiteLogicContainer.wireUpForm();

</skripti>

Kui edukas, saad vastuseks niimoodi JSON pakettaknad:

image

Minu peamised mõtted ja õpetused selles kaasa:

  • Selline lähenemine kasutab jQuery.  Minu puhul, minu jQuery Raamatukogu asub "../ plugins. "  Soovite muuta see oma lemmik JQ asukoha määramine.
  • Kopeeri ja kleebi see kogu koodijupi sisuredaktori veebiosa lehele ning see peaks toimima suurepäraselt.  Soovite muuta API kõne lõpp-punkti ja veenduge, et viidatava JQ õigesti.
  • URL on suhteline oma API lõpp-punkti.  Minu puhul, See loob alamsaitidele all https://bigapplesharepoint.com
  • Sa ei pea andma sisu pikkus. Mõned blogi postitused ja MSDN dokument eeldab, et sa, kuid juhtus minu jaoks automaatselt, mis eeldas tegeleb $.ajax kõne ise.
  • See rida on vajalik, et vältida "keelatud" vastus: "X-RequestDigest": $("#__REQUESTDIGEST").Val().  On ka muid võimalusi teha, Aga see on päris kena.  Ma kaotasin link blogi, et see otsetee.  H/T teile, salapärane blogger!

Edu ja loodan, et see aitab keegi välja.

</lõpp>

undefinedTelli minu blogi.

Järgi mind vidistama kell http://www.twitter.com/pagalvin

Ületada tüütu probleem suhteline URL SharePointi Quick Launch

Tahtsin lisada lingi kiirkäivitusnuppudena navigeerimine teisel päeval ja SharePointi ütles mulle:

image

Puhta teksti versioon sellest on:

Tagada, et URL on kehtiv ja hakkab kas sobiv märk (numbrimärk (#) või kaldkriips (/)) või sobivat toetatud protokolli (näiteks, "http://’, ' https://’, "fail://’, "ftp://’, "mailto:’, "Uudised:’).

"Blech ja pox!"Ma ütlesin.

Lahendust sellele on JavaScript abil leida tuntud linki quick launch ja alistada käitumisviisi.

Katsetada seda, Lisa uus link saidile katse thusly:

image

Ma kasutasin jQuery. Lahendada see, saaksin JavaScript ja jQuery kasutades oma lemmik tehnika lehele ja koodi niimoodi joonega:

 

$(dokumendi).valmis( funktsioon () {

    $("a:sisaldab(Katse URL asendamine)").Klõpsake nuppu(funktsioon () { märguanne("muutunud kliki käitumist!"); edasi-tagasi väär;});

});

Ja oma onu Bobi.

JQuery valija leiab iga <a> sildi, millel on "Test URL asendamine" oma nime. Te võite leida-tune mis sõltuvalt teie link ja selline.

Selle .click(funktsioon() alistab iganes SharePointi oleks teinud kasutaja klõpsamisel. Veenduge, et olete "return false" või siis see ei oma asjad ja seejärel proovige href asi liiga, mis on peaaegu kindlasti mitte teie eesmärk.

Seda tehti ja test SharePoint online keskkonnas, kuid peaks töötama hästi 2010 ja enne seda liiga.

</lõpp>

undefinedTelli minu blogi.

Järgi mind vidistama kell http://www.twitter.com/pagalvin

Kiire ja lihtne: SharePointi ülejäänud helistada vaid tagastab 100 Kirjed

Olen töötanud avalik facing veebilehel oma SharePointi tava siin New York ja ta kasutab JavaScript ja ülejäänud nõuab palju sisu.

Põhilistele arenduse käigus, Ma luua väike andmekomplekt on lihtsalt 10 või nii ridade kohandatud loendi ja mu ülejäänud nõuab tõmbas sealt.  Kord I bumped kuni on eeldatav kasvuks testida paar sada andmeridade nimekirja, Ma leidsin, et mul oli saada täpselt 100 tagasi mu ülejäänud telefonikõnedelt tagastatavate ridade.

See on väga lihtne asi tegeleda.  Minu puhul (ja ma usun, et enamasti), Vaikimisi ülejäänud nõuab SharePoint (ja võib-olla kui tööstusharu standardile?) edasi-tagasi 100 ridu.  Tagasi rohkem kui vaikimisi, Kasutage parameetrit $top teie kõne, nagu ka:

SAAD /Insights Dev/_api/web/lists/GetByTitle('MockBlog')/üksused?$Valige = ID,Pealkiri,Kategooria/pealkiri,Blog_x0020_Author/pealkiri,DatePublished,BlogSummary&$laiendamine = Blog_x0020_Author,Kategooriad&$filtri =&$Top = 9999

Ma valisin 9999 Sel juhul kuna ma tean et growth-wise, seal ei ole enam kui 200 või nii ridade lisatakse sellesse loendisse aastas.  Kui see muutub ungainly, saame rakendada mõningaid kutsungi mööda teed.

</lõpp>

undefinedTelli minu blogi.

Järgi mind vidistama kell http://www.twitter.com/pagalvin

Kiire ja lihtne: Lahendada "sobimatu URL-i parameeter” probleem on UpdateListItems lists.asmx

Via lists.asmx UpdateListItems töötamisel, See on lihtne tekitada viga:

Sobimatu URL-i parameeter.

Esitatud URL sisaldab vigast käsku või väärtust. Vaadake URL uuesti.

See viga võib saada, kui olete unustanud lisada ID selle loendi väljade värskendamine.  See, nagu paljud neist SP veebiteenused, on natuke counterintuitive, kuna teil on vaja lisada ID atribuudi ID selle <Meetod> element.  Ja sa ei ole uuendatud ID ja ilmselt ei taha esimene koht.

See SEEP ümbrik töötab:

<soapenv:Ümbrik xmlns:soapenv ="http://schemas.xmlsoap.org/SOAP/Envelope/ ">
  <soapenv:Keha>                      
    <UpdateListItems xmlns ="http://schemas.microsoft.com/SharePoint/SOAP/ ">                     
      <listName>{C712E2EA-54E1-47AD-9D99-1848C7773E2F}</listName>                     
        <uuendused>                     
         <Partii Tõrke_korral ="Jätka">
          <Meetod ID ="1" Cmd ="Update">
            <Välja nimi ="CooperativeLock">lukus!</Väli>
            <Välja nimi ="ID">1</Väli>
          </Meetod>
        </Partii>                     
        </uuendused>                
      </UpdateListItems>             
  </soapenv:Keha>         
</soapenv:Ümbrik>

Kui teil ribad välja ID väli viide siis saad tüütu "Sobimatu URL-i parameeter" sõnum.

</lõpp>

undefinedTelli minu blogi.

Järgi mind vidistama kell http://www.twitter.com/pagalvin

 

Vaene mees on Caching JavaScript

[TL;DR versioon: kasutame küpsiseid, et salvestada tulemused async kõned; muuta tulemused viimase async kõned kohe ja seejärel Kinnita neid pärast lehe laadimist.]

Olen töötanud SharePointi intranet saidil kliendile, et funktsioonid, muu hulgas, stiliseeritud teisese navigation kelle menüüsuvandite hallatakse kaudu regulaarselt vana kohandatud loendi.  Mõte on selles, et klient saab kontrollida "oma" saidi menüü mõjutamata või mõjutavad globaalset navigatsioonisatelliitide poolt välja pandud.

(seal on midagi uskumatult õõnestava lisamine CEWP, mis viitab HTML-fail, mis laadib mõned CSS ja JS oluliselt muuta peaaegu kõike saidi käitumine... kuid see on teisele ametikohale)

See päris lihtne kood:

Valus kohapeal siin on see, et iga kord, kui keegi lööb selle saidi leheküljed, See kasutaja veebilehitseja on jõudmas saada üksuste loendist.  Kui dev on lõpetatud ja testimine on osutunud asjad olema stabiilne ja täielik, selle kutse ei ole vajalik enam kui 99% ajast alates menüü harva muutub.  On ka imelik UI mõjutada, mis on levinud see vapper uus maailm hüper-ajaxy veebisaitide-lehe renderdamist ja alles seejärel menüü Muuda.  On närviline ja häiriv, minu arvates.  Ja närviline. Nii, vahemällu. 

Ma muutmine loogika thusly:

  • Otsige küpsise brauseri, mis sisaldab menüüd kui viimati lugesin
    • Kui leiti, Muuda kohe.  Ärge oodake lõpuni laadimise lehele.  (Sa pead veenduge, et teie HTML strateegiliselt paigutatud siin, kuid see ei ole raske teha).
  • Oodake, kuni lehe lõpuni peale ja tee async helistada korralikuks menüü üksuste loendi, kasutades ülejäänud või lists.asmx või mis iganes
  • Võrdle, mida sain vastu küpsis
    • Kui see sobib, Stopp
    • Muidu, kasutades jQuery, dünaamiliselt asustada hunnik kui <Li>'s in a <UL>
  • Kasutage kogu vormingu CSS
  • Kasum!

Mõned teist lähevad öelda, "kuule! ei mingit tõelist vahemällu siin toimub kuna sa loed menüü niikuinii iga kord.”  Ja sul on õigus-ma olen andes server murda tahes.  Kuid kuna kõne on asünkroonne ja juhtub pärast esialgse ettepaneku lehe HTML lasti täielikult muudab, "tundub" kiiremini reageerima kasutaja.  Menüü muudab päris palju kui lehe viiki.  Kui menüü muutus, Kasutaja läbib närviline uuesti teha menüü, kuid ainult üks kord.

Seal on mõned viisid, et muuta see vahemälu tõhusamaks ning aidata server samal ajal:

  • Pane vähemalt kehtiva "küpsiste vahemälu" reeglit 24 tunni või mõni muu ajakava. Kui ei ole aegunud küpsis, Kasutage seda küpsist menüüd pildistamise ja kunagi tabanud server.

Noh... see on kõik, mis kohe pähe tulevad :). 

Kui kellelgi on kõik targad ideed siin oleks tore teada nende.

Ja lõpuks – seda tehnikat kasutada muid asju.  Selle kliendi leheküljel on mitmeid asju andmepõhiseid erinevatel lehekülgedel, Paljud neist muutuvad suhteliselt harva (näiteks kord nädalas või kord kuus).  Kui sihite teatud valdkondades funktsioone, annad paindlikumaks UI tõmmates sisu kohalikku küpsis salvestada ja muuta kohe.  Ta tunneb kiiremini kasutajale, isegi kui sa oled kokkuhoid, server kõik tsüklit.  Te Saate salvestada serveri tsüklit otsustades mõned tingimused ja vallandab tunnistab kehtetuks kohalik küpsiste vahemälu.  Ongi kõik olukorrast ja esteetilist asjad ja tõesti kõige toredam :). 

</lõpp>

undefinedTelli minu blogi.

Järgi mind vidistama kell http://www.twitter.com/pagalvin

Kuidas: Konfigureerida üksuse testi ja Test laovarude QUnit.js ja Blanket.js büroo 365 SharePoint App

Intro

Uurinud üksus katsetamine ja testi katvus JavaScript nagu ma tööd uue SharePoint app for Office SharePoint online 365 sviit.  Ilmne teadusuuringute teed sundis mind Qunit.js ja pärast seda, et Blanket.js.

QUnit Tahaksin luua unit teste ja rühmitage need moodulid.  Moodul on lihtsalt lihtne viis korraldada vastavad katsetused. (Ma ei tea, ma olen seda kasutada eesmärgipäraselt, Aga see ei tööta minu jaoks siiani väike kogum on seni määratletud).

Blanket.js sulandub Qunit ja see näitab mulle tegelik read JavaScript, mis olid – ja mis veelgi olulisem – tegelikult ei hukati käigus katsetuste korraldamine.  See on "hõlmatus"-read, mida reguleeritakse katse samas ei.

Seadistamine hea katse juhtudel ja tulemeid katvus, saame vähendada riski, et meie kood on peidetud vead.  Headel aegadel.

Qunit

Eeldades, et olete oma Visual Studio projekti seadistamine, alustada allalaadimisega JavaScript pakett: http://qunitjs.com.  JavaScript ja vastava CSS lisamiseks lahendusse.  Mine näeb välja selline:

image

Joonis 1

Nagu näete, Olin kasutades 1.13.0 hetkel ma kirjutasin seda blogi postitus. Ära unusta alla laadida ja lisada CSS faili.

Et teelt, Järgmine samm on luua mingi test rakmete ja Qunit bitti.  Testin kimp funktsioone skripti fail nimega "QuizUtil.js" nii et ma loodud HTML lehe nimega "QuizUtil_test.html" nagu näidatud:

image Joonis 2

Siin on kood:

<!DOCTYPE HTML>
<HTML xmlns= "http://www.w3.org/ 1999/xhtml">
<juht>
    <pealkiri>QuizUtil test Qunit</pealkiri>
    <link rel= "stiil" href="../CSS/qunit-1.13.0.CSS" />
    <skripti tüüp= tekst/javascript"" src="QuizUtil.js" andmete kaitse></skripti>
    <script tüüp ="teksti/javascript" src ="qunit-1.13.0.js"></skripti>
    <script tüüp ="teksti/javascript" src ="blanket.min.js"></skripti>

    <skripti>
        moodul("getIDFromLookup");
        test("QuizUtil getIDFromLookupField", funktsioon () {
            var goodValue = "1;#Paul Galvin";

            võrdse(getIDFromLookupField(goodValue) + 1, 2), "ID. [" + goodValue + "] + 1 peaks olema 2";
            võrdse(getIDFromLookupField(pole määratletud), pole määratletud, "Määratlemata sisendargumendi peaks tagasi määratlemata tulemus.");
            võrdse(getIDFromLookupField(""), pole määratletud, "Tühi sisendargumendi peaks tagasi undefined väärtus.");
            võrdse(getIDFromLookupField("gobbledigood3-thq;dkvn ada;skfja sdjfbvubvqrubqer0873407t534piutheqw;VN"), pole määratletud,"Tuleks alati naasta tulemus Kabriolett täisarv");
            võrdse(getIDFromLookupField("2;#mõne teise isiku"), "2", "Kontrollimine [2;#mõne teise isiku].");
            võrdse(getIDFromLookupField("9834524;#pika väärtuse"), "9834524", "Suure väärtuse test.");
            notEqual(getIDFromLookupField("5;#keegi", 6), 6, "Katsetamine on notEqual (5 ei võrdu 6 see proov: [5;#keegi]");

        });

        moodul("htmlEscape");
        test("QuizUtil htmlEscape()", funktsioon () {
            võrdse(htmlEscape("<"), "&lt;", "Põgenevad vähem kui operaator ('<')");
            võrdse(htmlEscape("<div klassi =  "someclass">Mingi tekst</DIV>"), "&lt;div klassi =&quot;someclass&quot;&gt;Mingi tekst&lt;/DIV&gt;", "Keerukam test string.");
        });

        moodul("getDateAsCaml");
        test("QuizUtil getDateAsCaml()", funktsioon () {
            võrdse(getDateAsCaml(Uus Kuupäev("12/31/2013")), "2013-12-31T:00:00:00", "Testimise kõva kodeeritud kuupäev: [12/31/2013]");
            võrdse(getDateAsCaml(Uus Kuupäev("01/05/2014")), "2014-01-05T:00:00:00", "Testimise kõva kodeeritud kuupäev: [01/05/2014]");
            võrdse(getDateAsCaml(Uus Kuupäev("01/31/2014")), "2014-01-31T:00:00:00", "Testimise kõva kodeeritud kuupäev: [01/31/2014]");
            võrdse(getTodayAsCaml(), getDateAsCaml(Uus Kuupäev()), "getTodayAsCaml() peab võrduma getDateAsCaml(uus kuupäev())");
            võrdse(getDateAsCaml("mõttetu väärtus"), pole määratletud, "Püüa saada jama väärtus kuupäev.");
            võrdse(getDateAsCaml(pole määratletud), pole määratletud, "Üritavad kuupäev ning [pole määratletud] kuupäev.");
        });

        moodul("getParameterByName");
        test("QuizUtil getParameterByName (päringu stringi)", funktsioon () {
            võrdse(getParameterByName(pole määratletud), pole määratletud, "Üritavad määratlemata parameeter peaks tagasi määratlemata.");
            võrdse(getParameterByName("pole olemas"), pole määratletud, "Proovige saada parameetri väärtus, kui teame, et parameeter ei ole olemas.");

        });

        moodul("Küpsised");
        test("QuizUtil erinevaid küpsise funktsioone.", funktsioon () {
            võrdse(setCookie("katse", "1", -1), getCookieValue("katse"), "Get seadsin küpsise peaks toimima.");
            võrdse(setCookie("anycookie", "1", -1), True, "Milles kehtiv cooking peaks tagasi"true".");
            võrdse(setCookie("hull küpsise nimi !@#$%"%\^&*(()?/><.,", "1", -1), True, "Milles halb küpsise nimi peaks tagasi 'vale'.");
            võrdse(setCookie(pole määratletud, "1", -1), pole määratletud, "Läbides määratlemata küpsise nimi.");
            võrdse(getCookieValue("pole olemas"), "", "Cookie olemas test.");
        });

    </skripti>
</juht>
<keha>
    <DIV ID= "qunit"></DIV>
    <DIV ID= "qunit-armatuur"></DIV>

</keha>
</HTML>

On mitmeid asju toimub siin:

  1. Viitamine minu kood (QuizUtil.js)
  2. Viitamine Qunity.js
  3. Määratleda mõned moodulid (getIDFromLookup, Küpsised, jt)
  4. Pannes on <DIV> kelle ID on "qunit".

Seejärel, Ma lihtsalt tõmba seda lehekülge ja sa saad midagi sellist:

image

Joonis 3

Kui sa vaatad üle ülaosa, Sul on mõned võimalused, millest kaks on huvitav:

  • Peida läbinud testid: Üsna ilmne.  Aitab silma just näha probleemsed valdkonnad ja mitte palju peegeldushäirete.
  • Moodul: (rippmenüü): See filtreerib alla just need katsesarju soovitud testid.

Nagu katsed, ise – mõned kommentaarid:

  • Loomulikult tuleb kirjutada koodi nii, et see on testitavad esimese koha.  Kasutades tööriista aitavad rakendada distsipliini. Näiteks, Mul oli funktsioon nimega "getTodayAsCaml()”.  See ei ole väga testitavad, kuna see pole sisendargumendi ja võrdsuse testimiseks, Meil oleks vaja pidevalt uuendada testimisreeglistiku peegeldab praegust kuupäeva.  Ma refactored lisades andmed sisendparameeter siis kulgeb praegune kuupäev Millal ma tahan tänast kuupäeva CAML-vormingus.
  • Qunit raamistiku dokumendid oma katseid ja tundub päris tugev.  Seda saate teha lihtsaid asju nagu võrdõiguslikkuse katsetamine ja ka toetust ajax stiilis kõnede ("päris" või pilkasid kasutades oma lemmik mocker).
  • Läbimas protsessi ka sunnib sind mõelda läbi serv juhtudel – mis juhtub "määratlemata" või null läks funktsioon.  See muudab surnud lihtne testida neid stsenaariume läbi.  Hea kraam.

Laovarude Blanket.js

Blanket.js täiendab Qunit jälgida tegelikud rida koodi, mis töötab oma katsete käigus täita.  See integreerib paremale Qunit nii et kuigi see on täiesti eraldi app, ta mängib kenasti-see tõesti näeb välja nagu oleks üks õmblusteta app.

See on blanket.js tegevuses:

image Joonis 4

image

Joonis 5

(Tegelikult on klõpsa ülaosas ruut "Luba ulatus" [vt joonis 3] võimaldab seda.)

Esiletõstetud ridade arv 5 ei ole täidetud ükski minu testide, nii et mul on vaja töötada välja testi, mis põhjustavad neil täita täies ulatuses soovi.

Saad blanket.js tööd tehes järgmist:

  1. Alla laadida http://blanketjs.org/.
  2. Mille soovite projektile lisada
  3. Uuenda rakmed testleht (QuizUtil_test.html minu puhul) järgmiselt.:
    1. Viide selle koodiga
    2. Kaunista oma <skripti> selline viide:
    <skripti tüüp= tekst/javascript"" src="QuizUtil.js" andmete kaitse></skripti>

Blanket.js kirkad "andmete alumiiniumlehte" atribuut ja ei oma magic.  Õnged sisse Qunit, uuendab UI lisada "Luba ulatus" valik ja voila!

Kokkuvõte (TL; DR)

Qunit abil saate kirjutada oma katse juhtudel.

  • Lae see
  • Mille soovite projektile lisada
  • Kirjutage rakmed testleht
  • Loo oma katsed
    • Refaktoorime mõned oma koodi testitavad
    • Loominguline!  Crazy mõelda, võimatu stsenaariume ja testida neid Igatahes.

Kasutage blanket.js tagamiseks

  • Qunit töötamise
  • Lae blanket.js ja lisada see oma projekti
  • Test rakmed lehele lisada:
    • Lisada blanket.js
    • Lisa "andmete alumiiniumlehte" omistada oma <skripti> Tag
  • Kestab Qunit katsete.

Kunagi tegin kõik see enne ja oli mõned algeline asjad töötavad üksikud tundi. 

Head katsetamist!

</lõpp>

undefinedTelli minu blogi.

Järgi mind vidistama kell http://www.twitter.com/pagalvin

Viimane ülikond sa kunagi kandma?

[Kiire Märkus-See on päris pikk postitus minu rühma siin New Yorgis avamine töö ja sa pead elama tri-state pindala, kui sa oled huvitatud.]

Tulin Slalom konsulteerimist üle 18 kuud tagasi ja see teeb seda oma pikima kestva töö alates 2007. Ma ei plaaninud sel viisil. Enne töö hopping string mis algas minu hüpe SharePointi maailma, Ma olin ühes kohas üksteist aastat. Ma olen lõpuks leidnud uue, kestev koht Slalom pikkadeks siin tööl.

See koht on kasvamas ja vajan veidi abi kontrolli. Millist abi vajan nimetatakse tavaliselt "SharePointi lahenduste arhitekti", kuigi olen märganud arhitekt üle ja/või valesti kasutada sõna SharePointi ruumi üsna samas nüüd. Ma olen hädas, kuidas blogi seda. Ma ei taha lihtsalt nimekirjast välja hunnik bullet punkte Dice/Monster stiilis. Minu suurepärane värbamisel eakaaslased on teinud, et juba :). Nii, Ma otsustasin võtta "päev elus" lähenemine. Loe see üle ja kaaluda:

1) Kui see meeldib ning

2) Kas sa tead oma luud, et seda saab.

Kui jah, minuga (Paul.galvin@Slalom.com) ja let's talk.

Need on, mida oodata teha tüüpiline nädal/kuu lahendusi arhitektina minu meeskond:

  • Projekte, sageli rohkem kui ühe korraga. Mõned projektid on suured ja nii et oleks enda ühe projekti. "Töötab" projekt tähendab, et järelevalve ja vastutuse üleandmine üldist kvaliteeti. Peaaegu igal juhul on teil PM ja devs tõesti tugev meeskond, BAs, UX inimesed, jne., Toetame teid. Aga sa pead olema klient näeb main nägu, Trust, jne. Ei ole peidus varjud selles rollis :). Te saate arve seekord ja eesmärk on hoida sind hõivatud piisavalt seda teha 80 protsenti ajast.
  • Aidata paberimajandust-emiste, Pöördväljapintš, tekkide – kõik, mis hea kraam. Ma arvan, et meil on meie KÜLVATA protsessi päris tihe ja tahke, nii et see on üsna stereotüüpne. Kui sa oled harjunud kirjalikult emiste täna, Meie protsess ei kavatse teile väljakutse. Pöördväljapintš – need on natuke raskem. Nad kipuvad kõigepealt looduses eritellimusel ja pöördväljapintš pull tavaliselt mitu erinevat autorit. See on nii hea ja halb, kuid peamiselt hea. See võib saada scrambly, siis me peame žongleerima Suurepärane klienditeenindus vajadust ka üritab võita uusi töö. Sa ilmselt ei oma hinnapakkumist, kuid teil palutakse kaasa lõigud.
  • Müük kõned, kuid ei ole lähemalt. Kuu aja jooksul, Võite eeldada, et minna paar müük nõuab meie müük meeskond. Sul on toas VKEde, teha märkmeid ja aitavad kujundada lahendus. Aga, sa harjumus küsis või eeldatavasti hakkama müügitsükli algusest lõpuni. Sa ei pea "müüa,"sa lihtsalt pead olema rahulik hääl ekspert põhjus toas. See loob usaldust ja see on miks sa oled seal. Muidugi, Kui soovid müüa, siis on ruumi teil kasvab siin liiga.
  • Aidata värbamine. Meil on mingisugune referral program, nii, kui tead, et tõesti tugev rahvas ühenduses, mis te arvate, peaks olema osa Slalom, saate kasutada nii. Meil on pühendatud värbajate (kes on hea) lõviosa sellist tööd teha. Reaalset abi on intervjueerimisega – nad on hea sobib kultuuriliselt? Nad teavad oma kraami? Nad saaksid * oma * elu lihtsamaks? 🙂 This comes in spurts, paar korda kuus, Kuigi mõned kuud te ei teeks seda üldse.
  • Aidata määratleda parimad tavad, ehitada üles meie IP ja konkurentsivõimelisemaks USA turul. Sa oled kogenud mees/gal. Olen olnud ümber kvartali – mitte ainult SharePointi, Aga sul on kogemusi teiste tehnoloogiate ja läbi elanud väga hea ja halb (isegi kohutav) projektide kogu. Selle tulemusena, sa tead, mis toimib ja mis mitte. Me tahame, saab jagada seda kogemust koos meiega igapäevase alusel taktikaline mõttes (St. Käivitage oma projektide tõesti hästi) kuid ka strateegiliselt. "Parimad tavad" on natuke liigne terminina ja ma karda seda kasutada. Põhiidee on, et sa oled tulemas sügav ja asjakohaseid kogemusi kogenud inimene ja me tahame, et integreerida oma õppetunnid parim kuidas me tegeleda klientidega päevast päeva alusel.
  • Olgu sul lõbus – Me oleme väga integreeritud kamp. Ma tahan vältida järjekordne platitude, Aga see on tõesti apt sel juhul-me kõvasti tööd (omamoodi) ja me mängime veelgi raskem :). Seal on Aaron Sorkin tüüpi tögamine siin, tuba on alati täis targad inimesed, meile meeldib meie juua ja me korraldame lõbus hulk üritused-kinoõhtu, pesapalli reisid (isegi kui nad on jube, praktiliselt kurja meeskonnad).

Kui oleks Kokkuvõttes see kõik üks Wordi, Tahaksin kasutada sõna "juhtrolli." Kaasa projektid, täita juhtivat osa hoone läbi praktika (IP, meeskonna moodustamine), jne.

Kuid oodake! Seal on rohkem! Miks muidu tööl Slalom?

  • Tähelepanuväärne ühtsuse tahtlikult-igaüks tahab kasvada see asi välja. "See asi" on New Yorgis office. Kõik on pardal selle.
  • Tuul oma purjed – õde kontorid, õde tavad – slaalom on "täisteenust" konsulteerimist organisatsiooni. Ma tuua kuni SharePoint tava (a "tava ala juhtiv" slaalom žargoon). Mul on õde tavasid 11 muud Slalom kontorid. Nii et kuigi ma olen kuningas võimalikult suures ulatuses SharePointi muret siin Slalom New York, Mul on vastastikune tegevus Chicagos, Seattle, Dallas, Atlanta, Boston, jne. millest saab lähtuda tugi. See on tõesti parim nii maailmad – märkimisväärse autonoomia siin New Yorgis, kuid juurdepääs tonni talent organisatsiooni.
  • Tuul oma müüki (2) – Me enam kui SharePoint – palju rohkem. Me teeme BI, CRM-I, UX, ärikonsultatsioonid, Mobile, kohandatud arengut ja teised. Meil on hea rist seas end müüa ja me hea maali- ja mis veelgi olulisem, pärast – "täisteenusega" pildi klientidele pakkuda. See on eriti ahvatlev mind. Ma olen olnud palju väiksemaid orgs, töötavad SharePointi kontserti ja pettunud ikka ja jälle, sest me olime tuvi holed "SharePointi inimesed." Seda ei juhtu slaalom ja me saame teha huvitavamaks töö tulemusena.
  • Kohaliku mudel – ei ole reisi.
  • Pikemas perspektiivis kasv-slaalom on käinud gangbusters. Palju majanduskasvu ja stabiilsuse. Kasv tähendab ka, et meil on vaja palgata head up uued meeskonnad täna juhid, kui me lisame rohkem kliente ja personal, et toetada nende kliente.

Ma võiks minna, Aga ma olen ilmselt juba kestnud liiga kaua. Arvan, et ma olen haaranud sisuliselt siin. Kui oled mõelnud muutuvas töökohti ja see tundub hea teile, Let's talk.

Kui olete rahul oma praeguse töö – räägime ikkagi :). Olen olnud palju kohti ja oli väga "õnnelikud" ajal. Slaalom on erinev ja ma sooviks võimalus veenda teid, et.

</lõpp>

undefinedTelli minu blogi.

Järgi mind vidistama kell http://www.twitter.com/pagalvin

Kiire ja lihtne: Seatud on üksuste suurus loendiboksis Windows Store appi

Windows Store appi ma koostan, Ma tahan näidata kasutaja eri informatiivsed teated.  Ma valisin loendiboksi vahend näitamaks, et nad saate kerida läbi neid ja kõik, mis hea kraam. 

Sõnumid on informatiivne ainult, nii ei ole vaja esitada sugugi eest Tühimärk nende ümber, sest kasutajal võib kunagi valida neile midagi.  Nimekirjakastist vaikekäitumine annab palju polstri ja ma tahtsin lahti saada.  Noh.... sellised asjad Nimekirjakastist otse ei saa.  AGA, seda saate teha, et üksused, millele lisate:

        erasektori tühine AddGameStateLogMessage(stringi theMessage)
        {
            Tekstivälja t = Uus Tekstiväli();
            t.Text = GameStateCounter    + ": " + theMessage;
            t.TextWrapping = TextWrapping.Wrap;
            t.MinWidth = 400;
            Paksus thisPadding = Uus Paksus(5, 0, 5, 0);
            t.Padding = thisPadding;
            t.FontSize = 12;

            ListBoxItem li = Uus ListBoxItem();
            Li.Sisu = t;
            Li.MaxHeight = 25;
            thisPadding = Uus Paksus(5, 0, 5, 0);
            Li.Täidis = thisPadding;

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

ülalnimetatud, Luues tekstiboksi ja selle fondi seadmine, selle polster, jne.

Järgmine, Loomine on ListBoxItem ja seada selle sisu vormindatud tekstiväli.

Lõpuks, Ma lisada selle ListBoxItem nimel Nimekirjakastist.  (Ma tahan näidata kõige hiljutisemad sõnumid nimekirja tipus, Seega Insert(0,Li) selle asemel, et lihtsalt lisamine() appihüüd.).

Ma näidatakse tuleb tutistamine see natuke enne kui ma olen tõesti rahul nimekirjakasti behavior aga eespool näidatud muster on olnud väga viljakas.  Loodetavasti keegi peab seda kasulikuks.

</lõpp>

undefinedTelli minu blogi.

Järgi mind vidistama kell http://www.twitter.com/pagalvin