Wednesday, September 28, 2011

[مقالة] تنصيب 2010 SharePoint والبدء في العمل عليه

محتويات المقالة :

-  اعداد البيئة التطويرية للشيربوينت .
-  برمجة وتطوير مكونات معينة للشيربوينت مثل webparts و lists و workflows.
-  تصفح وتشغيل مشاريع الشيربوينت.
-  نشر مكونات ومشاريع الشيربوينت.

اصبح  Microsoft SharePoint في السنوات الأخيرة احد اسرع خطوط التطور والإنتاج في شركة مايكروسوفت , فهو في الواقع  عبارة عن مجموعة من المنتجات والتقنيات المترابطة معاً والتي تقدم خدمات عظيمة في مجالات التوثيق document وادارة المحتويات content management والبحث search وتطبيقات الويب بشكل عام .

نستطيع أن نعرف الشيربوينت بانه Platform مرن جداً لتطبيقات الويب  يسمح لنا بتطوير ونشر كل شيئ ابتداءً من الwebparts المستقلة وانتهاءً بمشاريع الويب الكبيرة . وعلى الرغم من أنه يمكن استعمال الشيربوينت لاستضافة مواقع الويب التي هي موجهة للزوار لكن المجال الأنسب له هو في المواقع التي تتضمن عضويات مسجلين وبشكل محدد اكثر تلك المواقع التي تخدم احتياجات الموظفين ضمن منظمة أو شركة ما. حيث أن الشيربوينت يزود تلك المواقع بكل ما تلزم ويقدم لها تكامل مميز مع Microsoft Office اضافة إلى دعمه لكودات التحقق الداخلي والتصديق authorization وامكانية الوصول للبيانات الخارجية external data ويقدم ايضاً دعم مميز للworkflows.

سنسلط الضوء في هذه المقالة على ادوات SharePoint التطويرية في Visual Studio 2010 وسنوضح كيفية بناء مشاريع الشيربوينت وتنقيحها ونشرها.


معلومة : اضافة إلى استعمال الفيجوال ستديو 2010 يمكنك انشاء مشاريع وحلول الشيربوينت باستعمال SharePoint Designer 2010 المجاني والذي يقدم نظرة سطحية منطقية عالية المستوى ويخفي كثير من الأمور الخلفية بعكس الفيجوال ستديو 2010 . يتضمن SharePoint Designer بعض ادوات WYSIWYG المميزة من اجل تصفح وتعديل المكونات بسهولة في مواقع الشيربوينت .
يمكننا اعتبار SharePoint Designer بأنه خيار رائع لغير المطورين (IT Professionals و المستخدمين end-users) لكن بكل الأحوال فهو يبقى مفيد كثيراً حتى للمطورين عند بناء مهام ترتيبة ومخططات للصفحة page layouts و master pages والتي يكون تطويرها في SharePoint Designer اسهل بكثير من الفيجوال ستديو . لذلك كثير من المطورين المتمرسين لا يستغنون عن هذه الأداة الرائعة .

تحضير البيئة التطويرية للSharePoint 2010

كان احد اكثر السلبيات للإصدارات السابقة من الشيربوينت أنها تتطلب استعمال windows server من اجل تطوير مشاريع الشيربوينت محلياً وذلك بسبب أن SharePoint 2007 وما قبله يحتاجون لنظام تشغيل سيرفر فكان يجب عليك أن تمتلك ويندوز سيرفر من اجل تنفيذ أي عملية تنقيح ومراجعة وتجريب لمشاريع الشيربوينت محلياً.

تم اخذ هذا الأمر بعين الإعتبار في SharePoint 2010 فيمكنك الان تنصيب الشير بوينت على ويندوز 7 او على الفيستا (sp1 فما فوق) اضافة لWindows Server 2008 . لكن لسوء الحظ سوف تحتاج لمواصفات عالية بعض الشيئ على الجهاز المحلي الذي تريد التطوير عليه لأن الشيربوينت 2010 يحتاج لنظام تشغيل 64 بت ويفضل أن يكون لديك 4GB للذاكرة RAM من اجل تنصيب SharePoint Foundation , اما اذا اردت تنصيب SharePoint Server فتحتاج من 6GB إلى 8GB من الذاكرة RAM .

معلومة : الفرق بين SharePoint Server و SharePoint Foundation
اتانا الشيربوينت 2010 باصدارين رئيسيين : SharePoint Server و SharePoint Foundation . كان الأخير يدعى سابقاً ب Windows SharePoint Services (WSS) وهو الإصدار المجاني للشيربوينت وهو مخصص للشركات والمشاريع الصغيرة ويتضمن دعم للwebparts وتطبيقات الويب وادارة الوثائق document management ومكونات الويب الإجتماعية والتعاونية مثل المدونات blogs و wikis و الcalendars والنقاشات discussions .
اما من الناحية الاخرى فقد تم اصدار SharePoint Server للمؤسسات الضخمة والمشاريع المتقدمة , وتتطلب هذه النسخة تكلفة لمنتج السيرفر نفسه اضافة إلى Client access license (CAL) لكل مستخدم .
تتضمن هذه النسخة من الشير بوينت جميع مميزات نسخة SharePoint Foundation اضافة لتزويدها بمواقع شيربوينت متعددة وتصفح متطور وبحث مفهرس index search ووصول للbackend data وتتميز ايضاً في دعم personalization و Single Sign ON .


اذا لم تكن تبني مشروع يتطلب المميزات المتقدمة للSharePoint Server فالافضل لك أن تستعمل SharePoint Foundation والذي يتطلب موارد اقل للجهاز . ولذلك لأن كل شيئ تبنيه في SharePoint Foundation يمكن ان يعمل على SharePoint Server.

تنصيب المتطلبات

اذا كان لديك ويندوز سيرفر فإن تنصيب الشيربوينت عليه هو امر سهل جداً . فنبدأ عملنا بتشغيل اداة فحص المتطلبات PrerequisiteInstaller.exe والتي تفحص وتنصب الإحتياجات المطلوبة بشكل تلقائي .
اما اذا كنت تريد التنصيب على انظمة ويندوز 7 او فيستا فالامر اصعب بقليل حيث أنه لا توجد لحد هذه اللحظة اداة مماثلة للمتطلبات فيجب عليك تنصيبها جميعا بشكل يدوي.
هناك متطلب اخر يجب أن تنصبه مهما كان نظام التشغيل الذي تعمل عليه وهو WCF Hotfix للويندوز والذي يمكنك تحميله من هذه الروابط :

Windows Vista أو  Windows Server 2008:
http://go.microsoft.com/fwlink/?linkID=160770

Windows 7  أو  Windows Server 2008 R2:
http://go.microsoft.com/fwlink/?LinkID=166231

اما بالنسبة للشيربوينت نفسه فيمكنك تحميله من الروابط التالي:

SharePoint Foundation 2010
http://www.microsoft.com/downloads/en/details.aspx?FamilyID=49c79a8a-4612-4e7d-a0b4-3bb429b46595&displaylang=en

SharePoint Server 2010
http://technet.microsoft.com/en-us/evalcenter/ee388573.aspx

بعد أن تقوم بتحميل الشيربوينت سوف يكون لديك ملف SharePoint.exe في حال حملت SharePoint Foundation أو OfficeServer.exe في حال حملت SharePoint Server . يجب أن نقوم بفك ضغط هذه الملفات لذلك قم بانشاء مجلد جديد مثل c:\SharePoint وقم بنسخ الملف الذي حملته اليه ومن ثم افتح قائمة ابدأ و شغل cmd ونفذ الأمر التالي:

c:\SharePoint\SharePoint.exe /extract:c:\SharePoint

في حال قمت بتحميل SharePoint Server فنفذ نفس الخطوات السابقة بوضع OfficeServer.exe بدلاً من SharePoint.exe .
ملاحظة : في حال كنت تنصب الشيربوينت من CD/DVD فهذه الخطوة غير ضرورية لان الملفات تكون مفكوكة الضغط وجاهزة.
في حال كنت تنصب الشيربوينت على ويندوز سيرفر فقم بتشغيل PrerequisiteInstaller.exe وبعدها انتقل للقسم التالي من الشرح (تنصيب SharePoint 2010) اما اذا كنت تنصب الشيربوينت على ويندوز 7 او ويندوز فيستا فيجب عليك تنصيب المتطلبات التالي يدوياً :

ملاحظة : كثير من هذه المتطلبات تنصب بشكل تلقائي عند تنصيبك للفيجوال ستديو 2010 و SQL Server 2008.

.NET Framework 4 : تنصب تلقائياً مع الفيجوال ستديو 2010
Windows PowerShell 2.0: تنصب تلقائياً مع الفيجوال ستديو 2010.
Windows Installer 4.5 Redistributable: تنصب تلقائياً مع الفيجوال ستديو 2010
Microsoft FilterPack 2.0:  يمكن أن تجده في نفس الملفات
c:\SharePoint\PrerequisiteInstallerFiles\FilterPack\FilterPack.msi.

Microsoft Sync Framework: تنصب تلقائياً مع الفيجوال ستديو 2010
SQL Server 2008 Native Client: تنصب تلقائياً مع SQL Server 2008.
Windows Identity Foundation Runtime Framework
http://www.microsoft.com/downloads/en/details.aspx?FamilyID=EB9C345F-E830-40B8-A5FE-AE7A864C4D76&displaylang=en

ADO.NET Data Services: تنصب تلقائياً مع الفيجوال ستديو 2010

Chart Controls:
http://www.microsoft.com/downloads/en/details.aspx?FamilyID=130f7986-bf49-4fe5-9ca8-910ae6ea442c&displaylang=en
Microsoft ADOMD.NET:
http://www.microsoft.com/downloads/en/details.aspx?FamilyID=b33d2c78-1059-4ce2-b80d-2343c099bcb4&displaylang=en.

بعد ذلك يبقى خطوة اخيرة وهي الذهاب لwindows features عن طريق لوحة التحكم - Programs and Features وثم اجعل الخيارات كالصور التالية :





لمعلومات اكثر عن المتطلبات انظر للمواضيع التالية:
متطلبات SharePoint Foundation 2010
http://technet.microsoft.com/en-us/library/cc288751.aspx
متطلبات SharePoint Server 2010
http://technet.microsoft.com/en-us/library/cc262485.aspx

تنصيب SharePoint 2010

الان بعد أن قمنا بتنصيب المتطلبات فيمكننا تنصيب SharePoint Foundation أو SharePoint Server . اذا كنت تعمل على ويندوز سيرفر يمكنك ببساطة تشغيل الinstaller : setup.exe اما اذا كنت تنصب على ويندوز 7 أو فيستا فسوف تحصل على الخطأ التالي عندما تحاول تشغيل setup.exe :



لازاله هذا الخطأ نحتاج لتعديل ملف الإعدادات config.xml والموجود في مجلد c:\SharePoint\files\Setup ونضيف السطر التالي 
tag <configuration>ل :
<Setting Id=”AllowWindowsClientInstall” Value=”True”/>

عندما نضيف هذا السطر زنحفظ التغييرات نقوم بتشغيل setup.exe ونتبع التعليمات في الinstaller ونختار Standalone installation  (تنصيب سيرفر جديد مستقل بالإعدادات الإفتراضية) وبعد انتهاء التنصيب سوف يتم تشغيل SharePoint Products Configuration Wizard وعند الإنتهاء من الwizard بنجاح سوف يتم فتح موقع الشيربوينت الإفتراضي في نافذة جديدة كما هو مبين:


تصفح واستكشاف SharePoint 2010

عندما ترى SharePoint  للمرة الاولى وتحاول استكشافه فانك سوف تتفاجأ وتصدم فيه وذلك لأن كثير من المصطلحات المستعملة في الشيربوينت ستكون غريبة عليك وغير اعتيادية حتى لو كنت محترف في ASP.NET . وقبل أن نبدأ بتطوير مشروع للشيربوينت فمن المفيد أن نفهم معاني بعض مكونات SharePoint مثل انواع المحتوى Content types و المميزات Features والevent receivers والقوائم lists والworkflows والweb parts .

تم تطوير الServer Explorer في الفيجوال ستديو ليقدم القدرة على استكشاف موقع الشيربوينت وتصفح مكوناته .

يجب عليك تشغيل الفيجوال ستديو بصلاحيات الأدمن حتى تتصل وتعمل connect لموقع الشيربوينت وحتى تطور وتجرب الSharePoint solution . ولعمل ذلك اضغط على اختصار الفيجوال ستديو 2010 بالزر الأيمن واختار Administrator Run as  .

ملاحظة : حتى تشغل الفيجوال ستديو 2010 بصلاحيات الأدمن دائماً قم بالضغط بالزر الأيمن على الإختصار واختار الخصائص properties وبعدها اختار تبويب Compatibility وضع صح على Run This Program as an Administrator .

