Kategorija Arhīvs: SharePoint Online

Nelabs aizraujošu paziņojumu

Sniegt paziņojumus nav īsti mana lieta, taču šoreiz, Es esmu patiešām un patiesi sajūsmā, ka tikko uzsākusi slaloma Big Apple SharePoint vietnē. 

Darbam slaloma konsultāciju un, pārvaldītu portālu & Sadarbības prakse.  Big Apple vietā ir "mans" vietā manā praksē šeit, New York.  Es ilgi esmu gribēja viens no šiem. Es esmu pārliecināts, ka daudzi SP pro vēlējusies kaut ko līdzīgu.  Cik reizes ir mums paskatījās uz mūsu pašu uzņēmuma publiskā vietā, vai kāds no klientiem un redzējis tos ēkas to ārā un tikai zinot un vēlas, ka tie varētu balstīties uz SP?  Mēs visi zinām, ka SP ir diezgan labi šāda veida lieta, bet tas nav ļoti bieži. 

Nu, pasaulēm, beidzot jāsaskaņo tikai tiesības uz mani-SP Online ir patiešām lēti, Man bija tiesības komanda un pietiekami daudz laika, lai faktiski darīt to.

Tas bija pārsteidzošs brauciens nokļūt uzsākt un un daži, kas ir kopīgi tur uz vietas.

Lasīt visu par to šeit un, ja jūs esat ieinteresēti aiz tā detaļas, Es esmu vairāk nekā laimīgs par to runāt.

Šeit ir oficiālā paziņojuma saites: http://www.bigapplesharepoint.com/pages/View-An-Insight.aspx?BlogID=82 #O365

</beigās>

kā: Konfigurēt vienības testu un testa segumu ar QUnit.js un Blanket.js Office 365 SharePoint App

Intro

Es esmu bijis izpētīt vienības pārbaude un testa segumu JavaScript, kā es strādāju par jaunu SharePoint app tiešsaistē SharePoint, Office 365 komplekts.  Acīmredzams pētniecības ceļi aizveda mani uz Qunit.js un pēc tam pa labi, lai Blanket.js.

QUnit atļaujiet iestatīt vienības testos un tos grupēt moduļus.  Modulis ir tikai vienkāršs veids, kā organizēt saistītos testus. (Es neesmu pārliecināts, ka es lietoju to, kā paredzēts, bet tas strādā man līdz šim ar nelielu testu es līdz šim definēto kopu).

Blanket.js integrējas ar Qunit un to parādi faktiskās rindas JavaScript, kas bija- un vēl svarīgāk – netika faktiski izpildītas laikā darbojas testu.  Tas ir "segums"-līnijām, kas izpildīts attiecas pārbaudes, kamēr citi nav.

Starp labu precedentiem iestatīšanu un skatīšanu pārklājums, mēs varam samazināt risku, ka mūsu kods ir slēpta defekti.  Labos laikos.

Qunit

Pieņemot, ka jums ir Visual Studio projektu iestatīt, Sāciet ar JavaScript pakotnes lejupielāde no http://qunitjs.com.  Pievienot JavaScript un CSS atbilstošās savu risinājumu.  Raktuves izskatās:

image

Stāvs 1

Kā jūs varat redzēt, Bija, izmantojot 1.13.0 brīdī, kad es uzrakstīju šo blog post. Neaizmirstiet lejupielādēt un pievienot CSS failu.

Kas no tā, kā, Nākamais solis ir izveidot sava veida testa siksnas un references Qunit biti.  Es esmu testēšanas funkcijas ķekars skripta fails, ko sauc par "QuizUtil.js", tāpēc es radīju HTML lapas, ko sauc par "QuizUtil_test.html", kā parādīts:

image Stāvs 2

Šeit ir kods:

<!DOCTYPE HTML>
<HTML xmlns= "http://www.w3.org/ 1999/xhtml">
<galvu>
    <nosaukums>QuizUtil tests ar Qunit</nosaukums>
    <saite rel= "izvēršamā stila lapu" href="../CSS/qunit-1.13.0.CSS" />
    <skriptu tips= text/javascript"" src="QuizUtil.js" datu segums></skriptu>
    <skripta tips ="text/javascript" src ="qunit-1.13.0.js"></skriptu>
    <skripta tips ="text/javascript" src ="blanket.min.js"></skriptu>

    <skriptu>
        modulis("getIDFromLookup");
        tests("QuizUtil getIDFromLookupField", funkcija () {
            var goodValue = "% 1;#Paul Galvin";

            vienāds(getIDFromLookupField(goodValue) + 1, 2), "ID [" + goodValue + "] + 1 vajadzētu būt 2";
            vienāds(getIDFromLookupField(nedefinēta), nedefinēta, "Undefined ievades argumentu vajadzētu atgriezties nenoteikts rezultāts.");
            vienāds(getIDFromLookupField(""), nedefinēta, "Nedefinēts vērtību vajadzētu atgriezties tukšu ievades arguments.");
            vienāds(getIDFromLookupField("gobbledigood3-thq;dkvn ada;skfja sdjfbvubvqrubqer0873407t534piutheqw;VN"), nedefinēta,"Vienmēr jāatgriežas kabriolets rezultātu līdz veselam skaitlim");
            vienāds(getIDFromLookupField("% 2;#kāda cita persona"), "% 2", "Pārbaudot [2;#kāda cita persona].");
            vienāds(getIDFromLookupField("9834524;#Long vērtība"), "9834524", "Lielu vērtību tests.");
            notEqual(getIDFromLookupField("5;#ikviens", 6), 6, "Testēšana notEqual (5 nav vienāds ar 6 šajā izlasē: [5;#ikviens]");

        });

        modulis("htmlEscape");
        tests("QuizUtil htmlEscape()", funkcija () {
            vienāds(htmlEscape("<"), "&lt;", "Bēg mazāk nekā operators ('<')");
            vienāds(htmlEscape("<div class =  "someclass">Nedaudz teksta</DIV>"), "&lt;div class =&quot;someclass&quot;&gt;Nedaudz teksta&lt;/DIV&gt;", "Vairāk sarežģītu testu virkne.");
        });

        modulis("getDateAsCaml");
        tests("QuizUtil getDateAsCaml()", funkcija () {
            vienāds(getDateAsCaml(jaunā Datums("12 31 2013")), "2013-12-31T:00:00:00", "Grūti kodētu datuma pārbaude: [12/31/2013]");
            vienāds(getDateAsCaml(jaunā Datums("01/05/2014")), "2014-01-05T:00:00:00", "Grūti kodētu datuma pārbaude: [01/05/2014]");
            vienāds(getDateAsCaml(jaunā Datums("01/31/2014")), "2014-01-31T:00:00:00", "Grūti kodētu datuma pārbaude: [01/31/2014]");
            vienāds(getTodayAsCaml(), getDateAsCaml(jaunā Datums()), "getTodayAsCaml() jābūt vienādai getDateAsCaml(jaunais datums())");
            vienāds(getDateAsCaml("muļķības vērtība"), nedefinēta, "Centieties iegūt muļķības vērtība datuma.");
            vienāds(getDateAsCaml(nedefinēta), nedefinēta, "Centieties iegūt dienas [nedefinēta] datumu.");
        });

        modulis("getParameterByName");
        tests("QuizUtil getParameterByName (no vaicājuma virknes)", funkcija () {
            vienāds(getParameterByName(nedefinēta), nedefinēta, "Centieties iegūt nenoteiktu parametru vajadzētu atgriezties Nedefinēts.");
            vienāds(getParameterByName("nepastāv"), nedefinēta, "Mēģināt iegūt parametra vērtība, kad mēs zinām, ka parametrs vairs nepastāv.");

        });

        modulis("Sīkfaili");
        tests("QuizUtil sīkfailu dažādas funkcijas.", funkcija () {
            vienāds(setCookie("test", "% 1", -1), getCookieValue("test"), "Get sīkfails, es noteikti būtu jāstrādā.");
            vienāds(setCookie("anycookie", "% 1", -1), patiess, "Nosakot spēkā vārīšanas vajadzētu atgriezties"taisnība".");
            vienāds(setCookie("traks cookie nosaukums !@#$%"%\^&*(()?/><.,", "% 1", -1), patiess, "Nosakot sliktu sīkfaila nosaukumu vajadzētu atgriezties 'false'.");
            vienāds(setCookie(nedefinēta, "% 1", -1), nedefinēta, "Iet nedefinētu nosaukums sīkdatne.");
            vienāds(getCookieValue("nepastāv"), "", "Sīkdatne neeksistē tests.");
        });

    </skriptu>
</galvu>
<organizācija>
    <DIV ID= "qunit"></DIV>
    <DIV ID= "qunit armatūra"></DIV>

</organizācija>
</HTML>

Ir vairākas lietas, kas te notiek:

  1. Apskatot manu kodu (QuizUtil.js)
  2. Atsauces Qunity.js
  3. Definējot dažiem moduļiem (getIDFromLookup, Sīkfaili, un citi)
  4. Ievietojot <DIV> kura ID ir "qunit".

Pēc tam, Es vienkārši velciet šo lapu uz augšu, un jums kaut kas līdzīgs šim:

image

Stāvs 3

Ja paskatās pāri augšpusei, jums ir dažas iespējas, no kuriem divi ir interesanti:

  • Paslēpt izturējis testus: Diezgan skaidrs.  Var palīdzēt jūsu acu tikai redzēt problemātiskās jomas un nav daudz traucējumu.
  • Modulis: (nolaižamais saraksts): Tas filtrēs testus uz leju, lai tikai tām grupām, testi, ko vēlaties.

Attiecībā uz testiem, sevi-daži komentāri:

  • Pats par sevi saprotams, ka jums rakstīt kodu, tāda, ka pirmām kārtām ir testable.  Izmantojot rīku var palīdzēt īstenot šo disciplīnu. Piemēram, Man bija funkciju sauc "getTodayAsCaml()”.  Tas nav ļoti testable, jo tas aizņem ievades arguments un pārbaudītu to līdztiesības, mums būtu nepieciešams pastāvīgi atjaunināt testa kodu, lai parādītu pašreizējo datumu.  Es to refactored pievienošanu datiem ievades parametrs, pēc tam iet, kad es gribu, lai šodienas datumu formātā CAML pašreizējo datumu.
  • Qunit ietvaros dokumentus saviem testiem un šķiet diezgan stabila.  To var darīt vienkāršas lietas, piemēram, pārbaudes par vienlīdzību un ir arī atbalsts stilā ajax zvanus ("īstu" vai izsmēja, izmantojot savu iecienītāko smējējs).
  • Iet cauri procesam arī liek domāt ar malu gadījumos – kas notiek ar "Nedefinēts" vai null tiek nodota funkcijai.  Tas padara miris vienkārši pārbaudīt ārā šos scenārijus.  Labs stuff.

Ar Blanket.js segumu

Blanket.js papildina Qunit, izsekojot faktisko koda rindiņas, kas darbojas jūsu pārbaudes gaitā izpildīt.  Tā integrē tiesības Qunit tik pat, ja tas ir pilnīgi atsevišķs app, tas spēlē labi – tiešām izskatās, ka tas ir viens bezšuvju app.

Tas ir blanket.js darbībā:

image Stāvs 4

image

Stāvs 5

(Jūs faktiski ir noklikšķiniet uz "Aktivizēt segums" rūtiņas augšpusē [sk. 3] lai iespējotu šo.)

Iezīmētās līnijas attēlā 5 nav izpildīts jebkurš no maniem testiem, tāpēc man ir nepieciešams izstrādāt testa, kas izraisa to izpildīt, ja es gribu pilnu pārklājumu.

Iegūt blanket.js darbu, rīkojieties šādi:

  1. Lejupielādējiet to no http://blanketjs.org/.
  2. Pievienot savam projektam
  3. Atjaunināt jūsu iejūgs testa lappuse (QuizUtil_test.html manā gadījumā) šādi:
    1. Atsauces kods
    2. Izrotāt jūsu <skriptu> atsauci, piemēram, tas:
    <skriptu tips= text/javascript"" src="QuizUtil.js" datu segums></skriptu>

Blanket.js paceļ "datu segums" atribūts un paveic savu brīnumu.  To āķi vērā Qunit, atjaunina UI pievienot "Enable segums" variants un voila!

Kopsavilkums (TL; DR)

Lietojiet Qunit, lai rakstītu pārbaudes lietas.

  • To lejupielādēt
  • Pievienot savam projektam
  • Rakstīt testa siksnas lappusi
  • Izveidojiet savu testu
    • Daži no jūsu kodam jābūt testable refactor
    • Esiet radošs!  Domāju, ka crazy, neiespējami scenārijus un testa viņiem vienalga.

Izmantojiet blanket.js lai nodrošinātu pārklājumu

  • Pārliecinieties, vai darbojas Qunit
  • Blanket.js lejupielādēt un pievienot to savam projektam
  • To pievienotu jūsu iejūgs testa lappuse:
    • Pievienot atsauci uz blanket.js
    • "Datu segums" atribūtu, lai pievienotu jūsu <skriptu> tagu
  • Darboties, Qunit pārbaudes.

Es nekad nebija jebkura šāda pirms un bija daži rudimentārs stuff darbojas nedaudzas stundas. 

Laimīgs testēšana!

</beigās>

undefinedAbonēt manu blogu.

Sekot mani uz čivināt pie http://www.twitter.com/pagalvin

BPOS 2010 un "Superset”

Es biju rīdinga vienu no šīs diezgan vispārīgs blah līdzīgie raksti par BPOS (Microsoft exchange un SharePoint Cloud) un par laimi brida cauri līdz galam:

Attiecībā uz citiem tuvākajā Nodevumi, Korporācija Microsoft ir apņemoties sniegt BPOS v.Next dzimtā PowerShell skriptu izmantojot PowerShell galapunkta būvēt uz PowerShell versija 2. Autentifikācijas tiks veikta, izmantojot tiešsaistes ID, ar vienotu akreditācijas spēja izmantot gan PowerShell un portālu.Keane atbalsojās ziņojumu citiem Microsoft execs ir bijis paudīs par Tech · Ed šonedēļ: Mākonis iespējas, laika gaitā, tiks  kļūt paplašināts variants, kas ir pieejama par telpām. Pašlaik, tieši pretēja ir taisnība, un Microsoft tiešsaistes pakalpojumi piedāvā funkcijas, kas pieejamas programmatūras ekvivalenti katra produkta apakškopu.

Ka mākoņu sniegs lielāku jaudu nekā par priekšnoteikumu jēdziens ir jauns, lai mani. Nez, cik patiesi tas būs galu galā.  Šķiet pretintuitīvi man.  Es pilnīgi saprotu, ka daudzi uzņēmumi pārvietosies stuff mākonis ideja (vai uzsākot mākonis) bet parasti domāju, ka viņi to dara, jo pro (vieglāk admin, SLA, uc) atsver mīnusus (samazinātas funkcionalitātes). 

Man ir mazliet grūti ticēt, ka mākonis piedāvājumiem pārsniegs prem par iespējām.  Multi-īrnieks ir grūti, un šķiet, ka tā ir spiesta kompromisus, lai nodrošinātu labu SLA un lietošanas ērtumu...

Es droši vien ēd manus vārdus par šo.  Es atceros domāšana, ka neviens īstenībā vajadzēja vairāk nekā 650 MB datu un tādēļ, CD nekad gatavojas būt uzlaboju.

</beigās>

Abonēt manu blogu.

Sekot mani uz čivināt pie http://www.twitter.com/pagalvin

SharePoint tiešsaistē un InfoPath

Var būt pēdējais personai realizēt šo, bet SharePoint Online (kas es bieži dzirdu cilvēkus teikt ir pagodinājis WSS) InfoPath Forms Services atbalsta.  Tas ir diezgan spēcīgs stuff, it īpaši ņemot vērā, ka IP FS ir MOSS Enterprise līdzekli un BPOS ir kaut kas līdzīgs 1,99 $mēnesī 10,000 lietotājiem.  Varbūt tas ir nedaudz vairāk nekā.

Tik, SharePoint Online ignorē viegli definīcija.  Tas ir šo uzņēmumu funkciju, bet nekādu anonīmo piekļuvi (kuru pat WSS atbalsta).  Jūs varat darīt, daži interesanti sīkumi ar meklēšanas (MOSS-ish, kopš tā laika var definēt vietnes līmeņa tvērumu), bet, ja jums nepieciešama piekļuve SSP, jūs nevarat to darīt.  You can play the “on the one hand and on the other” game all night long with this product 🙂

Microsoft ir paredzēts izlaist jaunu pakalpojuma versiju SP Online tuvāko mēnešu laikā.  Nez, kādi dīvaini hibrīds tas turpinās būt?

</beigās>

Abonēt manu blogu.

Sekot mani uz čivināt pie http://www.twitter.com/pagalvin