كيفية تحديد الناس كنطاق البحث / مصدر المحتوى باستخدام SharePoint 2013 بقية API

كان السبب العمل مع SharePoint 2013 API البحث عبر بقية للمرة الأولى. كنت أرغب في البحث عن أشخاص, لا وثائق. مفتاح التعلم هنا أنه يمكنك تحديد مصادر المحتوى عبر guid الخاص به (أو على الأقل في هذه الحالة). يظهر أجزاء التعليمات البرمجية المتكررة التالية مسج كيف:

    لواديكسبيرتساسينك: الدالة() {

        jQuery.support.cors = صحيح;

        $.أجاكس({
            عنوان url: وهذا.كريتيفولابيورل() +
                "?كويريتيكست = 'بوابات'&سورسيد = 'b09a7990-05ea-4af9-81ef-edfab16c4e31'" +
                "&سيليكتبروبيرتيس = ' لينكيدينبروفيليورل,جوجليسيركليسبروفيليورل,بالارجيبروفيليبيكتوريورلس,باجريدبيكتوريس,ووركيميل,المهارات,AboutMe,المصالح,جوبتيتلي,باستبروجيكتس,بيكتوريورل,بريفيريدنامي,تويتيرهاندلي,لينكيدينبروفيليورل,بريفيريدنامي,جوجليسيركليسبروفيليورل '" +
                "&rowlimit = 99",
            الأسلوب: "الحصول على",
            رؤوس: { "قبول": "تطبيق/json; odata = مطول" },
            ذاكرة التخزين المؤقت: كاذبة,
            النجاح: الدالة (النتيجة) {

في حالتي, أنا تشغيل API ضد SharePoint على الإنترنت. للحصول على المعرف الفريد العمومي, لقد اتبعت هذه الخطوات:

  1. الوصول إلى مركز مسؤول SharePoint
  2. حدد "بحث" من شريط التنقل الأيسر
  3. حدد "إدارة مصادر نتيجة"
  4. حدد "السكان المحليين نتائج"
  5. انظروا إلى عنوان URL.

بدأ لي عنوان شيء من هذا القبيل:

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

المعلمة سورسيد ما عملت بالنسبة لي.

(وأفهم أن سورسيد قد يكون فعلا نوعا من شيء دائم مع SP, but I’ll always check anyway 🙂 ).

</نهاية>

undefinedالاشتراك في بلادي بلوق.

اتبعني على التغريد في http://www.twitter.com/pagalvin

المثال SharePoint بقية المكالمات

هنا هو مجموعة من المكالمات بقية العينة التي يعمل بالنسبة لي، وقد تساعدك على الخروج، وكذلك. كمن 02/2014, there are two examples 🙂

  1. مرجع عمود مع مسافات في اسم الخاص به
  2. مرجع عمود تحديد المتعدد
  3. إجراء بحث الناس عبر بقية

 

سأضيف إلى هذا بمرور الوقت.

وإليك بعض الأحبار مفيدة وجدتها كذلك:

مرجع عمود مع مسافات في اسم الخاص به

إنشاء قائمة مخصصة مع عمود يسمى "صاحب مدونة" (المسافة بين المدونة والكاتب).

$select للإشارة أن العمود:

image

ببساطة استبدال المسافة مع "_x0020_". ونحن نرى _x0020_ في العديد من الأمثلة عبر الإنترنت ولا يختلف بقية.

إذا لم تقم بذلك, كنت مسؤولاً للحصول على رسالة خطأ مثل هذا:

التعبير “بلوق المؤلف” غير صحيح.

ما يكفي من السهل.

مرجع عمود بحث متعدد حدد

قم بإعداد:

  1. إنشاء قائمة مخصصة تسمى فئات.
  2. إضافة بعض الفئات. قمت بإضافة فئات هكذا:image
  3. إنشاء قائمة مخصصة أخرى تسمى موكبلوج وإضافة فئات كعمود قائمة متعددة التحديد (أو عمود الموقع إذا كان هذا كيف يمكنك لفة).

إضافة بعض العناصر إلى قائمة موكبلوج الخاص بك، وكنت على استعداد.

استدعاء أسلوب أياكس مسج سوف ننظر شيئا مثل هذا:

  = سيرفيرورل "/_api/web/القوائم/جيتبيتيتلي('موكبلوج')/العناصر" +
             "?$حدد عنوان =,فئات/العنوان,Blog_x0020_Author/العنوان" + 
             "&$قم بتوسيع = Blog_x0020_Author,فئات";

كنت أقول SharePoint "أعطني العنوان لجميع الفئات (فئات/العنوان). الحصول على القيم الفعلية عن العنوان قبل $قم بتوسيعجي قائمة الفئات. " (بلدي مقتبسا مريح الأرجح جميلة فضفاضة, لكن هذا كيف أنا تفسير ذلك).

إذا كنت تفعل ذلك عن طريق استخدام Fiddler لإلقاء نظرة على الإخراج وجافا سكريبت, يمكنك الحصول على شيء من هذا القبيل في المقابل:

 

image

(ما ورد أعلاه كائن JSON)

إجراء بحث الناس عبر بقية

أنا blogged حول هذا بشكل منفصل. المفتاح هو لتحديد معلمة sourceid قيمته هو GUID لمصدر المحتوى "الأشخاص المحليين". (استخدام مصادر المحتوى ليتم استدعاؤها من النطاقات وبلدي-يا-بلادي جد على عدم استدعاء كل نطاق بالنسبة لي!).

اقرأ المزيد عن ذلك هنا: http://www.mstechblogs.com/paul/?p=10385

 

</نهاية>

undefinedالاشتراك في بلادي بلوق.

اتبعني على التغريد في http://www.twitter.com/pagalvin

سريعة وسهلة: إنشاء موقع SharePoint باستخدام بقية

وهناك كثير من الموارد حول التي تبين كيفية القيام بذلك, ولكن لم أتمكن من العثور على ارتباط شامل الذهاب إلى, وها نحن.

يمكنك إنشاء موقع SharePoint باستخدام API بقية.  هنا مثال كامل خبز:

<!--
    SiteRequestForm.html: جمع المعلومات وإنشاء موقع للمستخدم.
-->

<مركز>
<الجدول>
    <tr>
        <td>اسم الموقع:</td>
        <td><الإدخال نوع= "نص" الاسم= "اسم الموقع" معرف= "اسم الموقع" /></td>
    </tr>
    <tr>
        <td colspan= "2">
            <الإدخال نوع= "يقدم" معرف= "كريتيسيتيبوتون" القيمة= "إنشاء الموقع" />
        </td>
    </tr>
</الجدول>
</مركز>

<البرنامج النصي src="../Plugins/jquery-1.11.0.min.js"></البرنامج النصي>

<البرنامج النصي>
فأر كريتيسيتيلوجيككونتينير = {

    كريتيسيتيداتا: {
            "معلمات": {
                __metadata: { "نوع": "س.ويبينفوكريتيونينفورميشن" },
                عنوان Url: "Paultest1",
                العنوان: "Paultest1",
                وصف: "إنشاء بقية ويب قبل Paul!",
                اللغة: 1033,
                ويبتيمبلاتي: "sts",
                أوسيونيقويبيرميسيونس: كاذبة
            }
    },

    كريتيسيتي: الدالة () {

        jQuery.support.cors = صحيح;

        CreateSiteLogicContainer.createSiteData.parameters.Url = $("#SiteName").فال();
        
        $.أجاكس({
            عنوان url: "https://bigapplesharepoint.sharepoint.com/NBAIADev/_api/web/webinfos/add",
            الأسلوب: "وظيفة",

            رؤوس: {
                "قبول": "التطبيق/json; odata = مطول",
                "نوع المحتوى": "التطبيق/json;odata = مطول",
                "X-ريكويستديجيست": $("#__REQUESTDIGEST").فال()
            },

            البيانات: JSON.stringify(CreateSiteLogicContainer.createSiteData),

            النجاح: الدالة () { تنبيه("النجاح"); },
            خطأ: الدالة () { تنبيه("خطأ"); }

        });
    },

    ويريوبفورم: الدالة () {
        $("#CreateSiteButton").انقر فوق(الدالة () {
            تنبيه("على وشك أن محاولة لإنشاء الموقع.");
            CreateSiteLogicContainer.createSite();
        });
    }


}

CreateSiteLogicContainer.wireUpForm();

</البرنامج النصي>

عندما تكون ناجحة, يمكنك الحصول على حزمة JSON في رد مثل هذا:

image

بلدي الأفكار الرئيسية وتعلمه من هذا التضمين:

  • ويستخدم هذا النهج مسج.  في حالتي, مكتبة jQuery بلدي يقع في ".../الإضافات. "  سوف تحتاج إلى تغيير ذلك للإشارة إلى موقع JQ المفضلة الخاصة بك.
  • يمكنك نسخ ولصق قصاصة ذلك كله في جزء ويب محرر المحتوى على صفحة، وينبغي لها أن تعمل على ما يرام.  سوف تحتاج إلى تغيير نقطة النهاية لاستدعاء API وتأكد من الرجوع JQ بشكل صحيح.
  • عنوان url الخاص بالنسبة إلى نقطة النهاية API الخاص بك.  في حالتي, فإنه يتم إنشاء المواقع الفرعية تحت https://bigapplesharepoint.com
  • لا تحتاج إلى توفير محتوى-طول. بعض التدوينات و MSDN الوثيقة يعني أن لديك, ولكن حدث لي تلقائياً, التي افترض أن يتم معالجة بواسطة استدعاء.ajax $ نفسها.
  • مطلوب هذا الخط من أجل تجنب رد فعل "المحرمة": "X-ريكويستديجيست": $("#__REQUESTDIGEST").فال().  وهناك طرق أخرى للقيام بذلك, ولكن هذا لطيف جداً.  لقد فقدت الرابط للمدونة التي قدمت هذا الاختصار.  ح/تي لك, مدون غامضة!

حظاً سعيداً وآمل أن يساعد هذا شخص.

</نهاية>

undefinedالاشتراك في بلادي بلوق.

اتبعني على التغريد في http://www.twitter.com/pagalvin

التغلب على مشكلة مزعجة مع محددات مواقع المعلومات النسبية في SharePoint سريعة إطلاق

كنت أرغب في إضافة ارتباط إلى شريط التنقل شريط التشغيل السريع في اليوم الآخر وأخبرني SharePoint:

image

إصدار النص النقي الذي:

التأكد من أن عنوان URL صالحاً، ويبدأ بأي حرف صالح (علامة الرقم (#) أو شرطة مائلة للأمام (/)) أو بروتوكول معتمد صالحة (فعلى سبيل المثال, ' http://’, ' https://’, ' ملف://’, ' بروتوكول نقل الملفات://’, ' mailto:’, ' أخبار:’).

"Blech وجدري!"قلت:.

حل لهذا لاستخدام جافا سكريبت للعثور على ارتباط معروفة في شريط التشغيل السريع، وتجاوز السلوك الخاص به.

لاختبار هذا, إضافة ارتباط جديد إلى موقع الاختبار الخاص بك هكذا:

image

لقد استخدمت jQuery. لحل هذه المشكلة, الحصول على بعض جافا سكريبت ومسج على الصفحة باستخدام الأسلوب الخاص بك المفضلة لديك ومع سطر من التعليمات البرمجية مثل هذا:

 

$(الوثيقة).استعداد( الدالة () {

    $("أ:يحتوي على('اختبار استبدال URL')").انقر فوق(الدالة () { تنبيه("انقر فوق تغيير السلوك!"); عودة كاذبة;});

});

وبوب عمك.

ويرى jQuery منتق كل <أ> العلامة يحتوي على "اختبار URL بديل" في اسمها. قد ترغب في بحث-النغمة التي اعتماداً على الارتباط الخاص بك، وهذه.

.Click(الدالة() يتجاوز أيا كان SharePoint قد فعلت عندما ينقر المستخدم. تأكد من لك "عودة كاذبة" أو آخر أنها سوف تفعل الأشياء الخاصة بك وثم محاولة الشيء href جداً, يكاد يكون من المؤكد الذي لا هدفك.

وقد تم ذلك والاختبار في بيئة SharePoint على إنترنت ولكن ينبغي أن تعمل جيدا في 2010 وفي وقت سابق أيضا.

</نهاية>

undefinedالاشتراك في بلادي بلوق.

اتبعني على التغريد في http://www.twitter.com/pagalvin

سريعة وبسيطة: SharePoint بقية المكالمة إرجاع فقط 100 سجلات

لقد تم العمل على موقع ويب التي يواجهها عامة للممارسة SharePoint بلدي هنا في نيويورك ويستخدم الكثير من المكالمات جافا سكريبت والباقي لإظهار المحتوى.

أثناء تطوير الخطوط الرئيسية, إنشاء إحدى وحدات dataset صغيرة مع فقط 10 أو حتى انسحبت الصفوف في قائمة مخصصة، ويدعو بقية بلدي من هناك.  مرة صدم أعلى القائمة إلى صفوف مئات قليلة من البيانات لاختبار للنمو المتوقع, لقد وجدت أنه تم الحصول بالضبط 100 الصفوف التي يتم إرجاعها إلى الوراء في بلدي يدعو بقية.

وهذا شيء بسيط جداً بعنوان.  في حالتي (وأعتقد أن في معظم الحالات), شكل افتراضي بقية تدعو إلى SharePoint (وربما كمعيار صناعة?) عودة 100 الصفوف.  لإرجاع أكثر من الافتراضي, استخدم المعلمة $top على المكالمة, كما هو الحال في:

الحصول على/Insights Dev/_api/web/lists/GetByTitle('موكبلوج')/العناصر?$حدد معرف =,العنوان,فئات/العنوان,Blog_x0020_Author/العنوان,داتيبوبليشيد,بلوجسوماري&$قم بتوسيع = Blog_x0020_Author,فئات&$التصفية =&$أعلى = 9999

وقد اخترت 9999 وفي هذه الحالة منذ ذلك الحين وأنا أعلم أن جرووثويسي, لن يكون هناك أكثر من 200 أو حتى إضافة صفوف إلى هذه القائمة في سنة.  إذا فإنه يصبح صعب المراس, يمكن أن ننفذ بعض الترحيل على الطريق.

</نهاية>

undefinedالاشتراك في بلادي بلوق.

اتبعني على التغريد في http://www.twitter.com/pagalvin

سريعة وبسيطة: حل "معلمة URL غير صالح” مشكلة مع أوبداتيليستيتيمس في lists.asmx

عند العمل مع أوبداتيليستيتيمس عن طريق lists.asmx, فمن السهل أن يولد الخطأ:

معلمة URL غير صالح.

توفير عنوان URL يحتوي على أمر أو قيمة غير صالحة. الرجاء التحقق من URL مرة أخرى.

يمكنك الحصول على هذا الخطأ عندما كنت قد نسيت لتضمين معرف في قائمة الحقول تحديث.  وهذا, مثل الكثير من خدمات الويب هذه حزمة الخدمة SP, هو counterintuitive قليلاً نظراً لأنك تحتاج إلى تضمين المعرف في سمة المعرف <الأسلوب> العنصر.  وكنت لا تحديث معرف وربما لم ترغب في المقام الأول.

يعمل هذا مغلف SOAP:

<سوابينف:Xmlns المغلف:سوابينف =' http://schemas.xmlsoap.org/soap/envelope/'>
  <سوابينف:الهيئة>                      
    <أوبداتيليستيتيمس xmlns =' http://schemas.microsoft.com/sharepoint/soap/'>                     
      <listName>{C712E2EA-54E1-47AD-9D99-1848C7773E2F}</listName>                     
        <التحديثات>                     
         <دفعة OnError ="مواصلة">
          <معرف طريقة ="1" Cmd ="تحديث">
            <اسم الحقل ="كوبيراتيفيلوك">مؤمن!</حقل>
            <اسم الحقل ="معرف">1</حقل>
          </الأسلوب>
        </دفعة>                     
        </التحديثات>                
      </أوبداتيليستيتيمس>             
  </سوابينف:الهيئة>         
</سوابينف:مغلف>

إذا قمت علامات خارج مرجع حقل معرف ثم ستحصل على رسالة "معلمة URL غير صالح" مزعج.

</نهاية>

undefinedالاشتراك في بلادي بلوق.

اتبعني على التغريد في http://www.twitter.com/pagalvin

 

الرجل الفقير التخزين المؤقت في جافا سكريبت

[ليرة تركية;إصدار الدكتور: استخدام ملفات تعريف الارتباط لتخزين نتائج async المكالمات; تقديم نتائج الماضي async المكالمات فورا وثم التحقق من صحة لهم بعد تحميل الصفحة.]

لقد تم العمل على موقع SharePoint على الإنترانت لعميل تلك الميزات, أمور أخرى, ملاحة ثانوية منمنمة خيارات القائمة التي تتم إدارتها عن طريق قائمة مخصصة قديمة عادية.  والفكرة أن العميل يحصل على التحكم في القائمة موقع "بهم" دون التي تؤثر أو تتأثر الملاحة العالمية التي وضعت من قبل أنه.

(هناك شيء هدامة بشكل لا يصدق حول إضافة سوب الذي يشير إلى ملف HTML الذي يحمل بعض المغلق وشبيبة أساسا تغيير كل شيء تقريبا عن سلوك الموقع... ولكن هذا وظيفة أخرى)

التعليمات البرمجية لهذا بسيطة جداً:

قرحة موضعية هنا أن كل مرة أي شخص عدد مرات تصفح الموقع إحدى الصفحات في الموقع, مستعرض ويب المستخدم هو الوصول إلى الحصول على العناصر من القائمة.  بمجرد اكتمال ديف والتجارب أثبتت أن تكون الأمور مستقرة وإكمال, هذه الدعوة لا لزوم لها أكثر من 99% الوقت منذ القائمة، ونادراً ما يتغير.  كما أنها تؤثر على واجهة مستخدم غريب هو أمر شائع في هذا العالم الجديد الشجاع من فرط أجاكسي مواقع ويب--يجعل الصفحة وفقط ثم يجعل القائمة.  أنها متوترة وتشتيت في رأيي.  ومتقطعة. حتى, التخزين المؤقت. 

تم تعديل المنطق thusly:

  • ابحث عن ملف تعريف ارتباط في المستعرض الذي يحتوي على القائمة حسب آخر قراءته
    • إذا وجدت, جعله فورا.  لا تنتظر حتى انتهاء تحميل الصفحة.  (كنت بحاجة للتأكد من أن يتم وضع استراتيجيا HTML الخاص بك هنا, ولكن ليس من الصعب القيام به).
  • انتظر حتى الانتهاء من تحميل وجعل async الكلمة لتحميل عناصر القائمة من قائمة استخدام بقية أو lists.asmx أو أيا كان الصفحة
  • قارن ما حصلت ضد ملف تعريف الارتباط
    • إذا كان يتطابق, وقف
    • خلاف ذلك, باستخدام jQuery, ملء حفنة بشكل حيوي إذا <لي>الشعبية في <إبري>
  • استخدام CSS للقيام بكافة التنسيقات
  • الربح!

البعض منكم سوف يقول, "يا! هناك لا حقيقية من التخزين المؤقت يحدث هنا منذ كنت تقرأ القائمة على أي حال كل مرة واحدة.”  وكنت على حق--أنا لا إعطاء الخادم أي نوع من كسر.  ولكن نظراً لأن هذه الدعوة هو عدم التزامن ويحدث بعد الصفحة الأولى حمولة HTML يجعل تماما, أنه "يشعر" أكثر استجابة للمستخدم.  القائمة يجعل جميلة بقدر ما يعتمد الصفحة.  وإذا حدث القائمة للتغيير, يخضع المستخدم لإعادة رسم متقطعة من القائمة, لكن هذا مرة واحدة فقط.

وهناك بعض الطرق جعل ذاكرة التخزين المؤقت هذا أكثر فعالية ويساعد الخادم في نفس الوقت:

  • وضعت في قاعدة أن "التخزين المؤقت لملف تعريف الارتباط" صالحة لحد أدنى من 24 ساعات أو بعض الأخرى تحديد إطار زمني. ما دام هناك لا كوكي منتهية الصلاحية, استخدام القائمة لقطة في ملف تعريف الارتباط وابدأ ضرب الخادم.

حسنا.. هذا هو كل ما يأتي إلى الذهن الآن :). 

إذا كان أي شخص لديه أي أفكار ذكية هنا أنا أحب أن أعرف منهم.

وأخيراً – ويمكن استخدام هذا الأسلوب لغيرها من الأشياء.  صفحة هذا العميل يحتوي على عدد من الأمور المبنية على البيانات في صفحات مختلفة, العديد منهم تغيير نسبيا نادراً ما (مثل مرة كل أسبوع أو مرة كل شهر).  إذا كنت تستهدف مجالات محددة من الوظائف, يمكنك إعطاء واجهة مستخدم أكثر استجابة بسحب المحتوى من مخزن ملف تعريف الارتباط المحلي والتقديم مباشرة.  تشعر أنها أسرع للمستخدم حتى لو كنت لا تحفظ الخادم أي دورات.  يمكنك يمكن حفظ دورات الملقم قبل اتخاذ قرار بشأن بعض الشروط والمشغلات إبطال ذاكرة التخزين المؤقت المحلية ملف تعريف الارتباط هذا.  وهذا كل شيء الظرفية والأشياء ارتسي وحقاً أكثر متعة :). 

</نهاية>

undefinedالاشتراك في بلادي بلوق.

اتبعني على التغريد في http://www.twitter.com/pagalvin

كيفية: تكوين اختبار وحدة، واختبار التغطية مع QUnit.js و Blanket.js لمكتب 365 التطبيق SharePoint

مقدمة

لقد تم استكشاف اختبار وحدة، واختبار التغطية لجافا سكريبت كما عمل في تطبيق SharePoint جديد ل SharePoint على الإنترنت في المكتب 365 جناح.  مسارات البحوث الواضحة دفعتني إلى Qunit.js والحق بعد ذلك, إلى Blanket.js.

كنت اسمحوا لي أن إعداد اختبارات الوحدة، ومجموعة منهم في الوحدات النمطية.  وحدة نمطية مجرد وسيلة بسيطة تنظيم الاختبارات ذات الصلة. (لست متأكداً وأنا استخدامه كما يقصد بها, ولكن أنها تعمل بالنسبة لي حتى الآن مع مجموعة صغيرة من الاختبارات التي قمت بتعريف حتى الآن).

Blanket.js يتكامل مع كنت، وأنها سوف تظهر لي خطوط جافا سكريبت الفعلية التي كانت – والأهم من ذلك--لم ينفذ فعلياً أثناء تشغيل الاختبارات.  هذا "تغطية" – خطوط أعدم مشمولة بالاختبار في حين أن البعض الآخر لا.

بين إعداد حالات الاختبار الجيد وعرض التغطية, ونحن يمكن أن تقلل من خطر أن قانوننا قد مخفي العيوب.  الأوقات الجيدة.

كنت

على افتراض لديك الخاص بك Visual Studio إعداد المشروع, ابدأ بتحميل حزمة جافا سكريبت من http://qunitjs.com.  إضافة جافا سكريبت والمغلق المقابلة إلى الحل الخاص بك.  وهذا يشبه الألغام:

image

الشكل 1

كما ترون, لقد تم استخدام 1.13.0 وفي الوقت كتبت هذا بلوق وظيفة. لا تنسى للتحميل وإضافة ملف CSS.

أن الخروج من هذا الطريق, والخطوة التالية هي لإنشاء نوع من نظام الاختبار ومرجع بت كنت.  أنا اختبار مجموعة من الدالات في ملف نصي يسمى "QuizUtil.js" لذلك أنا خلقت صفحة HTML يسمى "QuizUtil_test.html" كما هو موضح:

image الشكل 2

هنا هو رمز:

<!DOCTYPE html>
<html xmlns= "http://www.w3.org/1999/xhtml">
<رئيس>
    <العنوان>اختبار كويزوتيل مع كنت</العنوان>
    <وصلة rel= "أوراق الأنماط" href="../CSS/qunit-1.13.0.css" />
    <البرنامج النصي نوع= "نص/جافا سكريبت" src="QuizUtil.js" تغطية البيانات></البرنامج النصي>
    <البرنامج النصي نوع ="النص/جافا سكريبت" src ="كنت 1.13.0.js"></البرنامج النصي>
    <البرنامج النصي نوع ="النص/جافا سكريبت" src ="blanket.min.js"></البرنامج النصي>

    <البرنامج النصي>
        الوحدة النمطية("جيتيدفروملوكوب");
        اختبار(كويزوتيل جيتيدفروملوكوبفيلد "", الدالة () {
            فأر جودفالوي = "1;#بول غالفين";

            تساوي(جيتيدفروملوكوبفيلد(جودفالوي) + 1, 2), "معرف [" + جودفالوي + "] + 1 وينبغي أن تكون 2";
            تساوي(جيتيدفروملوكوبفيلد(غير معرف), غير معرف, وسيطة الإدخال غير معرفة "يجب إرجاع نتيجة غير معروف.");
            تساوي(جيتيدفروملوكوبفيلد(""), غير معرف, "وسيطة الإدخال فارغ يجب إرجاع قيمة غير معرفة.");
            تساوي(جيتيدفروملوكوبفيلد("تي إتش كيو gobbledigood3;أدا دكفن;sdjfbvubvqrubqer0873407t534piutheqw سكفجا;vn"), غير معرف,"ينبغي دائماً العودة نتيجة قابلة لتحويل إلى عدد صحيح");
            تساوي(جيتيدفروملوكوبفيلد("2;#شخص آخر"), "2", "التحقق [2;#شخص آخر].");
            تساوي(جيتيدفروملوكوبفيلد("9834524;#قيمة طويلة"), "9834524", "اختبار قيمة كبيرة.");
            نوتيكوال(جيتيدفروملوكوبفيلد("5;#أي شخص", 6), 6, "اختبار نوتيكوال (5 لا يساوي 6 لهذه العينة: [5;#أي شخص]");

        });

        الوحدة النمطية("هتمليسكابي");
        اختبار(كويزوتيل هتمليسكابي "()", الدالة () {
            تساوي(هتمليسكابي("<"), "&الملازم;", "الهروب من أقل من المشغل ('<')");
            تساوي(هتمليسكابي("<div class =  "someclass">بعض النص</div>"), "&الملازم;div class =&quot;سوميكلاس&quot;&gt;بعض النص&الملازم;/div&gt;", "سلسلة اختبار أكثر تعقيداً.");
        });

        الوحدة النمطية("جيتداتيسكامل");
        اختبار(كويزوتيل جيتداتيسكامل "()", الدالة () {
            تساوي(جيتداتيسكامل(الجديد التاريخ("31/12/2013")), "2013-12-31T:00:00:00", "اختبار تاريخ جد المبرمج: [12/31/2013]");
            تساوي(جيتداتيسكامل(الجديد التاريخ("01/05/2014")), "2014-01-05T:00:00:00", "اختبار تاريخ جد المبرمج: [01/05/2014]");
            تساوي(جيتداتيسكامل(الجديد التاريخ("01/31/2014")), "2014-01-31T:00:00:00", "اختبار تاريخ جد المبرمج: [01/31/2014]");
            تساوي(جيتوداياسكامل(), جيتداتيسكامل(الجديد التاريخ()), "جيتوداياسكامل() وينبغي أن تساوي جيتداتيسكامل(تاريخ جديد())");
            تساوي(جيتداتيسكامل("هراء القيمة"), غير معرف, "في محاولة للحصول على تاريخ قيمة هراء.");
            تساوي(جيتداتيسكامل(غير معرف), غير معرف, "في محاولة للحصول على موعد [غير معرف] تاريخ.");
        });

        الوحدة النمطية("جيتباراميتيربينامي");
        اختبار(كويزوتيل جيتباراميتيربينامي " (من سلسلة الاستعلام)", الدالة () {
            تساوي(جيتباراميتيربينامي(غير معرف), غير معرف, "في محاولة للحصول على المعلمة غير محددة ينبغي العودة غير معرف.");
            تساوي(جيتباراميتيربينامي("غير موجود"), غير معرف, "في محاولة للحصول على قيمة المعلمة عندما نعلم المعلمة غير موجود.");

        });

        الوحدة النمطية("ملفات تعريف الارتباط");
        اختبار("كويزوتيل وظائف مختلفة في ملف تعريف الارتباط.", الدالة () {
            تساوي(setCookie("اختبار", "1", -1), جيتكوكيفالوي("اختبار"), "ينبغي العمل بالحصول على ملف تعريف ارتباط تعيين.");
            تساوي(setCookie("أنيكوكي", "1", -1), صحيح, "الإعداد الطبخ صالحة ينبغي العودة' صحيح '.");
            تساوي(setCookie("اسم ملف تعريف الارتباط مجنون !@#$%"%\^&*(()?/><.,", "1", -1), صحيح, "تحديد اسم ملف تعريف ارتباط سيئة ينبغي العودة' false '.");
            تساوي(setCookie(غير معرف, "1", -1), غير معرف, "تمرير معرف كاسم ملف تعريف الارتباط.");
            تساوي(جيتكوكيفالوي("غير موجود"), "", "لا يوجد ملف تعريف الارتباط اختبار.");
        });

    </البرنامج النصي>
</رئيس>
<الهيئة>
    <div معرف= "كنت"></div>
    <div معرف= "كنت لاعبا أساسيا"></div>

</الهيئة>
</html>

وهناك العديد من الأمور التي تحدث هنا:

  1. الرجوع إلى قانون بلدي (QuizUtil.js)
  2. الرجوع إلى Qunity.js
  3. تعريف بعض الوحدات النمطية (جيتيدفروملوكوب, ملفات تعريف الارتباط, وآخرون)
  4. وضع <div> هو له معرف "كنت".

ثم, أنا مجرد سحب هذه الصفحة، ويمكنك الحصول على شيء من هذا القبيل:

image

الشكل 3

إذا قمت بالبحث عبر الجزء العلوي, لديك عدد قليل من الخيارات, اثنان منها مثيرة للاهتمام:

  • إخفاء اجتازوا اختبارات: واضحة جداً.  يمكن أن تساعد عينيك فقط انظر مجالات المشاكل، وليس هناك الكثير من الفوضى.
  • الوحدة النمطية: (قائمة منسدلة): وهذا سوف تصفية الاختبارات وصولاً إلى مجرد تلك المجموعات من الاختبارات التي تريد.

أما بالنسبة للاختبارات أنفسهم – عدد قليل من التعليقات:

  • غنى عن القول أن كنت بحاجة لكتابة التعليمات البرمجية الخاصة بك مثل أن قابل للاختبار في المقام الأول.  باستخدام الأداة يمكن أن تساعد في إنفاذ هذا الانضباط. وعلى سبيل المثال, كان لي وظيفة تسمى "جيتوداياسكامل()”.  هذه ليست قابلة للاختبار جداً نظراً لأنه يأخذ لا وسيطة الإدخال، واختباره للمساواة, سوف نحتاج إلى استمرار تحديث التعليمات البرمجية الاختبار يعكس التاريخ الحالي.  إعادة بناء فإنه عن طريق إضافة معلمة إدخال بيانات ثم تمرير التاريخ الحالي عندما أريد تاريخ اليوم في تنسيق CAML.
  • إطار كنت الوثائق الخاصة الاختبارات ويبدو أنها قوية جداً.  فإنه يمكن القيام بأشياء بسيطة مثل اختبار للمساواة وأيضا الدعم لاستدعاءات أسلوب أجاكس (استخدام "حقيقية" أو سخر كل مستهزئ المفضلة الخاصة بك).
  • الذهاب من خلال هذه العملية أيضا قوات كنت أعتقد من خلال الحالات الحافة – ما يحدث مع "غير معرف" أو null يتم تمريرها إلى دالة.  فإنه يجعل من القتلى بسيطة لاختبار هذه السيناريوهات خارجاً.  الأشياء الجيدة.

التغطية مع Blanket.js

ويكمل Blanket.js كنت بتتبع الخطوط الفعلية من التعليمات البرمجية التي تنفذ أثناء تشغيل الاختبارات الخاصة بك.  أنه يدمج الحق في كنت حتى رغم أنها تطبيق كاملة منفصلة, أنه يلعب لطيف--أنها حقاً تبدو وكأنها واحدة من التطبيق السلس.

وهذا هو blanket.js في العمل:

image الشكل 4

image

الشكل 5

(لديك فعلا انقر فوق خانة الاختيار "تمكين التغطية" في الجزء العلوي [انظر الشكل 3] لتمكين هذا.)

الخطوط المميزة في الشكل 5 لم يتم تنفيذها قبل أي من بلدي التجارب, لذا تحتاج إلى وضع اختبار الذي تسبب لهم بإعدام إذا أريد تغطية كاملة.

الحصول على blanket.js العمل باتباع الخطوات التالية:

  1. تحميل البرنامج من http://blanketjs.org/.
  2. إضافته إلى المشروع الخاص بك
  3. تحديث الصفحة مفعل الاختبار الخاصة بك (QuizUtil_test.html في حالتي) كما يلي:
    1. الإشارة رمز
    2. تزيين الخاص بك <البرنامج النصي> إشارة من هذا القبيل:
    <البرنامج النصي نوع= "نص/جافا سكريبت" src="QuizUtil.js" تغطية البيانات></البرنامج النصي>

Blanket.js تلتقط السمة "البيانات--الغطاء"، ولا عن السحر.  هوكس في كنت, تحديث واجهة المستخدم لإضافة الخيار "تمكين التغطية" وويلا!

ملخص (ليرة تركية; الدكتور)

كنت استخدامها كتابة حالات الاختبار الخاصة بك.

  • تحميل البرنامج
  • إضافته إلى المشروع الخاص بك
  • كتابة صفحة مفعل الاختبار
  • إنشاء الاختبارات الخاصة بك
    • إعادة بناء التعليمات البرمجية بعض التعليمات البرمجية الخاصة بك تكون قابلة للاختبار
    • كن مبدعاً!  أعتقد أن من الجنون, سيناريوهات مستحيلة واختبار لهم على أي حال.

استخدم blanket.js لضمان التغطية

  • تأكد من أن كنت تعمل
  • تحميل blanket.js وإضافته إلى المشروع الخاص بك
  • إضافة إلى صفحة مفعل الاختبار الخاصة بك:
    • إضافة مرجع إلى blanket.js
    • إضافة سمة "بيانات--غطاء" إلى الخاص بك <البرنامج النصي> العلامة
  • تشغيل الاختبارات كنت الخاصة بك.

ابدأ أنا لم أي من هذا من قبل، وكان بعض الأشياء البدائية تعمل في عدد قليل من الساعات. 

اختبار سعيدة!

</نهاية>

undefinedالاشتراك في بلادي بلوق.

اتبعني على التغريد في http://www.twitter.com/pagalvin

ضاغط آخر من أي وقت مضى عليك ارتداء?

[ملاحظة سريعة – هذه وظيفة طويلة جداً على وظيفة بفتح لفريق بلدي هنا في نيويورك، وكنت بحاجة للعيش في منطقة ثلاثي الدولة إذا كنت مهتما.]

انضم "الاستشارات تعرج" على مدى 18 وقبل أشهر وأن يجعل هذا مهمتي أطول دائم منذ 2007. لم أكن أنوي أنه بهذه الطريقة. قبل سلسلة من التنقل بين الوظائف التي بدأت مع بلدي قفزة في عالم SharePoint, كنت في مكان واحد لأحد عشر عاماً. وجدت أخيرا جديد, الدائمة للعمل لمدة طويلة هنا في سباق التعرج.

ويزداد هذا المكان وأنا بحاجة إلى بعض المساعدة للتحكم التي. عادة ما يسمى هذا نوع المساعدة أنا بحاجة إلى "مهندس الحلول SharePoint" على الرغم من أن لقد العثور على المهندس المعماري أكثر و/أو بشكل غير صحيح استخدام الكلمة في مساحة SharePoint لبعض الوقت الآن. لقد كنت تناضل حول كيفية بلوق عن هذا. أنا لا أريد أن ببساطة قائمة بها حفنة من النقاط في نمط النرد/الوحش. أيها الزملاء توظيف ممتازة وقد كان يفعل ذلك الفعل :). حتى, قررت أن تأخذ بنهج "يوم في الحياة". قراءته والنظر:

1) إذا كان الاستئناف و

2) إذا كنت تعرف في العظام يمكنك أن تفعل ذلك.

إذا كان الجواب نعم, الاتصال بي (paul.galvin@slalom.com) ودعونا نتحدث.

هذه ما يمكن أن تتوقعه للقيام في الأسبوع/الشهر نموذجية كمهندس حلول على فريقي:

  • تشغيل المشاريع, كثير من الأحيان أكثر من واحد في وقت واحد. بعض المشاريع الكبيرة، وحتى يمكنك أن تملك هذا المشروع واحد. "تشغيل" مشروع يعني أن لديك الرقابة والمسؤولية عن الجودة الشاملة لإيصال. في تقريبا كل حالة يجب عليك بعد الظهر وفريقا قويا حقاً للمشروعات الإنمائية, سيارات, الناس UX, إلخ., لدعم لك. ولكن عليك أن تكون الوجه الرئيسي يرى العميل, الصناديق الاستئمانية, إلخ. ليس هناك أي الاختباء في الظلال في هذا الدور :). كنت سوف فاتورة هذه المرة، والهدف أن تبقى لكم مشغول بما يكفي للقيام بهذا 80 في المئة من الوقت.
  • مساعدة مع الأعمال الورقية – يزرع, طلبات تقديم العروض, الطوابق – الأشياء كل شيء على ما يرام. وأعتقد أن لدينا لدينا عملية زرع أسفل ضيق جداً ومتينة حيث أنها إلى حد ما رسمي. إذا كنت تستخدم لكتابة يزرع اليوم, عمليتنا لن يكون تحديا بالنسبة لك. طلبات تقديم العروض – وهذه أصعب قليلاً. أنها تميل إلى أن تكون مفصل لتبدأ في الطبيعة وسحب طلبات تقديم العروض عادة في مؤلفات مختلفة متعددة. سواء كانت جيدة أو سيئة, ولكن أساسا جيدا. هذا ويمكن الحصول على سكرامبلي عندما كنا في حاجة إلى توفق الحاجة إلى خدمة ممتازة للعملاء أثناء محاولة أيضا للفوز بأعمال جديدة. ربما كنت لن تملك RFP ولكن سوف يطلب منك المساهمة بالمقاطع.
  • مكالمات المبيعات, ولكن ليس عن كثب. خلال شهر, يمكنك أن تتوقع أن تذهب على زوجين لمكالمات المبيعات مع فريق المبيعات لدينا. عليك أن تكون الشركات الصغيرة والمتوسطة في الغرفة, تدوين الملاحظات ومساعدتهم في صياغة الحل. ومع ذلك, أنك لن يطلب أو يتوقع أن التعامل مع دورة المبيعات من البداية إلى النهاية. لا تحتاج إلى "بيع,"تحتاج فقط أن يكون صوت العقل الخبراء في الغرفة هادئة. وهذا يبني الثقة والثقة، وهذا هو السبب كنت هناك. طبعًا, إذا كنت ترغب في بيع, ثم هناك مجال لك ينمو هنا أيضا.
  • المساعدة في توظيف. لدينا نوع من إحالة البرنامج, حتى إذا كنت تعرف حقاً الناس قوية في المجتمع التي تعتقد أنها ينبغي أن تكون جزءا من سباق التعرج, يمكنك أن تستفيد بهذه الطريقة. وقد كرسنا المجندين (من هم ممتازة) للقيام بحصة الأسد من هذا النوع من العمل. مساعدة الحقيقي هو إجراء المقابلات مع المرشحين – هم حسن صالح ثقافيا? أنها تعرف هذه الأشياء? يمكن جعل * بلادي * الحياة أسهل? 🙂 This comes in spurts, بضع مرات في الشهر, على الرغم من أن في بعض أشهر كنت لا تفعل ذلك على الإطلاق.
  • المساعدة في تحديد أفضل الممارسات, بناء الملكية الفكرية لدينا، وتجعلنا أكثر قدرة على المنافسة في السوق. كنت خبرة الرجل/غال. لقد كنت حول الكتلة – ليس فقط في SharePoint, ولكن لديك خبرة في التقنيات الأخرى وعاشت جيدة وسيئة (حتى الرهيبة) المشاريع في جميع أنحاء. وكنتيجة لذلك, يمكنك معرفة ما يصلح وما لا. سوف نريد منك أن تزودنا هذه التجربة على أساس يوما بعد يوم الناحية التكتيكية (الأول-هاء. تشغيل المشاريع الخاصة بك حقاً جيدة) ولكن أيضا استراتيجيا. "أفضل الممارسات" يبالغ قليلاً كمصطلح وتتردد في استخدامه. والفكرة الأساسية هي أن كنت قادما كشخص ذوي خبرة مع خبرة عميقة وذات الصلة، ونحن نريد أن إدماج الأفضل للمعارف الخاصة بك في كيف ننخرط مع الزبائن على أساس يوم بيوم.
  • استمتع --نحن مجموعة متكاملة جداً. ترغب في تجنب ترهات أخرى, ولكن لأنها ملائمة حقاً في هذه الحالة – نحن نعمل بجد (نوع) ونحن نلعب حتى أصعب :). وهناك نوع آرون سوركين من المزاح هنا, الغرفة دائماً كامل من الشعب ذكي, نحن نحب لنا الشراب وننظم عدد لا بأس به من المرح الأحداث – ليلة الفيلم, رحلات البيسبول (حتى لو كانت الرهيبة, فرق الشر عمليا).

إذا كان يمكن أن خلاصة القول أن كل شيء في كلمة واحدة, وأود أن استخدام كلمة "القيادة". تؤدي المشاريع, الاضطلاع بدور رائد في بناء الممارسة (الملكية الفكرية, بناء الفريق), إلخ.

ولكن الانتظار! هناك ما هو أكثر! وإلا لماذا العمل في سباق التعرج?

  • ملحوظة وحدة القصد – الجميع يريد أن ينمو هذا الشيء خارجاً. "هذا الشيء" هو مكتب نيويورك. كل من على متن الطائرة مع هذا.
  • الرياح في أشرعة الخاص بك--الأخت المكاتب, الأخت الممارسات – التزلج المتعرج "دائرة كاملة" التشاور مع المنظمة. تؤدي ممارسة SharePoint ("ممارسة المنطقة تؤدي" في لغة سباق التعرج). لدى أخت في الممارسات في 11 مكاتب أخرى في سباق التعرج. لذا حتى ولو أنا الملك، بقدر SharePoint تشعر بالقلق هنا في نيويورك سباق التعرج, لدى ممارسات الأقران في شيكاغو, سياتل, دالاس, أتلانتا, بوسطن, إلخ. من الذي أنا يمكن أن تعتمد على الدعم. أنها حقاً الأفضل من كلا العالمين--استقلالية كبيرة هنا في نيويورك ولكن الحصول على طن من المواهب عبر المنظمة.
  • ريح في المبيعات الخاص بك (2) --نحن نفعل أكثر من SharePoint – أكثر بكثير. علينا القيام باستقصاء المعلومات, إدارة علاقات العملاء, UX, استشارات الأعمال, موبايل, الإنمائية المخصصة وآخرون. نحن جيدة في أي وقت عبر بيع فيما بيننا ونحن جيدة في اللوحة – والأهم من ذلك, تقديم – بناء على صورة "خدمات الكاملة" لعملائنا. هذا جاذبية خاصة بالنسبة لي. لقد كنت في orgs أصغر كثيرا من العمل في SharePoint من العربات وأحبطت مرارا وتكرارا لأننا كنا حمامة يتحصن كشعب "SharePoint". هذا لا يحدث مع تعرج ونحصل على القيام بعمل أكثر إثارة للاهتمام ونتيجة.
  • المحلية النموذجية – لا سفر.
  • النمو طويل الأجل – قد يحدث تعرج gangbusters. الكثير من النمو والاستقرار. النمو يعني أيضا أننا بحاجة إلى استئجار قادة اليوم إلى رئيس فرق جديدة كما نقوم بإضافة المزيد من العملاء والموظفين لدعم هؤلاء العملاء.

ويمكن أن تطول, بل لقد ذهبت ربما بالفعل فترة طويلة جداً. أعتقد لقد قبضت جوهر هنا. إذا كنت تفكر في تغيير وظائف وهذا تبدو جيدة بالنسبة لك, دعونا نتحدث.

إذا كنت سعيداً في وظيفتك الحالية--دعونا نتحدث على أي حال :). لقد تم في الكثير من الأماكن، وكان "سعيد" جداً في ذلك الوقت. يختلف سباق التعرج، وإنني أرحب بفرصة لإقناع لكم أنه.

</نهاية>

undefinedالاشتراك في بلادي بلوق.

اتبعني على التغريد في http://www.twitter.com/pagalvin

سريعة وسهلة: تعيين حجم العناصر في مربع قائمة في تطبيق مخزن Windows

في "المتجر" ويندوز وأنا خلق, أريد أن تظهر للمستخدم الرسائل الإعلامية المختلفة.  وقد اخترت ListBox كالأداة إظهار أنها بحيث أنها يمكن التمرير خلال الأشياء لهم وكل شيء على ما يرام. 

الرسائل معلوماتية فقط, لذا ليس هناك حاجة لتوفير مسافة بيضاء إضافية كل ما حولها حيث يمكن للمستخدم تحديد لهم ابدأ أي شيء.  السلوك الافتراضي ل ListBox يوفر كمية كبيرة من الحشو، وكنت أرغب في التخلص منه.  حسنا.... لا يمكنك أن تفعل هذا النوع من الشيء في ListBox مباشرة.  ومع ذلك, يمكنك القيام بذلك للبنود التي يمكنك إضافة:

        القطاع الخاص باطلة أدجاميستاتيلوجميساجي(السلسلة ثيميساجي)
        {
            مربع النص t = الجديد مربع نص();
            t.Text = جاميستاتيكونتير     + ": " + ثيميساجي;
            t.TextWrapping = TextWrapping.Wrap;
            t.MinWidth = 400;
            سمك ثيسبادينج = الجديد سمك(5, 0, 5, 0);
            t.Padding = ثيسبادينج;
            t.FontSize = 12;

            ليستبوكسيتيم لي = الجديد ليستبوكسيتيم();
            لي.المحتوى = t;
            لي.ماكسهيت = 25;
            ثيسبادينج = الجديد سمك(5, 0, 5, 0);
            لي.الحشو = ثيسبادينج;

            GameStateLog.Items.Insert(0,لي);
        }

في ما ورد أعلاه, أنا إنشاء مربع نص وتعيين الخط الخاص به, الحشو, إلخ.

القادم, إنشاء ليستبوكسيتيم، وتعيين مضمونة إلى مربع نص منسق.

وأخيراً, أنا أدخل ليستبوكسيتيم في ListBox.  (أريد إظهار أحدث الرسائل في الجزء العلوي من القائمة, ومن ثم الإدراج(0,لي) بدلاً من إضافة بسيطة() الاحتجاج.).

أنا سوف يكون اللف هذا قليلاً قبل أنا حقاً سعيدة مع السلوك ListBox ولكن نمط المبينة أعلاه كان مثمرا جداً.  نأمل شخص آخر يرى أنه من المفيد.

</نهاية>

undefinedالاشتراك في بلادي بلوق.

اتبعني على التغريد في http://www.twitter.com/pagalvin