افتح الServer Explorer عن طريق اختيار view وثم Server Explorer . يمكنك عمل connect  للشيربوينت فقط في حال كنت منصب الشيربوينت محلياً ويتم وضع الكونيكشن له تحت خيار SharePoint Connection بشكل افتراضي. يمكنك اضافة كونيكشن ل remote server  عن طريق الضغط على خيار SharePoint Connection بالزر الأيمن واختيار Add Connection.

عندما تختار مكون الشيربوينت في الServer Explorer فسوف يتم عرض خصائص ذلك المكون في صفحة الخصائص properties مع العلم أن هذه المعلومات هنا قابلة للقراءة فقط read-only .

توضح الصور التالية الServer Explorer والخصائص لموقع الشيربوينت.




لقد رأينا حتى الان كيفية عمل كونكت واستعراض لموقع الشيربوينت فدعنا نفهم قليلاً بعض المصطلحات الأساسية المستخدمة في الSharePoint .

- انواع المحتوى Content types : تقدم طريقة لتعريف انواع خاصة ومتميزة مثل اعلان أو document ما . يمتلك content type عدة حقول fields مرتبطة معه والتي تعرف الmetadata للمحتوى , فمثلاً نوع المحتوى document الموضوع في الصورة التالية لديه حقول مثل عنوان الdocument وتاريخ اخر تعديل له .

يمتلك نوع المحتوى content type ايضاً عدة properties والتي تعرف بعض الخصائص مثل القالب المستخدم للعرض والتعديل وانشاء instance لذلك الcontent type.

المميزات Features : هي مجموعة  من الموارد التي تمثل وظائف معينة بشكل منطقي logical set . فمثلاً يأتي مع الشيربوينت عدة features مثل قوائم الوثائق document lists والمكتبات document libraries وقوائم الإستفتاءات survey lists  .

تحتوي الfeatures على قوالب templates وصفحات pages وتعريفات قوائم list definitions و workflows ويمكن ايضاً ان تحتوي على موارد اخرى مثل الصور وملفات الجافا سكريبت و CSS.

تحتوي الfeatures ايضاً على event receivers والتي هي عبارة عن event handlers يتم استدعاءها عندما يتم تفعيل الfeatures  أو تعطيلها او تنصيبها أو ازالتها أو تحديثها . ويمكن ايضاً اضافة الevent receivers إلى عناصر الشيربوينت الأخرى مثل القوائم lists أو المواقع SharePoint Sites.

 القوائم lists : وهي اساسية جداً للشيربوينت وتستعمل في كل مكان تقريباً فالfeatures مثل الإستفتاءات surveys و الissues والمكتبات document libraries كلها مبنية على القوائم lists.

يحدد تعريف القائمة list definition الحقول والforms والviews (صفحات .aspx) واتواع المحتوى content types المرتبطة بالقائمة list. ويدعى التطبيق المعين للlist definition  ب list instance.

-  Workflows : تستعمل الworkflows في SharePoint 2010 من اجل عمل اتمتة automate لمهام العمل business processes . الSharePoint Workflows هي حقيقة مبنية على نفس محرك الworkflow (Windows Workflow Foundation أو WF) والتي ظهرت في .NET 3.5 .

يمكن للworkflows أن ترتبط مع موقع شيربوينت معين أو قائمة list أو حتى نوع محتوى content type.

-  Web Parts : هي عبارة عن web server controls يتم استضافتها في صقحة الweb Parts في الشيربوينت ويمكن للمستخدمين أن يعيدو صياغة صفحة الweb Parts كما يريدون , فيستطيعون اختيار عرض واحد أو اكثر من الweb Parts  في تلك الصفحة .
يمكن للweb Parts أن تعرض أي شيئ ببساطة كstatic label يزود بعض المحتويات لصفحة الويب وحتى form  كامل لادخال البيانات لعرض وتقديم خط بيانات العمل line of business data.

انشاء مشروع SharePoint

اصبحت تمتلك حتى الان خلفية جيدة عن المفاهيم والمصطلحات الأساسية في SharePoint ويمكنك الان انشاء اول solution لك في الشير بوينت .

قم باختيار File من الفيجوال ستديو 2010  وثم New وبعدها Project وثم اختار اللغة البرمجية التي تريد أن تعمل معها Visual C# أو Visual Basic .

سوف يتم عرض انواع مشاريع الشيربوينت كما في الصورة التالية :





