kategori Achiv: SharePoint sou liy

Mechan panse a eksitan anonsman

Fè annonces pa vrèman bagay mwen, Men fwa sa a, Mwen reyèlman, se vre wi: eksitan sèlman ki te lanse Slalom gwo pòm SharePoint simityè sa. 

Mwen travay nan Slalom konseye sou Et gérer les Portails & Kolaborasyon pratique.  A kote ki gen gwo pòm se "m" lan pou m' pratique isit la nan New York.  Mwen te gen tan te vle bèt sa yo. Mwen sèten se sa anpil SP pwogram a te vle pou yon bagay menm jan an.  Konben fwa nou te gade nan direksyon piblik konpayi pwòp pa nou an, ou yonn nan kliyan Et wè yo ap rebati l' ase Et sèlman lè yo kapab Et qui ke yo ta ka bati l' sou SP?  Nou tout konnen ke SP trè bon nan sa a jan de bagay, Men, pa trè komen. 

byen, monde a la fen New jis droit pou m-SP en vrèman pa chè, M te fè dwat ekip la epi ase tan pou ou fè l aktyèlman.

Se te yon vwayaj enkwayab pou jwenn pou yo lanse Et ak kèk nan sa partagé kanpe sou sit la.

Li tout sou sa isit la epi si w te enterese nan detay dèyè li, Mwen kontan plis pase pou pale sou sa.

Isit la se lyen anonsman ofisyèl: http://www.bigapplesharepoint.com/pages/View-An-Insight.aspx?BlogID=82 #O365

</fen>

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

Intro

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

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

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

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

Qunit

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

image

Figi 1

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

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

image Figi 2

Isit la se kòd la:

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

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

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

        });

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

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

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

        });

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

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

</>
</html>

Genyen anpil bagay ki pase isit la:

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

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

image

Figi 3

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

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

Tankou tès yo-kèk sijesyon:

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

Lwa sekirite sosyal ak Blanket.js

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

Se sa rele blanket.js nan aksyon:

image Figi 4

image

Figi 5

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

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

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

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

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

Rezime (TL; DOKTÈ)

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

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

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

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

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

Benediksyon pou sonde!

</fen>

undefinedVous pou m' blog.

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

BPOS 2010 Et "Sur-ensemble”

Mwen t' ap li yonn nan sa yo trè ak atik blah tankou sou BPOS (Microsoft an echanj yo SharePoint nan nwaj la) Et heureusement waded à fin:

Tèm lòt à les, Microsoft, ki se commiting pou bay nan BPOS v.Next natif-natal PowerShell scripting via créer final PowerShell yon sou PowerShell vèsyon pipiti de youn 2. L' ap fè par Online IDs, ak yon moun ki pa marye ak être ka pou itilize pou PowerShell Et Portal, Arizona a.Keane fait mesaj lòt Microsoft menm te leve vwa yo nan TechEd semèn sa a: Nwaj kapasite, sou tan, pwal  devni yon Sur-ensemble de sa ki disponib sou-lokal. Aktyèlman, paj la a verite, Et sèvis Online Microsoft a ofwi yon sous-ensemble de fonksyon yo disponib nan équivalents lojisyèl de pwodwi chak.

Nosyon de nwaj la ap ofri plis kapasite pase sou-principe nouvo pou m. Mwen se jan tout bon ki pwal nan tou sa li.  Mwen pa santi counterintuitive m '.  Mwen totalman gen lide an se pou yon lòt konpayi yo ap deplase bagay pou nwaj la (ou kòmanse nan nwaj la) Men, mwen panse nòmalman yo fè l' paske pwogram a (admin plus, SLAs, ets) byen lwen Sur les inconvénients (fonctionnalités redui). 

Mwen gen yon ti kras nan yon lè mwen kwè bagay offres nwaj ap depase kapasite sou-prem.  Divès locataire difisil Et semble tankou li dwe fòse konpwomi pou nou sa bay bon SLA Et lèz ki sèvi ak...

Mwen pwal pwobableman être manje m' pral di sou sa.  Mwen sonje panse ke pa gen éventuellement te kapab bezwen plis pase 650 mo de done fontyè a pakonsekan sa, CD la pa t' ap pou ka amelyore sou.

</fen>

Vous pou m' blog.

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

Sou liy SharePoint Et InfoPath

M' ka pran dènye moun pou reyalize sa, Men SharePoint sou liy (ki sa mwen konn tande moun ap di se yon glorifié WSS) sipòte InfoPath fòm sèvis.  Sa se bagay trè pisan, sitou konsidere IP FS, ki se yon mak nan bab PANYÒL Enterprise Et BPOS ki se yon bagay tankou $1.99/ mwa pou 10,000 utilisateurs.  Gen dwa yon ti jan plis ke sa.

Se konsa, SharePoint en défie definisyon fasil.  Li gen mak antrepwiz sa a, Men pa gen aksè anonim (WSS menm ki sipòte).  Ou kapab fè kèk bagay enteresan ak recherche (MOSS-ish, depi ou ka defini zones kiyè kote ki gen), Men, si ou pa bezwen gen aksè pou SSP a, ou pa ka fè l.  You can play the “on the one hand and on the other” game all night long with this product 🙂

Microsoft gen pou libere yon nouvo vèsyon pipiti de youn de SP en nan kèk mwa yo kap vini.  Mwen se hybrid bizarre ki va être?

</fen>

Vous pou m' blog.

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