تُستخدم هذه الأداة للتأكد من أن الشيفرة المكتوبة في المجمعات Assemblies لا تحتوي على ما سيسبب مشاكل غير متوقعة في ذاكرة الخادم التي تعمل عليها التطبيقات أو ما يسمى بـ Memory Leaks.
متى يجب استخدام هذه الأداة
يجب استخدام هذه الأداة من قبل المطورين الذين يستخدمون واجهة برمجة التطبيقات API دائماً قبل إطلاق العمل للمستخدم النهائي وذلك لتجنب أي مشكلة في ذاكرة الخادم Server RAM.
كيف يتم استخدام هذه الأداة
1 - يفضل دائماً قبل استخدام هذه الأداة الحصول على الإصدار الأخير منها على الرابط التالي:
2 - الأداء هي عبارة عن ملف تنفيذي EXE File يجب تنفيذه ليتم تركيب الأداة على جهازك.
3 - بعد الانتهاء من الخطوات السابقة (يمكن تجاوز الخطوة رقم 2 في حال أن الأداة موجودة مسبقاً على جهازك), نفذ الآن الخطوات التالية لتنفيذ عملية اختبار المجمعة Assembly التي تستخدم واجهة برمجة التطبيقات لشيربوينت SharePoint API:
- افتح منفذ الأوامر Command Line ونفذ الأمر التالي:
cd C:\Program Files (x86)\Microsoft\SharePoint Dispose Check
ملاحظة: المسار الذي تم وضعه في الأمر السابق قد يتغير حسب المستخدم أو يمكن أن تغييره أثناء عملية تركيب الأداة على جهازك.
- الآن نفذ الأمر التالي لفحص الشيفرة في إحدى المجمعات Assembly كما يلي:
SPDisposeCheck.exe DLL_PATH >> c:\disposeReport.txt
علماً أن DLL_PATH هو المسار الكامل للمجمعة على جهازك. أما بالنسبة للمسار c:\disposeReport.txt فهو اختياري ولكن يفضل استخدام هذه الطريقة لكي يتم تخزين جميع نتائج الاختبار في ملف نصي بدلاً من عرضه على الشاشة.
- بعد الانتهاء من تنفيذ الأمر السابق افتح الملف النصي الذي تم تحديده في الأمر السابق. حيث سيحتوي هذا الملف على جميع الملاحظات إضافة إلى العدد الإجمالي لهذه الملاحظات.
4 - جميع الملاحظات التي تكون نتيجة استخدام هذه الأداة تتعلق باستخدام التابع Dispose أو العبارة using عند الوصول إلى كائن Object باستخدام واجهة برمجة التطبيقات SharePoint API, إضافة إلى ذلك فليس بالضرورة أن جميع الملاحظات التي ستظهر يجب حلها وذلك بناء على الوثائق التي تتحدث عن هذه الأداة, لذلك يجب عدم التعديل على الشيفرة المتعلقة بالشيربوينت قبل التأكد منها.
Thanks Ismail for your nice article.
ردحذفThis is a nice tool from microsoft to find out the undisposable objects but it's not accurate (100%) so you can also use Reflector Pro version to debug your code and trace undisposable objects inside your code and Microsoft.SharePoint.Dll.
من التجربة، هذه الأداة مفيدة ولكن لا تظهر دائما المشاكل، حيث تم تجربتها مسبقا وأوضحت عدم وجود خطأ بينما أظهر SharePoint Log وجود أخطاء في نفس الـ Assembly، أيضا قد يسبب PortalSiteMapProvider Class مشاكل تسريب للذاكرة، ولا تستطيع هذه الأداة اكتشافها لأنها لا تستخدم SPSite و SPWeb بشكل مباشر.
ردحذفNice tool I think it should be considered as part of reviewing stage before deploying solutions to production
ردحذفThank you