الاثنين، 28 أكتوبر 2013

كيف يمكن استخدام Report Viewer 2012 مع شيربوينت 2013


عند العمل على Reporting Service مع Visual Studio 2012 على شيربوينت 2013 يجب اتباع الخطوات التالية:

1 - تحميل Report Viewer 2012 من الرابط التالي:

http://www.microsoft.com/en-sa/download/details.aspx?id=35747

2 - إضافة السطر التالي تحت العنصر system.webServer/handlers في ملف الـ web.config لتطبيق الويب على شيربوينت 2013:


<add name="ReportViewerWebControlHandler" preCondition="integratedMode" verb="*" path="Reserved.ReportViewerWebControl.axd" type="Microsoft.Reporting.WebForms.HttpHandler, Microsoft.ReportViewer.WebForms, Version=11.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" />


3 - حذف السطر التالي من المسار system.webServer/handlers في ملف الـ web.config لتطبيق الويب على شيربوينت 2013:


<add name="ReportViewerWebControl" verb="*" path="Reserved.ReportViewerWebControl.axd" type="Microsoft.Reporting.WebForms.HttpHandler, Microsoft.ReportViewer.WebForms, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />


4 - حذف السطر التالي من المسار appSettings في ملف الـ web.config لتطبيق الويب على شيربوينت 2013:


<add key="reportviewermessages" value="microsoft.sharepoint.portal.analytics.ui.reportviewermessages, microsoft.sharepoint.portal, version=15.0.0.0, culture=neutral, publickeytoken=71e9bce111e9429c" />


5 - عند استخدام ReportViewerControl ضمن Visual Studio 2012 يجب إضافة مرجع إلى الملف Microsoft.ReportViewer.WebForms.dll تحت المسار التالي:

C:\Program Files (x86)\Microsoft Visual Studio 11.0\ReportViewer



الأربعاء، 23 أكتوبر 2013

إضافة أكثر من حل Solution باستخدام PowerShell


في بعض الحالات عند البدء في بناء بيئة العمل الحقيقية لأحد المشاريع قد تضطر إلى تثبيت أكثر من حل Solution باستخدام الملفات wsp قد يصل عددها إلى 10 وأكثر. من أجل إضافة ملف واحد في كل مرة باستخدام PowerShell يتم تنفيذ الأمر التالي:

add-SPSolution c:\FILE_NAME.wsp

الأمر السابق يضيف حل Solution في نفس الوقت, لكن لإضافة أكثر من حل باستخدام سطر واحد يمكن بناء سكريبت يحتوي على شيفرة برمجية تستخدم أوامر PowerShell لتنفيذ هذه العملية. ولبناء هذا الملف اتبع الخطوات التالية:

1 - أنشئ ملف امتداده ps1 اسمه DeployWSPs.ps1 واكتب في التعليمات التالية:

$path = (get-location).path
$files = get-childitem | where {$_.extension -eq ".wsp"}
foreach($file in $files)
{
       $wspPath = $path + '\' + $file
       add-spsolution $wspPath
}


2 - احفظ الملف

لتجريب الملف السابق انسخ أكثر من ملف wsp مع الملف السابق إلى المسار التالي:

c:\wsps

افتح سطر الأوامر SharePoint 2013 Management Shell ونفذ الأوامر التالية:

cd\
cd wsps
.\DeployWSPs.ps1

بعد تنفيذ الأوامر السابقة سيتم إضافة جميع الحلول Solution ذات الامتداد wsp الموجودة في المجلد c:\wsps





الاثنين، 21 أكتوبر 2013

تحديث أكتوبر - تشرين الأول لشيربوينت 2010



تم إصدار التحديث SharePoint Server 2010 cumulative update package October 8, 2013 على الرابط التالي:


وباعتبار تم إصداره بعد حزمة الإصلاحات الثانية SharePoint Server 2010 SP2 فهذا يعني أنه يجب تحميلها بعد تثبيت SP2.



الأربعاء، 7 أغسطس 2013

إضافة Like Button إلى صفحة شيربوينت 2013


