יישום iPhone מעניין

image צוות נייד כאן ב Slalom פיתחה יישום iPad מגניב מאוד המשלב מהגדלת מציאות מדומה עם יכולת במצב לא מקוון כדי לספק את מה שעשוי הטובה ביותר מאתר הרכבת התחתית של ניו יורק, ניתוב יישומים הזמינים כיום.

הנה האתר המתארת את היישום ביתר פירוט: http://www.nycstationfinder.com/.

אין לי כל מוצרי Apple ולכן אין אפשרות לבדוק אותו החוצה בעצמי, אך נראה מגניב. אני מקווה שהם יציאה אותו מעל לשם אנדרואיד בקרוב.

</קצה>

מנוי על הבלוג שלי.

עקוב אחרי הטוויטר ב http://www.twitter.com/pagalvin

MVP שוב

Microsoft re-awarded אותי עם MVP של SharePoint בראשון ליולי השנה וזה מרגש לא פחות מאשר בפעם הראשונה לפני ארבע שנים.

הקהילה SharePoint הוא פשוט מקום מדהים.  אני זוכר מתי נחשפתי לראשונה ל- SharePoint על-ידי המעביד הישן שלי, Conchango.  לא שמחתי על כך חיוך.  אני גרה עולם BizTalk עבור שנה או שנתיים המוביל עד שהעבודה שלי יש ועוד לפני כן, עבד בעולם ה"ילד אחר של אנשים וחברות שגרם החי מחוץ התקדמות התוכנה.  אני אומר "ה"ילד"מכיוון העולם SharePoint הוא דבר מלבד!

אני כל הזמן שמחה ונרגשת להיות חלק זה הקהילה המקוונת ביזאריים של אנשים אשר חשים באופן מוזר נאלצים בלוג אינסופית, לוותר שבתות שלהם בחינם כנסים, לרדוף לפורומים מקוונים, לבנות כל מיני מוצרים חינם whacked החוצה כדי להקים ב- CodePlex, ודבר אחר מאמצי הקהילה בכל הגדלים והצורות. 

אני לא יודע מה זה אודות מוצר זה שמעוררת כזה הכשרת וחושית, אבל אני מקווה שהוא מעולם לא שינויים.

</קצה>

מנוי על הבלוג שלי.

עקוב אחרי הטוויטר ב http://www.twitter.com/pagalvin

תן מאיר דוגמאות מוביל הדרך אימוץ SharePoint מוגברת

אזור רשומה בבלוג הראשון של BrightStarr "טהור" יצא לאור היום.  הנה טיזר:

היו המון שיחה בניהולי של סוף על נושא האימוץ SharePoint, במיוחד את העדרו. אף אחד לא רוצה לעבור הטרחה של תכנון חוות שרתים ותשתיות אבטחה, השתתפות בסדנאות, בהכנת מראה ותחושה מהודרות, עבודה על ארכיטקטורת מידע מוצק סלע אשר יעמוד תלאות החברה סדר ולבסוף, לתרגולי מילא תרועה רק כדי לגלות שלאחר שלושה חודשים go-live פחות מ 50% של החברה עובדים באמצעות SharePoint ואת רובם משתמשים בו כדי להחליף שרתי קבצים ישנים של רשת ("S:\ כונן").

אין פתרון מושלם (או בבלוג יחיד) הוא מתכוון לפתור הבעיה זו. עם זאת, יש הרבה דברים שניתן לעשות כדי להפחית את הסיכון פורטל האנמי של SharePoint. טכניקה אחת כזו היא "תבנית דוגמה הזוהר."

אני אשמח לדעת על אחרים אסטרטגיות אימוץ של SharePoint שבו אתה לשתף.  אם אתה משתף, נא להשאיר תגובה בבלוג BrightStarr.

לקרוא את כל העניין כאן: http://www.brightstarr.com/US/Pages/blog-view.aspx?BlogID=52

</קצה>

מנוי על הבלוג שלי.

עקוב אחרי הטוויטר ב http://www.twitter.com/pagalvin

"הגישה נדחתה” כדי default. aspx ב- SharePoint 2010 אתר משנה

אחד הלקוחות שלי לאויר עם SharePoint שלהם 2010 הסביבה כיום.  גילינו אחר קבוצה מסוימת של משתמשים לא יכולתי לגשת דף הבית המהווה ברירת מחדל.  SharePoint הגיב הרגילים "להיכנס כמשתמש אחר" ו- "הגישה נדחתה" או "בקש גישה" תגובה. 

כאשר השתמשנו הפונקציה "בדוק גישה" נחמד הוא אישר כי משתמשי הקצה באמת יש גישה.  עדיין, הם לא הצליחו להגיע לדף.

