الجمعة، 15 يوليو 2011

تثبيت حزمة الإصلاح الكاملة 1 لشيربوينت 2010


مقدمة
بعد سلسلة من حزم الإصلاح لشيربوينت 2010 أصدرتها مايكروسوفت وتُسمى Hotfixes أو Cumulative Updates, أصدرت مايكروسوفت مؤخراً حزمة الإصلاح الأولى Service Pack 1 for SharePoint 2010 والتي تتضمن جميع حزم الإصلاح المتفرقة السابقة إضافة إلى مجموعة من الميزات الجديدة التي سترافق هذه الحزمة, ويُعتبر تطبيقها على بيئة العمل الحقيقية ضرورة يجب عدم التهاون فيها لما تحتويه من تحسينات على عمل شيربوينت 2010 سواء من ناحية الأداء أو من ناحية الأمان أو فيما يتعلق بميزات شيربوينت وخدماته.

الحصول على حزمة الإصلاح الكاملة لشيربوينت 2010 Service Pack 1 for SharePoint Server 2010

تتضمن حزمة الإصلاح الكاملة Service Pack 1 for SharePoint Servcer 2010 عدة ملفات يجب أن يتم أخذها بعين الاعتبار أثناء عملية تحميل هذه الحزمة على بيئة عمل شيربوينت 2010.
حزمة الإصلاح الكاملة Service Pack 1 for SharePoint Foundation 2010 على الرابط التالي:

حزمة الإصلاح الكاملة للغة العربيةMicrosoft SharePoint Foundation 2010 Language Pack Service Pack 1 على الرابط التالي:
حزمة الإصلاح الكاملة Service Pack 1 for SharePoint Server 2010 على الرابط التالي:
حزمة الإصلاح الكاملة للغة العربية Service Pack 1 for Server Language Pack 2010 على الرابط التالي:
Service Pack 1 for Microsoft Office Web Apps 2010
حزمة الإصلاح Cumulative Update June 2011
http://support.microsoft.com/kb/2536599


كيفية تحميل حزمة الإصلاح الكاملة على بيئة عمل شيربوينت 2010
يجب الالتزام بالترتيب المذكور في وثائق مايكروسوفت حول حزمة الإصلاح الكاملة وهي كما يلي:
  1. Service Pack 1 for SharePoint Foundation 2010.
  2. Microsoft SharePoint Foundation 2010 Language Pack Service Pack 1.
  3. Service Pack 1 for SharePoint Server 2010.
  4. Service Pack 1 for Server Language Pack 2010.
  5. Service Pack1 for Office Web Applications (عند وجود حزمة Office Web Application على مزرعة شيربوينت 2010 الحالية).
  6. June 2011 Cumulative Updates.
ملاحظة: في حال أن بيئة عمل شيربوينت 2010 الحالية هي SharePoint Server 2010 فيجب البدء من الخطوة رقم 3.


الخطوات المفضلة لتنفيذ عملية تحميل حزمة الإصلاح الكاملة Service Pack 1 for SharePoint Server 2010 Steps
  1. وضع جميع الملفات الثنائية لحزم الإصلاح المذكورة سابقاً على جميع الخوادم ضمن مزرعة شيربوينت 2010 SharePoint Server 2010 Farm.
  2. تحويل جميع قواعد بيانات المحتوى تطبيقات الويب Content Databases إلى نمط القراءة فقط Read Only وذلك لمنع أي عملية تغيير قد تحصل على بيانات تطبيقات الويب أثناء تنفيذ خطوات تحميل حزمة الإصلاح الكاملة لشيربوينت 2010.
  3. تنفيذ عملية نسخ احتياطي لجميع قواعد البيانات الخاصة ببيئة عمل شيربوينت بما فيها قواعد البيانات الخاصة بموقع الإدارة المركزية Central Administration وقاعدة بيانات إعدادات بيئة عمل شيربوينت 2010 Configuration Database , وبالطبع قواعد بيانات المحتوى Content Databases.
  4. تنفيذ عملية نسخ لجميع الملفات الموجودة تحت المسار c:\inetpub\wwwroot\wss\VirtualDirectories.
  5. منع أي طلب من الوصول إلى خوادم مزرعة شيربوينت 2010 SharePoint 2010 Farm.
  6. البدء بتشغيل الملفات الثنائية لحزم الإصلاح الكاملة حسب الترتيب السابق. ويمكن تشغيل هذه الملفات على جميع الخوادم ضمن مزرعة شيربوينت 2010 بنفس الوقت لأن تأثير هذه العملية لا يتم تنفيذه إلى بعد تشغيل SharePoint Configuration Wizard.
  7. التأكد من انتهاء تحميل جميع الحزم الكاملة على جميع الخوادم, يجب تشغيل الأداة SharePoint 2010 Configuration Wizard على الخادم الذي يعمل عليه موقع الإدارة المركزية Central Administration.
  8. ستبدأ عملية تطبيق حزم الإصلاح بشكل فعلي الآن ولا يمكن التراجع عن هذه الخطوة, وفي حال حدوث أي خطأ أثناء هذه العملية يجب معرفته والعمل على حله بشكل صحيح ومن ثم إعادة تشغيل SharePoint 2010 Configuration Wizard على الخادم الذي يعمل عليه موقع الإدارة المركزية Central Administration.
  9. بعد الانتهاء من الخطوة رقم 8 بنجاح ابدأ بتشغيل SharePoint 2010 Configuration Wizard على باقي الخوادم بشكل متسلسل وتأكد من حل جميع المشاكل والأخطاء التي قد تحدث أثناء هذه العملية. علماً أن نجاح هذه العملية على أحد الخوادم إشارة جيدة إلى أنها ستنجح بنسبة 98% على باقي الخوادم.
  10. بعد الانتهاء من تنفيذ SharePoint 2010 Configuration Wizard على جميع الخوادم بشكل ناجح, يجب الآن الانتقال إلى موقع الإدارة المركزية Central Administration والتأكد من أن جميع الخدمات السابقة تعمل بشكل صحيح.

ملاحظة: يجب على مدير مزرعة شيربوينت 2010 SharePoint 2010 Farm التأكد من تحميل جميع حزم الإصلاح المتعلقة بجميع الخدمات المتوفرة على بيئة العمل مثل Project Server 2010 و TFS 2010 وغيرها والتي لم يتم التطرق إليها أعلاه.


تحديث بتاريخ 17-07-2011
يجب إعادة تثبيت June 2011 Hotfix على بيئة عمل شيربوينت 2010 في حال أنه تم تثبيت النسبخة June Hotfix قبل 08-07-2011 وذلك بسبب وجود بعض المشاكل التي ظهرت نتيئجة النسبة القديمة, ويمكن تحميلها من الرباط التالي


الاثنين، 11 يوليو 2011

كيف تستخدم الأداة SPDisposeCheck

الهدف من الأداة SPDisposeCheck
تُستخدم هذه الأداة للتأكد من أن الشيفرة المكتوبة في المجمعات 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, إضافة إلى ذلك فليس بالضرورة أن جميع الملاحظات التي ستظهر يجب حلها وذلك بناء على الوثائق التي تتحدث عن هذه الأداة, لذلك يجب عدم التعديل على الشيفرة المتعلقة بالشيربوينت قبل التأكد منها.

الأحد، 3 أبريل 2011

كيف تستخدم جزء الويب المرئي - 1


إن حزمة التحسينات التي تم نشرها مع بيئة التطوير المتكاملة Visual Studio 2010 تعتبر من أهم المزايا التي سهلت عمل المطورين على شيربوينت 2010 من خلال هذه البيئة, ولعل من أهم التحسينات هي جزء الويب المرئي Visual Web Part الذي سهل عملية بناء أجزاء الويب على شيربوينت 2010, وهذا النوع من أجزاء الويب يتألف من قسمين, الأول هو عبارة عن صف class يعبر عن جزء الويب نفسه, والثاني هو عبارة عن عنصر تحكم Web User Control (ascx), ويسمى هذا النوع بجزء ويب مرئي لأن المطور يستطيع استخدام عنصر التحكم ascx لوضع جميع العناصر التي يحتاجها في بناء جزء الويب الجديد, ويتكفل القسم الأول (وهو الصف class) الذي يعبر عن جزء الويب نفسه بتحميل عنصر التحكم ascx في وقت التنفيذ. وفي هذه المقالة سنناقش جميع عناصر جزء الويب المرئي بكامل تفاصيله.

أولاً يجب إنشاء مشروع جديد باستخدام بيئة التطوير Visual Studio 2010 من التصنيف SharePoint  2010, وعندها يمكن الاختيار بين أحد القالبين Empty SharePoint Project أو Visual Web Part, والفرق أن القالب الثاني يضيف بشكل تلقائي جزئ ويب واحد افتراضي إلى المشروع, أما باستخدام الأول فيتم إنشاء مشروع شيربوينت 2010 فارغ تماماً ولا يحتوي على أي عنصر إضافي, وفي هذه المقالة سيتم استخدام القالب Empty SharePoint Project وبعدها ستتم إضافة جزء ويب مرئي.



الخطوة الثانية هي تحديد مجموعة المواقع Site Collection التي سيتم نشر جزء الويب الجديد عليها, حيث يجب تحديد اسم الخادم الذي يعمل عليه شيربوينت 2010 مع رقم المنفذ Port Number كما في الشكل التالي, مع ملاحظة أنه لاداعي لإدخال رقم المنفذ في حال أنه يساوي 80:



بعد ضغط زر إنهاء Finish يتم إنشاء المشروع الجديد الذي سيحتوي على جزء الويب المرئي الذي سيتم تطويره في هذه المقالة:



الخطوة التالية هي إضافة جزئ ويب مرئي جديد إلى المشروع الذي تم إنشاؤه في الخطوة السابقة:





بعد إضافة جزء ويب مرئي جديد يتم إنشاء الملفات الخاصة بجزء الويب إضافة إلى إضافة ميزة Feature التي ستستخدم لنشر جزء الويب المرئي الجديد إلى الموقع الذي تم تحديده في الخطوة الثانية من إنشاء المشروع السابق:



نلاحظ أن جزء الويب المرئي الجديد يتألف من العناصر التالية:
  • CalculatorVisualWebPart, وهو عبارة عن الحاوية الرئيسية لجزء الويب المرئي وعند الضغط عليه مرتين يفتح عنصر التحكم CalculatorVisualWebPartUserControl.ascx.
  • وهو الصف class الذي يعبر عن جزء الويب نفسه, فمن المعلوم أن جزء الويب Web Part هو عبارة عن صف يرث الصف WebPart من فضاء الأسماء System.Web.UI.WebControls.WebParts, المهم أن هذا الصف يحتوي على الشيفرة التالية:



    حيث أن المتغير _ascxPath يحتوي على المسار الذي سيحتوي على عنصر التحكم ascx الذي سيتم تحميله في وقت التنفيذ من خلال الشيفرة في المنهج CreateChildControls().

    ملاحظة: يمكن تغيير مسار عنصر التحكم عند الضرورة إلى مجلد آخر بشرط تغييره في الملف SharePointProjectItem.spdata الذي سيأتي شرحه لاحقاً. مع العلم أن القسم الأول في مسار عنصر التحكم وهو _CONTROLTEMPLATES هو عبارة عن مجلد افتراضي Virtual Directory يشير إلى المجلد الفيزيائي التالي:

    C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\TEMPLATE\CONTROLTEMPLATES

    أما بالنسبة لباقي المسار فإن VisualWebPartArticle هو اسم المشروع و CalculatorVisualWebPart هو اسم جزء الويب المرئي ذاته, ويمكن تغيير هذين المسارين, أي ليس من الضروري الالتزام بهذه الطريقة المسار وإنما يتم توليد هذا المسار من خلال بيئة التطوير Visual Studio 2010 بشكل تلقائي كطريقة لمنع تكرار المسار ويجب على المطور تغيير هذا المسار ليتوافق مع إعدادات المشروع التي يعمل عليها, فمثلاً لو كان اسم المشروع الذي يعمل عليه هو SYRDEV وأنشأ مجلداً اسمه SYRDEV تحت المجلد الافتراضي _CONTROLTEMPLATES فمن الأفضل نقل مسار جزء الويب المرئي الجديد إلى تحت المجلد SYRDEV كنوع من الترتيب وحصر ملفات المشروع تحت مسار واحد.
  • هذا الملف هو عبارة عن ملف نصي يحتوي على شيفرة بصيغة XML, هذه الشيفرة تكون مفهومة من قبل الجزئية المسؤولة عن إدارة أجزاء الويب في شيربوينت 2010. ويجب المحافظة على هيكلية هذا الملف مع إمكانية التعديل على بعض القيم المتوفرة في الملف, وفيما يلي شرح لهذه القيم:
    • type: قيمة هذا العنصر هي المسار الكامل للصف الذي يعبر عن جزء الويب نفسه والموجود في الملف CalculatorVisualWebPart.cs الذي تم شرحه سابقاً, وتتألف هذه القيمة من قسمين, القسم الأول هو اسم الصف مع فضاء الأسماء namespace.class_name وهو في مثالنا هنا يساوي القيمة التالية:

      VisualWebPartArticle.CalculatorVisualWebPart.CalculatorVisualWebPart

      أما القسم الثاني فهو الاسم الكامل للجمعة الناتجة عن بناء هذا المشروع ويعبر عنها في مشروعنا بالقيمة التالية:

      $SharePoint.Project.AssemblyFullName$

      طبعاً القيمة السابقة ليست القيمة الحقيقية وإنما هي اختصار في بيئة التطوير Visual Studio 2010 يتم استبدالها بالقيمة الحقيقية أثناء عملية النشر Deploy وستكون هذه القيمة مساوية للقيمة التالية:

      VisualWebPartArticle, Version=1.0.0.0, Culture=neutral, PublicKeyToken=14371a3110866f98

      مع العلم أن قيمة الخاصية PublicKeyToken ستكون مختلفة في المشروع الذي تنشئه أنت ويرجع إلى آلية توليد هذا الرقم.
    • importErrorMessage: هذه القيمة تُستخدم كرسالة خطأ عند حدوث مشكلة في تحميل نوع جزء الويب, بسبب مشكلة في المجمعة الخاصة به أو أية مشاكل في نشر جزء الويب, ونلاحظ وجود القيمة التالية:

      $Resources:core,ImportErrorMessage;

      وهذا التعبير هو تعبير الحصول على قيمة من ملف مصدر اللغة الذي اسمه core ومفتاح القيمة هو ImportErrorMessage, وسيتم استخدام هذا التعبير لاحقاً في هذه المقالة لتعيين عنوان ووصف جزء الويب إضافة إلى قيم أخرى.
    • بالنسبة للخصائص الأخرى مثل Title, Description فهي عبارة عن عنوان ووصف لجزء الويب بالترتيب.
  • CalculatorVisualWebPartUserControl.ascx: هذا الملف هو عنصر التحكم الذي أعطى صفة "مرئي" لنوع جزء ويب الجديد في شيربوينت 2010, وهو عنصر تحكم ASP.NET يمكن استخدامه تماماً كما يتم استخدامه في مشروع ASP.NET عادي بدون شيربوينت 2010, وهذا مما يعطي مرونة كبير للمطورين مقارنة بالشيفرة البرمجية اللازمة لتنفيذ نفس المخرجات في جزء الويب العادي. وطبعاً هذا الملف يحتوي على ملف لكتابة الشيفرة اسمه CalculatorVisualWebPartUserControl.ascx.cs.
  • Elements.xml: هذا الملف هو من أكثر الملفات شيوعاً عند استخدام بيئة التطوير Visual Studio 2010 لتطوير وبناء عناصر خاصة بشيربوينت 2010 وتختلف وظيفة هذا الملف باختلاف نوع العنصر الذي يتعامل معه يتم استخدام هذا الملف من قبل الميزة Feature التي ستستخدم لنشر جزء الويب المرئي الجاري تطويره, ويحتوي هذا الملف على الشيفرة التالية:


  • حيث تحتوي هذه الشيفرة على تعليمات تفيد تحديد المكان الذي سيحتوي على الملف CalculatorVisualWebPart.webpart, وهي قائمة مخفية اسمها wp تحت _catalogs, ولن يتم تغيير أية قيمة في هذا الملف ماعدا الخاصية Group حيث تحدد اسم المجموعة التي سيظهر تحتها جزء الويب أثناء محاولة إضافة جزء ويب جديد من خلال الضغط على "إضافة جزء ويب" في إحدى الصفحات, وسيتم تغيير قيمة هذه الخاصية لاحقاً بحيث تستخدم قيمة من ملفات مصدر اللغة أي أن اسم المجموعة سيختلف باختلاف اللغة المستخدمة في الموقع.
  • SharePointProjectItem.spdata: هذا الملف هو أحد الملفات التي تتكرر مع معظم العناصر التي تتم إضافتها إلى بيئة التطوير Visual Studio 2010 مثل الملف Elements.xml, لكن هذا الملف بشكل افتراضي يكون مخفي ويمكن مشاهدته بعد إظهار الملفات المخفية في المشروع من خلال الزر "إظهار جميع الملفات Show All Files" كما في الشكل التالي:





    يحتوي هذا الملف على مجموعة من القيم التي تفيد في عملية نشر ملفات أجزاء الويب من خلال بيئة التطوير Visual Studio 2010:



    ويجب التركيز على القيمتين التاليتين:
    • السطر الذي يحتوي اسم عنصر التحكم CalculatorVisualWebPartUserControl.ascx, حيث يُحدد في هذا السطر مسار المجلد الذي سيحتوي على ملف عنصر التحكم.
    • العنصر SafeControl, حيث يتم تحديد معلومات سطر للعنصر SafeControl سيتم كتابته في الملف web.config لتطبيق الويب المحدد في الخطوة الثانية أثناء إنشاء المشروع في أول هذه المقالة:
      • Assembly: الاسم الكامل للمجمعة الناتجة عن المشروع, وقد أشرنا سابقاً إلى أن $SharePoint.Project.AssemblyFullName$ هي قيمة يتم استبدالها من قبل بيئة التطوير Visual Studio 2010 أثناء تنفيذ عملية نشر المشروع Deploy, وهذه القيمة تساوي القيمة التالية:

        VisualWebPartArticle, Version=1.0.0.0, Culture=neutral, PublicKeyToken=14371a3110866f98

        على أن قيمة الخاصية PublicKeyToken ستختلف عندك أثناء تنفيذ خطوات هذا المشروع.
      • Namespace: وهي قيمة فضاء الأسماء الذي يحتوي على صف جزء الويب المرئي الجديد ويتم تحديد فضاء الأسماء من خلال الملف CalculatorVisualWebPart.cs من خلال السطر المسبوق بكلمة namespace وفي هذا المشروع قيمة فضاء الأسماء الافتراضي هي:

        VisualWebPartArticle.CalculatorVisualWebPart