من الإضافات الجديدة في شيربوينت 2013 هي إمكانية إضافة ميزة الإعجاب Like إلى أي عنصر من عناصر مكتبة المستندات Document Library أو الصفحات Pages. ولكن ولسبب ما فإن مايكروسوفت تتيح إمكانية عرض التقييم باستخدام النجوم Stars في الصفحات ولكن لا يظهر زر "أعجبني" في الصفحة. فيما يلي شرح آلية استخدام هذه الميزة مع شيفرة جافا سكريبت التي تمكن من استخدام هذه الميزة.

1 - يجب التأكد من أن خاصية التقييم مفعلة على مستوى مكتبة الصفحات Pages Library:
      - من التبويب "مكتبة" اختر إعدادات المكتبة.
      - من ثم اختر الرابط "إعدادات التصنيف"


      - يجب التأكد من إعدادات التقييم على أنها كما في الشكل التالي:


2 - بعد التأكد من ضبط إعدادات التقييم بشكل صحيح. يجب الآن إدراج عنصر التقييم في مخطط الصفحة Page Layout حيث يجب أن تظهر بالصفحة. ويتم ذلك بإدراج الشيفرة التالية علماً أنه يمكن تخصيص هذه الشيفرة بالشكل الذي يتناسب مع التصميم المعتمد:

<a href="javascript:void(0)" onclick="(function() {SURE_likepage.LikePage();})()"><span class="sure_likecount"></span>

3 - بعد ذلك يجب إدراج مرجع إلى الملف sure_like2013.js كما يلي:

<script type="text/javascript" src="FILE_PATH/sure_like2013.js"></script>

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


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


كما يمكن الاستفادة من القيمة $v_3.$2d_1 لمعرفة أسماء المستخدمين الذين أعجبوا بالصفحة الحالية.

ملاحظة: يمكن تخصيص الشكل السابق بحيث يتناسب مع التصميم المعتمد.


الخميس، 1 أغسطس 2013

استخدام المصادر في ملفات الجافا سكريبت Localized JavaScript


معظم استخدامات ملفات المصادر Resources لتمكين التطبيقات من دعم أكثر من لغة Localization ومعظمها تتم على مستوى الشيفرة التي يتم تنفيذها على السيرفر Server Side Code. لكن في بعض الأحيان نحتاج لدعم المصادر في شيفرة الجافا سكريبت. وهذه الإمكانية متوفرة في شيربوينت 2013 من خلال استخدام الملف ScriptResx.ashx. ويمكن استخدامه باتباع الخطوات التالية:

1 - يجب التأكد من أن ملف المصادر Resource File يدعم هذه الإمكانية وذلك بفتح الملف resx باستخدام محرر نصوص والتأكد من وجود السطر التالي:

<resheader name="scriptResx"> <value>true</value></resheader>
تحت العنصر التالي:
</xsd:schema>
وفي حال عدم توفره يجب إضافته.

2 - هذه الخطوة مرتبطة بكيفية استدعاء قيمة من ملف المصادر من خلال شيفرة الجافا سكريبت. حيث يمكن تعريف Namespace تحتوي على جميع قيم ملف المصد. مثلاً لنفترض أن الـ namespace لملف المصدر هو ProjectName.General وتوجد قيمة ضمن ملف المصدر يمكن الوصول إليها من خلال المفتاح SiteTitle عندها ضمن شيفرة الجافا سكريبت تكون الشيفرة كما يلي:

ProjectName.General.siteTitle

حيث يتم تغيير حالة الحرف الأول من المفتاح ليصبح حرفاً صغيراً. ولتعريف namespace لملف المصدر يجب فتح الملف ضمن محرر نصوص والبحث عن عنصر resheader الخاصية name له تساوي classFullName وفي حال عدم وجودها يجب إضافتها:


<resheader name="classFullName"><value>ProjectName.General</value></resheader>


3 - الآن يجب استخدام الملف ScriptResx.ashx كما يلي:


في الخطوة رقم 3 سيتم توليد ملف جافا سكريبت يحتوي على ملف المصدر ضمن الـ namespace المعرفة في الخطوة رقم 2.


تثبيت معالج الحدث على القوائم باستخدام الميزات List Event Handlers


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