אני עשיתי הרבה כבישים לקצוות המלח שונים עד החלטתי להשוות בין ה-web parts בדף שבור מול דף עבודה דומה.  עשיתי את זה על-ידי העברת הדף במצב תחזוקה על-ידי הוספת".?תוכן = 1 "לדף. כל כך, הוא נראה כמו "http://server/subsite/subsite/default.aspx?תוכן = 1 ". 

זה הראה לי שני אינטרנט חלקים בשם "שגיאה" עם תיאור כמו "שגיאה" בדף מנותקים.  לא חשבתי לקחת כובע המסך בזמן.

הסרתי אותם ואת זה פתר את הבעיה.

ראיתי שאלה כמו זה מגיעים למעלה בפורום בעבר והייתי מאוד ספקנית לגבי התעקשותו של הפוסטר שהיה לו האבטחה מוגדר כהלכה.  אני * יודעת * לי האבטחה שנקבעה למעלה מימין חיוך  בפעם הבאה, אני אהיה יותר פתוחה, ספקנית פחות.

</קצה>

מנוי על הבלוג שלי.

עקוב אחרי הטוויטר ב http://www.twitter.com/pagalvin

XSLT ו- Mootools דוגם

אני עשו המון XSLT jQuery והמחשבה שניתן לשתף מקטעי כמה אחרים ייתכן שיהיו שימושיות עבורך בעתיד.

דוגמה 1: לפלוט JavaScript פשוט / jQuery ב- XSLT:

<xsl:התאמת תבנית = "משהו" xml:שטח = "לשמר">

  <!– ריק החוצה השדה המוסתר של מסננים ידידותי שאילתה –>
  <סקריפט סוג = "טקסט/javascript">
    $(המסמך).מוכן(פונקציה(){
      $("#QueryFriendlyFilters").ול("ריק");
    });
  </קובץ script>

</xsl:תבנית>

מעט מקרינה JavaScript תמתין הטעינה של הדף (בגלל $(המסמך).מוכן(…)) ולאחר מכן ערכות הערך של שדה מוסתר בשם QueryFriendlyFilters הערך הליטרלי "ריק".

דוגמה 2: השימוש <xsl:אם> כדי לבדוק "גדול מ",  "פחות", ועוד.

<xsl:התאמת תבנית = "משהו" xml:שטח = "לשמר">

  <div id = "fdcAllFilters">
 
    <xsl:אם test="@Count>0">
      <span class = "fdcFilterLabel">המסננים הנוכחיים:</טווח>
    </xsl:אם>

    <!– חומר נוסף קורה כאן. –>

</xsl:תבנית>

גזיר לעיל יבדוק אם תכונה בשם "לספור" יסוד "משהו" גדול מאפס.  ה-XML מאחורי זה יהיה משהו כמו:”

<משהו Count = "5" />

דוגמה 3: סוב בין כל הרכיבים, interspersing שיחות jQuery.

<!– סוב בין כל המסננים ולהציג הנכון  קישורים. –>
<xsl:עבור-כל בחירה = "UserFilter">

  <מחלקה = "FilterHref" href = "javascript:mySubmitPage('RemoveUserFilter','{@ ID}’)">[X]</של>

  <span class = "fdcFilterLabel"><xsl:הערך של select="@FilterValue"/></טווח>

  <סקריפט סוג = "טקסט/javascript">

    $(המסמך).מוכן(פונקציה(){
        <xsl:טקסט><![CDATA[$("#QueryFriendlyFilters").ול( ($("#QueryFriendlyFilters").ול() + " ]]></xsl:טקסט>\"<xsl:הערך של select="@FilterValue"/>\"<xsl:טקסט><![CDATA["));]]></xsl:טקסט>
    });

  </קובץ script>

</xsl:עבור-כל>

גזיר לעיל הוא מורכב ביותר, ייתכן שקיימות דרכים קל יותר לעשות זאת.

ה-XML מאחורי זה נראה בערך כך:

<UserFilter ID = FilterValue "123" = "xyzzy" />

מקטע זה איטראציה עד <UserFilter> צמתים. 

הוא מפיק תחילה עוגן תיוג אשר בעת לחיצה על הפעלת פונקציה JavaScript כבר בדף, "mySubmitPage" ומעביר את הערך של תכונה ב- <UserFilter> צומת בשם "מזהה". 

לאחר מכן, הוא מפיק מסוימים jQuery אשר ממתין לטעינת העמוד.  כי jQuery מעדכנת שדה מוסתר בשם "QueryFriendlyFilters" על-ידי הוספת הערך של תכונת FilterValue.  הערה כל מטורף <xsl:טקסט> ו <![CDATA[ … ]]> דברים.

