28-09-12, 12:44 PM
اضافة Event Receiver
يمكن اضافة Event Receiver لعدة انواع مختلفة في الشيربيونت ومن ضمنها القوائم lists والعناصر items والworkflows و المميزات features والمهام الإدارية لموقع SharePoint وسنقوم الان باضافة event receiver جديد للقائمة التي تم انشائها في القسم السابق من المقالة .
نبدأ عن طريق اختيار Event Receiver من صندوق Add New Item ونضع له اسم جيد وثم نضغط Add وستلاحظ بعدها ظهور SharePoint Customization Wizard كما هو موضح بالصور التالية :
نختار List Item Events كنوع للevent receiver ونختار custom task list ك event source ثم نضع صح على الcheckbox المقابل ل An item was added وبعدها نضغط Finish.
سوف ينشأ الفيجوال ستديو event receiver جديد وهو عبارة عن كلاس مشتق من الكلاس الأساسي Microsoft.SharePoint.SPItemEventReceiver وسوف يتم عمل override للميثود ItemAdded لذلك عدلها باضافة الكودات التالية والتي تقوم بوضع موعد الإنتهاء Due Date للtask الجديدة إلى 5 ايام من تاريخ البداية Start Date .
كود C#
كود VB.NET
سوف ترى تعارض نشر كما هو معروض في الصورة التالية عندما تحاول بناء وتشغيل المشروع . نضع صح على الخيار اسفل النافذة ونضغط Resolve Automatically.
عندما تضيف task جديدة لقائمة الtask التي انشأناها سابقاً سوف تلاحظ أن تاريخ الإنتهاء سوف يوضع بشكل تلقائي عندما يتم حفظ العنصر item.
انشاء SharePoint Workflows
تضمن الفيجوال ستديو 2010 دعم لنوعين من ال SharePoint Workflowsوهما sequential workflow و state machine workflow.
- * تمثل الworkflow المتسلسلة sequential كمجموعة من الخطوات التي تنفذ بالترتيب . فمثلاً عندما يتم اضافة مستند معين يتم ارسال بريد الكتروني إلى المشرف وعندما يقرأ المشرف هذا البريد فاما أن يوافق عليه واما أن يرفضه . فاذا تمت الموافقة عليه يتم نشر هذا المستند اما اذا تم رفضه فيتم ارسال بريد الكتروني للذي قام بوضعه ليخبره عن سبب عدم الموافقة عليه.
- *تمثل ال state machine workflow كمجموعة من الإنتقالات والأعمال والحالات (states) . يتم تعريف الحالة الإبتدائية للworkflow ويتم نقلها لحالة جديدة اعتماداً على event ما فمثلاً يمكن أن يكون عندك حالات مثل انشاء مستند ونشره ويكون هناك events تتحكم بالانتقال لهذه الحالات مثل ادخال مستند والموافقة عليه.
حتى ننشأ SharePoint Workflow جديد نضغط بالزر الأيمن على الProject في Solution Explorer ونختار Add وثم New Item وبعدها نختار Sequential workflow ونعطيها اسم MyWorkflow ونضغط Add.
سوف يقوم الفيجوال ستديو الان بتشغيل SharePoint Customization Wizard قم في الخطوة الاولى باعطاء اسم ذو معنى للworkflow وتأكد أن نوع الworkflow template المراد انشاءه هو List Workflow كما هو مبين في الصورة .
نحدد في الخطوة التالية الية عمل الworkflow والتي يجب انشائها عندما يتم بدأ جلسة الdebug . توضح الصورة التالية الخيارات الإفتراضية :
الخطوة الأخيرة في SharePoint Customization Wizard هي لتحديد كيفية بداية الworkflow , نترك الخيارات الإفتراضية كما هي ونضغط finish (تبدأ مع انشاء عنصر item) .
سوف ينشأ الفيجوال ستديو الworkflow ويفتحها في Workflow Designer كما هو مبين في الصورة التالية:
كما نعلم فإن الworkflow في الشيربوينت مبنية على محرك Windows Workflow لذلك لن نضيع وقتنا في هذه المقالة في كيفية عمل تعديل للworkflow .
ملاحظة : تعمل الworkflows في الشيربوينت 2010 على الاصدار 3.5 من الWindows Workflow.
يمكنك تجريب الworkflow التي انشاناها عن طريق تشغيلها في SharePoint installation المحلي حيث أنه عندما نقوم بتشغيل الsolution فإن الفيجوال ستديو سيقوم بعمل package ونشر للworkflow بشكل تلقائي مع المحددات التي وضعناها سابقاً . الان عندما تضيف اي مستند جديد إلى Shared Documents library فسوف يتم استدعاء الworkflow .
يمكنك عمل debug للworkflow عن طريق وضع breakpoints في الcode behind والتدرج خلال تنفيذ المشروع كأي مشروع اخر للفيجوال ستديو .
العمل مع المميزات Features
الFeatures موجهة بالاساس لSharePoint Administrator وتزودهم بطريقة لادارة العناصر المرتبطة ببعضها حيث أن كل عنصر تضيفه في مشروع الشيربوينت سوف يتم اضافته للFeatures.
يتم تخزين الFeatures ضمن مجلد Features في مشروع الشيربوينت ويتضمن الفيجوال ستديو Feature Designer ياتي عندما تضغط بشكل مزودج على Feature ما كما في الصورة التالية:
يسمح لك Feature Designer بوضع عنوان ووصف للfeatures وهي المعلومات التي ستعرض في الشيربوينت ويمكنك ايضاً وضع وضع النطاق للfeature إلى server farm كامل أو إلى جميع مواقع الويب في site collection او حتى موقع ويب معين أو جميع مواقع الويب في web application .
يمكنك اختيار تضمين أو استثناء عناصر معينة في feature ما بالFeature Designer فمثلا تم تضمين جميع عناصر الSharePoint في المشروع ضمن الfeature باستثناء MyWorkflow . واذا كان لديك اكثر من feature واحد في المشروع فيمكنك وضع تبعيات dependencies والتي تتأكد أنه لا يمكن تفعيل feature ما مالم يتم تفعيل feature اخرى .
يمكن للمدراء في الشيربوينت SharePoint Administrators أن يقوموا بتفعيل الfeatures او تعطيبها باستعمال Manage Site Features أو شاشة Site Features Adminstration في
Site Actions -> Site Settings
كما في الصورة التالية :
النشر والPackaging
يقدم الشيربوينت نمط Packaging مخصص يدعى Windows SharePoint Package (WSP) . يمكن لملفات WSP أن تحتوي على Features وتعريفات الموقع site definitions وقوالب templates و application pages والassemblies الإضافية .
يتم انشاء ملفات WSP في مجلد bin/deploy أو bin/release عندما تبني SharePoint Solution بالفيجوال ستديو 2010 . يمكن**أن ينصب*ملف WSP من قبل الأدمن على remote SharePoint server .
عندما تنشأ مشروع SharePoint يتم انشاء ملف Package definition في المشروع ضمن مجلد Packages .
يحتوي هذا الملف على وصف ما الذي يجب أن يحصل في ملف WSP .
يتضمن الفيجوال ستديو 2010 ادارة Package Designer و نافذة Packaging Explorer من اجل المساعدة في بناء الPackage .
اذا قمت بالضغط بشكل بزدوج على ملف الPackage سوف يتم فتح الملف مع ادوات التصميم كما توضح الصورة التالية التي تعرض ملف Package يتضمن application page و feature واحدة .
سيقوم الفيجوال ستديو بنشر كل العناصر في مشروعك بشكل تلقائي إلى SharePoint Installation محلي عند قيامك بالضغط على F5 مما يوفر عليك الكثير من الوقت والجهد .
يمكنك ايجاد خطوات النشر في صفحة خيارات المشروع والتي يمكن الوصول إليها عن طريق الضغط بالزر الأيمن على الSolution Explorer واختيار Properties كما في الصورة التالية:
يمكنك تحديد برنامج command-line أو سكريبت للعمل قبل وبعد قيام الفيجوال ستديو بنشر الsolution للSharePoint Installation المحلي . يمكنك الوصول لخطوات النشر الحقيقية عن طريق الضغط الزدوج على الconfiguration في قائمة Edit Configuration لتعرض لك صفحة deployment configuration.
ملاحظة : يمكنك ازالة مكونات الشيربوينت من الSharePoint installation المحلي عن طريق الضغط بالزر الأيمن على الProject في الSolution Explorer واختيار Retract.
خلاصة المقالة :
تعلمنا في هذه المقالة كيفية بناءSolutions *لMicrosoft SharePoint 2010 وقد رأينا كيف تسمح لنا ادوات تطوير الشيربوينت في الفيجوال ستديو 2010 لتطوير الweb parts والworkflows و القوائم بشكل سهل وبسيط .
هذه المقالة مجرد نظرة سطحية وتعريفية عن تطوير SharePoint 2010 . اذا اردت التعمق اكثر في هذا المجال قم بزيارة مركز مطوري SharePoint على الرابط التالي :
http://msdn.microsoft.com/sharepoint
وSharePoint Dev Wiki على الرابط التالي:
http://www.sharepointdevwiki.com
*ملفات المشروع كاملة :
http://www.4shared.com/file/l-yNrmS-/el-bukharicom.html
الكاتب /عبد العظيم بخاري
منقول منتدى فيجول بيسك
http://www.el-bukhari.com/2010/10/2010-sharepoint.html
يمكن اضافة Event Receiver لعدة انواع مختلفة في الشيربيونت ومن ضمنها القوائم lists والعناصر items والworkflows و المميزات features والمهام الإدارية لموقع SharePoint وسنقوم الان باضافة event receiver جديد للقائمة التي تم انشائها في القسم السابق من المقالة .
نبدأ عن طريق اختيار Event Receiver من صندوق Add New Item ونضع له اسم جيد وثم نضغط Add وستلاحظ بعدها ظهور SharePoint Customization Wizard كما هو موضح بالصور التالية :
نختار List Item Events كنوع للevent receiver ونختار custom task list ك event source ثم نضع صح على الcheckbox المقابل ل An item was added وبعدها نضغط Finish.
سوف ينشأ الفيجوال ستديو event receiver جديد وهو عبارة عن كلاس مشتق من الكلاس الأساسي Microsoft.SharePoint.SPItemEventReceiver وسوف يتم عمل override للميثود ItemAdded لذلك عدلها باضافة الكودات التالية والتي تقوم بوضع موعد الإنتهاء Due Date للtask الجديدة إلى 5 ايام من تاريخ البداية Start Date .
كود C#
إقتباس :/انظر لملف MyEventReceiver.cs
public*override*void*ItemAdded(SPItemEventProperties properties)
{
var*startDate =*DateTime.Parse(properties.ListItem["Start Date"].ToString());
properties.ListItem["Due Date"] = startDate.AddDays(5);
properties.ListItem.Update();
base.ItemAdded(properties);
}
كود VB.NET
إقتباس :'انظر لملف MyEventReceiver.vb
Public*Overrides*Sub*ItemAdded(ByVal*properties*As*SPItemEventProperties)
Dim*startDate = DateTime.Parse(properties.ListItem("Start Date").ToString())
properties.ListItem("Due Date") = startDate.AddDays(5)
properties.ListItem.Update()
MyBase.ItemAdded(properties)
End*Sub
سوف ترى تعارض نشر كما هو معروض في الصورة التالية عندما تحاول بناء وتشغيل المشروع . نضع صح على الخيار اسفل النافذة ونضغط Resolve Automatically.
عندما تضيف task جديدة لقائمة الtask التي انشأناها سابقاً سوف تلاحظ أن تاريخ الإنتهاء سوف يوضع بشكل تلقائي عندما يتم حفظ العنصر item.
انشاء SharePoint Workflows
تضمن الفيجوال ستديو 2010 دعم لنوعين من ال SharePoint Workflowsوهما sequential workflow و state machine workflow.
- * تمثل الworkflow المتسلسلة sequential كمجموعة من الخطوات التي تنفذ بالترتيب . فمثلاً عندما يتم اضافة مستند معين يتم ارسال بريد الكتروني إلى المشرف وعندما يقرأ المشرف هذا البريد فاما أن يوافق عليه واما أن يرفضه . فاذا تمت الموافقة عليه يتم نشر هذا المستند اما اذا تم رفضه فيتم ارسال بريد الكتروني للذي قام بوضعه ليخبره عن سبب عدم الموافقة عليه.
- *تمثل ال state machine workflow كمجموعة من الإنتقالات والأعمال والحالات (states) . يتم تعريف الحالة الإبتدائية للworkflow ويتم نقلها لحالة جديدة اعتماداً على event ما فمثلاً يمكن أن يكون عندك حالات مثل انشاء مستند ونشره ويكون هناك events تتحكم بالانتقال لهذه الحالات مثل ادخال مستند والموافقة عليه.
حتى ننشأ SharePoint Workflow جديد نضغط بالزر الأيمن على الProject في Solution Explorer ونختار Add وثم New Item وبعدها نختار Sequential workflow ونعطيها اسم MyWorkflow ونضغط Add.
سوف يقوم الفيجوال ستديو الان بتشغيل SharePoint Customization Wizard قم في الخطوة الاولى باعطاء اسم ذو معنى للworkflow وتأكد أن نوع الworkflow template المراد انشاءه هو List Workflow كما هو مبين في الصورة .
نحدد في الخطوة التالية الية عمل الworkflow والتي يجب انشائها عندما يتم بدأ جلسة الdebug . توضح الصورة التالية الخيارات الإفتراضية :
الخطوة الأخيرة في SharePoint Customization Wizard هي لتحديد كيفية بداية الworkflow , نترك الخيارات الإفتراضية كما هي ونضغط finish (تبدأ مع انشاء عنصر item) .
سوف ينشأ الفيجوال ستديو الworkflow ويفتحها في Workflow Designer كما هو مبين في الصورة التالية:
كما نعلم فإن الworkflow في الشيربوينت مبنية على محرك Windows Workflow لذلك لن نضيع وقتنا في هذه المقالة في كيفية عمل تعديل للworkflow .
ملاحظة : تعمل الworkflows في الشيربوينت 2010 على الاصدار 3.5 من الWindows Workflow.
يمكنك تجريب الworkflow التي انشاناها عن طريق تشغيلها في SharePoint installation المحلي حيث أنه عندما نقوم بتشغيل الsolution فإن الفيجوال ستديو سيقوم بعمل package ونشر للworkflow بشكل تلقائي مع المحددات التي وضعناها سابقاً . الان عندما تضيف اي مستند جديد إلى Shared Documents library فسوف يتم استدعاء الworkflow .
يمكنك عمل debug للworkflow عن طريق وضع breakpoints في الcode behind والتدرج خلال تنفيذ المشروع كأي مشروع اخر للفيجوال ستديو .
العمل مع المميزات Features
الFeatures موجهة بالاساس لSharePoint Administrator وتزودهم بطريقة لادارة العناصر المرتبطة ببعضها حيث أن كل عنصر تضيفه في مشروع الشيربوينت سوف يتم اضافته للFeatures.
يتم تخزين الFeatures ضمن مجلد Features في مشروع الشيربوينت ويتضمن الفيجوال ستديو Feature Designer ياتي عندما تضغط بشكل مزودج على Feature ما كما في الصورة التالية:
يسمح لك Feature Designer بوضع عنوان ووصف للfeatures وهي المعلومات التي ستعرض في الشيربوينت ويمكنك ايضاً وضع وضع النطاق للfeature إلى server farm كامل أو إلى جميع مواقع الويب في site collection او حتى موقع ويب معين أو جميع مواقع الويب في web application .
يمكنك اختيار تضمين أو استثناء عناصر معينة في feature ما بالFeature Designer فمثلا تم تضمين جميع عناصر الSharePoint في المشروع ضمن الfeature باستثناء MyWorkflow . واذا كان لديك اكثر من feature واحد في المشروع فيمكنك وضع تبعيات dependencies والتي تتأكد أنه لا يمكن تفعيل feature ما مالم يتم تفعيل feature اخرى .
يمكن للمدراء في الشيربوينت SharePoint Administrators أن يقوموا بتفعيل الfeatures او تعطيبها باستعمال Manage Site Features أو شاشة Site Features Adminstration في
Site Actions -> Site Settings
كما في الصورة التالية :
النشر والPackaging
يقدم الشيربوينت نمط Packaging مخصص يدعى Windows SharePoint Package (WSP) . يمكن لملفات WSP أن تحتوي على Features وتعريفات الموقع site definitions وقوالب templates و application pages والassemblies الإضافية .
يتم انشاء ملفات WSP في مجلد bin/deploy أو bin/release عندما تبني SharePoint Solution بالفيجوال ستديو 2010 . يمكن**أن ينصب*ملف WSP من قبل الأدمن على remote SharePoint server .
عندما تنشأ مشروع SharePoint يتم انشاء ملف Package definition في المشروع ضمن مجلد Packages .
يحتوي هذا الملف على وصف ما الذي يجب أن يحصل في ملف WSP .
يتضمن الفيجوال ستديو 2010 ادارة Package Designer و نافذة Packaging Explorer من اجل المساعدة في بناء الPackage .
اذا قمت بالضغط بشكل بزدوج على ملف الPackage سوف يتم فتح الملف مع ادوات التصميم كما توضح الصورة التالية التي تعرض ملف Package يتضمن application page و feature واحدة .
سيقوم الفيجوال ستديو بنشر كل العناصر في مشروعك بشكل تلقائي إلى SharePoint Installation محلي عند قيامك بالضغط على F5 مما يوفر عليك الكثير من الوقت والجهد .
يمكنك ايجاد خطوات النشر في صفحة خيارات المشروع والتي يمكن الوصول إليها عن طريق الضغط بالزر الأيمن على الSolution Explorer واختيار Properties كما في الصورة التالية:
يمكنك تحديد برنامج command-line أو سكريبت للعمل قبل وبعد قيام الفيجوال ستديو بنشر الsolution للSharePoint Installation المحلي . يمكنك الوصول لخطوات النشر الحقيقية عن طريق الضغط الزدوج على الconfiguration في قائمة Edit Configuration لتعرض لك صفحة deployment configuration.
ملاحظة : يمكنك ازالة مكونات الشيربوينت من الSharePoint installation المحلي عن طريق الضغط بالزر الأيمن على الProject في الSolution Explorer واختيار Retract.
خلاصة المقالة :
تعلمنا في هذه المقالة كيفية بناءSolutions *لMicrosoft SharePoint 2010 وقد رأينا كيف تسمح لنا ادوات تطوير الشيربوينت في الفيجوال ستديو 2010 لتطوير الweb parts والworkflows و القوائم بشكل سهل وبسيط .
هذه المقالة مجرد نظرة سطحية وتعريفية عن تطوير SharePoint 2010 . اذا اردت التعمق اكثر في هذا المجال قم بزيارة مركز مطوري SharePoint على الرابط التالي :
http://msdn.microsoft.com/sharepoint
وSharePoint Dev Wiki على الرابط التالي:
http://www.sharepointdevwiki.com
*ملفات المشروع كاملة :
http://www.4shared.com/file/l-yNrmS-/el-bukharicom.html
الكاتب /عبد العظيم بخاري
منقول منتدى فيجول بيسك
http://www.el-bukhari.com/2010/10/2010-sharepoint.html