تثبيت معالج الحدث باستخدام ميزة تعمل ضمن مجال مجموعة المواقع Scope=Site
يمكن تثبيت معالج الأحداث في شيربوينت 2013 على قائمة باستخدام ميزات ذات مجال Site أو مجال Web. وفي حال استخدام المجال Site للميزة عندها يمكن تحديد قيمة للخاصية Scope لتحديد مجال القوائم الذي سيثبت عليها معالج الحدث. في حال تحديد القيمة Site سيتم تثبيت معالج الحدث على جميع القوائم في مجموعة المواقع Site Collection، أما في حال تحديد القيمة Web فسيتم تثبيت معالج الحدث على الموقع الرئيسي فقط لمجموعة المواقع Root Web. ويجب الانتباه إلى أنه بغض النظر عن أي إعدادات أخرى فإن مالج الحدث سيتم تثبيته على جميع القوائم ضمن المجال المحدد في الخاصية Scope.

تثبيت معالج الحدث باستخدام ميزة تعمل ضمن مجال الموقع Scope=Web
عند استخدام المجال Scope = Web عندها يمكن تحديد قيم لبعض الإعدادات الإضافية. ومنها تحديد قيمة منطقية true|false للخاصية RootWebOnly، فعند تحديد القيمة true فإن معالج الحدث يمكن تثبيته فقط على القوائم التي تحت الموقع الرئيسي فقط ف يحال تفعيل الميزة على موقع فرعي سيؤدي ذلك إلى ظهور خطأ. أيضاً سيفحص شيربوينت 20103 العناصر Receivers للتأكد من قيمة الخاصية ListTemplateId، في حال تم تحديدها من قبل المطور فإن شيربوينت سيبحث عن قيمة الخاصية ListUrl، وفي حال أن كلا القيمتين محددتان فإن شيربوينت سيرسل خطأ يفيد بأنه يجب تحديد إحدى القيمتين فقط. وفي حال أن قيمة الخاصية ListUrl غير محددة فإن شيربوينت سيثبت معالج الحدث على جميع القوائم التي تطابق القيمة المعرفة في الخاصية ListTemplateId ضمن الموقع الحالي. ويجب الانتباه أن قيمة الخاصية ListTemplateId هي إحدى القيم المعرفة في الرابط التالي:

http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.splisttemplatetype.aspx

وهي نفس قيم الخاصية SPList.BaseTemplate.

وفي حال أن قيمة الخاصية ListTemplateId غير محددة فإن شيربوينت يبحث عن قيمة الخاصية ListUrl، ففي حال توفرها فإن شيربوينت سيثبت معالج الحدث على القائمة المحددة بقية هذه الخاصية فقط. ويجب الانتباه إلى أن قيمة هذه الخاصية هي عبارة عن العنوان النسبي للقائمة Relative List URL. أما في حال عدم تحديد قيمة للخاصية ListUrl فإن شيربوينت سيثبت معالج الحدث على جميع القوائم في الموقع حيث تم تفعيل الميزة.

الأربعاء، 31 يوليو 2013

كيف تعرض اسم العمود (الحقل) في صفحة مخطط


عادة لكي نعرض قيمة حقل ما موجود ضمن نوع محتوى في صفحة يتم سحب وإدراج هذا الحقل باستخدام SharePoint Designer وعندها يعمل شيربوينت على تحديد نوع عنصر التحكم الذي سيتم إدراجه في الصفحة بناء على نوع الحقل. مثلاً، من أجل الحقل النصي يتم استخدام عنصر التحكم التالي:



لكن لا يتم عرض اسم الحقل أثناء عرض البيانات للمستخدم، ولكن يتم عرض اسم الحقل فقط في حالة تحرير الصفحة, ولعرض اسم الحقل للزائر يمكن استخدام عنصر التحكم التالي:



حيث يُستخدم لعرض إحدى خصائص الحقل، والخصائص التي يمكن عرضها باستخدام هذا العنصر هي:
  • Type
  • InternalName
  • Title
  • Description
  • DefaultFormula
  • DefaultValue
  • إضافة إلى الخصائص المعرفة ضمن ملف الـ XML التابع لتعريف الحقل وفقط لأعمدة الموقع التي تم إنشاؤها باستخدام ميزة Feature.