بعد شرح جميع عناصر جزء الويب المرئي السابق سيتم تنفيذ الخطوات التالية كتعديلات على الإعدادات الافتراضية لجزء الويب المرئي بعد إنشائه:
  1. تغيير فضاء الأسماء الافتراضي لجزء الويب المرئي.
  2. تغيير مسار المجلد الهدف الذي يحتوي على عنصر التحكم ascx.
  3. إضافة خاصية يمكن تغييرها من خلال تحرير خصائص جزء الويب المرئي في الصفحة التي تستخدم جزء الويب المرئي.
  4. استخدام جزء الويب المرئي لعرض عنصر تحكم ascx موجود في مشروع ASP.NET آخر.

الخميس، 31 مارس 2011

كيف يمكن استخدام ملفات المصادر الخاصة باللغة في ملفات تخطيط الصفحات


تعتبر ملفات تخطي الصفحات Page Layouts أحد العناصر الأساسية في عملية إنشاء الصفحات في المواقع التي يتم بناؤها باستخدام تقنية شيربوينت, ويتيح شيربوينت عملية إضافة ونشر ملفات تخطيط الصفحات باستخدام الميزات Features, وهذه الملفات تحتوي العديد من العناصر التي تفيد في عرض البيانات وتحديد طريقة عرضها وترتيبها, إضافة إلى احتوائها على مناطق لأجزاء الويب Web Part Zones, وهذه المناطق تفيد في عملية إضافة أجزاء ويب إلى الصفحات التي يتم إنشاؤها اعتماداً على ملف تخطيط صفحة معين مثل "صورة إلى اليمين ArticleRight.aspx" أو "صفحة أجزاء ويب BlankWebPartPage.aspx" وغيرها من أنواع الصفحات الافتراضية أو الإضافية التي يتم تخصيصها على حسب المشروع, ومن المعلوم أن لكل منطقة أجزاء ويب عنوان Title يُستخدم لإعطاء وصف واضح لمدخلي البيانات والمستخدمين الذين يتعاملون مع الصفحات في الموقع أثناء تحريرها, ومن المعلوم عند إنشاء مواقع ثنائية اللغة يجب الحرص على عرض النصوص بحسب اللغة التي يختاره المستخدم فمثلاً منطقة أجزاء الويب التي عنوانها في الإصدار العربي هو "المنطقة 1" يجب أن يكون العنوان في الإصدار الانجليزي هو "Title 1" وهكذا, وهنا سنركز على هذه النقطة فيما يخص بناء ملفات مصادر اللغة وكيفية نشرها واستخدامها. بالنسبة للأدوات المستخدمة فهي بيئة التطوير المتكاملة 2010 Visual Studio وبرنامج SharePoint Designer 2010 والاعتماد على تقنية الميزات Features لتنفيذ جميع عمليات النشر المرتبطة بملفات مخططات الصفحات وملفات مصادر اللغة.

أولاً يجب بناء مشروع جديد باستخدام القالب Empty SharePoint Project كما هو واضح في الشكل التالي:



الشاشة التالية تحدد عنوان URL مجموعة المواقع التي سيتم نشر الميزة الجديدة عليها, حدد العنوان المناسب حسب البيئة التي تستخدمها وباقي الخيارات كما في الشكل التالي:



بعد إنشاء المشروع الجديد يجب إضافة عنصر Element يحتوي على مخطط الصفحة كما في الخطوات التالية المبينة فيما يلي:





بالنسبة لإضافة مخطط صفحة Page Layouts يمكن نسخ صفحة من SharePoint Designer 2010 وإضافتها داخل العنصر PageLyouts الذي تم إنشاؤه في الخطة السابقة, ولنفترض تم نسخ الملف BlankWebPartPage.aspx الافتراضي في شيربوينت 2010 SharePoint مع تغيير اسمه إلى CustomBlankWebPart.aspx:



الآن يجب إضافة الشيفرة التالية إلى الملف Elements.xml ال موجود ضمن PageLaouts وذلك لنشر الملف الجديد باستخدام الميزة المرتبطة بالمشروع:



أما بالنسبة للقيمة التي سيتم وضعها مكان VALUE_HERE فيجب إدخال القيمة التالية كما هو بالضبط:

;#صفحة;#0x010100C568DB52D9D0A14D9B2FDCC96666E9F2007948130EC3DB064584E219954237AF39;#

