DCSIMG
עמוד הבית| חבילות השירות שלנו| חומר חופשי| צור קשר
לצאת מארגז החול... - בלוג היועצים של מיקרוסופט ישראל

בלוג היועצים של מיקרוסופט ישראל

לצאת מארגז החול...

SharePoint 2010 כלול פתרון חדש: Sandboxed Solutions ("פתרון ארגז החול"), המאפשר "בידוד" של הקוד בהיבט של אבטחה וצריכת משאבים, כדוגמת: CPU, זיכרון, שאילתות לבסיס הנתונים של ה SharePoint. משמעות הדבר שהקוד יכול לרוץ באופן בטוח, מבלי להשפיע על יציבות שרתי ה SharePoint, ומאפשר למנהלי החווה שליטה ובקרה על ה Sandbox solutions שמותקנים בחווה.

הקוד של Sandbox Solution, פועל ב Lower trust level, ודבר זה מגביל את הפעולות שהקוד יכול לבצע, לדוגמה:

  • ה Sandbox solution מוגבל למספר מצומצם של Namespaces שניתן לעבוד איתם
  • לא ניתן לגשת למשאבים מחוץ ל SharePoint - כדוגמה בסיסי נתונים מותאמים אישית, קריאות ל Web Services, כתיבה וקריאה מהדיסק ויומן האירועים של השרת ...
  • ניתן לגשת לאובייקטים הנמצאים ברמה מתחת ל SPSite (כדוגמת SPWeb ו SPList), אבל לא ניתן לגשת לאובייקטים הנמצאים ברמה מעל ה SPSite (כדוגמת SPFarm)

לרשימה המלאה של האפשרויות: Sandboxed Solutions

האם ניתן לעקוף מגבלות אלו? כן!

ניתן לגשת למקורות מידע מחוץ ל SharePoint, בדרך פשוטה, באמצעות ה BCS שהינו חלק מ SharePoint 2010 Foundation. ה SharePoint מתייחס למקור נתונים זה, בדומה לכל רשימה אחרת הנמצאת ב Site Collection.

 במידה ויש צורך לבצע פעולות מתקדמות, דוגמת קריאות ל Web Services, גישה למידע שנמצא ב Site Collection אחר מזה שה Sandbox Solution  מותקן - גם לזה יש פתרון.

ניתן להריץ את הקוד מתוך Full trust proxies, לשם כך יש לבצע את הפעולות הבאות:

1) ליצור פרויקט SharePoint ריק ולבחור Deploy as farm solution

a. ליצור מחלקה שיורשת מ SPProxyOperation – מחלקה זו מבצעת את הקוד אותו רוצים להריץ מתוך ה Sandbox Solution

b. ליוצר מחלקה נוספת יורשת מ SPProxyOperationArgs – מחלקה זו תשתמש כאמצעי להעברת פרמטרים בין שני הפרויקטים/מודולים

c. להגדיר ב AllowPartiallyTrustedCallers בקובץ ה AssemblyInfo

2) לרשום את ה ProxyOperation ב SharePoint

3) ליצור פרויקטים נוספים לפי הצורך, מסוג SharePoint Sandbox solution, שיבצעו קריאות ל DLL הנ"ל

כל אחת מהשיטות הנ"ל מוסברת בהרחבה במאמר: Hybrid Approaches

מצ"ב תיאור התהליך וצילומי מסך מפרויקט דוגמה, בו יוצרים Webpart, הכותב נתונים לדיסק שבשרת (מה שלא ניתן לעשות באופן סטנדרטי בפרויקט Sandbox solution).

שלב 1) יצירת פרויקט SharePoint סטנדרטי, לדוגמה בשם Contoso.SP.FullTrustCode

image

שלב 2) הגדרת AllowPartiallyTrustedCallers בקובץ ה AssemblyInfo.cs

image

שלב 3) יצירת מחלקה בשם MyFullTrustCodeArguments שיורשת מ SPProxyOperationArgs

image

שלב 4) יצירת מחלקה נוספת בשם MyFullTrustCode שיורשת מ SPProxyOperation

image

שלב 5) פריסת ה Solution בשרת באמצעות STSADM או PowerShell

image

שלב 6) רישום המחלקה הנ"ל ב SharePoint, באמצעות פקודת ה PowerShell הבאה:

שלב 7) יצירת פרויקט Sandbox Solution

שלב 8) הוספת webpart לפרוייקט, שצורך את ה MyFullTrustCode. הדבר מתבצע באמצעות קריאה לשגרה בשם SPUtility.ExecuteRegisteredProxyOperation והעברת שלושת הפרמטרים הבאים: Assembly, Class Name ופרמטרים לאתחול

image

לפרטים נוספים:

יואל

פורסם: Jan 13 2011, 03:28 PM by yoelh | with no comments
תגים:,
שלח תגובה

(שדה חובה)  

(שדה חובה)  

(אופציונלי)

(שדה חובה) 

Please add 2 and 6 and type the answer here:


Enter the numbers above: