人々 検索範囲として指定するには、方法 / SharePoint を使用してコンテンツ ソース 2013 REST API

SharePoint を使用する理由を持っていた 2013 最初の時間の残りの部分を介して検索 API. 人を検索したいです。, ドキュメントではなく. ここでは学習キーをその GUID でコンテンツ ソースを指定します (またはこの場合少なくとも). 次の jQuery のスニペットに示す方法:

    loadExpertsAsync: 関数() {

        jQuery.support.cors = true;

        $.ajax({
            url: この.CreateFullApiUrl() +
                "?querytext = 'ポータル'&sourceid ='b09a7990-05ea-4af9-81ef-edfab16c4e31'" +
                "&selectproperties ='LinkedInProfileUrl,GoogleCirclesProfileUrl,BALargeProfilePictureUrls,BAGridPictures,WorkEmail,スキル,自己紹介,利益,氏名,PastProjects,PictureURL,PreferredName,TwitterHandle,LinkedInProfileUrl,PreferredName,GoogleCirclesProfileUrl'" +
                "&rowlimit = 99",
            メソッド: "取得",
            ヘッダー: { "受け入れる": "アプリケーション/json; odata = 詳細" },
            キャッシュ: false,
            成功: 関数 (結果) {

私の場合, 私は実行している API は、SharePoint に対するオンライン. GUID を取得するには, これらの手順:

  1. SharePoint 管理センターにアクセスします。
  2. 左側のナビゲーションから「検索」を選択します。
  3. 「結果ソースの管理」を選択します。
  4. 「地元の人々 の結果」を選択します。
  5. URL を見てください。.

私の URL のようなものに見えた:

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

Sourceid パラメーターが私の仕事.

(Sourceid 実際に可能性があります SP と永続的なもののようなものを理解します。, しかし、私はいつもとにかくチェックします🙂 ).

</終了>

undefined私のブログを購読します。.

私は Twitter の上に従ってください。 http://www.twitter.com/pagalvin

SharePoint 残り呼び出しの例

私の仕事もあなたを助けるかもしれないサンプル残り通話のセットを示します。. の 02/2014, 2つの例があります🙂

  1. その名前にスペースを含む列を参照します。
  2. 複数選択の列を参照します。
  3. 残りの部分を介して、人の検索を実行します。

 

私はこの時が経つにつれて追加します.

ここではいくつか便利なインキも見つけた:

その名前にスペースを含む列を参照します。

「ブログ作成者」という名前の列を持つカスタム リストを作成します。 (ブログと著者間のスペース).

その列を参照する $select です。:

image

単にスペースを「_x0020 _」に置き換える. 我々 は、インターネット全体の多くの例では _x0020 _ を参照してください、残りの部分は異なって.

そうしない場合, あなたはこのようなエラー メッセージを取得する責任を負う:

式 “ブログの著者” 無効です。.

簡単に十分な.

複数選択の参照列を参照します。

を設定します。:

  1. カテゴリという名前のカスタム リストを作成します。.
  2. いくつかのカテゴリを追加します。. Thusly カテゴリを追加:image
  3. MockBlog と呼ばれる別のカスタム リストを作成して、複数選択リストの列としてカテゴリを追加 (サイト列は、どのようにロールバックの場合または).

Mockblog リストにいくつかの項目を追加し、準備ができています。.

JQuery を使用して Ajax スタイルの呼び出しこのようなものになります。:

serverUrl   = "/_api、web、リスト、GetByTitle(' MockBlog')/項目" +
             "?$選択 = タイトル,カテゴリー/タイトル,Blog_x0020_Author/タイトル" + 
             "&$拡大 = Blog_x0020_Author,カテゴリ";

我々 は"私を与えるタイトルすべてのカテゴリに SharePoint を言っています。 (カテゴリー/タイトル). 実際の値を取得します。 タイトル 投稿 $展開ing カテゴリ リスト" (ゆっくり私言い換えがおそらくかなり緩んでいます。, これがどのようにそれを解釈するよ).

Fiddler を使用して、出力を見てくださいする JavaScript を介してこれをやっている場合, このような何かを取得します。:

 

image

(上記は、JSON オブジェクトです。)

残りの部分を介して、人の検索を実行します。

私はこれについてのブログ別に. キーは、sourceid 値がパラメーターを地元の人々 のコンテンツ ソースの GUID を指定するのには. (コンテンツ ソース使用のスコープと呼ばれる、それはすべて私のためのスコープと呼ぶ私-ああ-私は難しいないです。!).

続きを読むここで: http://www.mstechblogs.com/paul/?p=10385

 

</終了>

undefined私のブログを購読します。.

私は Twitter の上に従ってください。 http://www.twitter.com/pagalvin

迅速で簡単な: 残りの部分を使用して SharePoint サイトを作成します。

多くのリソースを示すの周りは、これを行う方法です。, 包括的な移動するリンクを見つけることができなかった, ので、ここで我々 は.

REST API を使用して SharePoint サイトを作成することができます。  ここでは完全に焼かれた例です。:

<!--
    SiteRequestForm.html: 情報を収集し、ユーザーのサイトを作成します。.
-->

<センター>
<テーブル>
    <tr>
        <td>サイト名:</td>
        <td><入力 タイプ"テキストを =" 名前"SiteName =" id"SiteName =" /></td>
    </tr>
    <tr>
        <td colspan="2">
            <入力 タイプ="を提出" id"CreateSiteButton =" ="サイトの作成" />
        </td>
    </tr>
</テーブル>
</センター>

<スクリプト src="../Plugins/jquery-1.11.0.min.js"></スクリプト>

<スクリプト>
var CreateSiteLogicContainer = {

    createSiteData: {
            パラメーター」": {
                _metadata: { "の種類": "。WebInfoCreationInformation" },
                Url: "Paultest1",
                タイトル: "Paultest1",
                説明: "残りの部分作成 web ポール!",
                言語: 1033,
                WebTemplate: "sts",
                UseUniquePermissions: false
            }
    },

    createSite: 関数 () {

        jQuery.support.cors = true;

        CreateSiteLogicContainer.createSiteData.parameters.Url = $("#SiteName").ヴァル();
        
        $.ajax({
            url: "https://bigapplesharepoint.sharepoint.com/NBAIADev/_api/web/webinfos/add",
            メソッド: "ポスト",

            ヘッダー: {
                "を受け入れる": 「アプリケーション/json; odata = 詳細",
                "コンテンツの種類": 「アプリケーション/json;odata = 詳細",
                「X RequestDigest": $(「# __REQUESTDIGEST").ヴァル()
            },

            データ: ために JSON.stringify(CreateSiteLogicContainer.createSiteData),

            成功: 関数 () { アラート("成功"); },
            エラー: 関数 () { アラート("エラー"); }

        });
    },

    wireUpForm: 関数 () {
        $("#CreateSiteButton").クリック(関数 () {
            アラート(「約をしようサイトを作成します。");
            CreateSiteLogicContainer.createSite();
        });
    }


}

CreateSiteLogicContainer.wireUpForm();

</スクリプト>

成功した場合, このような応答の JSON のパケットを取得します。:

image

キーの思いをこのから学んだこと:

  • このアプローチは、jQuery を使用します。  私の場合, 私の jQuery のライブラリがある"./プラグイン」。  お気に入りの JQ 場所を指すを変更したいと思う.
  • コピーして、ページ上のコンテンツ エディター Web パーツにその全体のスニペットを貼り付けるし、うまく動作するはずです。  API 呼び出しの終了点を変更し、JQ を正しく参照するかどうかを確認したくなります。.
  • この URL は、API エンドポイント基準です。  私の場合, それはの下にサブサイトを作成します。 https://bigapplesharepoint.com
  • コンテンツの長さを提供する必要はありません。. いくつかのブログの記事や MSDN ドキュメントはあなたが行うことを意味します, しかし私のために自動的に起こった, 私と仮定 $$.ajax 呼び出し自体によって処理されています。.
  • この行が「禁止」の応答を避けるために必要です。: 「X RequestDigest": $(「# __REQUESTDIGEST").ヴァル().  それを行う他の方法があります。, しかし、これはかなりいいです。  このショートカットを提供するブログへのリンクを失いました。  あなたに H/T, 神秘的なブロガー!

幸運は、この誰かを役に立てば幸い.

</終了>

undefined私のブログを購読します。.

私は Twitter の上に従ってください。 http://www.twitter.com/pagalvin

SharePoint クイック起動の相対 Url で厄介な問題を克服します。

サイド リンク バー ナビゲーション、他の日へのリンクを追加したいし、私に言った SharePoint:

image

純粋なテキストのバージョンがあります。:

URL が有効で、有効な文字のいずれかで始まることを確認します (番号記号 (#) またはフォワード スラッシュ (/)) または、有効なプロトコルのサポート (たとえば, ' http://’, ' https://’, ' ファイル://’, ' ftp://’, ' mailto:’, ' ニュース:’).

"オエッと pox!"私は言った.

Java スクリプトの設定を使用してクイック起動で知られているリンクを見つけるし、その動作をオーバーライドするこの回避策は.

これをテストするには, thusly、テスト サイトに新しいリンクを追加します。:

image

JQuery を使用されます。. それを解決するには, いくつかの JavaScript と jQuery のお好きな技法を使用してページ上に、このようなコードの行を取得します。:

 

$(ドキュメント).準備ができて( 関数 () {

    $("は:含まれています(' URL 置換をテスト ')").クリック(関数 () { アラート("変更されたクリック動作!"); 戻り値 false;});

});

ボブのあなたの叔父さんと.

JQuery セレクターを検索すべて <は> 「テスト URL 置換」は、その名前タグ. 検索を調整することによってあなたのリンクとこのようなします可能性があります。.

] をクリックして(関数() ユーザーがクリックしたときに、SharePoint が行っている何よりも優先されます。. 「False を返す」または他のそれはあなたのものを行うしようとして href こともを確認してください。, これはほぼ確実にあなたの目標.

これは、SharePoint のオンライン環境でテストする必要がありますがうまく動作 2010 以前のバージョンでも.

</終了>

undefined私のブログを購読します。.

私は Twitter の上に従ってください。 http://www.twitter.com/pagalvin

迅速かつ簡単な: SharePoint 残りの呼び出しのみを返します 100 レコード

私は私の SharePoint の練習ここでの公共直面している web サイトに取り組んでいます。 ニューヨーク 使用して JavaScript および残りの呼び出しの多くのコンテンツを表示.

メインラインの開発中に, だけで小さなデータセットを作成します。 10 または、カスタム リストと私の残りの部分の呼び出し行のでそこから引いた。  一度私は予想された成長のためのテストへのデータの数百行をリストに格上げ, 私は正確に得ていたことを発見 100 戻って私の残りの部分の呼び出しで返される行.

これはアドレスを非常に簡単なものです。  私の場合 (ほとんどの場合と考えていると), 既定の SharePoint に残りを呼び出します (業界標準として多分?) 戻り値 100 行します。  既定値以上に戻ります, $top パラメーターを使用して、あなたのコールに, ように:

/Insights Dev/_api/web/lists/GetByTitle を取得します。(' MockBlog')/項目?$選択 ID =,タイトル,カテゴリー/タイトル,Blog_x0020_Author/タイトル,DatePublished,BlogSummary&$拡大 = Blog_x0020_Author,カテゴリ&$フィルター =&$トップ = 9999

私を選んだ 9999 この場合以来私が知っている growth-wise, ない以上 200 またはので行 1 年でこのリストに追加されます。  不格好になる場合, 道のいくつかのページングを実装できます。.

</終了>

undefined私のブログを購読します。.

私は Twitter の上に従ってください。 http://www.twitter.com/pagalvin

迅速かつ簡単な: 「無効な URL パラメーターを解決します。” lists.asmx で UpdateListItems の問題

Lists.asmx を介して UpdateListItems を使用する場合, それは、エラーを生成する簡単です。:

無効な URL パラメーター.

指定された URL が無効なコマンドまたは値が含まれています. URL をもう一度確認してください。.

ID を忘れた場合は、このエラーを得ることができる、更新するフィールドの一覧です。  これは、, 多くの SP これらの web サービスのような, ID 属性には ID を含める必要があるので少し直感に反するが、 <メソッド> 要素。  あなたがいないと ID を更新し、たくないおそらく最初の場所で.

この SOAP エンベロープを動作します。:

<soapenv:封筒 xmlns:soapenv =' http://schemas.xmlsoap.org/soap/envelope/'>
  <soapenv:体>                      
    <UpdateListItems xmlns =' http://schemas.microsoft.com/sharepoint/soap/'>                     
      <姓>{C712E2EA-54E1-47AD-9D99-1848C7773E2F}</姓>                     
        <更新プログラム>                     
         <OnError バッチ =「続ける」">
          <メソッド ID ="1" Cmd ="更新">
            <フィールド名 ="CooperativeLock">ロックされています。!</フィールド>
            <フィールド名 =「ID">1</フィールド>
          </メソッド>
        </バッチ>                     
        </更新プログラム>                
      </UpdateListItems>             
  </soapenv:体>         
</soapenv:封筒>

ID フィールドの参照を取り除く場合は迷惑な「無効な URL パラメーター」メッセージを得るでしょう.

</終了>

undefined私のブログを購読します。.

私は Twitter の上に従ってください。 http://www.twitter.com/pagalvin

 

JavaScript で貧乏人をキャッシュします。

[TL;DR のバージョン: 非同期呼び出しの結果を格納するクッキーを使用します。; 過去の非同期呼び出しの結果を直ちに表示し、ページの読み込み後にそれらを検証します。]

私は取り組んできたイントラネットの SharePoint サイト、クライアントの機能, 他のものの間で, 様式化された 2 番目のナビゲーション メニュー オプションは、正規の古いカスタム リストを介して管理されます。  アイデアは、クライアントに影響を与えるまたはそれが出すグローバル ナビゲーションによって影響されることがなく「自分」のサイトのメニューを制御するを取得します。.

(別のポストには根本的にサイトの挙動についてのほぼすべてを変更するいくつかの CSS と js ファイルを読み込みます HTML ファイルを指す CEWP を追加する方法について信じられないほど破壊的な何かがあります。)

この非常に単純なコード:

咽頭痛スポットここでは、誰も 1 つのサイトのページをヒットするたびに, そのユーザーの web ブラウザーは、リストから項目を取得に達しています。  安定し、完全な開発が完了し、テストすることが証明されています, この呼び出しは必要以上 99% まれ、メニューから時間を変更します。  ハイパー ajaxy web サイトのこの勇敢な新しい世界で共通である奇妙な UI に影響しています – ページがレンダリングされ、だけにしては、メニューのレンダリングします。  神経質であり、私の見解で気が散る。  神経質. だから, キャッシュ。 

Thusly、ロジックを変更:

  • 最後に読んだようにメニューを含む、ブラウザーで cookie を探します
    • 場合が見つかりました, すぐにレンダリングされます。  ページの読み込みが完了するを待ってはいけない。  (あなたの HTML は、ここで戦略的に配置を確認する必要があります。, 行うは難しいではないです。).
  • ページの読み込みが完了し、残りの部分または lists.asmx または何を使用してリストからメニュー項目をロードするを呼び出す非同期に待機します。
  • 私はクッキーに対して得た比較します。
    • それと一致する場合, 停止
    • それ以外の場合, jQuery を使ってください。, 場合束を動的に読み込みます <李>では <ul>
  • すべての書式設定に CSS を使用します。
  • 利益!

あなたのいくつかと言うとしています。, "ねえ! とにかく、メニューを読んでいるのでここに実際キャッシュことはできません。 ひとつひとつの時間.”  あなたは正しい – を与えていないよ、サーバー任意区切りの種類。  しかし、HTML ペイロードを完全にレンダリングの呼び出し非同期は、ページの初期後に起こる, それは「感じ」より、ユーザーに対応します。  メニュー レンダリングはかなり限り、ページを描画します。  変更する場合は、メニュー, ユーザーがメニューの神経質な再描画を受ける, その 1 つの時間だけが.

このキャッシュをより効果的し、同時に、サーバーを手助けするいくつかの方法があります。:

  • 「Cookie のキャッシュ」は最小の有効な規則に含める 24 時間またはいくつか他の時間枠. 有効期限が切れた cookie がない限り、, クッキーのメニューのスナップショットを使用して、サーバーをヒットしません。.

それはすべて今気になることも. :). 

誰もがここの巧妙なアイデアを持っている場合私はそれらを知っているみたい.

そして最後に-この手法は他のもの使用ことができます。  このクライアントのページのさまざまなページにデータ駆動型のものの数, それらの多くは比較的稀に変更します。 (週に一度あるいは月に一度のような).  特定の機能領域を対象する場合, ローカル cookie ストアからコンテンツを引っ張ってくるとすぐにレンダリングして、応答性の高い UI を与えることができます。  ない任意のサイクル、サーバーを保存している場合でも、それユーザーに速く感じる。  あなた ことができます。 このローカル cookie のキャッシュを無効にするいくつかの条件とトリガーの決定によって、サーバ ・ サイクルを保存します。  それはすべての状況と芸術的なものと最も本当に楽しい :). 

</終了>

undefined私のブログを購読します。.

私は Twitter の上に従ってください。 http://www.twitter.com/pagalvin

操作方法: 単体テストおよびテスト カバレッジを QUnit.js と Blanket.js オフィスを構成します。 365 SharePoint アプリ

イントロ

単体テストを模索してきたし、オフィスでオンラインの SharePoint の新しい SharePoint アプリの作業を行う JavaScript のテスト カバレッジ 365 スイートです。  明白な研究のパスに私を導いた Qunit.js 右の後, 宛先 Blanket.js.

QUnit では、単体テストを設定し、モジュールにグループ化しましょう。  モジュールはちょうど関連テストを整理する簡単な方法です。. (私は意図したとおりに使っていますかわからない, しかし、私がこれまでに定義されたテスト一連の小規模でこれまで私の仕事は).

Qunit と Blanket.js の統合し、それ私があった- ともっと重要なは-実際に実行されなかった、テストの実行の過程で JavaScript の実際のラインが表示されます。  これは「カバレッジ」-他はないテストによって実行される行がカバー.

良いテスト _ ケースを設定すると、カバレッジの表示, 我々 は我々 のコードの欠陥を隠しているリスクを減らすことができます。  良い回.

Qunit

セットアップ プロジェクトを Visual Studio があると仮定すると, パッケージの java スクリプトの設定をダウンロードして起動します。 http://qunitjs.com.  JavaScript と対応する CSS をソリューションに追加します。  このような鉱山:

image

図 1

ご覧のとおり, 私が使っていた 1.13.0 このブログを書いた時点で投稿します。. ダウンロードし、CSS ファイルを追加することを忘れないでください。.

その方法のうち, 次のステップは、テスト ハーネスのいくつかの種類を作成し、Qunit ビットを参照します。  "QuizUtil_test.html"のようにと呼ばれる HTML ページを作成するので"QuizUtil.js"と呼ばれるスクリプト ファイルで機能の束をテストしています:

image 図 2

ここでは、コードです。:

<!DOCTYPE html>
<html xmlns「http =://www.w3.org/1999/xhtml">
<ヘッド>
    <タイトル>Qunit と QuizUtil テスト</タイトル>
    <リンク rel="スタイル シート" href="../CSS/qunit-1.13.0.css" />
    <スクリプト タイプ"テキスト/java スクリプトの設定を =" src="QuizUtil.js" データ カバー></スクリプト>
    <スクリプトの型 ="テキスト/javascript" src ="qunit 1.13.0.js"></スクリプト>
    <スクリプトの型 ="テキスト/javascript" src ="blanket.min.js"></スクリプト>

    <スクリプト>
        モジュール("getIDFromLookup");
        テスト("QuizUtil getIDFromLookupField", 関数 () {
            var ストックホルム = "1;#ポール Galvin";

            等しい(getIDFromLookupField(ストックホルム) + 1, 2), "の ID [" + ストックホルム + "] + 1 2 をする必要があります。";
            等しい(getIDFromLookupField(未定義), 未定義, 「未定義の入力引数が未定義結果を返す必要があります。");
            等しい(getIDFromLookupField(""), 未定義, "空の入力引数が未定義の値を返す必要があります。");
            等しい(getIDFromLookupField("gobbledigood3-thq;dkvn アダ;skfja sdjfbvubvqrubqer0873407t534piutheqw;(ヴァイオリン)"), 未定義,「返す必要があります常に結果のコンバーチブルを整数");
            等しい(getIDFromLookupField("2;#いくつか他の人"), "2", "チェック [2;#いくつか他の人].");
            等しい(getIDFromLookupField("9834524;#long 型の値"), "9834524", 「大きな値のテスト。");
            等号否定(getIDFromLookupField("5;#誰もが", 6), 6, "テスト、等号否定 (5 等しくないです。 6 このサンプルについて: [5;#誰もが]");

        });

        モジュール("htmlEscape");
        テスト("QuizUtil htmlEscape()", 関数 () {
            等しい(htmlEscape("<"), "&lt;", "エスケープ演算子よりも少ない ('<')");
            等しい(htmlEscape("<div クラス = "someclass">いくつかのテキスト</div>"), "&lt;div クラス =&quot;someclass&quot;&gt;いくつかのテキスト&lt;/div&gt;", 」より複雑なテスト文字列です。");
        });

        モジュール("getDateAsCaml");
        テスト("QuizUtil getDateAsCaml()", 関数 () {
            等しい(getDateAsCaml(新機能 日付(「2013/12/31")), "2013年 12 31T:00:00:00", 「テストのハード コーディングされた日付: [12/31/2013]");
            等しい(getDateAsCaml(新機能 日付("01/05/2014")), 「2014年-01-05T:00:00:00", 「テストのハード コーディングされた日付: [01/05/2014]");
            等しい(getDateAsCaml(新機能 日付("01/31/2014")), 「2014年 01 31T:00:00:00", 「テストのハード コーディングされた日付: [01/31/2014]");
            等しい(getTodayAsCaml(), getDateAsCaml(新機能 日付()), "getTodayAsCaml() getDateAsCaml を等しく必要があります。(新しい日付())");
            等しい(getDateAsCaml("ナンセンス値"), 未定義, "ナンセンス値の日付を取得しようとしてください。");
            等しい(getDateAsCaml(未定義), 未定義, "の日付を取得しようとすると、 [未定義] 日付。");
        });

        モジュール("getParameterByName");
        テスト("QuizUtil getParameterByName (クエリ文字列から)", 関数 () {
            等しい(getParameterByName(未定義), 未定義, "を取得しようとすると、未定義のパラメーターは未定義を返す必要があります。");
            等しい(getParameterByName("は存在しません"), 未定義, "我々 は知っている、パラメーターが存在しないときにパラメーター値を取得しようとしてください。");

        });

        モジュール("クッキー");
        テスト(「QuizUtil 様々 な cookie 機能。", 関数 () {
            等しい(setCookie("テスト", "1", -1), getCookieValue("テスト"), "Get 設定私はクッキーが動作するはずです。");
            等しい(setCookie("anycookie", "1", -1), true, "有効な調理返す必要があります 'true'。");
            等しい(setCookie("クレイジー クッキー名 !@#$%"%\^&*(()?/><.,", "1", -1), true, ' 悪い cookie 名を設定する必要があります false を返す ''。");
            等しい(setCookie(未定義, "1", -1), 未定義, 渡すことは、クッキー名として定義されていません。");
            等しい(getCookieValue("は存在しません"), "", "クッキーはテストは存在しません。");
        });

    </スクリプト>
</ヘッド>
<>
    <div id"qunit ="></div>
    <div id「qunit フィクスチャを ="></div>

</>
</html>

ここで起こっているいくつかのものがあります。:

  1. 私のコードを参照します。 (QuizUtil.js)
  2. Qunity.js を参照します。
  3. いくつかのモジュールを定義します。 (getIDFromLookup, クッキー, その他)
  4. 配置する、 <div> ID が"qunit".

[, 私はちょうどこのページを引き出すし、このような何かを得る:

image

図 3

場合は、上部に見て, いくつかのオプションがあります。, 2 つは面白い:

  • 非表示のテストに合格しました。: かなり明らか。  ちょうど問題の領域と多くの散乱を見るあなたの目を助けることができます。.
  • モジュール: (ドロップ ・ ダウン): これはちょうどそれらのテストのグループまでテストをフィルター処理します。.

彼ら自身で – いくつかのコメント テストに関して:

  • それが最初の場所でテスト可能なコードを記述する必要があること言うまでもなく行きます。  その規律の強化を助けることができるツールを使用. 例えば, "GetTodayAsCaml と呼ばれる機能を持っていた()”.  入力引数をとらないので、これは非常にテストし、等しいかどうかをテストするには, 我々 は常に現在の日付を反映するようにテスト コードを更新する必要があります。  データの入力パラメーターを追加し、CAML 形式で今日の日付の場合、現在の日付を渡すことによってそれをリファクタリング.
  • Qunit フレームワーク ドキュメント独自にテストし、かなり堅牢なようです。  等価性テストのような単純なものを行うことができ、ajax スタイルの呼び出しをサポートしています (使用してあなたのお気に入りの曲以上の「本物の」またはモック).
  • 「未定義」で何が起こる-エッジ ケースを通して考える強制的プロセスを経てもまたは関数に null が渡されます。  それはうちこれらのシナリオをテストする死者は簡単です。  良いもの.

Blanket.js とカバレッジ

Blanket.js はあなたのテストの実行中に実行されるコードの実際のラインを追跡することによって Qunit を補完します。  それはこれにもかかわらずそれは全体の別々 のアプリ Qunit に権利を統合します。, それは素敵なを果たしている-実際に 1 つのシームレスなアプリケーションのように見えます.

これはアクションで blanket.js:

image 図 4

image

図 5

(実際に上部の「カバレッジを有効にする」チェック ボックスをオンをクリックする必要があります。 [図を参照してください。 3] これをできるようにします。)

図で強調表示された行 5 私のテストのいずれかが実行されていません。, それらを引き起こす完全なカバレッジをする場合に実行するテストを考案する必要がありますので.

次の手順で作業 blanket.js を取得します。:

  1. それをダウンロードします。 http://blanketjs.org/.
  2. プロジェクトに追加します。
  3. テスト ハーネス ページを更新します。 (私の場合 QuizUtil_test.html) 次のように:
    1. 参照コード
    2. 飾るあなた <スクリプト> このような参照します。:
    <スクリプト タイプ"テキスト/java スクリプトの設定を =" src="QuizUtil.js" データ カバー></スクリプト>

Blanket.js は、データ-カバー」属性をピックアップし、その魔法が。  それは Qunit にフックします。, 「カバレッジを有効にする」オプションを追加する UI を更新し、出来上がり!

概要 (TL; 博士)

Qunit を使用して、テスト _ ケースを作成.

  • それをダウンロードします。
  • プロジェクトに追加します。
  • テスト ハーネス ページを書く
  • テストを作成します。
    • いくつかは、テスト コードをリファクタリングします。
    • 創造的であります。!  クレイジーだと思う, 不可能なシナリオとそれらをとにかくテスト.

カバレッジを確保するのに blanket.js を使用します。

  • Qunit が動作を確認してください。
  • Blanket.js をダウンロードし、プロジェクトに追加
  • テスト ハーネス ページを追加します。:
    • Blanket.js への参照を追加します。
    • 「データ カバー」属性を追加して <スクリプト> タグ
  • Qunit テストを実行します。.

私は決してこれを前にいずれかを行なったし、時間のほんの一握りで働いていくつかの初歩的なものを持っていた。 

ハッピー テスト!

</終了>

undefined私のブログを購読します。.

私は Twitter の上に従ってください。 http://www.twitter.com/pagalvin

今まで着ていく最後のスーツ?

[クイック注-これはかなり長い記事私のグループはここニューヨークでの求人に興味があるなら、トライステート エリアに住んでする必要は。]

私はスラロームをコンサルティングに参加 18 ヶ月前 私の最も長い持続の仕事以来これ 2007. 私はそのようにそれを計画していません。. ジョブ ホッピングの文字列の前に SharePoint の世界に私の飛躍を開始, 11 年間で 1 つの場所をされました。. 私は最終的に新しい発見しました。, 不朽のスラロームでの長距離のためここでの仕事をする場所.

この場所が成長しているし、私はそれを制御するいくつかの助けが必要. 建築家単語以上および/または正しくされる SharePoint スペースでかなり長い間今を発見したが私は必要とするヘルプの種類は通常「SharePoint ソリューション ・ アーキテクト」と呼ばれる. どのようにこのことについてブログに苦しんできた. 単にダイス/モンスター スタイルの箇条書きの束をリストする必要はありません。. 優秀な人材の同僚は、すでにやっています。 :). だから, 「生命の日」アプローチを取ることを決めた. それを読んでくださいし、検討:

1) それは訴えるかどうかと

2) かどうか、あなたがそれを行うことができますあなたの骨に知っています。.

はいの場合, 私に連絡します。 (paul.galvin@slalom.com) お話しましょう.

これらは私のチームのソリューション アーキテクトとして典型的な週/月で行うに何を期待することができますです。:

  • プロジェクトを実行, 多くの場合よりも 1 つずつ. いくつかのプロジェクトが大きく、その 1 つのプロジェクトを所有するので. 「プロジェクトを実行」を意味する監督と配信の全体的な品質に対する責任があること. ほぼすべてのケースでは、日があるでしょうや開発者のチームは本当に強い, 車, UX の人々, など。, あなたをサポートするには. しかし、クライアントを見ている主な顔をするよ, 信頼関係, など. この役割の影に隠れてはありません。 :). この時間を請求され、これを行うに十分な忙しいを維持すること 80 時間の %.
  • 書類-豚をヘルプします。, 提案依頼書, デッキ-すべてが良いもの. かなり定型的なので我々 の種をまくプロセスはかなり厳しいと固体があると思う. 今日豚の書き込みに使用している場合, 私たちのプロセスはあなたのために挑戦するつもりはないです。. RFPs-これらが少し難しくなります. 彼らは自然の中でまず始めにオーダーメイドする傾向があり、Rfp は通常複数の異なった著者のプル. 良いと悪いの両方です。, しかし、主に良い. 私たちも新しい仕事を獲得しよう、優れた顧客サービスの必要性を両立させる必要がある場合、これは scrambly 得ることができます。. おそらく、RFP を所有しませんが、あなたのセクションを貢献することになります.
  • セールス ・ コール, 近いではないが. 1 ヶ月コース, 当社の販売チームにセールス ・ コールのカップルに行くことを期待することができます。. あなたが部屋で中小企業でしょう, メモを取るし、ソリューションを形作る手助け. ただし, あなたは尋ねたことはありませんまたは、スタートからフィニッシュまで、セールス ・ サイクルを処理します。. "を販売する必要はありません。,"あなたは専門家の理由で、部屋の穏やかな声する必要があります。. これは信用と信頼を構築し、だからこそ、そこにいます。. もちろんです, 販売したい場合, ここであまりにも成長する余地があります。.
  • 募集のヘルプします。. 我々 はいくつかの紹介プログラムの種類を持ってください。, 場合は本当に知っているのであなたが考えるコミュニティの強い人々 スラロームの一部する必要があります。, その方法の恩恵を受けることができます。. 我々 のリクルーターを捧げています。 (人は優れています。) この種の仕事のライオンの共有を行うに. 本当の助けが面接です-彼らは文化的に良いフィットです? 彼らは自分の作品を知っていますか? 彼らがすることができます * 私 * 生活を容易に? 🙂これは急いで来ます, 月に数回, いくつかのヶ月であなたそれをまったくしないだろうが.
  • ベスト プラクティスの定義を支援します。, 当社の IP を構築して私たちより競争力のある市場で. あなたが経験豊富な男/ギャル. あなたがしてきた、ブロックの周り-だけではなく SharePoint, しかし、その他のテクノロジの経験があるし、良いと悪いを通して住んでいた (さらにひどい) すべての上のプロジェクト. その結果, どのような作品し、そうではない知っています。. 我々 は日ごとに一日に戦術的な意味で私たちとその経験を共有する必要があります。 (すなわち. 本当によくあなたのプロジェクトを実行します。) しかしまた戦略的に、. 「ベスト プラクティス」が、用語としては少し使い古さし、それを使用することを躊躇. 基本的な考え方は深いと関連性の高い経験者として来ている私たち私たちが日常的にお客様の従事にお客様のベストを統合することであり.
  • 楽しんでください -は、非常に統合された束. まだ別の決まり文句を避けるためにしたいです。, しかし、それは本当に傾向がある-我々 のハードワーク (並べ替え) 我々 はさらに困難を再生 :). アーロンソーキン一種の冗談はここです。, 部屋は、常に賢い人々 でいっぱいです。, 我々 のように私たちの飲み物と楽しいのかなりの数を整理イベント-ムービー ナイト, 野球旅行 (彼ら場合でも 恐ろしい, 実質的に邪悪なチーム).

すべて 1 つの単語にまとめることができる場合, 単語「リーダーシップ」を使用しますプロジェクトをリードします。, 先導的な役割の練習を取る (IP, チームを構築), など.

しかし、待つ! 詳細は! なぜ他スラロームで動作?

  • 顕著な結束の意図-このことを成長する誰も. 「コレ」はニューヨーク事務所です。. これでみんなが乗って.
  • あなたの帆-妹オフィスを風します。, 妹の実践-スラロームです「コンサルティング組織は、完全なサービス」. SharePoint の練習をリードします。 (「練習エリア リード」スラロームの用語). 私は妹があるでの実践 11 他のスラロームのオフィス. 私は王限りにもかかわらず、SharePoint ここにスラローム ニューヨークでかかわっています。, シカゴでピア プラクティスをあります。, シアトル, ダラス, アトランタ, ボストン, など. サポートを描くことができますから. それは本当には両方の世界の-ニューヨーク、組織全体での才能のトンへのアクセスで有意な自治権をここでよい.
  • あなたの販売で風します。 (2) -我々 SharePoint – より多くのこと. BI を行う, CRM, UX, ビジネス ・ コンサルティング, モバイル, カスタム開発など. 我々 が自分の中で販売クロス優れているし、我々 は絵画- ともっと重要なのもいいです。, お客様のために-「フルサービス」画像を提供. これは私には特に魅力的です。. 我々 は、「SharePoint 人」に引きこもってピジョンいたので SharePoint ライブと挫折の繰り返し作業多くの小さい orgs できたスラロームで発生しないし、我々 は結果としてもっと面白いの仕事を得る.
  • ローカル モデル – ない旅行.
  • 長期的な成長-スラローム大盛況を起こっています。. 多くの成長と安定性. 我々 はより多くのクライアントとスタッフこれらのクライアントをサポートするために追加する指導者今日新しいチームを雇う必要がある成長も意味します。.

私が行くことができます。, しかし、私はおそらくすでに長すぎる行ってきた. ここでの本質をキャプチャしたと思う. について考えている場合ジョブ、これを変更することがよさそうです。, お話しましょう.

あなたの現在の仕事 – を幸せにしている場合は、とにかく話そう :). 私は多くの場所にしてきた時に非常に「ハッピー」だった. スラロームは異なっているし、あなたを説得する機会を歓迎します。.

</終了>

undefined私のブログを購読します。.

私は Twitter の上に従ってください。 http://www.twitter.com/pagalvin

迅速で簡単な: Windows ストア アプリケーションでリスト ボックスで、項目のサイズを設定します。

私は、Windows ストア アプリを作成します。, さまざまな情報メッセージをユーザーに表示したいです。  彼らはそれらとすべての良いものをスクロールできるように、それを表示するツールとして、ListBox を選んだ。 

メッセージは情報メッセージのみ, ユーザーことはできないので、それらの周りのすべての余分な空白を提供する必要はありませんので何かを選択します。  ListBox の既定の動作はパディングの相当な量を提供し、それを取り除くしたいです。  まあ.. ListBox にそういったことを直接行うことはできません。  しかし, 追加する項目を行うことができます。:

        プライベート void AddGameStateLogMessage(文字列 メッセージ)
        {
            TextBox t = 新機能 テキスト ボックス();
            t.Text = GameStateCounter     + ": " + メッセージ;
            t.TextWrapping = TextWrapping.Wrap;
            t.MinWidth = 400;
            厚さ thisPadding = 新機能 厚(5, 0, 5, 0);
            t.Padding = thisPadding;
            t.FontSize = 12;

            ListBoxItem の李 = 新機能 ListBoxItem();
            李。コンテンツ = t;
            李。高さの最大値 = 25;
            thisPadding = 新機能 厚(5, 0, 5, 0);
            李。パディング = thisPadding;

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

上記の, テキスト ボックスを作成すし、そのフォントの設定, そのパディング, など.

次, ListBoxItem を作成し、書式設定されたテキスト ボックスにその内容を設定.

最後に, リスト ボックスに、ListBoxItem を挿入します。  (リストの一番上に最も最近のメッセージを表示したいのですが。, したがって、挿入(0,李) 代わりに、単純な追加() 呼び出し。).

少し前に、ListBox の動作と本当に嬉しいが、上記のパターンは非常に有益されているこれを調整するでしょう。  うまくいけば他の誰かは役立つ検索します。.

</終了>

undefined私のブログを購読します。.

私は Twitter の上に従ってください。 http://www.twitter.com/pagalvin