זהו זה, התקווה שהיא מסייעת!

</קצה>

מנוי על הבלוג שלי.

עקוב אחרי הטוויטר ב http://www.twitter.com/pagalvin

PerformancePoint ושגיאה 33494

אחד הלקוחות שלי שנקרא היום כאשר סביבת PerformancePoint שלהם (ב- SharePoint 2010) נשברה.  באחד מהשרתים יישום בחווה היה אוזל שטח הדיסק.  בעת אשר, הלקוח להסרה "יותר מדי" ועצר הדברים עמ' כל תפקוד.  רכיבי web part שונים יראו "אירעה שגיאה בלתי צפויה. שגיאה 33494. פרטים נוספים הכניסה עבור מנהל המערכת":

image

הסתכלתי למעלה את השגיאה, לא מצאו שום דבר ספציפי "שגיאה-33494", אך זה פורומים MSDN הצבת היה שימושי: http://social.technet.microsoft.com/forums/en-us/sharepoint2010setup/thread/E1FE189D-7F89-455D-A98B-C1A12D8626AB

מצאתי ADOMD.NET כאן כרכיב ב- SQL Server 2008 ערכת feature Pack: http://www.microsoft.com/downloads/en/details.aspx?FamilyId=228DE03F-3B5A-428A-923F-58A033D316E1&displaylang=en

image

(לחץ להגדלה)

הורדה והתקנת אשר ותוקנו זה הכל.

אני חושב שזה יפה כלי יוצא דופן מעין שגיאות, אך אם פגעת בו, לך לפחות יש לך אפשרות.

</קצה>

מנוי על הבלוג שלי.

עקוב אחרי הטוויטר ב http://www.twitter.com/pagalvin

Lists.asmx, GetListItems ותיקיות

אני עושה קצת מחקר עבור מישהו היום סביב שירות האינטרנט list.asmx במסגרת של SharePoint 2010 (וגירסאות קודמות).  היא הצליחה לקבל את רשימת הפריטים בתיקיית הבסיס (כולל שמות תיקיות המשנה), אך לא היתה אפשרות לקבל פריטים בתוך תיקיות המשנה.  אני עשיתי את חלקם מביטים למצות והיא שאלה נפוצה באופן מפתיע.  עדיין, ושאני לא יכול לקבל תשובה טובה לשאלה פשוטה, "אם אני מכיר את התיקיה, כיצד ניתן לקבל את הפריטים בתיקיה?”  והאמת, אני לא מנסה כל מה קשה מאז כבר רציתי דמות זו אחת החוצה בכוחות עצמי קצת חיוך.

לשם ביצוע פעולה זו, יצרתי באתר בשם "תרחישים בלוגים" ואת רשימה מותאמת אישית בשם "רשימה עם תת תיקיות מותאמות אישית".  מכן יצרת תיקיות בשם:

  • השנה 2005
  • השנה 2006
  • השנה 2007

הוספתי מספר פריטים לתיקיה "השנה-2006".  דבר זה נראה:

image

החבר שלי לכתוב קוד C # אבל במקום שימוש ב- Java, מעטפת ה-SOAP היה מה היא באמת צריך.  כדי לקבל את זה, אני כתב מעט jQuery, ואז השתמש כנר כדי לקבל את השיחה בפועל של HTTP.

הנה jQuery רלוונטיים (העתקתי את הקוד למטה מתחת אם ברצונך לבצע העתקה/הדבקה):

image

הם המפתח הראשון היא לכלול שני <queryOptions> ו <QueryOptions> צומת.  המפתח השני הוא כי <תיקיה> צומת הוא URL שאליה ללקוח יש גישה.

ייתכן שקיימות דרכים אחרות להשיג את זה, אבל זה עבד טוב עבורי בעת שימוש ב- jQuery.

הנה מעטפת ה-SOAP עבור לעיל:

<soapenv:Xmlns מעטפה:soapenv =’http://schemas.xmlsoap.org/soap/envelope/’>                
  <soapenv:הגוף>
    <GetListItems xmlns =’
http://schemas.microsoft.com/sharepoint/soap/’>
      <listName>רשימה מותאמת אישית עם תיקיות המשנה</listName>
      <viewFields>  
        <ViewFields>
          <שם FieldRef =' כותרת’ />
          <שם FieldRef ='EncodedAbsUrl’ />
        </ViewFields>
      </viewFields>
      <queryOptions>
        <QueryOptions>
          <תיקיה>
http://demoserver1/בלוגים תרחישים/רשימות/מותאם אישית ברשימה עם תת תיקיות/שנה 2006</תיקיה>
        </QueryOptions>
      </queryOptions>
   
</GetListItems>
  </soapenv:הגוף>
</soapenv:מעטפה>

המון דוגמאות ודיון סביב זה הוביל אותי להאמין כי כל מה שדרוש לי היה <QueryOptions> וציין שם תיקיה.  בשבילי, אני זקוק לשני להקיף אותו בתוך <queryOptions> וכן לציין כתובת URL מלא <תיקיה> צומת.

הנה תוכנית ההתקנה של AJAX jQuery:

$(המסמך).מוכן(פונקציה() {
       var soapEnv =
           "<soapenv:Xmlns מעטפה:soapenv =’http://schemas.xmlsoap.org/soap/envelope/’> \
               <soapenv:הגוף> \
                    <GetListItems xmlns =’http://schemas.microsoft.com/sharepoint/soap/’> \
                       <listName>רשימה מותאמת אישית עם תיקיות המשנה</listName> \
                       <viewFields> \
                           <ViewFields> \
                              <שם FieldRef =' כותרת’ /> \
                              <שם FieldRef ='EncodedAbsUrl’ /> \
                          </ViewFields> \
                       </viewFields> \
                       <queryOptions> \
                         <QueryOptions> \
                           <תיקיה>http://demoserver1/Blogging תרחישים/רשימות/מותאם אישית ברשימה עם תת תיקיות/שנה 2006</תיקיה> \
                         </QueryOptions> \
                       </queryOptions> \
                   </GetListItems> \
               </soapenv:הגוף> \
           </soapenv:מעטפה>";

</קצה>

מנוי על הבלוג שלי.

עקוב אחרי הטוויטר ב http://www.twitter.com/pagalvin

תבניות זרימת SPD, טיפים וטריקים

נתתי את המצגת שלי היום בפסטיבל SharePoint בדנוור. הנה מצגת ה-PowerPoint עצמה: http://www.mstechblogs.com/paul/wp-content/uploads/2011/05/SharePointFest.pptx

מנוי על הבלוג שלי.

עקוב אחרי הטוויטר ב http://www.twitter.com/pagalvin

Lists.asmx, GetList, "ערך אינו יכול להיות null”

גיליתי היום בהם GetList() שיטת ב lists.asmx שירות האינטרנט צריך להיקרא היטב או זה נוטה לזרוק מסתורי "ערך אינו יכול להיות null" יוצא מן הכלל (ואת כל זאת בהנחה שבאפשרותך לקבל אחרי הודעת שגיאה כללית גרוע, "חריגה מסוג ' Microsoft.SharePoint.SoapServer.SoapServerException’ המערכת התריעה.")  באופן ספציפי, מצאתי לא יכול לספק כל סוג של קידומת על שיטת GetList.  הגזיר jQuery שלהלן ממחיש את הנקודה:

image

אם תעשי זאת, שירות האינטרנט מגיב עם "ערך אינו יכול להיות null" לפי זה כנר-בתנאי פרוטוקול HTTP:

<?גירסת xml = "1.0" קידוד = "utf-8"?>
  <סבון:מעטפה
     xmlns:סבון ="
http://schemas.xmlsoap.org/soap/envelope/"    
     xmlns:xsi = "
http://www.w3.org/ 2001/סכימת Xml-מופע
     xmlns:xsd ="
http://www.w3.org/ 2001/סכימת Xml">

  <סבון:הגוף>
    <סבון:אשמתו>
      <faultcode>סבון:שרת</faultcode>
      <faultstring>
        חריגה מסוג ' Microsoft.SharePoint.SoapServer.SoapServerException’ נזרק.
      </faultstring>
      <פירוט>
        <errorstring xmlns ="
http://schemas.microsoft.com/sharepoint/soap/">
ערך אינו יכול להיות null.
        </errorstring>
      </פירוט>
    </סבון:אשמתו>
  </סבון:הגוף>
</סבון:מעטפה>

בטח, אתה כנראה לא להוסיף את הקידומת "s0" בכוחות עצמך, אבל כלים מסוימים נוטים לעשות את זה (כמו ליקוי חמה).

זה עוד יותר מבלבל / מתסכל כי שיטות אחרות לסבול קידומות.  למשל, את GetListCollection שיטה לא אכפת אם הוא היה קידומת, אפילו עם קידומות שטויות כמו "xyzzy":

image

זה "ערך אינו יכול להיות null" נראה שכיחה למדי עם lists.asmx כך אני מקווה שזה יעזור למישהו החוצה בעתיד.

</קצה>

מנוי על הבלוג שלי.

עקוב אחרי הטוויטר ב http://www.twitter.com/pagalvin