هر Solution که برای Sandbox ایجاد میشود ، در یک گالری خاص به نام Solution Gallery در Site Collection مربوطه ایجاد میشود و تمام این solutionها میتوانند قعال یا غیر فعال شوند .
برای استفاده از این مزایا باید سرویس Microsoft SharePoint Foundation User Code Service فعال باشد .
استفاده از Sandbox Solution نیازمند 3 چیز است :
1 - User Code Service یا SPUCHostService.exe : این سرویس وظیفه مدیریت کدهای Sandbox روی سرور و میزبانی درخواستهای Sandbox به سرور را دارد.
2 - Sandbox Worker Process یا SPUCWorkerProcess.exe : این سرویس برای مدیریت پردازش کدهای اجرایی Sandbox استفاده میشود خصوصا در مورارد امنیتی (فرض کنید درون کد حلقه بی نهایتی وجود داشته باشد. اگر بار اجرایی آن بر روی w3wp.exe باشد ، باعث متوقف شدن کارکرد تمام پروسه میشود. بار این مسئولیت بر دوش SPUCWorkerProcess.exe میباشد )
3 - Sandbox Worker Process Proxy یا SPUCWorkerProcessProxy.exe : این سرویس برای اجرای کدهای Client Object Model در sandbox استفاده میشود.
می توانید ارتباط پردازههای فوق را در نمودار زیر مشاهد کنید :
با توجه به این توضیحات به دلیل استفاده از Sandbox میپردازیم :
1 - sandbox Solutionها امن هستند.
2 - sandbox Solutionها میتوانند مانیتور شوند.
3 - sandbox Solutionها حداقل تاثیر را روی هم دارند.
4 - sandbox Solutionها عملیات I/O کمی روی فایلهای سیستمی دارند
5 - sandbox Solutionها امکان debugging دارند
6 - sandbox Solutionها امکان توسعه ، انتشار و به روز رسانی دارند
7 - sandbox Solutionها امکان تعریف Policy برای CAS ایجاد میکند (Code Access Security برای قابل اطمینان ساخت کد ها)
8 - sandbox Solutionها امکان اعتبار سنجی به کمک کلاس SPSolutionValidator را میدهد.
9 - sandbox Solutionها امکان تعریف SLA های مختلف را میدهد.
چه قسمت هایی توسط Sandbox Solution پشتیبانی میشود :
هنگام ایجاد یک پروژه از نوع sandbox در ویژوال استودیو ، یکسری امکانات از برنامه نویس سلب میشود و محدودیتهای برای استفاده از کلاسها برای وی اعمال میشود .موارد زیر ، از جمله مواردی هستند که توسعه دهنده میتواند از آنها در sandbox استفاده کند :
اسفاده محدود از لیستها ، کار با Web Templateها و ویژگیهای آنها ، Content Typeها و فیلدها ، ماژولها و فایلها ، وب پارتهای مشتق شده از کلاس WebPart ، برخی Event Receiverها ، بعضی از Custom Action و چرخههای کاری . و از مواردی که نمیتوان در sandbox استفاده کرد میتوان به ویژگیهای موجود در Web Application ، ویژگیهای موجود در Farm و Timer job ، استفاده از عملیات I/O و استفاده از ADO و برخی کلاسهای دیگر در دات نت اشاره کرد .
مدیران سایت میتوانند Solutionها را مونیتور کنند و برای Resource Point هایی که در یک روز مصرف میکنند Quota تعریف کنند .پیش فرض این مقدار 300 Resource Point در روز است .
هر solution در هنگام deploy شدن جهت معتبر بودن چک میشود و سپس منتشر شود. در صورتی که Valid نباشد ، خطایی به برنامه نویس نشان میدهد.
در انتها اشاره ای هم به استفاده از STSADM یا Powershell برای deploy کردن solution میکنم که توسط دستورات زیر قابل اجراست :
Add-SPSolution c:\code\SharePointProject2\bin\debug\SharePointProject2.wsp
stsadm –o addsolution –name SharePointProject2.wsp
همانطور که پسوند فایلهای solution را مشاهده میکند wsp هستند که اگر آنها را به cab تغییر نام دهید میتوانید محتویات آنها را مشاهده کنید