هناك عدة قوالب لمشاريع الشيربوينت موجودة في الفيجوال ستديو 2010 واغلب هذه المكونات يمكنك انشاءها ايضا كعناصر مستقلة في SharePoint Solution .

لهذا الامر نختار new Empty SharePoint Project .

عندما تضغط OK سوف يتم تشغيل SharePoint Customization Wizard الموضح في الصورة التالية:



بامكانك هنا تحديد موقع ومستوى الحماية للتجريب ولعمل الdebugging . قم باختيار Deploy s  Farm Solution واضغط Finish .

معلومة : تعمل Sandbox Solutions في بيئة ذات وثوق جزئي partially trust مع access  لمجموعة ثانوية محددة من الوظائف . تراقب بيئة الSandbox مجموعة من الإجراءات التي تتعلق في الأداء ومن ضمنها الوقت التنفيذي للCPU واستهلاك الذاكرة ووقت تنفيذ استعلامات قاعدة البيانات .
لا يمكن تفعيل Sandbox Solution مالم يتم تمريرها في عملية validation . كل هذه الأمور تقدم ثقة وطمأنينة للSharePoint Administrator بأن اي مكون خطر تالف لن يؤثر على بقية بيئة الSharePoint .


سوف تلاحظ ظهور خيارين في الSolution Explorer عندما يتم انشاء مشروع الشيربوينت , وهذه الخيارات موجودة في كل مشاريع الشيربوينت ولا يمكن حذفها أو نقلها أو اعادة تسميتها .

يمكن لخيار ومجلد  Features أن يحتوي على SharePoint Feature واحد أو اكثر وكما ذكرنا سابقاً فالFeatures هي مجموعة  من الموارد التي تمثل وظائف معينة بشكل منطقي logical set , فعندما تضيف عنصر جديد في اي وقت مثل Visual Web Part أو Content type فسوف يتم اضافتها للFeatures تحت مجلد Features اما لFeature موجودة سابقاً أو أو سيتم انشاء Feature جديدة حسب نطاق العنصر item scope . سوف نناقش الFeatures في قسم لاحق في هذه المقالة .


يحتوي مجلد Package على ملف منفرد يعمل كالية نشر لمشروغ الشيربوينت . تمتلك الPackage امتداد WSP وهي مماثلة لملف التنصيب من ناحية منطقية وتحتوي على مجموعة من الFeatures والSite Definition بالإضافة لassemblies اضافية تم وضعها في موقع الشيربوينت . سوف نناقش الPackeges في القسم الاخير من هذه المقالة .

حتى نضيف مكون أو عنصر لهذا الsolution نضغط بالزر الأيمن على الproject في الSolution Explorer ونختار Add وثم New Item . وكما نرى في الصورة التالية فإن الشيربوينت وضع لنا عدة ضخم من الخيارات لمكونات الشيربوينت . نختار عنصر جديد ل Application Page وندخل myPage.aspx كاسم له ونضغط OK.



الApplication Page هي احدى انواع صفحات الويب لASP.NET والتي توجد في مواقع الشيربوينت . اغلب الصفحات التي يتعامل معها المستخدمون للشيربوينت هي في الواقع صفحات المحتويات Content Pages . ومع أن الفيجوال ستديو لا يحتوي على خيار او قالب لصفحات المحتوى Content Pages إلا أنه يمكن انشاءها وتعديلها عن طريق ادوات مثل SharePoint Designer أو باستعمال الObject Model للSharePoint Foundation .

يمكن اضافة صفحات المحتويات Content Pages إلى مكتبة الصفحات SharePoint Page Library ويمكن لهذه الصفحات أن تحتوي على dynamic Web Parts .

ملاحظة: يتكون الobject model  في SharePoint Foundation 2010  من اكثر من 70  Namespace ويقدم API تسمح لك بتفيذ المهام  الإدارية والخاصة  بالمستخدم بشكل برمجي  . توجد معظم الكلاسات في الاسمبلي Microsoft.SharePoint.dll و Microsoft.SharePoint.Client.dll ويمكن استعمال هذه الكلاسات للعمل مع بيئة SharePoint Foundation أو SharePoint Server محلياً.


على الرغم من أن الApplication Pages لا  يمكنها تنفيذ عدد من الأمور التي تستطيع صفحات المحتويات Content Pages تنفيذها فالأخيرة تملك دعم افضل بكثير لكودات التطبيقات المعينة لذلك تستعمل الApplication Pages  للوظائف الإدارية .



