Kategoria: Archiwum: Usługi SharePoint Online

Zły ekscytujące ogłoszenie

Ogłoszenia nie jest naprawdę moja sprawa, ale tym razem, Jestem naprawdę i naprawdę podekscytowani stronie Slalom Big Apple SharePoint tylko uruchomiony. 

Praca w slalomie doradztwo i zarządzanie portalami & Praktyki współpracy.  Witryna Big Apple jest "mój" dla mojej praktyce tutaj w Nowym Jorku.  Już dawno chciałem jednego z tych. Jestem pewien, że wielu SP pro pragnął mieć coś podobnego.  Ile razy mamy spojrzał na publicznej stronie naszej własnej firmy, lub jeden z klientów i ich widziałem, to się i tak, znając budowę i chcą, że będzie budować to na SP?  Wszyscy wiemy, że SP jest bardzo dobry w tego typu rzeczy, ale nie jest to bardzo często. 

Również, światy wreszcie dostosowane właśnie dla mnie – SP Online jest naprawdę tani, Miał prawo zespołu i wystarczająco dużo czasu, aby rzeczywiście zrobić to.

To było niesamowitą podróż aby dostać się do uruchomienia i i trochę tego jest tam na miejscu.

Przeczytaj o tym tutaj i jeśli jesteś zainteresowany szczegółami za to, Jestem bardziej niż szczęśliwy porozmawiać o to.

Tutaj jest link oficjalne ogłoszenie: http://www.bigapplesharepoint.com/pages/View-An-Insight.aspx?BlogID=82 #O365

</koniec>

Jak: Konfigurowanie zakresu badań i testów jednostkowych z QUnit.js i Blanket.js dla biura 365 Aplikacji SharePoint

Intro

Już badają jednostki badań i sprawdzić zasięg JavaScript jak działa na nowych aplikacji SharePoint dla programu SharePoint online w biurze 365 Apartament.  Ścieżki oczywiste badań doprowadziły mnie do Qunit.js i zaraz po tym, do Blanket.js.

QUnit pozwól mi się testy jednostkowe i zgrupuj je do modułów.  Moduł jest tylko prostym sposobem organizowania związanych z testów. (Nie jestem pewien, że używam go zgodnie z przeznaczeniem, ale to działa dla mnie do tej pory z małych zestaw testów, które do tej pory zostały zdefiniowane).

Blanket.js integruje się z Qunit i pokaże mi rzeczywistej linii JavaScript, które były- i co ważniejsze – nie zostały rzeczywiście wykonane podczas uruchamiania testów.  To jest "zasięgu"-linie, które wykonywane są objęte badanie, podczas gdy inni nie są.

Tworzenie dobrych testów i oglądania zasięgu, możemy zmniejszyć ryzyko, że nasz kod ma ukryte wady.  Dobre czasy.

Qunit

Zakładając, że Visual Studio projektu ustawić, Zacznij Pobieranie pakietu z JavaScript http://qunitjs.com.  Dodaj odpowiednie CSS i JavaScript do rozwiązania.  Kopalnia wygląda jak ten:

image

Rysunek 1

Jak widać, Był przy pomocy 1.13.0 w tym czasie napisałem ten post blog. Nie zapomnij, aby pobrać i dodać plik CSS.

Że z drogi, następnym krokiem jest stworzenie pewnego rodzaju badania przewodów i odwołać Qunit bitów.  Jestem testowania kilka funkcji w pliku skryptu o nazwie "QuizUtil.js", więc stworzyłem stronę HTML o nazwie "QuizUtil_test.html", jak pokazano:

image Rysunek 2

Oto kod:

<!DOCTYPE HTML>
<HTML xmlns= "http://www.w3.org/ 1999/xhtml">
<głowa>
    <Tytuł>QuizUtil test z Qunit</Tytuł>
    <link rel= "arkusz stylów" href="../CSS/qunit-1.13.0.css" />
    <skrypt Typ= text/javascript"" src="QuizUtil.js" danych okładka></skrypt>
    <skrypt typ ="text/javascript" src ="qunit-1.13.0.js"></skrypt>
    <skrypt typ ="text/javascript" src ="blanket.min.js"></skrypt>

    <skrypt>
        moduł("getIDFromLookup");
        badania("QuizUtil getIDFromLookupField", Funkcja () {
            var goodValue = "1;#Paul Galvin";

            równe(getIDFromLookupField(goodValue) + 1, 2), "Identyfikator [" + goodValue + "] + 1 powinno być 2";
            równe(getIDFromLookupField(niezdefiniowana), niezdefiniowana, "Niezdefiniowany argumentów wejściowych powinien zwracać wynik niezdefiniowany.");
            równe(getIDFromLookupField(""), niezdefiniowana, "Pustych argumentów wejściowych powinien zwracać wartość undefined.");
            równe(getIDFromLookupField("gobbledigood3-thq;dkvn ada;skfja sdjfbvubvqrubqer0873407t534piutheqw;vn"), niezdefiniowana,"Należy zawsze zwraca wynik kabriolet całkowitą");
            równe(getIDFromLookupField("2;#Niektóre inne osoby"), "2", "Sprawdzanie [2;#Niektóre inne osoby].");
            równe(getIDFromLookupField("9834524;#długa wartość"), "9834524", "Dużą wartość badania.");
            notEqual(getIDFromLookupField("5;#ktoś", 6), 6, "Badania notEqual (5 nie jest równa 6 Ten przykładowy: [5;#ktoś]");

        });

        moduł("htmlEscape");
        badania("QuizUtil htmlEscape()", Funkcja () {
            równe(htmlEscape("<"), "&lt;", "Ucieczki mniej niż operator ('<')");
            równe(htmlEscape("<DIV class =  "someclass">Jakiś tekst</DIV>"), "&lt;DIV class =&quot;someclass&quot;&gt;Jakiś tekst&lt;/DIV&gt;", "Bardziej złożonych testów ciąg.");
        });

        moduł("getDateAsCaml");
        badania("QuizUtil getDateAsCaml()", Funkcja () {
            równe(getDateAsCaml(Nowy Data("12/31/2013")), "2013-12-31T:00:00:00", "Zakodowanego Data badania: [12/31/2013]");
            równe(getDateAsCaml(Nowy Data("01/05/2014")), "2014-01-05T:00:00:00", "Zakodowanego Data badania: [01/05/2014]");
            równe(getDateAsCaml(Nowy Data("01/31/2014")), "2014-01-31T:00:00:00", "Zakodowanego Data badania: [01/31/2014]");
            równe(getTodayAsCaml(), getDateAsCaml(Nowy Data()), "getTodayAsCaml() powinna być równa getDateAsCaml(nowy termin())");
            równe(getDateAsCaml("wartość bzdury"), niezdefiniowana, "Postarać się daty wartość bzdury.");
            równe(getDateAsCaml(niezdefiniowana), niezdefiniowana, "Staramy się od dnia [niezdefiniowana] Data.");
        });

        moduł("getParameterByName");
        badania("QuizUtil getParameterByName (ciąg kwerendy)", Funkcja () {
            równe(getParameterByName(niezdefiniowana), niezdefiniowana, "Staramy się niezdefiniowanych parametrów należy powrót niezdefiniowany.");
            równe(getParameterByName("nie istnieje"), niezdefiniowana, "Postarać się wartość parametru, gdy wiemy, że parametr nie istnieje.");

        });

        moduł("Ciasteczka");
        badania("QuizUtil różne funkcje plików cookie.", Funkcja () {
            równe(setCookie("badanie", "1", -1), getCookieValue("badanie"), "Pobierz plik cookie, ustawiłem powinno działać.");
            równe(setCookie("anycookie", "1", -1), PRAWDA, "Ustawienie prawidłowe gotowanie powinno zwraca 'true'.");
            równe(setCookie('Nazwa ciasteczka szalony !@#$%"%\^&*(()?/><.,", "1", -1), PRAWDA, "Ustawienia nazwy zły cookie należy zwrócić 'false'.");
            równe(setCookie(niezdefiniowana, "1", -1), niezdefiniowana, "Przekazywanie niezdefiniowane jako Nazwa ciasteczka.");
            równe(getCookieValue("nie istnieje"), "", "Cookie nie istnieją badania.");
        });

    </skrypt>
</głowa>
<organ>
    <DIV Identyfikator= "qunit"></DIV>
    <DIV Identyfikator= "qunit uchwyt"></DIV>

</organ>
</HTML>

Tu są osobisty rzeczy dzieje się tutaj:

  1. Odwoływanie się do mojego kodu (QuizUtil.js)
  2. Odwoływanie się do Qunity.js
  3. Określanie niektórych modułów (getIDFromLookup, Ciasteczka, i inni)
  4. Wprowadzenie do <DIV> których identyfikator jest "qunit".

Następnie, Tylko podciągnąć tej strony i masz cos takiego:

image

Rysunek 3

Jeśli spojrzeć na górze, masz kilka możliwości, dwa z nich są ciekawe:

  • Ukryj przeszedł testy: Dość oczywiste.  Pomoże Ci się w oczy po prostu zobacz obszary problemowe i nie dużo bałaganu.
  • Moduł: (spadek w dół): Będzie to filtr testy do tylko tych grup testów, które chcesz.

Co do testów, siebie-kilka uwag:

  • Jest rzeczą oczywistą, że należy napisać kod, tak, że jest to sprawdzalne w pierwszej kolejności.  Za pomocą narzędzia mogą pomóc egzekwowania tej dyscypliny. Na przykład, Miał funkcję o nazwie "getTodayAsCaml()”.  To nie jest bardzo testować, ponieważ zajmuje żadnego argumentu wejściowego i przetestować go na rzecz równości, musimy stale aktualizować kod testu w celu odzwierciedlenia bieżącej daty.  Mi przepisano go przez dodanie danych parametru wejściowego, a następnie przekazywanie bieżącej daty, kiedy chcę daty w formacie CAML.
  • Ramach Qunit dokumenty własne testy i wydaje się dość solidne.  To można zrobić proste rzeczy, jak badania na rzecz równości i posiada również wsparcie dla połączenia stylu ajax (zarówno "prawdziwe" lub wyśmiewali, przy pomocy twój ulubieniec mocker).
  • Przechodzi proces również zmusza do myślenia poprzez krawędzi przypadkach – co się dzieje z "nieokreślone" lub wartość null jest przekazywana do funkcja.  To sprawia, że martwe proste do testowania tych scenariuszy się.  Dobre rzeczy.

Relacje z Blanket.js

Blanket.js uzupełnia Qunit przez śledzenie rzeczywistej linii kodu, które są wykonać w trakcie prowadzenia testów.  Integruje prawo do Qunit więc choć to zupełnie oddzielny aplikacja, ładnie gra – to naprawdę wygląda to jeden app bez szwu.

To jest blanket.js w akcji:

image Rysunek 4

image

Rysunek 5

(Rzeczywiście trzeba kliknąć na pole "Włącz zasięgu" u góry [patrz rysunek 3] Aby to umożliwić.)

Wyróżnione wiersze na rysunku 5 nie zostały wykonane przez jednego z moich testów, więc trzeba opracować test, który powoduje je wykonać, jeśli chcę pełne pokrycie.

Dostać blanket.js pracy przez następujące kroki:

  1. Pobierz za darmo z http://blanketjs.org/.
  2. Dodaj to do swojego projektu
  3. Aktualizacja strony wykorzystać badania (QuizUtil_test.html w moim przypadku) w następujący sposób:
    1. Kod referencyjny
    2. Udekoruj swój <skrypt> odwołanie takiego:
    <skrypt Typ= text/javascript"" src="QuizUtil.js" danych okładka></skrypt>

Blanket.js wybiera się atrybut "dane okładka" i ma swoją magię.  Haki do Qunit, aktualizacje interfejsu dodać opcję "Włącz zasięgu" i voila!

Podsumowanie (TL; DR)

Użyj Qunit do napisania swojej sprawy.

  • Pobierz za darmo to
  • Dodaj to do swojego projektu
  • Napisz stronę testową uprząż
  • Tworzenie testów
    • Refaktoringu część kodu należy testować
    • Bądź kreatywny!  Myślę, że Crazy, możliwe scenariusze i tak je przetestować.

Użyj blanket.js do zapewnienia pokrycia

  • Upewnij się, że działa Qunit
  • Pobierz za darmo blanket.js i dodać go do projektu
  • Dodać go do uprzęży Strona testowa:
    • Dodaj odwołanie do blanket.js
    • Dodaj atrybut "dane okładka" do swojej <skrypt> Tag
  • Uruchomienia testów Qunit.

Nigdy nie zrobił to przed i miał pewne elementarne rzeczy działa w kilka godzin. 

Szczęśliwy badania!

</koniec>

undefinedSubskrybowanie mój blog.

Follow me on Twitter wiek na http://www.twitter.com/pagalvin

BPOS 2010 i "nadzbiorem”

To był jeden z czytania Artykuły te dość ogólny bla jak na BPOS (Microsoft exchange i SharePoint w chmurze) i na szczęście waded przez do końca:

Jeśli chodzi o inne elementy najbliższej przyszłości, Microsoft jest zatwierdzanie w BPOS następnej rodzimych PowerShell skryptów za pomocą PowerShell końcowy budować wersja PowerShell 2. Uwierzytelnianie będzie odbywać się poprzez identyfikatorów Online, z jednego poświadczeń jest w stanie służyć zarówno PowerShell, jak i portalu.Keane echem wiadomości innych Microsoft kierownictwem zostały wyrażania na TechEd w tym tygodniu: Chmura możliwości, z biegiem czasu, będzie  Zostań podzbiorem co jest dostępne na terenie. Obecnie, Teza przeciwna jest prawdziwa, i usługi Online firmy Microsoft oferują podzbiór funkcji dostępnych w równowartości oprogramowania każdego produktu.

Przekonanie, że cloud dostarczy więcej możliwości niż na założenie jest nowy do mnie. Zastanawiam się, jak prawdziwe, będzie się w końcu.  Czuje się sprzeczne z intuicją do mnie.  I całkowicie się pomysł, że wiele firm będzie przenieść rzeczy do chmury (lub rozpocząć w chmurze) ale normalnie myśleć, robią to, bo pro (łatwiej admin, SLA, itp) znacznie przewyższają wady (zredukowany działalno ć). 

Mam trochę trudno uwierzyć, że chmura ofert przekroczy możliwości na prem.  Wielu najemców jest trudne i wydaje się, że to należy wymusić kompromisów w celu zapewnienia dobrej SLA i łatwość użycia...

Ja prawdopodobnie jedzenie moje słowa na ten temat.  Pamiętam, myśląc, że nikt nie może potrzebować więcej niż 650 MB danych i w związku z tym, CD nigdy nie miał być poprawione.

</koniec>

Subskrybowanie mój blog.

Follow me on Twitter wiek na http://www.twitter.com/pagalvin

Usługi SharePoint Online i Microsoft Office InfoPath

Może być ostatnią osobą, aby sobie z tego sprawy, ale usługi SharePoint Online (Często słyszę, ludzie mówią, jest uwielbiony WSS) obsługuje usługi formularzy programu InfoPath.  To bardzo potężne rzeczy, zwłaszcza biorąc pod uwagę że IP FS jest cechą MOSS Enterprise i BPOS jest coś takiego jak 1,99 dolarów miesięcznie dla 10,000 użytkowników.  Może to trochę więcej niż.

Tak, Usługi SharePoint Online wymyka się łatwe definicji.  Ma ta funkcja przedsiębiorstwa, ale nie ma dostępu anonimowego (które nawet WSS obsługuje).  Można zrobić kilka ciekawych rzeczy z wyszukiwania (MOSS-ish, ponieważ można zdefiniować zakresy poziom witryny), ale jeśli potrzebujesz dostępu do SSP, nie możesz zrobić.  You can play the “on the one hand and on the other” game all night long with this product 🙂

Microsoft ma do wydania nowej wersji online SP w ciągu najbliższych kilku miesięcy.  Zastanawiam się, co dziwne hybrydy to będzie się?

</koniec>

Subskrybowanie mój blog.

Follow me on Twitter wiek na http://www.twitter.com/pagalvin