يجب الملاحظة بأنه يمكن استخدام نوع محتوى آخر غير صفحة, مثل صفحة المقالة أو أي نوع محتوى آخر عندها يجب تغيير اسم نوع المحتوى ورقمه في القيمة السابقة.

الآن يجب إضافة ملفات مصادر اللغة Resources files إلى المشروع بحيث يتم نشر هذه الملفات إلى المجلد App_GlobalResources الموجود ضمن مجلد تطبيق الويب في المسار التالي:

C:\inetpub\wwwroot\wss\VirtualDirectories

ومن أجل تحقيق هذا الهدف يجب إضافة عنصر فارغ Empty Elements ومن ثم تضاف ملفات المصدر إليه باللغات التي نريد التعامل معها:





بعد إضافة ملف مصدر اللغة العربية أضف مفتاح لقيمة جديدة كما يلي:
  • المفتاح: CustomBlankWebPart_TopZone
  • القيمة: تجربة

انسخ الملف العربي وغير اسمه إلى LocalizePageLayoutsResources.en-US.resx ومن ثم انسخ الملف العربي وغير اسمه إلى LocalizePageLayoutsResources.resx ليكون الشكل التالي:



بعد إضافة جميع المتطلبات يجب تعدل ملف تخطيط الصفحة CustomBlankWebPartPahe.aspx لاستخدام مفتاح القيمة الجديد حيث يتم استبدال القيمة Resources:cms,WebPartZoneTitle_Header بالقيمة Resources:LocalizePageLayoutsResources,CustomBlankWebPart_TopZone.

بالنسبة لملفات المصادر حتى يتم نشرها إلى المجلد App_GlobalResources يجب تنفيذ ما يلي:



جميع التعديلات والإضافات تم إنجازها والآن يجب تنفيذ عملية النشر من خلال تنفيذ الأمر Deploy. ومن ثم إنشاء صفحة من التخطيط CustomBlankWebPartPage.aspx كما يلي:


الخميس، 9 ديسمبر 2010

إخفاء أحد عناصر قائمة إجراءات الموقع Site Actions

تعتبر قائمة إجراءات الموقع من أهم القوائم في الشيربوينت 2010 وأكثرها استخداماً حيث تضم العديد من الأوامر الهامة مثل أمر إنشاء صفحة جديدة, حيث عند اختيار الأمر "صفحة جديدة" تظهر نافذة منبثقة لإدخال اسم الصفحة الجديدة:





والنافذة المنبثقة تُنشئ صفحة جديدة من مخطط الصفحة الافتراضي الذي يمكن تعيينه من خلال إجراءات الموقع, وهي ميزة جديدة في شيربوينت 2010.





ولكن قد نضطر في بعض الأحيان إلى إخفاء الأوامر الافتراضية في قائمة إجراءات الموقع لأسباب تتعلق بالتخصيصات التي قد تتطلبها بعض المشاريع, وفي مثالنا هذا سنعمل على إخفاء الأمر "صفحة جديدة New Page" من خلال بناء ميزة تعمل على مستوى الموقع Web site وليس على مستوى مجموعة المواقع Site Collection.
بناء الميزة Feature باستخدام VS 2010
سنستخدم أداة التطوير Visual Studio 2010 المقدم من قبل شركة مايكروسوفت لتطوير الميزة الجديدة, حيث أن الإصدار 2010 يحتوي على أدوات تساعد في تطوير عناصر ومشاريع متكاملة مع شيربوينت 2010 SharePoint. ولإنشاء المشروع الجديد اختر القائمة File - New - Project ومن ثم اختر القائمة SharePoint - 2010, ومن ثم اختر نوع المشروع Empty SharePoint Project كما في الشكل التالي:





أدخل في حقل اسم المشروع SiteActionsMenuCustomization كاسم للمشروع, الآن ستظهر نافذة من خلالها يمكن تحديد عنوان مجموعة المواقع Site Collection التي سيتم نشر الحل الجديد عليها كما يلي:





من خلال الخطوات السابقة تم إنشاء مشروع شيربوينت فارغ لا يحتوي على أي عنصر, أما الخطوة التالية فهي إضافة ميزة Feature إلى المشروع, وذلك بالضغط على المجلد Features بزر الفأرة الأيمن واختيار الأمر Add Feature:




يتم إعطاء الميزة الجديدة اسم افتراضي هو Feature1 من الأفضل تغيير إلى اسم ذا معنى, وسنختار الاسم HideNewPageFromSiteActions, وتغيير عنوان الميزة إلى Site Actions - Hide New Page. أما اسم المجلد الذي سيتم إنشاؤه من أجل الميزة الجديدة داخل المجلد Template/Features فمن الممكن تغيير اسمه من خلال نافذة خصائص الميزة كما يلي:




الخطوة التالية هي بناء صف Class الهدف منه هو التقاط عملية إظهار الأمر "صفحة جديدة New Page" وإخفائه قبل تنفيذ عملية الإظهار. ولتنفيذ ذلك أضف مشروع جديد من النوع Class Library اسمه SiteActionsHelper وأضف إليه صف Class اسمه SiteActionsHidePage يرث الصف WebControl.
ملاحظة: يجب إضافة مرجع إلى المجمعة System.Web والمجمعة Microsoft.SharePoint.




طبعاً القيمة wsaCreatePage هي القيمة الفريدة المعرفة للأمر "صفحة جديدة New Page" في قائمة إجراءات الموقع Site Actions. ويمكن معرفة جميع القيم المعرفة لأوامر قائمة إجراءات الموقع يجب فتح الملف SiteAction.xml في المسار التالي:

C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\TEMPLATE\LAYOUTS\EditingMenu
بعد بناء المجمعة التي تحتوي على الشيفرة السابقة يجب الآن إضافتها إلى الميزة التي تم بناؤها سابقاً HideNewPageFromSiteActions, وذلك بإضافة ملف manifest.xml من خلال إضافة عنصر من النوع Empty Element إلى مشروع الشيربوينت 2010 وكتابة الشيفرة التالية فيه:








بعد تنفيذ جميع الخطوات السابقة يجب تنفيذ الخطوات التالية:
  • نشر الميزة الجديدة من خلال الأمر Deploy في Visual Studio 2010.
  • نشر المجموعة SiteActionsHelper إلى المجلد c:\windows\assembly أو GAC.
  • إضافة عنصر التحكم SiteActionsHidePage إلى الملف web.config ضمن القسم SafeControls.
نشر المجمعة SiteActionsHelper من خلال VS 2010
1. اضغط على المجلد Package في المشروع SiteActionsMenuCustomization.




2. اضغط على الخيار Advanced في النافذة الجديدة.




3. اضغط على الزر Add واختر Add Assembly form Project Output.




4. من القائمة Source Project اختر المشروع SiteActionsHelper.




5. الخطوة الأخيرة هي الضغط على الزر OK وحفظ الخيارات الجديدة للمجلد Package.
الآن لنشر الميزة الجديدة اختر الأمر Deploy كما في الشكل التالي:




بعد تنفيذ جميع الخطوات السابقة سيختفي الأمر "صفحة جديدة New Page" من قائمة إجراءات الموقع, مع ملاحظة أنه في حالة نشر الميزة على المجال Web أي على مستوى موقع Web Site فإن هذا الأمر يختفي فقط على مستوى هذا الموقع وهو الموقع الجذر Root web site لمجموعة الموقع التي تم تحديدها في بداية إنشاء المشروع, ولإخفاء الأمر "صفحة جديدة New Page" من جميع مواقع مجموعة المواقع يجب تغيير مجال الميزة ليكون على مستوى مجموعة الموقع وتحديد القيمة Site. ولتغيير هذه القيمة اضغط على اسم الميزة في المشروع كما في الشكل التالي:




ومن ثم اختر القيمة Site من القائمة Scope كما في الشكل التالي:




الخلاصة
من خلال العمل على مثل هذا المستوى من التخصيص تلاحظ أن شيربوينت 2010 قابل للتخصيص بشكل كبير جداً, إضافة إلى أن استخدام الميزات Features لتنفيذ عمليات التخصيص يساعد في توفير المرونة اللازمة لنشر هذا التخصيص على أي مشروع جديد مع قابلية إيقاف هذا التخصيص بإلغاء تفعيل الميزة.

الخميس، 25 نوفمبر 2010

المرجع العربي لملفات خريطة الموقع

خرائط الموقع هي طريقة سهلى تسمح لمدراء مواقع الإنترنت بتعريف محركات البحث عن مواقعهم الجاهزة لجلب معلوماتها من قبل أدوات محركات البحث. وبأبسط أشكالها فإن خريطة الموقع هي عبارة عن ملف XML (اللغة القابلة للتوسع) يحتوي على قائمة بروابط الموقع إضافة إلى بيانات وصفية إضافية (مثل تاريح آخر تعديل على الرابط, ومعدل تغير محتوى الرابط, وكم هو مهم, وصلة الربط مع روابط أخرى في الموقع), وتستخدم محركات البحث هذه المعلومات لجلب معلومات الموقع بطريقة أسهل وأدق.

عادة جالبات المعلومات Web Crawlers تكتشف الصفحات من الروابط الموجودة ضمن الموقع ومن مواقع أخرى. وخرائط الموقع تقدم هذه البيانات بحيث تسمح لجالبات المعلومات التي تدعم خرائط الموقع بالحصول على هذه الروابط من خلال خريطة الموقع مع معلومات إضافية متوفرة في البيانات الوصفية في نفس الملف. مع العلم أن استخدام ملف خريطة الموقع لا يضمن أن صفحات الموقع سيتم تضمينها في محركات البحث, لكنها تقدم تلميحات مفيدة لمحركات البحث للقيام بعمل أفضل لجلب معلومات موقعك وفهرسته.

الميفاق Sitemap 0.90 مقدم ضمن الترخيص "Attribution-ShareAlike Creative Commons License", ومعتمد بشكل واسع إضافة إلى الدعم المقدم من قبل شركات جوجل Google, ياهو! Yahoo! وشركة مايكروسوفت Microsoft.

ويمكن تحميل المرجع الكامل من هذا الرابط

الأربعاء، 10 نوفمبر 2010

فشل تثبيت حزمة اللغة العربية لشيربوينت 2010



يدعم شيربوينت 2010 SharePoint اللغة العربية بشكل كامل بدون أية مشاكل بجميع الميزات التي يعمل عليها شيربوينت 2010 SharePoint, ولتأمين هذا الدعم فإن شركة مايكروسوفت تؤمن للغات التي تدعمها حزمة لتثبيت المعلومات الخاصة بكل لغة ومنها اللغة العربية على الرابط التالي:


المشكلة
بعد تثبيت الشيربوينت 2010 SharePoint يجب تثبيت حزمتي اللغة العربية, الأولى خاصة بـ Microsoft SharePoint Foundation 2010 وهذه العملية تتم بنجاح, والثانية حزمة اللغة العربية الخاصة بـ Microsoft SharePoint Server 2010 وهنا تظهر المشكلة حيث يظهر الخطأ "فشل تثبيت الحزمة" بدون أية تفاصيل أخرى.


بيئة العمل التي ظهرت عليها المشكلة
  • Windows Server 2008 Enterprise R2.
  • Microsoft SharePoint Server 2010 Enterprise for Internet.
  • SQL Server 2008 R2.