لا بد انك لاحظت أن الApplication Pages لا تضاف إلى الroot مباشرة عند انشاءها بل هي تضاف إلى مجلد فرعي اسمه بنفس اسم مشروعك ضمن مجلد جديد يدعى Layouts والذي لا يمكنك تغييره لكن تستطيع اسم المجلد الفرعي وقتما تشاء . يجب ان تعلم أن مجلد Layouts هو مثال على SharePoint Mapped Folder والذي هو اساساً اختصار لمجلد الشيربوينت الإعتيادي ويوفر علينا عناء تحديد المسار الكامل full path للمجلد في الsolution .

يمكنك اضافة Mapped Folder لمشروعك عن طريق الضغط بالزر الأيمن على الproject واختيار Add وثم SharePoint Mapped Folder وبعدها ستلاحظ ظهور صندوق حوار يحتوي على جميع مجلدات شيربوينت المتوفرة كما هو مبين في الصورة التالية :



يتم عمل render لصفحات الApplication باستعمال SharePoint master page اثناء وقت التشغيل لأنها تحتوي على عدة Content controls للASP.NET كPlaceholder لمواقع مختلفة في الmaster page . يمكنك اضافة أي محتويات ثابتة و HTML Controls و ASP.NET Web Controls في صفحة الApplication بالإضافة لامكانية تعديل الcode behind للصفحة .

يمكنك بناء وتشغيل المشروع كأي مشروع اخر بالضغط على F5 (Debug Mode) وسوف يقوم الفيجوال ستديو بعمل Package ونشر بشكل تلقائي للApplication Page إلى SharePoint Installation  المحلي .

بعدها ستشاهد الصفحة الرئيسية للشيربيونت على المتصفح وحتى نرى صفحة الApplication Page التي اضفناها نضع الرابط التالي في المتصفح بشكل يدوي :

http://ServerName/_layouts/ProjectName/MyPage.aspx

يمكنك عمل debug لصفحة الApplication بنفس الطريقة التي تعمل فيها debug لأي web form اخر في ASP.NET.



بناء مكونات شيربوينت معينة

سوف نشرح في هذا القسم لمحة تطويرية عن اكثر مكونات الشيربوينت شيوعاً

تطوير Web Parts

هناك وعان من الWeb Parts يمكن انشاءهم في الفيجوال ستديو 2010 وهما :

-  ASP.NET Web Parts : والتي هي جديدة على SharePoint 2010 ومشتقة من System.Web.UI.WebControls.WebParts.WebPart

ويمكننا استعمالها خارج الشيربوينت في اي تطبيق ويب للASP.NET يعمل implement لها . ويوجد في الفيجوال ستديو 2010 مصمم لها .

ملاحظة : لا يمكن استعمال ASP.NET Web Parts في Sandbox Solutions .

-  SharePoint-based Web Parts : وهي كنترول مشتق من كلاس Microsoft.SharePoint.WebPartPages.WebPart

يمكن استعمال هذه الWeb Parts في مواقع الشيربوينت فقط ولا يوجد أي دعم للdesign لهذه الWeb Parts في الفيجوال ستديو 2010 . لكن يمكنك بناء التصميم في الكود عن طريق عمل override للmethods : CreateChildControls() أو Render().

يفضل دائماً استخدام ASP.NET Web Parts لتطوير Web Part جديد ولعمل ذلك نضغط بالزر الأيمن على الProject في الSolution Explorer ونختار Add وبعدها New Item ونختار Visual Web Part ونكتب اسم MyWebPart ونضغط على Add.



لاحظ أنه تم اضافة عدة ملفات للمشروع . يمثل الملف MyWebPart.cs (أو MyWebPart.vb اذا كنت تستعمل VB) هي نقطة الدخول للWeb Part وهو الكلاس الذي يتم عمل instance منه عندما يتم تحميل الWeb Part اثناء وقت التشغيل runtime.

ملفا Elements.xml و MyWebPart.webpart هما عبارة عن ملفات mainifest مبنية على XML والتي تقدم metadata للشيربوينت حول هذه الWeb Part . اما ملف MMyWebPartUserControl.ascx هو عبارة عن .NET user control يقدم UI للWeb Part وهو المكان الذي يجب عليك تعديل الlayout والwebcontrol والcode behind فيه اذا كان ذلك مطلوباً .