وكمثال على استخدام عنصر التحكم:

<sharepointwebcontrols:fieldproperty fieldname="Title" propertyname="Title" runat="server"></sharepointwebcontrols:fieldproperty>


في الشيفرة السابقة يتم عرض اسم الحقل كما يظهر للمستخدم.

الاثنين، 29 يوليو 2013

اكتشف شيربوينت


أطلقت شركة مايكروسوفت مؤخراً الموقع http://www.discoversharepoint.com الذي يهدف إلى تعريف الآخرين بميزات شيربوينت وإمكانياته دون التطرق إلى الأمور التقنية.

أهم ملاحظة حول الموقع هي أن مايكوروسفت لم تستخدم شيربوينت في برمجة الموقع وإنما تم استخدام HTML 5 بشكل كامل.

الموقع يستحق أن تزوره. تصميم رائع ... ومحتوى مفيد جداً

استمتع


الأربعاء، 24 يوليو 2013

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


تم إصدار حزمة الإصلاحات الثانية من شيربوينت 2010 SharePoint Server 2010 Service Pack 2 ويمكن الحصول عليها من الرابط التالي:




الأربعاء، 17 يوليو 2013

المتابعة في شيربوينت 2013


تقدم ميزة المتابعة في شيربوينت 2013 فائدة كبيرة لمستخدمي المواقع المبنية باستخدام شيربوينت 2013 والتي تُبقي المستخدم متصلاً وعلى اطلاع على الأمور التي تهمه. وفيما يلي نظرة سريعة على ميزة المتابعة في شيربوينت 2013.

ما العناصر التي يمكن متابعتها؟
توجد أربعة أشياء يمكن متابعتها في شيربوينت 2013، هي الأشخاص People، والوثائق Documents، والمواقع Sites، والوسوم Tags. علماً أن متابعة أي عنصر من هذه العناصر يؤدي إلى حدوث النقاط التالية:
  • يمتلك المستخدم نظرة عامة مجمعة من أكثر من مصدر، حيث يمكن بسهولة الوصول إلى العناصر التي يتابعها المستخدم ومشاهدة معلومات إضافية عنها.
  • يمكن التوصية بعناصر محددة إلى أشخاص آخرين من خلال ظهور العبار “المستخدم ‘اسم المستخدم’ الآن يتبع عنصر محدد”، حيث يتم ذكر اسم المستخدم مع ذكر اسم العنصر. طبعاً في حال أن إعدادات خصوصية المستخدم تسمح بذلك.
  • سيتم عرض آخر التحديثات التي تتم على العناصر التي تتابعها ضمن الصفحة التي تعرض العناصر التي تتم متابعتها.
الأشخاص
متابعة الأشخاص يوفر مجموعة غنية من المعلومات عن الأشخاص الذين تتابعهم، ومن هذه المعلومات، ما نشره هؤلاء الأشخاص، أو العمليات التي نفذوها أو التعديلات التي تمت على معلوماتهم.


علماً أنه يمكن تخصيص المعلومات التي مكن مشاركتها مع الأشخاص الآخرين الذين يتابعونك كما هو مبين في الشكل التالي:

فمثلاً، في حال حددت الخيار "Participation in communities" عندها فإن جميع متابعيك سيتم إشعارهم في حال انضمامك إلى أحد المواضيع أو كتابة موضوع أو رد على موضوع، أو الحصول على مستوى أعلى ضمن. كما توجد صفحة يمكن من خلالها مشاهدة جميع الأشخاص الذين تتابعهم والأشخاص الذين يتابعونك. ومن هذه الصفحة يمكن مشاهدة آخر التحديثات للأشخاص الذين تتابعهم مع إمكانية متابعتهم.

المستندات والوثائق
تسمح صفحة المستندات التي تتابعها بمشاهدة جميع المستندات التي تهتم بها من خلال صفحة واحدة بغض النظر عن مكانها في الموقع المبني على شيربوينت 2013.


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

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