حل المشكلة
عند تثبيت حزمة اللغة العربية يجب التأكد أولاً من أن اللغة العربية تم تحميلها على الخادم وهذا أكثر ماقد يسبب فشل تحميل حزمة اللغة العربية, إضافة إلى أن اختلاف سياسات الأمن على البيئات المختلفة تؤدي إلى ظهور مشاكل غير متوقعة عند تثبيت حزمة اللغة حيث أن هذه الحزم تسجل معلومات في "سجل ويندوز Registry", لذلك فإن أحد أسباب فشل تثبيت حزمة اللغة هو عدم وجود سماحيات كافية للكتابة على سجل ويندوز وقد يكون لأسباب مختلفة مثل سياسات عامة على مستوى الشبكة المحلية, ولحل هذه المشكلة يجب تنفيذ الخطوات التالية:
cd /d %commonprogramfiles%\Microsoft Shared\Web server extensions\14\BIN
psconfig -cmd secureresources
بعدها نفذ iisreset.
الآن أعد تحميل حزمة اللغة العربية من جديد.


الخميس، 7 أكتوبر 2010

كيف يتم تخصيص قالب "موقعي MySite" في شيربوينت 2010

في هذه المقالة سيتم سرد جميع عناصر قالب الموقع "موقعي MySite" في شيربوينت 2010 SharePoint مع مكان وجود كل عنصر من عناصر الموقع دون التطرق إلى كيفية التعديل عليها, وفي مقالة لاحقة سيتم التطرق إلى عمليات التخصيص بشكل مستفيض.

الجزء الأول هو الروابط التي تظهر في القسم العلوي من الموقع كما في الشكل التالي:




هذه الروابط يتم رسمها باستخدام عنصر اسمه MySiteTopNavigation.ascx موجود في المجلد ControlTemplates, وسيتم شرح كيفية التعديل على هذه الروابط وتغيير شكلها لاحقاً, ولكن يجب الانتباه إلى أنه من غير الصحيح التعديل على نفس العنصر لأن هذا سيؤثر على جميع المواقع في بيئة شيربوينت الحالية.
الجزء الثاني هو الصفحة الرئيسية Master Page, اسم هذه الصفحة هي mysite.master وهي موجودة على الموقع الجذري لتطبيق الويب الذي يستضيف خدمة "موقعي MySite", ويمكن إيجاد هذه الصفحة إما باستخدام SharePoint Designer 2010 أو على المسار التالي:



C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\TEMPLATE\FEATURES\MySiteLayouts


الجزء الثالث هي صفحة الترحيب default.aspx التي تظهر كصفحة افتراضية للموقع, وتعتبر هذه الصفحة جزء من قالب "موقعي MySite" واسم القالب هو SPSPERS حيث توجد الصفحة default.aspx.
الجزء الرابع هو العناصر التي تظهر في صفحة الترحيب default.aspx وهي كما يلي:
  • المستندات المشتركة Shared Documents.
  • المستندات الشخصية Personal Documents.
  • آخر مواضيع المدونة Recent Blog Posts.
وجميعها عبارة عن أجزاء ويب Web Parts يتم إدراجها في صفحة الترحيب كما يلي:
  • المستندات المشتركة Shared Documents تتم إضافتها من خلال الملف onet.xml الموجود ضمن القالب SPSPERS كما يلي:


    <View
    List="Shared Documents"
    BaseViewID="1"
    MobileView="TRUE"
    WebPartZoneID="MiddleLeftZone"
    WebPartOrder="1" />



  • المستندات الشخصية Personal Documents أيضاً تتم إضافها من خلال الملف onet.xml الموجود ضمن القالب SPSPERS كما يلي:

    <View
    List="Personal Documents"
    BaseViewID="1"
    MobileView="TRUE"
    WebPartZoneID="MiddleLeftZone"
    WebPartOrder="2" />



  • آخر مواضيع المدونة Recent Blog Posts تتم إضافتها من خلال الملف onet.xml الموجود ضمن القالب SPSPERS بعد التعليمة التالية:


    <AllUsersWebPart WebPartZoneID="MiddleRightZone" WebPartOrder="1">



الجزء الخامس هو القوائم التي يتم إنشاؤها بشكل افتراضي بعد إنشاء الموقع الشخصي مباشرة حيث يتم إنشاء القوائم التالية:
  • مكتبة المستندات الشخصية Personal Documents, يتم إنشاء هذه المكتبة من خلال الملف onet.xml الموجود ضمن القالب SPSPERS ضمن قسم Configurations.
  • مكتبة المستندات المشتركة Shared Documents, يتم إنشاء هذه المكتبة من خلال الملف onet.xml الموجود ضمن القالب SPSPERS ضمن قسم Configurations.
  • مكتبة الصور المشتركة Shared Pictures, يتم إنشاء هذه المكتبة من خلال الملف onet.xml الموجود ضمن القالب SPSPERS ضمن قسم Configurations.

السبت، 2 أكتوبر 2010

المنهج TryGetList في شيربوينت 2010 SharePoint



في شيربونيت 2007 كان الحصول على مرجع برمجي لأية قائمة يتم باستخدام SPWeb.Lists[“List Title”] وفي حال عدم وجود هذه القائمة في الموقع يظهر خطأ, أو يجب استخدام طريقة أخرى وهي باستخدام حلقة for للمرور على جميع القوائم في الموقع ومقارنة القيمة SPList.Title مع عنوان القائمة التي نريدها وكلن جميع هذه الطرق هي التفاف على مشكلة موجودة, في شيربوينت 2010 SharePoint تم إضافة منهج جديد اسمه TryGetList موجود ضمن SPWeb.Lists, وظيفة هذا المنهج هي إعادة مرجع برمجي للقائمة باستخدام عنوان القائمة في حالة أن القائمة موجودة وإلا تعيد القمية null.


الجمعة، 1 أكتوبر 2010

المطورون السوريون ... واقع وطموحات - استراتيجات – 3