بعد أن تقوم بتصميم الWeb Part واضافة ما تريد له اعمل للمشروع build وrun وسوف يقوم الفيجوال ستديو بعمل package ونشر للWeb Part بشكل تلقائي إلى موقع الشيربوينت المحلي. يمكنك اضافة الWeb Parts إلى صفحة معينة في الشيربوينت عن طريق اختيار Site Actions  ومن ثم Edit Page ونضغط على الtab المسمى Insert وبعدها نختار Web Part من الشريط من اجل عرض قائمة الWeb Parts المتوفرة . بعد ذلك سوف يتم عرض الWeb Parts تحت مجلد Custom بالوضع الإفتراضي كما هو مبين بالصورة التالية:



ملاحظة : يمكنك تغيير المجلد الذي تظهر الWeb Parts تحته عن طريق تعديل ملف Elements.xml.

انشاء انواع المحتويات Content types والقوائم lists

تعتبر انواع المحتويات Content types والقوائم lists من كتل البناء الأساسية في الشيربوينت ويستخدما لعمل implement لعديد من المميزات features.

قم بانشاء نوع محتوى جديد Content type عن طريق الضغط بالزر الأيمن على الproject في الSolution Explorer ونختار Add وبعدها New Item ومن ثم نختار Content type .وندخل My Content Type كاسم واضغط Add .



نختار بعدها Task كنوع محتوى اساسي من ال SharePoint Customization Wizard حتى نشتق منه ثم نضغط على finish . سوف يقوم الفيجوال ستديو بانشاء نوع محتوى جديد Content type والذي هو ببساطة تعريف مبني بالXML لنوع المحتوى في ملف Elements.xml .

بعدها ننشأ حقل خاص  لكي يتم استخدامه من قبل نوع المحتوى الجديد عن طريق اختيار new Empty Element من صندوق Add New Item وندخل اسم owner ونضغط add . بعد ذلك نضيف سطر الXML التالي لملف Elements.xml (الذي تم انشاءه مسبقاً) ضمن <Elements> :

<Field ID=”{3BA8B2E2-4BEA-4305-ACD2-9511C5E45738}”
Type="User"
Name="Owner"
DisplayName="Task Owner">
</Field>


ملاحظة هامة : يجب على كل حقل ننشأه أن يحتوي على ID مناسب . يمكنك توليد GUID جديد ضمن الفيجوال ستديو عن طريق اختيار Tools ثم Create GUID .

نعود الان لملف Elements.xml للMyContentType ونضيف سطر XML التالي تحت <FieldRefs> :وبذلك يصبح حقل owner متوفر لنوع المحتوى الجديد Content Type .

<FieldRef ID="{3BA8B2E2-4BEA-4305-ACD2-9511C5E45738}" Name="Owner">

بعديها ننشأ تعريف قائمة جديد SharePoint List Definition للContent Type عن طريق الضغط على Add New Item ونختار new List Definitions from Content Type ونسميه MyCustomTasksLists ونضغط Add وبعدها ستلاحظ أن الفيجوال ستديو سوف يعرض ال SharePoint Customization Wizard كما هو مبين في الصورة التالية:




ادخل display name وبعدها تأكد أنك اخترت MyContentType الذي انشأناه سابقاً من القائمة المنسدلة وايضاً تأكد أنك قد وضعت صح على add a list instance .



نحتاج اخيراً لعمل customization للlist instance حتى يتم عرض عنوان مفيد لانه يكون ProjectName – ListInstanceName بالوضع الإفتراضي . نفتح ملف Elements.xml تحت مجلد الlist instance : Listinstance1 وعدل الattribute المسمى Title في XML وبعدها احفظ الملف واضغط F5 لبناء وتشغيل المشروع .

عندما يتم فتح موقع الشيربوينت سوف ترى قائمة list جديدة في العمود على يسار الصفحة الرئيسية . نضغط على القائمة list وبعدها نضغط على items tab ونضغط على زر New Item لعرض صندوق اضافة عنصر جديد كما هو موضع في الصورة التالية:



لاحظ أن الحقل الجديد موضوع في اسفل الصندوق .


ملاحظة: يمكنك تعديل جوانب عدة للقائمة list ومن ضمنها اي الحقول التي يجب أن تظهر في الشكل التلقائي عن طريق تعديل ملف تعريف القائمة list definition المسمى Schema.xml.



اضافة 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#
//انظر لملف 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

عبد العظيم بخاري

No comments:

Post a Comment

Post a Comment