حاولت في مقالتي السابقة أن أحدد هدفاً رئيسياً يجب علينا تحقيقه خلال السنتين القادمتين وهو "نشر مفهوم مهنة البرمجة في سوريا" حيث أكدنا على ضرورة نشر هذا المفهوم بجميع الطرق الممكنة وفي هذه المقالة سنشرح كيف ودور كل منا في هذه المهمة, لكن قبل ذلك أريد توضيح تساؤل من معظم الفتيات اللواتي يعملن في نفس المجال وهو أن مصطلح المطور يشمل الذكور فقط؟ وردي هو أن أي مصطلح في أية مهنة لا علاقة له بالجنس وإنما دائماً يشمل الجنسين ويميل التفكير دائماً بالجنس الذي يعمل أكثر في هذه المهنة ولا شك عندي بأن عدد المطورين والمبرمجين الذكور قد يكون بنسبة 100-1 في سوريا, ولكني بلا شك هنا أتكلم عن الجنسين معاً بدون استثناء أحد فالجميع معني بهذا الأمر وعلى الجميع القيام بدوره على أكمل وجه لأن الأمر سينجح والجميع سينال حصته لاحقاً ومن لا يزرع لا يحصد.
نعود الآن إلى الآلية التي علينا اتباعها لنشر الوعي اللازم فيما يخص مهنة البرمجة والبنى التحتية في سوريا ودور كل منا في هذه الآلية, لا شك أن أي آلية تخضع إلى استراتيجات عامة يجب الالتزام بها, حيث تحدد هذه الاستراتيجات أهدافنا بوضوح وأدوات تنفيذها ووضع هذه الاستراتيجات يحتاج إلى الإطلاع على ماهو متوفر بين أيدينا من أدوات إضافة إلى الموارد البشرية التي يجب حثها واستثارتها كما يجب إغراؤها بالأرباح المعنوية والمادية.

الاستراتيجة الأولى – تكلم كثيراً عن الأمر

ليس عندي شك في فعالية الإعلام لتنفيذ أي عمل مهما كان هذا العمل, ففي عالمنا اليوم أي أمر تريد أن ينتشر كالنار في الهشيم, انشره على الإنترنت والقوائم البريدية ومحطات الأخبار ولو لمرة واحدة فقط واترك بعدها الأمر للجمهور وهو سيكمل المهمة عنك, للأسف لاحظت أن هذا الأمر ينجح مع الأمور التي على الأقل من وجهة نظرنا تبدو تافهة مثل أخبار الفنانين والفضائح وغيرها, وهذه لها جمهور كبير, لكننا الآن نتكلم عن أمر يجهله هذا الجمهور لذلك يجب أن اختيار استراتيجية "تكلم كثيراً عن الأمر", لا تترك مكاناً تعرفه أو شخص تكلمه إلا وتحدثه عن مهنة التطوير وماذا تعني, أبرز مدى أهمية هذه المهنة وحاول تقريب هذا المفهوم ليتواءم مع ثقافة من أمامك فليس الجميع بنفس السوية الثقافية, لذلك لا تتوقع من الجميع أن يفهموا كل ماتتحدث عنه, إحدى الأدوات التي نستخدمها في شبكة "المطورون السوريون" هي الإنترنت لنشر هذا الهدف والتعريف بالمطور السوري والتخطيط لبدء مانعتبره ثورة على واقع المطورين السوريين في سوريا, لا نوفر أي قناة تواصل وبدأنا بنشر هذا الهدف في كل محفل إعلامي منتشر كما فعلنا على Facebook, وكما فعلنا من قبله على الموقع الرسمي للـ "المطورون السوريون", أعضاء شبكة "المطورون السوريون" تحاول نشر فكر التغيير الإعلامي لدى المطورين السوريين وإعطائهم الثقة بأن الأمور ستتحسن وهنا لسنا نزرع أفكاراً لن تحدث بل نحن على يقين بأن الأمور في تحسن وقد لمسناها على أرض الواقع في سوريا, فالكثيرون يتوقون إلى التغيير وقد بدؤوا بخطواتهم الجادة. لكن يجب أن ننتبه بأن الكلام الكثير لا يعني كلاماً بدون معنى أو لج رد الكلام وإنما ذكر هذه المهنة بالطريقة الصحيحة ومفهومها الصحيح في الح افل العلمية والمقالات والكتب والمنتديات وأمام المثقفين السوريين.

الاستراتيجية الثانية – تثقيف المطور السوري

لن أدعي بأن الجمهور العام في سوريا فقط هو من يجهل ماهي مهنة التطوير ولن أدعي بأني أفضل من يعلم عن مهنة التطوير والبرمجة, ولا شك بأن الأمر لن يتم بدون أهله وأهله هم المطورون السوريون, من سيدعم هذا الأمر في سوريا هم المطورين أنفسهم ولكي يتم ذلك بالشكل الصحيح يجب على المطورين السوريين فهم حقيقة التطوير ولا يتم ذلك إلا إن كرسوا حياتهم لهذه المهنة وأصبحت هي همهم الشاغل وفرغوا وقتهم لقراءة مايتعلق بمهنتهم بالشكل الصحيح, فلكي نقنع الجمهور في سوريا يجب أن نقتنع أولاً ولكي تصلهم الفكرة بسهولة يجب أن نكون قادرين على إرسالها بشكل سهل ومتعدد المستويات, كما يجب على المطور السوري تبني ثقافة الإيمان بهذه المهنة والإيمان بأنها ستتطور نحو الأفضل في سوريا وبأن هذا الهدف يجب أن يكون هدفه الرئيسي حتى لو لم يكن يعمل في السوق السوري, ثقافة المطور السوري العلمية وتثقيفه بحالة السوق السوري وماهي فوائد اعتماد مهنة التطوير والبرمجة في سوريا التي سيجنيها المطور السوري, هذ الاستراتيجية الثانية التي يجب اعتمادها للفوز بهذا التحدي.

في المقالة القادمة سنطرح استراتيجيات أخرى نعتمدها لترسيخ مهنة التطوير والبرمجة في سوريا, وسنبقى مثابرين عليها وعلى هدفنا في "المطورون السوريون" لمهنة أرقى وسوريا أفضل.