tag:blogger.com,1999:blog-63568406305735749922024-03-06T07:43:19.213+03:00SharePoint 4 Arabأول موقع عربي للشيربوينت SharePoint - بالعربي نتقدمإسماعيل عنجريني (Ismaeel Enjreny)http://www.blogger.com/profile/12167695003069491843noreply@blogger.comBlogger176125tag:blogger.com,1999:blog-6356840630573574992.post-59200977366187511592019-02-02T11:20:00.001+03:002019-02-02T11:20:53.686+03:00كيف يتم تشغيل React مع ASP.NET Project<div dir="ltr" style="text-align: left;" trbidi="on">
<div dir="rtl" style="text-align: right;">
<span style="white-space: pre;"><br /></span>
تعتبر مكتبة <a href="https://reactjs.org/" target="_blank">ReactJS </a>إحدى أهم المكتبات لبناء تطبيقات تستخدم معاييرSPA واستخدام ReactJS مع تقنية ASP.NET بجميع أنواعها صار متاحًا سواء مع ASP.NET Core أو مع ASP.NET MVC سواء مع مشاريع قائمة حاليًا أم مشاريع جديدة, ولعل الترقية لاستخدام هذه المكتبة مع الأنظمة التي تعمل حاليًا هو من أهم المواضيع التي تشغل بال المهتمين بتطبيقات SPA, من أجل ذلك نخصص هذه المقالة لشرح خطوات استخدام ReactJS مع نظام قائمة حاليًا.</div>
<div dir="rtl" style="text-align: right;">
<br /></div>
<div dir="rtl" style="text-align: right;">
<b>الخطوة الأولى</b></div>
<div dir="rtl" style="text-align: right;">
إضافة ملف من النوع NPM configuration file إلى المسار الرئيسي Root path للمشروع, وذلك باتباع الخطوات التالية:</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj5gPpHn37fqrZKmXao9-t4HNSRINrYlCvZd63dNDkoa84FzTpGDq5MClc1z98xzPHkafyMuRHau6073yuajzj7ntkaq27BTgWbjTQF_IxAEjUqZmdTJKfqW1Yjr6VI9AT2dbUn5-TI0pwC/s1600/001.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="543" data-original-width="623" height="278" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj5gPpHn37fqrZKmXao9-t4HNSRINrYlCvZd63dNDkoa84FzTpGDq5MClc1z98xzPHkafyMuRHau6073yuajzj7ntkaq27BTgWbjTQF_IxAEjUqZmdTJKfqW1Yjr6VI9AT2dbUn5-TI0pwC/s320/001.png" width="320" /></a></div>
<div style="text-align: right;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEim55Mk9_hcup6VQUWLerGNKYqFHUtdntyJuOnrB0LwMbo6IC4DNTkofO3WcEb6k3xJaYM_cfGP5MFCwjLey5RD9Ecuu5s7AtZRmh9PbcR00BM1fTOD-wxUuwdYMw_3YThw1cajqjUxvSAw/s1600/002.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="265" data-original-width="624" height="135" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEim55Mk9_hcup6VQUWLerGNKYqFHUtdntyJuOnrB0LwMbo6IC4DNTkofO3WcEb6k3xJaYM_cfGP5MFCwjLey5RD9Ecuu5s7AtZRmh9PbcR00BM1fTOD-wxUuwdYMw_3YThw1cajqjUxvSAw/s320/002.png" width="320" /></a></div>
<div dir="rtl" style="text-align: center;">
<br /></div>
<div dir="rtl" style="text-align: right;">
<br /></div>
<div dir="rtl" style="text-align: right;">
يجب أن يكون اسم الملف الجديد package.json ويحتوي على ما يلي:</div>
<div dir="rtl" style="text-align: left;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="font-family: "consolas"; font-size: 9.5pt;">{<o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="font-family: "consolas"; font-size: 9.5pt;"> </span><span style="color: #2e75b6; font-family: "consolas"; font-size: 9.5pt;">"version"</span><span style="font-family: "consolas"; font-size: 9.5pt;">: </span><span style="color: #a31515; font-family: "consolas"; font-size: 9.5pt;">"1.0.0"</span><span style="font-family: "consolas"; font-size: 9.5pt;">,<o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="font-family: "consolas"; font-size: 9.5pt;"> </span><span style="color: #2e75b6; font-family: "consolas"; font-size: 9.5pt;">"name"</span><span style="font-family: "consolas"; font-size: 9.5pt;">: </span><span style="color: #a31515; font-family: "consolas"; font-size: 9.5pt;">"asp.net"</span><span style="font-family: "consolas"; font-size: 9.5pt;">,<o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="font-family: "consolas"; font-size: 9.5pt;"> </span><span style="color: #2e75b6; font-family: "consolas"; font-size: 9.5pt;">"private"</span><span style="font-family: "consolas"; font-size: 9.5pt;">: </span><span style="color: blue; font-family: "consolas"; font-size: 9.5pt;">true</span><span style="font-family: "consolas"; font-size: 9.5pt;">,<o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="font-family: "consolas"; font-size: 9.5pt;"> </span><span style="color: #2e75b6; font-family: "consolas"; font-size: 9.5pt;">"scripts"</span><span style="font-family: "consolas"; font-size: 9.5pt;">: {<o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="font-family: "consolas"; font-size: 9.5pt;"> </span><span style="color: #2e75b6; font-family: "consolas"; font-size: 9.5pt;">"dev"</span><span style="font-family: "consolas"; font-size: 9.5pt;">: </span><span style="color: #a31515; font-family: "consolas"; font-size: 9.5pt;">"webpack --mode development
--watch"</span><span style="font-family: "consolas"; font-size: 9.5pt;">,<o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="font-family: "consolas"; font-size: 9.5pt;"> </span><span style="color: #2e75b6; font-family: "consolas"; font-size: 9.5pt;">"build"</span><span style="font-family: "consolas"; font-size: 9.5pt;">: </span><span style="color: #a31515; font-family: "consolas"; font-size: 9.5pt;">"webpack"</span><span style="font-family: "consolas"; font-size: 9.5pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="font-family: "consolas"; font-size: 9.5pt;"> },<o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="font-family: "consolas"; font-size: 9.5pt;"> </span><span style="color: #2e75b6; font-family: "consolas"; font-size: 9.5pt;">"devDependencies"</span><span style="font-family: "consolas"; font-size: 9.5pt;">: {}<o:p></o:p></span></div>
<div dir="rtl">
<span style="font-family: "consolas"; font-size: 9.5pt; line-height: 107%;">}</span></div>
<div dir="rtl" style="text-align: right;">
<br /></div>
<div dir="rtl" style="text-align: right;">
<b>الخطوة الثانية</b></div>
<div dir="rtl" style="text-align: right;">
إضافة ملف اسمه .babelrc إلى جانب الملف package.json وذلك لاستخدام تقنية Babel التي تحول JSX إلى JavaScript يمكن للمتصفحات أن تفهمها, ويحتوي الملف على ما يلي:</div>
<div style="text-align: left;">
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="font-family: "consolas"; font-size: 9.5pt;">{<o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="font-family: "consolas"; font-size: 9.5pt;"> </span><span style="color: green; font-family: "consolas"; font-size: 9.5pt;">/*
@babel/preset-env – enables latest JavaScript syntax */</span><span style="font-family: "consolas"; font-size: 9.5pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="font-family: "consolas"; font-size: 9.5pt;"> </span><span style="color: green; font-family: "consolas"; font-size: 9.5pt;">/*
@babel/preset-react – adds support for React syntax */</span><span style="font-family: "consolas"; font-size: 9.5pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="font-family: "consolas"; font-size: 9.5pt;"> </span><span style="color: green; font-family: "consolas"; font-size: 9.5pt;">/*
@babel/plugin-proposal-class-properties – adds support for an instance and/or
static member declarations in JavaScript classes */</span><span style="font-family: "consolas"; font-size: 9.5pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="font-family: "consolas"; font-size: 9.5pt;"> </span><span style="color: #2e75b6; font-family: "consolas"; font-size: 9.5pt;">"presets"</span><span style="font-family: "consolas"; font-size: 9.5pt;">: [ </span><span style="color: #a31515; font-family: "consolas"; font-size: 9.5pt;">"@babel/preset-env"</span><span style="font-family: "consolas"; font-size: 9.5pt;">, </span><span style="color: #a31515; font-family: "consolas"; font-size: 9.5pt;">"@babel/preset-react"</span><span style="font-family: "consolas"; font-size: 9.5pt;"> ],<o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="font-family: "consolas"; font-size: 9.5pt;"> </span><span style="color: #2e75b6; font-family: "consolas"; font-size: 9.5pt;">"plugins"</span><span style="font-family: "consolas"; font-size: 9.5pt;">: [ </span><span style="color: #a31515; font-family: "consolas"; font-size: 9.5pt;">"@babel/plugin-proposal-class-properties"</span><span style="font-family: "consolas"; font-size: 9.5pt;"> ]<o:p></o:p></span></div>
<span style="font-family: "consolas"; font-size: 9.5pt; line-height: 107%;">}</span></div>
<div style="text-align: right;">
<b>الخطوة الثالثة</b></div>
<div style="text-align: right;">
<div>
إضافة ملف Webpack configuration file بالاسم webpack.config.js إلى جانب الملف package.json وتحتوي على ما يلي:</div>
<div style="text-align: left;">
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="color: #a31515; font-family: "consolas"; font-size: 9.5pt;">"use
strict"</span><span style="font-family: "consolas"; font-size: 9.5pt;">;<o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="color: blue; font-family: "consolas"; font-size: 9.5pt;">var</span><span style="font-family: "consolas"; font-size: 9.5pt;"> path = require(</span><span style="color: #a31515; font-family: "consolas"; font-size: 9.5pt;">"path"</span><span style="font-family: "consolas"; font-size: 9.5pt;">);<o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="color: blue; font-family: "consolas"; font-size: 9.5pt;">var</span><span style="font-family: "consolas"; font-size: 9.5pt;"> WebpackNotifierPlugin = require(</span><span style="color: #a31515; font-family: "consolas"; font-size: 9.5pt;">"webpack-notifier"</span><span style="font-family: "consolas"; font-size: 9.5pt;">);<o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="color: blue; font-family: "consolas"; font-size: 9.5pt;">var</span><span style="font-family: "consolas"; font-size: 9.5pt;"> BrowserSyncPlugin = require(</span><span style="color: #a31515; font-family: "consolas"; font-size: 9.5pt;">"browser-sync-webpack-plugin"</span><span style="font-family: "consolas"; font-size: 9.5pt;">);<o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="font-family: "consolas"; font-size: 9.5pt;">module.exports
= {<o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="font-family: "consolas"; font-size: 9.5pt;"> entry: {<o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="font-family: "consolas"; font-size: 9.5pt;"> bundle: [</span><span style="color: #a31515; font-family: "consolas"; font-size: 9.5pt;">"./React/Footer.js"</span><span style="font-family: "consolas"; font-size: 9.5pt;">, </span><span style="color: #a31515; font-family: "consolas"; font-size: 9.5pt;">"./React/App.js"</span><span style="font-family: "consolas"; font-size: 9.5pt;">, </span><span style="color: #a31515; font-family: "consolas"; font-size: 9.5pt;">"./React/Index.js"</span><span style="font-family: "consolas"; font-size: 9.5pt;">, </span><span style="color: #a31515; font-family: "consolas"; font-size: 9.5pt;">"./React/Header1.js"</span><span style="font-family: "consolas"; font-size: 9.5pt;">]<o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="font-family: "consolas"; font-size: 9.5pt;"> },<o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="font-family: "consolas"; font-size: 9.5pt;"> output: {<o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="font-family: "consolas"; font-size: 9.5pt;"> path: path.resolve(__dirname, </span><span style="color: #a31515; font-family: "consolas"; font-size: 9.5pt;">"./React"</span><span style="font-family: "consolas"; font-size: 9.5pt;">),<o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="font-family: "consolas"; font-size: 9.5pt;"> filename: </span><span style="color: #a31515; font-family: "consolas"; font-size: 9.5pt;">"react.js"</span><span style="font-family: "consolas"; font-size: 9.5pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="font-family: "consolas"; font-size: 9.5pt;"> },<o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="font-family: "consolas"; font-size: 9.5pt;"> module: {<o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="font-family: "consolas"; font-size: 9.5pt;"> rules: [<o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="font-family: "consolas"; font-size: 9.5pt;"> {<o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="font-family: "consolas"; font-size: 9.5pt;"> test:</span><span style="color: #a31515; font-family: "consolas"; font-size: 9.5pt;"> /\.js$/</span><span style="font-family: "consolas"; font-size: 9.5pt;">,<o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="font-family: "consolas"; font-size: 9.5pt;"> exclude:</span><span style="color: #a31515; font-family: "consolas"; font-size: 9.5pt;"> /node_modules/</span><span style="font-family: "consolas"; font-size: 9.5pt;">,<o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="font-family: "consolas"; font-size: 9.5pt;"> use: {<o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="font-family: "consolas"; font-size: 9.5pt;"> loader: </span><span style="color: #a31515; font-family: "consolas"; font-size: 9.5pt;">"babel-loader"</span><span style="font-family: "consolas"; font-size: 9.5pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="font-family: "consolas"; font-size: 9.5pt;"> }<o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="font-family: "consolas"; font-size: 9.5pt;"> }<o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="font-family: "consolas"; font-size: 9.5pt;"> ]<o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="font-family: "consolas"; font-size: 9.5pt;"> },<o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="font-family: "consolas"; font-size: 9.5pt;"> devtool: </span><span style="color: #a31515; font-family: "consolas"; font-size: 9.5pt;">"inline-source-map"</span><span style="font-family: "consolas"; font-size: 9.5pt;">,<o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="font-family: "consolas"; font-size: 9.5pt;"> plugins: [</span><span style="color: blue; font-family: "consolas"; font-size: 9.5pt;">new</span><span style="font-family: "consolas"; font-size: 9.5pt;"> WebpackNotifierPlugin(), </span><span style="color: blue; font-family: "consolas"; font-size: 9.5pt;">new</span><span style="font-family: "consolas"; font-size: 9.5pt;"> BrowserSyncPlugin()]<o:p></o:p></span></div>
<span style="font-family: "consolas"; font-size: 9.5pt; line-height: 107%;">};</span></div>
<div>
في الشيفرة السابقة يجب الانتباه إلى أن المسار ./React والملفات التي بعده تكون على حسب المشروع, علمًا أن نتيجة تنفيذ هذا الملف هي ملف سيتم تخزينه تحت المجلد ./React أو أي مجلد آخر بالاسم react.js أو بأي اسم آخر</div>
</div>
<div dir="rtl" style="text-align: right;">
<br /></div>
<div dir="rtl" style="text-align: right;">
<b>الخطوة الرابعة</b></div>
<div dir="rtl" style="text-align: right;">
لتشغيل React و Babel يجب تحميل بعض الحزم البرمجية من NPM وذلك باتباع الخطوات التالية:</div>
<div dir="rtl" style="text-align: right;">
1 - يجب فتح cmd tool التابعة للـ Visual Studio وذلك من قائمة ابدأ كما في الصورة التالية:</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgB3A87rOgzaeceyRe0nLQi6L0TH2IdnmdQpYex2znUbAg6k7vgdyv18KO3ukhIbg3DcknBhTWF1st-O5l_d81mXrEpTjbNOpzQKPvqUsKJA1EvcNOxonivvmwq3ZKU1rwwhadzxgSBeqJh/s1600/003.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="634" data-original-width="370" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgB3A87rOgzaeceyRe0nLQi6L0TH2IdnmdQpYex2znUbAg6k7vgdyv18KO3ukhIbg3DcknBhTWF1st-O5l_d81mXrEpTjbNOpzQKPvqUsKJA1EvcNOxonivvmwq3ZKU1rwwhadzxgSBeqJh/s320/003.png" width="186" /></a></div>
<div dir="rtl" style="text-align: center;">
<br /></div>
<div dir="rtl" style="text-align: right;">
2 - الانتقال إلى مجلد المشروع كما في الصورة التالية:</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhYyDJ6fJatDMITFYAn5vcloNxKeEfFrvapr3mnUhEY1WdCqUu35WaJzGtivbL9Sn3-9UAuj4RJwMLHuEozbSt6CQBb-VCPOahZ4qcsKcUOjSdoG2qoQxKMDyBnX_LofQsoLPkQ-qiM15Mm/s1600/004.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="221" data-original-width="588" height="120" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhYyDJ6fJatDMITFYAn5vcloNxKeEfFrvapr3mnUhEY1WdCqUu35WaJzGtivbL9Sn3-9UAuj4RJwMLHuEozbSt6CQBb-VCPOahZ4qcsKcUOjSdoG2qoQxKMDyBnX_LofQsoLPkQ-qiM15Mm/s320/004.png" width="320" /></a></div>
<div dir="rtl" style="text-align: center;">
<br /></div>
<div dir="rtl" style="text-align: right;">
3 - بعدها يجب تنفيذ الأوامر التالية والانتظار حتى تنتهي</div>
<div dir="rtl" style="text-align: left;">
npm install --save-dev @babel/cli @babel/core @babel/plugin-proposal-class-properties @babel/preset-env @babel/preset-react babel-loader browser-sync browser-sync-webpack-plugin react react-dom webpack webpack-cli webpack-notifier</div>
<div dir="rtl" style="text-align: right;">
<br /></div>
<div dir="rtl" style="text-align: right;">
4 - بعد الانتهاء من تنفيذ الأوامر السابقة سيظهر مجلد جديد ضمن مجلد المشروع اسمه node_modules</div>
<div dir="rtl" style="text-align: right;">
<br /></div>
<div dir="rtl" style="text-align: right;">
<b>الخطوة الخامسة</b></div>
<div dir="rtl" style="text-align: right;">
تثبيت NPM Task Runner على Visual Studio من Tools ومن ثم Extension and Updates</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiDkpyv-aY4MbHQmJGyDTomWFWod0h4WdbzWQ4ELOtCxoQg80X1aFB6Gzuowusk2NDvsQPMoIUUFVBQKYBT1LUI83PSgM13brICTnnT3WmxChVrzcKMwL3ohYOrnnTlfsn2FQ7f-6Vtu9tn/s1600/005.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="157" data-original-width="623" height="80" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiDkpyv-aY4MbHQmJGyDTomWFWod0h4WdbzWQ4ELOtCxoQg80X1aFB6Gzuowusk2NDvsQPMoIUUFVBQKYBT1LUI83PSgM13brICTnnT3WmxChVrzcKMwL3ohYOrnnTlfsn2FQ7f-6Vtu9tn/s320/005.png" width="320" /></a></div>
<div dir="rtl" style="text-align: center;">
<br /></div>
<div dir="rtl" style="text-align: right;">
بعد تثبيت الأداة السابقة اتبع الخطوات التالية لتحويل الملفات التي تحتوي على React Code إلى ملفات JavaScript يمكن للمتصفحات فهمها:</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj7h5WYqn8gGjYbm5XWRnGTb6Lnm-zQsP6HU52srBkseCVgHhql96z1V9MNrKw2_sU06bkQYt2pcX8iyjhy3XQ4iK_qi627wyDQCf3Uv7678fUQX1ayQwmay9psOn8ikeg3093MI4LM8V72/s1600/006.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="384" data-original-width="582" height="211" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj7h5WYqn8gGjYbm5XWRnGTb6Lnm-zQsP6HU52srBkseCVgHhql96z1V9MNrKw2_sU06bkQYt2pcX8iyjhy3XQ4iK_qi627wyDQCf3Uv7678fUQX1ayQwmay9psOn8ikeg3093MI4LM8V72/s320/006.png" width="320" /></a></div>
<div dir="rtl" style="text-align: center;">
<br /></div>
<div dir="rtl" style="text-align: right;">
بعدها تظهر الشاشة التالية:</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiN8E0dJniCh_8y6v9UCKGSQcDt8Rcza-Xp4mN6OSAXQukVKVzcUAG0oZ_KLG6Pik4jjLqB5ZkGeHUVdRHGgOQ4PAbPSPbX7rf3TI_Q0YMtHOaYkpyLXsLMqv7FgaAbdyDrsFipQJzDofh_/s1600/007.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="183" data-original-width="418" height="140" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiN8E0dJniCh_8y6v9UCKGSQcDt8Rcza-Xp4mN6OSAXQukVKVzcUAG0oZ_KLG6Pik4jjLqB5ZkGeHUVdRHGgOQ4PAbPSPbX7rf3TI_Q0YMtHOaYkpyLXsLMqv7FgaAbdyDrsFipQJzDofh_/s320/007.png" width="320" /></a></div>
<div dir="rtl" style="text-align: center;">
<br /></div>
<div dir="rtl" style="text-align: right;">
<br /></div>
<div dir="rtl" style="text-align: right;">
اضغط مرتين Double click على dev لتنبدأ عملية إنشاء الملف react.js الذي حددناه في الملف webpack.config.js.</div>
<div dir="rtl" style="text-align: right;">
في حال اتباع الخطوات السابقة بشكل صحيح ولا يوجد خطأ في الملفات التي أنشأتها وتحتوي على React code عندها سيظهر التنبيه التالي:</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiY4_mewzhwE8nbCF6CwKz0cSpyt2kaIZTXjMfTk1DOgjMXX9HV-gHRRMGe22Le5XGaMHA6rrlt5gPWOvNp0uyoDrxyIo6VwbXncuzlSAm5evYMXeoqqpGE5BEqJdiUNJtepK6cVE5edzi5/s1600/008.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="103" data-original-width="364" height="90" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiY4_mewzhwE8nbCF6CwKz0cSpyt2kaIZTXjMfTk1DOgjMXX9HV-gHRRMGe22Le5XGaMHA6rrlt5gPWOvNp0uyoDrxyIo6VwbXncuzlSAm5evYMXeoqqpGE5BEqJdiUNJtepK6cVE5edzi5/s320/008.png" width="320" /></a></div>
<div dir="rtl" style="text-align: center;">
<br /></div>
<div dir="rtl" style="text-align: right;">
وسيتم إنشاء ملف اسمه react.js تحت المجلد React, هذا الملف يمكن تضمينه ضمن ملفات المشروع باستخدام الكود التالي:</div>
<div dir="rtl" style="text-align: left;">
<span style="color: blue; font-family: "consolas"; font-size: 9.5pt; line-height: 107%;"><br /></span></div>
<div dir="rtl" style="text-align: left;">
<span style="color: blue; font-family: "consolas"; font-size: 9.5pt; line-height: 107%;"><</span><span style="color: maroon; font-family: "consolas"; font-size: 9.5pt; line-height: 107%;">script</span><span style="font-family: "consolas"; font-size: 9.5pt; line-height: 107%;"> </span><span style="color: red; font-family: "consolas"; font-size: 9.5pt; line-height: 107%;">src</span><span style="color: blue; font-family: "consolas"; font-size: 9.5pt; line-height: 107%;">="/React/react.js"></</span><span style="color: maroon; font-family: "consolas"; font-size: 9.5pt; line-height: 107%;">script</span><span style="color: blue; font-family: "consolas"; font-size: 9.5pt; line-height: 107%;">></span></div>
<div dir="rtl" style="text-align: left;">
<span style="color: blue; font-family: "consolas"; font-size: 9.5pt; line-height: 107%;"><br /></span></div>
<div dir="rtl" style="text-align: right;">
الآن نفذ المشروع وستحصل على النتائج المطلوبة من شيفرة React التي تمت كتابتها</div>
<div dir="rtl" style="text-align: right;">
<br /></div>
<div dir="rtl" style="text-align: right;">
<br /></div>
<div dir="rtl" style="text-align: right;">
<br /></div>
<div dir="rtl" style="text-align: right;">
<br /></div>
<div dir="rtl" style="text-align: right;">
<br /></div>
<div dir="rtl" style="text-align: right;">
<br /></div>
<div dir="rtl" style="text-align: right;">
<br /></div>
</div>
إسماعيل عنجريني (Ismaeel Enjreny)http://www.blogger.com/profile/12167695003069491843noreply@blogger.com1tag:blogger.com,1999:blog-6356840630573574992.post-71445676623850792262016-02-22T07:21:00.000+03:002016-02-22T07:21:26.349+03:00Issue after install .NET Framework 4.6<div dir="ltr" style="text-align: left;" trbidi="on">
<div dir="rtl" style="text-align: right;">
<br />
<br /></div>
<div dir="rtl" style="text-align: right;">
بعد تثبيت .NET Framework 4.6 بشكل منفصل أو تثبيت Visual Studio 2015 ستحدث مشكلة في تشغيل ASP.NET حيث يظهر خطأ رقمه 255 غير واضح والسبب هو أنا منصة عمل .NET لا تعمل بشكل صحيح</div>
<div dir="rtl" style="text-align: right;">
<br /></div>
<div dir="rtl" style="text-align: right;">
تفاصيل المشكلة وحلها في المقالة التالية</div>
<div dir="rtl" style="text-align: right;">
<br /></div>
<div dir="rtl" style="text-align: right;">
https://support.microsoft.com/en-us/kb/3118750</div>
<div dir="rtl" style="text-align: right;">
<br /></div>
<div dir="rtl" style="text-align: right;">
لا تتوقف</div>
<div dir="rtl" style="text-align: right;">
<br /></div>
<div dir="rtl" style="text-align: right;">
<br /></div>
</div>
إسماعيل عنجريني (Ismaeel Enjreny)http://www.blogger.com/profile/12167695003069491843noreply@blogger.com0tag:blogger.com,1999:blog-6356840630573574992.post-22575613009096087012015-11-05T20:35:00.000+03:002015-11-05T20:36:11.205+03:00مشكلة ويندوز 10 مع localhost<div dir="ltr" style="text-align: left;" trbidi="on">
<div dir="rtl" style="text-align: right;">
<br /></div>
<div dir="rtl" style="text-align: right;">
<br />
عند تحديث نظام تشغيل ويندوز إلى إصدار Windows 10 يتم تثبيت Microsoft Edge بشكل افتراضي وهو المتصفح الذي تراهن عليه مايكروسوفت ليكون بديلاً عن Internet Explorer في القريب العاجل.</div>
<div dir="rtl" style="text-align: right;">
<br /></div>
<div dir="rtl" style="text-align: right;">
المهم في هذا الموضوع هو ظهور مشكلة عند محاولة تصفح رابط محلي مثل Localhost أو رابط تم إعداده من خلال تعديل الملف hosts في المسار التالي:</div>
<div dir="rtl" style="text-align: right;">
<br /></div>
<div style="text-align: left;">
C:\Windows\System32\drivers\etc</div>
<div dir="rtl" style="text-align: right;">
<br /></div>
<div dir="rtl" style="text-align: right;">
حيث لا يتعرف Microsoft Edge ويظهر الخطأ Page Not Found</div>
<div dir="rtl" style="text-align: right;">
<br /></div>
<div dir="rtl" style="text-align: right;">
<br /></div>
<div dir="rtl" style="text-align: right;">
لحل هذه المشكلة اتبع الخطوات التالية:</div>
<div dir="rtl" style="text-align: right;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgq4KjB97HyaO5n4RGejLVaM-2m43T7on6thfXcNA4VbWE7oaPCGkJvp8R9tJhVjlO0Y5h8J_jQPFta5P38-R17AoHFYt0Z_BUbNbpGBBSKDiuTtEkjjfV-K5eTu_J6B-ppDBesXFaBEcNZ/s1600/001.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgq4KjB97HyaO5n4RGejLVaM-2m43T7on6thfXcNA4VbWE7oaPCGkJvp8R9tJhVjlO0Y5h8J_jQPFta5P38-R17AoHFYt0Z_BUbNbpGBBSKDiuTtEkjjfV-K5eTu_J6B-ppDBesXFaBEcNZ/s1600/001.png" /></a></div>
<div dir="rtl" style="text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhafFqSXwQofFMsIymzSDT_bjXwLy2CLMAghCj5T33UMakXDRmdv15aXbbwavFD__rCZeCTxRO6shWuO40m1R9a66B9HcOZq3QJUUn0H9jB1Y3fxeNmm_ooGjbsW4Oa6XpLSpp_sVs2qL4U/s1600/002.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhafFqSXwQofFMsIymzSDT_bjXwLy2CLMAghCj5T33UMakXDRmdv15aXbbwavFD__rCZeCTxRO6shWuO40m1R9a66B9HcOZq3QJUUn0H9jB1Y3fxeNmm_ooGjbsW4Oa6XpLSpp_sVs2qL4U/s1600/002.png" /></a></div>
<div dir="rtl" style="text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiw4cAlzuX0e-7-VcO05-i68qpQVqaaAxILBYvCa6ErEJicgM4kU2G-w2ZK0jjaEcw9HltgIxkb0hx2ecRRXAO4znVfQPm7f38AqzT9IURrICxBXpgnDe8qay6gmIpm8EEDuLMezmkOrhq5/s1600/003.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiw4cAlzuX0e-7-VcO05-i68qpQVqaaAxILBYvCa6ErEJicgM4kU2G-w2ZK0jjaEcw9HltgIxkb0hx2ecRRXAO4znVfQPm7f38AqzT9IURrICxBXpgnDe8qay6gmIpm8EEDuLMezmkOrhq5/s320/003.png" width="247" /></a></div>
<div dir="rtl" style="text-align: center;">
<br /></div>
<div dir="rtl" style="text-align: right;">
يجب إزالة تحديد الخيارين التاليين:</div>
<div dir="rtl" style="text-align: right;">
<br /></div>
<div style="text-align: left;">
</div>
<ul style="text-align: left;">
<li>Include all local (intranet) sites not listed in other zones</li>
<li>Include all sites that bypass the proxy server</li>
</ul>
<div style="direction: rtl;">
<br /></div>
<br />
<div dir="rtl" style="text-align: right;">
بالعربي نتقدم</div>
<div dir="rtl" style="text-align: right;">
<br /></div>
<div dir="rtl" style="text-align: right;">
<br /></div>
</div>
إسماعيل عنجريني (Ismaeel Enjreny)http://www.blogger.com/profile/12167695003069491843noreply@blogger.com0tag:blogger.com,1999:blog-6356840630573574992.post-63821633374529582542015-10-24T19:22:00.001+03:002015-10-24T19:22:48.299+03:00حل مشكلة الصفحة البيضاء في تقرير SSRS<div dir="ltr" style="text-align: left;" trbidi="on">
<div dir="rtl" style="text-align: right;">
<br /></div>
<div dir="rtl" style="text-align: right;">
عند استخدام خدمة التقارير مع SQL Server والتي يطلق عليها SSRS قد تواجه ظهور صفحة بيضاء عند عرض التقرير ضمن ASP.NET. إحدى الأسباب التي قد تؤدي إلى ذلك هي وجود مشكلة بالقيم المحددة لوسطاء التقرير Report Parameters وبالتحديد التي تقبل قيم NULL.</div>
<div dir="rtl" style="text-align: right;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhs5ppdnuiZo3-j2N4ByezN6s_fsuTJEzUtCsR9PO1gCqh_FgVkOogZlhszCX0OCS7Z6BLFgMzb4rWPNlQCOXTl2b5Mj7p02KCJtctA_sfCBOVoLzcS-Lx-qZP7-Zok6-KOjTYhSqzuwcxU/s1600/001.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="183" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhs5ppdnuiZo3-j2N4ByezN6s_fsuTJEzUtCsR9PO1gCqh_FgVkOogZlhszCX0OCS7Z6BLFgMzb4rWPNlQCOXTl2b5Mj7p02KCJtctA_sfCBOVoLzcS-Lx-qZP7-Zok6-KOjTYhSqzuwcxU/s320/001.png" width="320" /></a></div>
<div dir="rtl" style="text-align: center;">
<br /></div>
<div dir="rtl" style="text-align: right;">
<br /></div>
<div dir="rtl" style="text-align: right;">
المشكلة التي واجهتها بالتحديد هي عند استخدام الشيفرة التالية:</div>
<div dir="rtl" style="text-align: right;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiP9RwLXRnEfeFDviI-rDIrLTRsOYX0dhHYPle4ymJXNgOqErhKTrHBb-Zvyq76oBSXVIY2SkwJZmgPOhd8ztv1pOLG1BHW1x1n6AiErBmQwCvPw_x67lFynquiDtenDi2cEO9bfuW3s3e0/s1600/002.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="47" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiP9RwLXRnEfeFDviI-rDIrLTRsOYX0dhHYPle4ymJXNgOqErhKTrHBb-Zvyq76oBSXVIY2SkwJZmgPOhd8ztv1pOLG1BHW1x1n6AiErBmQwCvPw_x67lFynquiDtenDi2cEO9bfuW3s3e0/s320/002.png" width="320" /></a></div>
<div dir="rtl" style="text-align: center;">
<br /></div>
<div dir="rtl" style="text-align: right;">
<br /></div>
<div dir="rtl" style="text-align: right;">
حيث أمرر قيمة للوسيط ProjectID في حال أن قيمته لا تساوي NULL، عندها لا يظهر خطأ في التقرير ولكن يظهر صفحة بيضاء فقط.</div>
<div dir="rtl" style="text-align: right;">
<br /></div>
<div dir="rtl" style="text-align: right;">
<br /></div>
<div dir="rtl" style="text-align: right;">
الحل هو بتمرير NULL إلى الوسيط ProjectID بشكل صريح كما يلي:</div>
<div dir="rtl" style="text-align: right;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiSucKCo8E6C-I5pIO34FDOnydrEaNb8JHoSBIOPkkyCUaiXp4G-0ULYxYx7xS0RBc1KDxIifCxUvGe1tx8Y9QtVDJxenE5rDiDZh4u6-isf6nJJveXLKsv4prsLFbbo6nJEfG0SSjjWfLz/s1600/003.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="91" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiSucKCo8E6C-I5pIO34FDOnydrEaNb8JHoSBIOPkkyCUaiXp4G-0ULYxYx7xS0RBc1KDxIifCxUvGe1tx8Y9QtVDJxenE5rDiDZh4u6-isf6nJJveXLKsv4prsLFbbo6nJEfG0SSjjWfLz/s320/003.png" width="320" /></a></div>
<div dir="rtl" style="text-align: center;">
<br /></div>
<div dir="rtl" style="text-align: right;">
<br /></div>
<div dir="rtl" style="text-align: right;">
بالعربي نتقدم</div>
<div dir="rtl" style="text-align: right;">
<br /></div>
</div>
إسماعيل عنجريني (Ismaeel Enjreny)http://www.blogger.com/profile/12167695003069491843noreply@blogger.com0tag:blogger.com,1999:blog-6356840630573574992.post-14009122914064929412015-10-20T20:18:00.000+03:002015-10-20T20:21:27.038+03:00الخطأ Keyset does not exist exception<div dir="ltr" style="text-align: left;" trbidi="on">
<div style="direction: rtl; text-align: right;">
<br /></div>
<div style="direction: rtl; text-align: right;">
إحدى الطرق لتطبيق الحماية لخدمات الويب المطبقة باستخدام تقنية WCF هي من خلال استخدام الشهادات الموثقة Authorized Certificates وذلك من خلال تطبيق الإعدادات التالية ضمن ملف الـ web.config</div>
<div style="direction: rtl; text-align: right;">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;"><</span><span style="background: white; color: #a31515; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;">system.serviceModel</span><span style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;">></span><span style="background: white; font-family: Consolas; font-size: 9.5pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;"> <</span><span style="background: white; color: #a31515; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;">bindings</span><span style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;">></span><span style="background: white; font-family: Consolas; font-size: 9.5pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;"> <</span><span style="background: white; color: #a31515; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;">basicHttpBinding</span><span style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;">></span><span style="background: white; font-family: Consolas; font-size: 9.5pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;"> <</span><span style="background: white; color: #a31515; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;">binding</span><span style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;"> </span><span style="background: white; color: red; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;">name</span><span style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;">=</span><span style="background: white; font-family: Consolas; font-size: 9.5pt;">"</span><span style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;">BasicHttpBinding_IActiveDirectoryService</span><span style="background: white; font-family: Consolas; font-size: 9.5pt;">"</span><span style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;">></span><span style="background: white; font-family: Consolas; font-size: 9.5pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;"> <</span><span style="background: white; color: #a31515; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;">security</span><span style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;"> </span><span style="background: white; color: red; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;">mode</span><span style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;">=</span><span style="background: white; font-family: Consolas; font-size: 9.5pt;">"</span><span style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;">TransportWithMessageCredential</span><span style="background: white; font-family: Consolas; font-size: 9.5pt;">"</span><span style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;">></span><span style="background: white; font-family: Consolas; font-size: 9.5pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;"> <</span><span style="background: white; color: #a31515; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;">message</span><span style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;"> </span><span style="background: white; color: red; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;">clientCredentialType</span><span style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;">=</span><span style="background: white; font-family: Consolas; font-size: 9.5pt;">"</span><span style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;">Certificate</span><span style="background: white; font-family: Consolas; font-size: 9.5pt;">"</span><span style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;"> /></span><span style="background: white; font-family: Consolas; font-size: 9.5pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;"> </</span><span style="background: white; color: #a31515; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;">security</span><span style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;">></span><span style="background: white; font-family: Consolas; font-size: 9.5pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;"> </</span><span style="background: white; color: #a31515; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;">binding</span><span style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;">></span><span style="background: white; font-family: Consolas; font-size: 9.5pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;"> </</span><span style="background: white; color: #a31515; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;">basicHttpBinding</span><span style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;">></span><span style="background: white; font-family: Consolas; font-size: 9.5pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;"> </</span><span style="background: white; color: #a31515; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;">bindings</span><span style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;">></span><span style="background: white; font-family: Consolas; font-size: 9.5pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;"> <</span><span style="background: white; color: #a31515; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;">client</span><span style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;">></span><span style="background: white; font-family: Consolas; font-size: 9.5pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;"> <</span><span style="background: white; color: #a31515; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;">endpoint</span><span style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;"> </span><span style="background: white; color: red; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;">address</span><span style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;">=</span><span style="background: white; font-family: Consolas; font-size: 9.5pt;">"</span><span style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;">https://[URL]/ActiveDirectoryService.svc</span><span style="background: white; font-family: Consolas; font-size: 9.5pt;">"<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;"> </span><span style="background: white; color: red; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;">binding</span><span style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;">=</span><span style="background: white; font-family: Consolas; font-size: 9.5pt;">"</span><span style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;">basicHttpBinding</span><span style="background: white; font-family: Consolas; font-size: 9.5pt;">"<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;"> </span><span style="background: white; color: red; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;">bindingConfiguration</span><span style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;">=</span><span style="background: white; font-family: Consolas; font-size: 9.5pt;">"</span><span style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;">BasicHttpBinding_IActiveDirectoryService</span><span style="background: white; font-family: Consolas; font-size: 9.5pt;">"<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;"> </span><span style="background: white; color: red; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;">behaviorConfiguration</span><span style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;">=</span><span style="background: white; font-family: Consolas; font-size: 9.5pt;">"</span><span style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;">customBehavior</span><span style="background: white; font-family: Consolas; font-size: 9.5pt;">"<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;"> </span><span style="background: white; color: red; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;">contract</span><span style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;">=</span><span style="background: white; font-family: Consolas; font-size: 9.5pt;">"</span><span style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;">IActiveDirectoryService</span><span style="background: white; font-family: Consolas; font-size: 9.5pt;">"<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;"> </span><span style="background: white; color: red; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;">name</span><span style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;">=</span><span style="background: white; font-family: Consolas; font-size: 9.5pt;">"</span><span style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;">BasicHttpBinding_IActiveDirectoryService</span><span style="background: white; font-family: Consolas; font-size: 9.5pt;">"</span><span style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;"> /></span><span style="background: white; font-family: Consolas; font-size: 9.5pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;"> </</span><span style="background: white; color: #a31515; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;">client</span><span style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;">></span><span style="background: white; font-family: Consolas; font-size: 9.5pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;"> <</span><span style="background: white; color: #a31515; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;">behaviors</span><span style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;">></span><span style="background: white; font-family: Consolas; font-size: 9.5pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;"> <</span><span style="background: white; color: #a31515; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;">endpointBehaviors</span><span style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;">></span><span style="background: white; font-family: Consolas; font-size: 9.5pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;"> <</span><span style="background: white; color: #a31515; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;">behavior</span><span style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;"> </span><span style="background: white; color: red; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;">name</span><span style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;">=</span><span style="background: white; font-family: Consolas; font-size: 9.5pt;">"</span><span style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;">customBehavior</span><span style="background: white; font-family: Consolas; font-size: 9.5pt;">"</span><span style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;">></span><span style="background: white; font-family: Consolas; font-size: 9.5pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;"> <</span><span style="background: white; color: #a31515; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;">clientCredentials</span><span style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;">></span><span style="background: white; font-family: Consolas; font-size: 9.5pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;"> <</span><span style="background: white; color: #a31515; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;">clientCertificate</span><span style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;"> </span><span style="background: white; color: red; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;">findValue</span><span style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;">=</span><span style="background: white; font-family: Consolas; font-size: 9.5pt;">"</span><span style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;">services-p</span><span style="background: white; font-family: Consolas; font-size: 9.5pt;">"<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;"> </span><span style="background: white; color: red; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;">x509FindType</span><span style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;">=</span><span style="background: white; font-family: Consolas; font-size: 9.5pt;">"</span><span style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;">FindBySubjectName</span><span style="background: white; font-family: Consolas; font-size: 9.5pt;">"<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;"> </span><span style="background: white; color: red; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;">storeLocation</span><span style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;">=</span><span style="background: white; font-family: Consolas; font-size: 9.5pt;">"</span><span style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;">LocalMachine</span><span style="background: white; font-family: Consolas; font-size: 9.5pt;">"</span><span style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;"> </span><span style="background: white; color: red; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;">storeName</span><span style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;">=</span><span style="background: white; font-family: Consolas; font-size: 9.5pt;">"</span><span style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;">My</span><span style="background: white; font-family: Consolas; font-size: 9.5pt;">"</span><span style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;"> /></span><span style="background: white; font-family: Consolas; font-size: 9.5pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;"> <</span><span style="background: white; color: #a31515; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;">serviceCertificate</span><span style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;">></span><span style="background: white; font-family: Consolas; font-size: 9.5pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;"> <</span><span style="background: white; color: #a31515; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;">authentication</span><span style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;"> </span><span style="background: white; color: red; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;">certificateValidationMode</span><span style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;">=</span><span style="background: white; font-family: Consolas; font-size: 9.5pt;">"</span><span style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;">ChainTrust</span><span style="background: white; font-family: Consolas; font-size: 9.5pt;">"</span><span style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;"> /></span><span style="background: white; font-family: Consolas; font-size: 9.5pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;"> </</span><span style="background: white; color: #a31515; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;">serviceCertificate</span><span style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;">></span><span style="background: white; font-family: Consolas; font-size: 9.5pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;"> </</span><span style="background: white; color: #a31515; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;">clientCredentials</span><span style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;">></span><span style="background: white; font-family: Consolas; font-size: 9.5pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;"> </</span><span style="background: white; color: #a31515; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;">behavior</span><span style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;">></span><span style="background: white; font-family: Consolas; font-size: 9.5pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;"> </</span><span style="background: white; color: #a31515; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;">endpointBehaviors</span><span style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;">></span><span style="background: white; font-family: Consolas; font-size: 9.5pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;"> </</span><span style="background: white; color: #a31515; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;">behaviors</span><span style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;">></span><span style="background: white; font-family: Consolas; font-size: 9.5pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div style="direction: rtl;">
<span style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; line-height: 107%; mso-ansi-language: EN-US; mso-bidi-language: AR-SA; mso-fareast-font-family: Calibri; mso-fareast-language: EN-US; mso-fareast-theme-font: minor-latin; mso-highlight: white;"></</span><span style="background: white; color: #a31515; font-family: Consolas; font-size: 9.5pt; line-height: 107%; mso-ansi-language: EN-US; mso-bidi-language: AR-SA; mso-fareast-font-family: Calibri; mso-fareast-language: EN-US; mso-fareast-theme-font: minor-latin; mso-highlight: white;">system.serviceModel</span><span style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; line-height: 107%; mso-ansi-language: EN-US; mso-bidi-language: AR-SA; mso-fareast-font-family: Calibri; mso-fareast-language: EN-US; mso-fareast-theme-font: minor-latin; mso-highlight: white;">></span></div>
<div style="direction: rtl; text-align: right;">
<br /></div>
<div style="direction: rtl; text-align: right;">
يجب الانتباه إلى قيمة الخاصية findValue للعنصر clientCertificate فهي تعبر عن اسم الشهادة التي تم تثبيتها على الجهاز، طبعاً هذه الإعدادات تعتمد على معلومات الشهادة الموثقة التي حصلت عليها.</div>
<div style="direction: rtl; text-align: right;">
<br /></div>
<div style="direction: rtl; text-align: right;">
المهم أنه في بعض الأحيان يظهر الخطأ التالي:</div>
<div style="text-align: right;">
<br /></div>
<div style="direction: ltr; text-align: left;">
Keyset does not exist exception</div>
<div style="direction: rtl; text-align: right;">
<br /></div>
<div style="direction: rtl; text-align: right;">
أحد أسباب هذا الخطأ هي أن الحساب الخاص بالموقع على IIS Application Pool ليس لديه صلاحية للوصول إلى المفتاح الخاص Private Key الخاص بالشهادة، ولحل هذه المشكلة يجب اتباع الخطوات التالية:</div>
<div style="direction: rtl; text-align: right;">
<br /></div>
<div style="direction: rtl; text-align: right;">
1 – افتح الأداة MMC كما يلي</div>
<div style="direction: rtl; text-align: right;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgutKYrKXTDXHgFuEvkI29sZfPda_uUNYtdoBH_p-0YfI9FOqWqpSt8RHqfnJ-lvanulDtQ0cDw3apbmKLCg7l6lGqo5TicC9VXtjZexDjl2BAr9eYC5dE4Qv0WQqX7ntjKGcgg3erabewf/s1600/001.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgutKYrKXTDXHgFuEvkI29sZfPda_uUNYtdoBH_p-0YfI9FOqWqpSt8RHqfnJ-lvanulDtQ0cDw3apbmKLCg7l6lGqo5TicC9VXtjZexDjl2BAr9eYC5dE4Qv0WQqX7ntjKGcgg3erabewf/s1600/001.png" /></a></div>
<div style="direction: rtl; text-align: center;">
<br /></div>
<div style="direction: rtl; text-align: right;">
<br /></div>
<div style="direction: rtl; text-align: right;">
<br /></div>
<div style="direction: rtl; text-align: right;">
2 – أضف الأداة Certificates كما يلي:</div>
<div style="direction: rtl; text-align: right;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiNGb-OIMoERnSVWC-SIFrf3S6N9uTipELK-dFTNbJ4j5-IwReGzJS26cpDbqjZAFFl1UafQzacTZaUfRrMBpwbU7fUMtODEoZ0jBo_SQNUehw-XtQTibLIBDP8F0gNsDXQGk1gPdgkdeQs/s1600/002.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiNGb-OIMoERnSVWC-SIFrf3S6N9uTipELK-dFTNbJ4j5-IwReGzJS26cpDbqjZAFFl1UafQzacTZaUfRrMBpwbU7fUMtODEoZ0jBo_SQNUehw-XtQTibLIBDP8F0gNsDXQGk1gPdgkdeQs/s1600/002.png" /></a></div>
<div style="direction: rtl; text-align: right;">
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj2aMgCC69mIA5dV6YnJH75qer5mCGFEBjumeanWM0R3IVYSa3cwEl6TrFDz8-QjF8A2ArBxBEo0Afr0NNM5vzEcYc6xvJz_I-n9ZnSEKAhs4tqgHiPOH_1-EBCydgWg6tOoEkvsI0BQUFI/s1600/003.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj2aMgCC69mIA5dV6YnJH75qer5mCGFEBjumeanWM0R3IVYSa3cwEl6TrFDz8-QjF8A2ArBxBEo0Afr0NNM5vzEcYc6xvJz_I-n9ZnSEKAhs4tqgHiPOH_1-EBCydgWg6tOoEkvsI0BQUFI/s1600/003.png" /></a></div>
<div style="text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg7znIRxQakkKVQG4rUoGoA_uY4RFgu3hj2jE-Mx71Iqg9tloyk93LUQsxbKx5LpyHv7hLffIkkLoZs0hyZzL0GsmockFKnj7vnKw_cUTBC1BfwDyx0Do_HsKNXUPyIVJhbMOIGEWqFql8P/s1600/004.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg7znIRxQakkKVQG4rUoGoA_uY4RFgu3hj2jE-Mx71Iqg9tloyk93LUQsxbKx5LpyHv7hLffIkkLoZs0hyZzL0GsmockFKnj7vnKw_cUTBC1BfwDyx0Do_HsKNXUPyIVJhbMOIGEWqFql8P/s1600/004.png" /></a></div>
<div style="text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj0pILGU_wR5lnHK3DL_I9CYLi9VeY6oGkl97lk_tEyWx6jM0NwvVInyYlPsDTbR_fjHXfxsUlkifry_rV8Hz_P68-W0jBITQUPDpfaDJulGhPfDACPwg1bu5czQj8nG4Qa_b4DhOy_um4K/s1600/005.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj0pILGU_wR5lnHK3DL_I9CYLi9VeY6oGkl97lk_tEyWx6jM0NwvVInyYlPsDTbR_fjHXfxsUlkifry_rV8Hz_P68-W0jBITQUPDpfaDJulGhPfDACPwg1bu5czQj8nG4Qa_b4DhOy_um4K/s1600/005.png" /></a></div>
<div style="text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhsOltc4B6jIIi0evvpBme78yiS0IhW_AtJj7C-hVaZv9Au18DmD7z6hZ0vJhEtQfY5yKvVo0AMcBaRMMQ1SeUcpnXnFTsh2mwljSkIKyEa5B-sko3Q8w7SirkCR4GcSxk78jkBes3uf54F/s1600/006.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhsOltc4B6jIIi0evvpBme78yiS0IhW_AtJj7C-hVaZv9Au18DmD7z6hZ0vJhEtQfY5yKvVo0AMcBaRMMQ1SeUcpnXnFTsh2mwljSkIKyEa5B-sko3Q8w7SirkCR4GcSxk78jkBes3uf54F/s1600/006.png" /></a></div>
<div style="text-align: center;">
<br /></div>
<br />
3 – من خلال الأداة Certificates اختر الشهادة المناسبة وبالضغط على زر الفأرة الأيمن اختر All Tasks ومن ثم Manage Private Keys وأعطي حساب الـ IIS Application Pool الصلاحيات المناسبة.<br />
<br />
الخطوات السابقة يجب أن تحل المشكلة السابق.<br />
<br />
استمتع بالأفضل<br />
<div>
<br /></div>
<br /></div>
<div style="direction: rtl; text-align: right;">
<br /></div>
<div style="direction: rtl; text-align: right;">
<br /></div>
</div>
إسماعيل عنجريني (Ismaeel Enjreny)http://www.blogger.com/profile/12167695003069491843noreply@blogger.com0tag:blogger.com,1999:blog-6356840630573574992.post-11595160351296896712015-10-18T18:50:00.001+03:002015-10-18T18:50:30.653+03:00آلية تشغيل IIS Express مع VS 2013<div dir="ltr" style="text-align: left;" trbidi="on">
<div dir="rtl" style="text-align: right;">
<br /></div>
<div dir="rtl" style="text-align: right;">
في الإصدارات السابقة لـ Visual Studio كانت هناك ميزة من خلالها يمكن توفير إدارة بسيطة للمستخدمين والأدوار Roles الخاص بنظام إدارة المستخدمين Microsoft Membership الافتراضي الذي يمكن تطبيقه على تطبيقات ASP.NET التي تعمل باستخدام تقنية النماذج Web Forms، هذه الميزة تعمل من خلال القائمة PROJECTS عندما يكون المشروع مفتوح ضمن الـ Visual Studio والأمر هو ASP.Net Configuration</div>
<div dir="rtl" style="text-align: right;">
<br /></div>
<div dir="rtl" style="text-align: right;">
كانت وظيفة هذه الأداء هي توفير إمكانيات بسيطة لإدارة المستخدمين والأدوار عند استخدام ASP.NET Membership Provider.</div>
<div dir="rtl" style="text-align: right;">
<br /></div>
<div dir="rtl" style="text-align: right;">
في Visual Studio 2013 لا تظهر هذه الأداة لكن مازالت إمكانية استخدامها متوفرة وذلك من خلال اتباع الخطوات التالية:</div>
<div dir="rtl" style="text-align: right;">
<br /></div>
<div dir="rtl" style="text-align: right;">
1 - ابحث عن مسار المجلد IISExpress تحت المجدل Program Files وعادة ما يكون كما يلي:</div>
<div dir="rtl" style="text-align: right;">
<br /></div>
<div dir="rtl" style="text-align: right;">
<br /></div>
<div dir="rtl" style="text-align: left;">
C:\Program Files\IIS Express</div>
<div dir="rtl" style="text-align: right;">
<br /></div>
<div dir="rtl" style="text-align: right;">
2 – شغل سطر الأوامر Command Prompt وانتقل إلى مسار المجلد IIS Express كما يلي:</div>
<div dir="rtl" style="text-align: right;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj_81yln1drRzzABDiNdSTa7ixHEOlxG_i-BqKp5UjdX86ObPgR6LqWMujLwgCakFPOvOS9vsCCFoYNIxbKKj2CwdGZRd8V6izSno6QcxtfRTAKuhaBkTbLviZcPTwd8t3x88t6jdOli2oX/s1600/001.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="109" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj_81yln1drRzzABDiNdSTa7ixHEOlxG_i-BqKp5UjdX86ObPgR6LqWMujLwgCakFPOvOS9vsCCFoYNIxbKKj2CwdGZRd8V6izSno6QcxtfRTAKuhaBkTbLviZcPTwd8t3x88t6jdOli2oX/s320/001.png" width="320" /></a></div>
<div dir="rtl" style="text-align: center;">
<br /></div>
<div dir="rtl" style="text-align: right;">
<br /></div>
<div dir="rtl" style="text-align: right;">
3 – نفذ الأمر التالي:</div>
<div dir="rtl" style="text-align: right;">
<br /></div>
<div dir="rtl" style="text-align: left;">
iisexpress.exe /path:"C:\Windows\Microsoft.NET\Framework64\v4.0.30319\ASP.NETWebAdminFiles" /vpath:"/ASP.NETWebAdminFiles" /port:5467 /clr:4.0 /ntlm</div>
<div dir="rtl" style="text-align: right;">
<br /></div>
<div dir="rtl" style="text-align: right;">
مع الانتباه إلى أن قيمة المتغير port يمكن تغييرها مع الانتباه إلى استخدام رقم منفذ غير مستخدم</div>
<div dir="rtl" style="text-align: right;">
<br /></div>
<div dir="rtl" style="text-align: right;">
<br /></div>
<div dir="rtl" style="text-align: right;">
4 – الآن شغل الأمر التالي في المتصفح:</div>
<div dir="rtl" style="text-align: right;">
<br /></div>
<div dir="rtl" style="text-align: left;">
http://localhost:5467/asp.netwebadminfiles/default.aspx?applicationPhysicalPath=[ProjectPath]&applicationUrl=/</div>
<div dir="rtl" style="text-align: right;">
<br /></div>
<div dir="rtl" style="text-align: right;">
مع الانتباه إلى ضرورة تغيير قيمة المتغير applicationPhysicalPath إلى مسار مجلد المشروع الفيزيائي، مثلاً:</div>
<div dir="rtl" style="text-align: right;">
<br /></div>
<div dir="rtl" style="text-align: left;">
c:\inetpub\wwwroot\mywebsite</div>
<div dir="rtl" style="text-align: right;">
<br /></div>
<div dir="rtl" style="text-align: right;">
الآن يجب أن تعمل الأداة بالشكل المناسب، في حال أنها لم تعمل الرجاء وضع تفاصيل الخطأ الذي يظهر في التعليقات لكي تتم مساعدتك.</div>
<div dir="rtl" style="text-align: right;">
<br /></div>
<div dir="rtl" style="text-align: right;">
استمتع بالأفضل</div>
<div style="text-align: right;">
<br /></div>
<div dir="rtl" style="text-align: right;">
<br /></div>
<div dir="rtl" style="text-align: right;">
<br /></div>
<div dir="rtl" style="text-align: right;">
<br /></div>
<div dir="rtl" style="text-align: right;">
<br /></div>
<div dir="rtl" style="text-align: right;">
<br /></div>
<div dir="rtl" style="text-align: right;">
<br /></div>
<div dir="rtl" style="text-align: right;">
<br /></div>
<div dir="rtl" style="text-align: right;">
<br /></div>
</div>
إسماعيل عنجريني (Ismaeel Enjreny)http://www.blogger.com/profile/12167695003069491843noreply@blogger.com0tag:blogger.com,1999:blog-6356840630573574992.post-67707245111914684202015-10-10T15:26:00.001+03:002015-10-10T15:26:46.821+03:00كيف توقف خدمة في ويندوز بشكل إجباري<div dir="ltr" style="text-align: left;" trbidi="on">
<div dir="rtl" style="text-align: right;">
<br /></div>
<div dir="rtl" style="text-align: right;">
<br /></div>
<div dir="rtl" style="text-align: right;">
عند تشغيل/إيقاف Windows Service من خلال الشاشة services.msc أو من خلال سطر الأوامر Command Line باستخدام أحد الأمرين التاليين:</div>
<div dir="rtl" style="text-align: right;">
<br /></div>
sc start [ServiceName]<br />
sc stop [ServiceName]<br />
<div>
<br /></div>
<div dir="rtl" style="text-align: right;">
في بعض الأحيان قد تعلق الخدمة في الوضع Starting أو Stopping لعدة أسباب من أهمها وجود شيفرة برمجية غير صحيحة في الحدث OnStart أو الحدث OnStop.</div>
<div dir="rtl" style="text-align: right;">
<br /></div>
<div dir="rtl" style="text-align: right;">
فمثلاً لنفترض الخدمة في الحالة Running ونريد إطفاءها (إيقافها عن العمل) وفي الحدث OnStop يوجد السطر التالي فقط:</div>
<div dir="rtl" style="text-align: right;">
<br /></div>
<div style="text-align: left;">
throw new Exception(“”);</div>
<div dir="rtl" style="text-align: right;">
<br /></div>
<div dir="rtl" style="text-align: right;">
هذا يعني أنه عند كل محاول إيقاف الخدمة سيتم رمي هذا الاستثناء وبالتالي فشل عملية الإيقاف ولن يتمكن المستخدم من إيقاف الخدمة. لإيقاف مثل هذه الخدمات يجب اتباع الخطوات التالية:</div>
<div dir="rtl" style="text-align: right;">
<br /></div>
<div dir="rtl" style="text-align: right;">
1 – الحصول على اسم الخدم التي يجب إيقافها وذلك بالضغط عليها مرتين في شاشة خدمات نظام التشغيل services.msc</div>
<div dir="rtl" style="text-align: right;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhnIhqOMbTXbbi4I9VuLSDdTaaZPjVEa4deRXXC-BNwg4EqkTiBMOk9BjYwlPQxAO-1WcMu3sXCRUz8F2d4vH1C_wRkhwSNs4KIJ_7aIiyGDr3VAoh8oqLIYOwODM5fSh4uXN-Gy0YNNpRh/s1600/001.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhnIhqOMbTXbbi4I9VuLSDdTaaZPjVEa4deRXXC-BNwg4EqkTiBMOk9BjYwlPQxAO-1WcMu3sXCRUz8F2d4vH1C_wRkhwSNs4KIJ_7aIiyGDr3VAoh8oqLIYOwODM5fSh4uXN-Gy0YNNpRh/s320/001.png" width="277" /></a></div>
<div dir="rtl" style="text-align: center;">
<br /></div>
<div dir="rtl" style="text-align: right;">
2 – تشغيل سطر الأوامر كمدير للنظام Run Command Prompt as administrator.</div>
<div dir="rtl" style="text-align: right;">
<br /></div>
<div dir="rtl" style="text-align: right;">
3 - نفذ السطر التالي</div>
<div dir="rtl" style="text-align: right;">
<br /></div>
<div style="text-align: left;">
sc queryex TimeBroker</div>
<div dir="rtl" style="text-align: right;">
<br /></div>
<div dir="rtl" style="text-align: right;">
عندها تظهر النتيجة التالي:</div>
<div dir="rtl" style="text-align: right;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEioTyRCUt6vsmwQMJyQ4o1hf9xSgv8FaQVCm-1Ui9xJjf-6kk2ls-25JmSE-EABT3hySrNxEYVPLivsFBYOIPRbOGtTVRF2b2gmC-EzRbxv_yyQUvQ0wvs-choHzUsoXz6H6ePes19xvdaz/s1600/002.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="92" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEioTyRCUt6vsmwQMJyQ4o1hf9xSgv8FaQVCm-1Ui9xJjf-6kk2ls-25JmSE-EABT3hySrNxEYVPLivsFBYOIPRbOGtTVRF2b2gmC-EzRbxv_yyQUvQ0wvs-choHzUsoXz6H6ePes19xvdaz/s320/002.png" width="320" /></a></div>
<div dir="rtl" style="text-align: center;">
<br /></div>
<div dir="rtl" style="text-align: right;">
<br /></div>
<div dir="rtl" style="text-align: right;">
نلاحظ القيمة PID تساوي 1348 وهو رقم العملية التي تشغل الخدمة ضمن نظام التشغيل.</div>
<div dir="rtl" style="text-align: right;">
<br /></div>
<div dir="rtl" style="text-align: right;">
4 – الخطوة الأخيرة هي تنفيذ الأمر التالي لقتل العملية رقم 1348 لإيقاف الخدمة عن العمل بشكل إجباري</div>
<div dir="rtl" style="text-align: right;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhuIE5R6iUMrGYTlti1OvBjHgk_qw2vsVFOtPSUhrMjeYcudYdhtyxPoLb3INx2FMN4TxDHYaIVb3tspoVGPnH64WszjKoqA6HG9YwUzHSq2IumzaF67WDyUxdhF2sRSfWb0OAiDtufVsTH/s1600/003.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="63" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhuIE5R6iUMrGYTlti1OvBjHgk_qw2vsVFOtPSUhrMjeYcudYdhtyxPoLb3INx2FMN4TxDHYaIVb3tspoVGPnH64WszjKoqA6HG9YwUzHSq2IumzaF67WDyUxdhF2sRSfWb0OAiDtufVsTH/s320/003.png" width="320" /></a></div>
<div dir="rtl" style="text-align: center;">
<br /></div>
<div dir="rtl" style="text-align: right;">
<br /></div>
<div dir="rtl" style="text-align: right;">
بعد تنفيذ الأمر السابق ستكون الخدمة قد توقفت بشكل إجباري.</div>
<div dir="rtl" style="text-align: right;">
<br /></div>
<div dir="rtl" style="text-align: right;">
<br /></div>
<div dir="rtl" style="text-align: right;">
<br /></div>
<div dir="rtl" style="text-align: right;">
<br /></div>
<div dir="rtl" style="text-align: right;">
<br /></div>
<div dir="rtl" style="text-align: right;">
<br /></div>
<div dir="rtl" style="text-align: right;">
<br /></div>
<div dir="rtl" style="text-align: right;">
<br /></div>
<div dir="rtl" style="text-align: right;">
<br /></div>
</div>
إسماعيل عنجريني (Ismaeel Enjreny)http://www.blogger.com/profile/12167695003069491843noreply@blogger.com0tag:blogger.com,1999:blog-6356840630573574992.post-72739327004017514232015-10-09T08:04:00.002+03:002015-10-09T08:05:47.758+03:00أنواع الحقول في محرك البحث Solr<div dir="ltr" style="text-align: left;" trbidi="on">
<div dir="rtl" style="text-align: right;">
<br />
<br />
في هذه المقالة يتم استعراض جميع أنواع الحقول في Solr, تم نشر هذه المقالة على موقع scribd كملف PDF</div>
<div dir="rtl" style="text-align: right;">
<br /></div>
<div dir="rtl" style="text-align: right;">
<br /></div>
<div dir="rtl" style="text-align: right;">
<br /></div>
<div dir="rtl" style="text-align: right;">
<a href="https://www.scribd.com/doc/235539926/%D8%A3%D9%86%D9%88%D8%A7%D8%B9-%D8%A7%D9%84%D8%AD%D9%82%D9%88%D9%84-%D9%81%D9%8A-%D9%85%D8%AD%D8%B1%D9%83-%D8%A7%D9%84%D8%A8%D8%AD%D8%AB-Solr" target="_blank">أنواع-الحقول-في-محرك-البحث-Solr</a><br />
<br />
<br />
<br /></div>
</div>
إسماعيل عنجريني (Ismaeel Enjreny)http://www.blogger.com/profile/12167695003069491843noreply@blogger.com0tag:blogger.com,1999:blog-6356840630573574992.post-67769977051840369902014-07-27T10:47:00.002+03:002014-07-27T10:48:09.633+03:00خطوات تثبيت محرك البحث Solr<div dir="ltr" style="text-align: left;" trbidi="on">
<div dir="rtl" style="text-align: right;">
<span style="font-size: large;"><br /></span>
<span style="font-size: large;"><br /></span>
<span style="font-size: large;">خطوات تثبيت محرك البحث Solr</span></div>
<div dir="rtl" style="text-align: right;">
<span style="font-size: large;"><br /></span></div>
<div dir="rtl" style="text-align: right;">
<span style="font-size: large;">http://www.scribd.com/doc/235190828/ArabicSolr-Installation</span></div>
<div dir="rtl" style="text-align: right;">
<span style="font-size: large;"><br /></span></div>
<div dir="rtl" style="text-align: right;">
<span style="font-size: large;">تعتبر هذه المقالة الأولى في سلسلة تعلم Solr بالعربي.</span></div>
<div dir="rtl" style="text-align: right;">
<span style="font-size: large;"><br /></span></div>
<div dir="rtl" style="text-align: right;">
<span style="font-size: large;">قراءة ماتعة</span></div>
<div dir="rtl" style="text-align: right;">
<span style="font-size: large;"><br /></span></div>
<div dir="rtl" style="text-align: right;">
<br /></div>
</div>
إسماعيل عنجريني (Ismaeel Enjreny)http://www.blogger.com/profile/12167695003069491843noreply@blogger.com0tag:blogger.com,1999:blog-6356840630573574992.post-91593393176518792352014-05-15T08:48:00.000+03:002014-05-21T22:33:38.164+03:00كتاب شيربوينت 2013 باللغة العربية<div dir="ltr" style="text-align: left;" trbidi="on">
<div dir="rtl" style="text-align: right;">
<br /></div>
<div dir="rtl">
<div style="text-align: right;">
بحمد الله تم اليوم إصدار كتابي الجديد بعنوان تعلم SharePoint 2013 بمشاركة أخي وصديقي فادي عبد الوهاب</div>
</div>
<div dir="rtl" style="background-color: white; color: #141823; font-family: 'lucida grande', tahoma, verdana, arial, sans-serif; font-size: 14px; line-height: 19.31999969482422px; margin-bottom: 6px; margin-top: 6px; text-align: right;">
<br />
<a href="http://www.neelwafurat.com/itempage.aspx?id=lbb229815-208246&search=books" target="_blank">http://www.neelwafurat.com/itempage.aspx?id=lbb229815-208246&search=books</a><br />
<br /></div>
<div dir="rtl">
<div style="text-align: right;">
الكتاب يتحدث عن شيربوينت 2013 والبحث وتعدد اللغات وبعض المفاهيم المفيدة</div>
</div>
<div dir="rtl">
<div style="text-align: right;">
<br /></div>
</div>
<div dir="rtl">
<div style="text-align: right;">
ندعو الله أن يكون رافداً للمحتوى العربي المعلوماتي حيث يعتبر الوحيد (على ما أعتقد) فيما يخص شيربوينت 2013 وهو الكتاب الثاني بعد تعلم شيربوينت 2010</div>
</div>
<div dir="rtl">
<div style="text-align: right;">
<br /></div>
</div>
<div dir="rtl">
<div style="text-align: right;">
لطلب الكتاب الرجاء التواصل على ismaeel.enjreny@gmail.com</div>
<div style="text-align: right;">
<br /></div>
<div style="text-align: right;">
<br /></div>
</div>
</div>
إسماعيل عنجريني (Ismaeel Enjreny)http://www.blogger.com/profile/12167695003069491843noreply@blogger.com11tag:blogger.com,1999:blog-6356840630573574992.post-7747133842591405132014-02-28T10:00:00.000+03:002014-02-28T10:00:24.462+03:00قائمة بروابط حزمة الإصلاح الأولى لشيربوينت 2013<div dir="ltr" style="text-align: left;" trbidi="on">
<blockquote class="postcontent restore ">
<div style="text-align: left;">
Microsoft SharePoint Server 2013 Service Pack 1<br />
<a href="http://www.microsoft.com/en-us/download/details.aspx?id=42008" target="_blank">http://www.microsoft.com/en-us/downl....aspx?id=42008</a><br />
<br />
<br />
Microsoft Project Server 2013 Service Pack 1<br />
<a href="http://www.microsoft.com/en-us/download/details.aspx?id=42011" target="_blank">http://www.microsoft.com/en-us/downl....aspx?id=42011</a><br />
<br />
<br />
Service Pack 1 for Microsoft SharePoint Foundation 2013<br />
<a href="http://www.microsoft.com/en-us/download/details.aspx?id=42002" target="_blank">http://www.microsoft.com/en-us/downl....aspx?id=42002</a><br />
<br />
<br />
Service Pack 1 for Microsoft SharePoint Server 2013 Language Pack<br />
<a href="http://www.microsoft.com/en-us/download/details.aspx?id=42004" target="_blank">http://www.microsoft.com/en-us/downl....aspx?id=42004</a><br />
<br />
<br />
Service Pack 1 for Microsoft SharePoint Foundation 2013 Language Pack<br />
<a href="http://www.microsoft.com/en-us/download/details.aspx?id=42007" target="_blank">http://www.microsoft.com/en-us/downl....aspx?id=42007</a><br />
<br />
<br />
Service Pack 1 for Microsoft Office Web Apps Server <br />
<a href="http://www.microsoft.com/en-us/download/details.aspx?id=42021" target="_blank">http://www.microsoft.com/en-us/downl....aspx?id=42021</a></div>
</blockquote>
<br /></div>
إسماعيل عنجريني (Ismaeel Enjreny)http://www.blogger.com/profile/12167695003069491843noreply@blogger.com0tag:blogger.com,1999:blog-6356840630573574992.post-75778234171761600942014-01-05T08:34:00.003+03:002014-01-05T08:34:52.667+03:00طريقة لتشخيص مشاكل شيربوينت 2013 باستخدام سطر الأوامر PowerShell<div dir="ltr" style="text-align: left;" trbidi="on">
<div dir="rtl" style="text-align: right;">
<br /></div>
<div dir="rtl" style="text-align: right;">
عادة عند ظهور خطأ في شيربوينت 2013 يظهر رقم يرتبط بالخطأ بطريقة أو بأخرى وتسجل معلومات المشكلة في ملفات شيربوينت 2013 Log Files. باستخدام سطر الأوامر PowerShell في شيربوينت 2013 يمكن الحصول على تفاصيل الخطأ باستخدام رقم الارتباط بتنفيذ الأمر التالي:</div>
<div dir="rtl" style="text-align: right;">
<br /></div>
<div style="text-align: left;">
Get-Content [Log File Path] | select-string [correlationId] > c:\log.txt</div>
<div dir="rtl" style="text-align: right;">
<br /></div>
<div dir="rtl" style="text-align: right;">
بعد تنفيذ الأمر السابق سيتم تخزين كل ما له علاقة برقم الارتباط المحدد في الملف log.txt على القسم C.</div>
<div dir="rtl" style="text-align: right;">
<br /></div>
<div dir="rtl" style="text-align: right;">
<br /></div>
<div dir="rtl" style="text-align: right;">
<br /></div>
</div>
إسماعيل عنجريني (Ismaeel Enjreny)http://www.blogger.com/profile/12167695003069491843noreply@blogger.com0tag:blogger.com,1999:blog-6356840630573574992.post-70442152811636813642013-12-23T15:08:00.001+03:002013-12-23T15:09:15.654+03:00إعادة تهيئة خدمة مزامنة الحسابات في شيربوينت 2010<div dir="ltr" style="text-align: left;" trbidi="on">
<br />
<div dir="rtl" style="text-align: right;">
من أكثر المشاكل شهرة في شيربوينت 2010 هي خدمة مزامنة الحسابات من خلال Profile Service حيث قد تبقى ضمن الحالة Starting لمدة طويل وتفشل بعدها. المقالة التالية هي أفضل مقالة قرأتها عن هذا الموضوع من قبل مهندس مختص في حل مشاكل العملاء</div>
<div dir="rtl" style="text-align: right;">
<br /></div>
<div style="text-align: left;">
<a href="http://blogs.technet.com/b/steve_chen/archive/2013/01/23/3547855.aspx">http://blogs.technet.com/b/steve_chen/archive/2013/01/23/3547855.aspx</a></div>
<div dir="rtl" style="text-align: right;">
<br /></div>
<div dir="rtl" style="text-align: right;">
استمتع :)</div>
<div dir="rtl" style="text-align: right;">
<br /></div>
</div>
إسماعيل عنجريني (Ismaeel Enjreny)http://www.blogger.com/profile/12167695003069491843noreply@blogger.com0tag:blogger.com,1999:blog-6356840630573574992.post-12013316639410350742013-12-14T08:51:00.001+03:002013-12-14T08:52:37.276+03:00إنشاء قاموس مخصص للبحث في شيربوينت 2013<div dir="ltr" style="text-align: left;" trbidi="on">
<div dir="rtl" style="text-align: right;">
<br /></div>
<div dir="rtl" style="text-align: right;">
<br /></div>
<div dir="rtl" style="text-align: right;">
يمكن استخدام المختصرات Acronyms في عملية البحث باستخدام شيربوينت 2013 بحيث يمكن للمستخدم كتابة كلمات مختصرة للبحث عن وثائق أو صفحات. مثلاً، يمكن البحث عن تقرير المبيعات الشهري باستخدام Monthly Sales Report والبعض يستخدم الاختصار MSR:</div>
<div dir="rtl" style="text-align: right;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjgOjpgd8M4cJ7YAlubPUSVVP1cRSyoFv_EOvhwAsJUVyRIMSmySgo1V9BL2AZgsCx9i3J6Xc-ANiC3XGqbRAP2ygXkOR3-Uwv970ysyKUyLVW34lOtTuY_Olff6leBsmg7XKUe6tqynZpe/s1600/01.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="176" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjgOjpgd8M4cJ7YAlubPUSVVP1cRSyoFv_EOvhwAsJUVyRIMSmySgo1V9BL2AZgsCx9i3J6Xc-ANiC3XGqbRAP2ygXkOR3-Uwv970ysyKUyLVW34lOtTuY_Olff6leBsmg7XKUe6tqynZpe/s320/01.png" width="320" /></a></div>
<div dir="rtl" style="text-align: center;">
<br /></div>
<div dir="rtl" style="text-align: right;">
<br /></div>
<div dir="rtl" style="text-align: right;">
وفي شيربوينت 2013 يمكن بسهولة إنشاء واستيراد قاموس يحتوي على مختصرات تساعد في تسهيل عمليات البحث. فمثلاً، تصور أن مكتبة المستندات تحتوي على ما يلي:</div>
<div dir="rtl" style="text-align: right;">
</div>
<ul dir="rtl" style="text-align: right;">
<li>ملف Office Word عنوانه Coffee.</li>
<li>ملف PowerPoint عنوانه Cup of Joe.</li>
</ul>
<div class="separator" dir="rtl" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjOw3DfFe8fqx24vLBf3QqkhQ92DgwbDHx4KBjbzQ72aTRyeoHeJZxROgZYkZ00A97csl54Zj5_E5O6ZBu4G18yXuHeGYg50sCRKZaRy_mQLQNJzwneKPU5av0TYBm5REhHJ6AW6WHase2R/s1600/02.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="207" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjOw3DfFe8fqx24vLBf3QqkhQ92DgwbDHx4KBjbzQ72aTRyeoHeJZxROgZYkZ00A97csl54Zj5_E5O6ZBu4G18yXuHeGYg50sCRKZaRy_mQLQNJzwneKPU5av0TYBm5REhHJ6AW6WHase2R/s320/02.png" width="320" /></a></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<div dir="rtl" style="text-align: right;">
وعند البحث باستخدام الكلمة Coffee فإن نتيجة البحث ستحتوي فقط على ملف الـ Word:</div>
</div>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgf6E-lVlNiAj4yRZde7SSi3u2AEsBQB943yPTG6UYRiuBOANn6jSOtlu5oPxKFbI8grk0pSJ67P7-0EiwNKj8ExGXw02XAYPI-W8iMls-oTyoPhhkUb12nmIQhj1zI1WeiiDpGDUzWsS_V/s1600/03.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="148" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgf6E-lVlNiAj4yRZde7SSi3u2AEsBQB943yPTG6UYRiuBOANn6jSOtlu5oPxKFbI8grk0pSJ67P7-0EiwNKj8ExGXw02XAYPI-W8iMls-oTyoPhhkUb12nmIQhj1zI1WeiiDpGDUzWsS_V/s320/03.png" width="320" /></a></div>
<div style="text-align: center;">
<br /></div>
<div>
<br /></div>
<div>
<div dir="rtl" style="text-align: right;">
وعند البحث عن cup of joe فإن نتيجة البحث تحتوي فقط على ملف الـ PowerPoint:</div>
</div>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjBR1pw_Q4YH-d-JsABV6QqSYALFlFe-LwgScXfox_7Eo88ZdKTXKn4G5wEZJRBIf1qQNg2a_h6tMiN2kzPh5eCndQsJ55TwjhZQKLyEZE9qiKmv8d0A_g5IsFy-rnmrwoJCGTnItd6n5Ia/s1600/04.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="142" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjBR1pw_Q4YH-d-JsABV6QqSYALFlFe-LwgScXfox_7Eo88ZdKTXKn4G5wEZJRBIf1qQNg2a_h6tMiN2kzPh5eCndQsJ55TwjhZQKLyEZE9qiKmv8d0A_g5IsFy-rnmrwoJCGTnItd6n5Ia/s320/04.png" width="320" /></a></div>
<div style="text-align: center;">
<br /></div>
<div>
<br /></div>
<div dir="rtl" style="text-align: right;">
فيما يلي سنعمل على إنشاء واستيراد قاموس إلى شيربوينت 2013 بحيث عند البحث بأي من الجملتين السابقتين فإن نتائج البحث ستحتوي على الملفين معاً.</div>
<div dir="rtl" style="text-align: right;">
1 - أنشئ ملفاً جديداً باستخدام Notepad</div>
<div dir="rtl" style="text-align: right;">
2 - أدخل في أول سطر الكلمات التالية مع الفصل بينها بفاصلة Key,Synonym,Language</div>
<div dir="rtl" style="text-align: right;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiWj3OSidbbnD9PxSy5dmbqOA5mqQaiasUoE7D3nJuEezH7RdCnuly-V0VK_8sW7HackTNanUigS6zjNbjuvIKe6RCIOZtEiTvqjcMl2SVfrfwD-2HTnHnhHkjpYYprlPdbjp-niPIZp1NO/s1600/05.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiWj3OSidbbnD9PxSy5dmbqOA5mqQaiasUoE7D3nJuEezH7RdCnuly-V0VK_8sW7HackTNanUigS6zjNbjuvIKe6RCIOZtEiTvqjcMl2SVfrfwD-2HTnHnhHkjpYYprlPdbjp-niPIZp1NO/s1600/05.png" /></a></div>
<div style="text-align: center;">
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
<div dir="rtl" style="text-align: right;">
3 - في سطر جديد أدخل المختصرات بحيث يتم إدخال الجملة الكاملة أولاً ومن ثم يتم إدخال الاختصار وآخرها رمز اللغة، وكل منها يفصل بينها فاصلة:</div>
<div dir="rtl" style="text-align: right;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhl7lrog52jc5C8lQeamy_Kmc4PC_v8dh1j5_48ZWmSY4wVFKEtcO0jcQ0SP2OIYvPDaNZOmbBrylpBid5u_mcvcuGFF5DsENNKLsQWWAORdjYsodyOfJQ7Cc5A8c3-Dtz8J57S9bd08opt/s1600/06.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhl7lrog52jc5C8lQeamy_Kmc4PC_v8dh1j5_48ZWmSY4wVFKEtcO0jcQ0SP2OIYvPDaNZOmbBrylpBid5u_mcvcuGFF5DsENNKLsQWWAORdjYsodyOfJQ7Cc5A8c3-Dtz8J57S9bd08opt/s1600/06.png" /></a></div>
<div style="text-align: center;">
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<div dir="rtl" style="text-align: right;">
4 - احفظ الملف بصيغة .csv مع الترميز UTF-8:</div>
</div>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh9SrkkYGfsY9NVN21T62fP8x9Fjx178cI9uj9hwJ81aW96nfwuTJ0FId-Tq65UK9JL_4j42PrnaLMCrPd3KsbEclS09ygtxtBP2Z_UfwAHsuZkRDaUiQkpiuM5KTHfbO4EzHhnTGznzhP0/s1600/07.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="79" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh9SrkkYGfsY9NVN21T62fP8x9Fjx178cI9uj9hwJ81aW96nfwuTJ0FId-Tq65UK9JL_4j42PrnaLMCrPd3KsbEclS09ygtxtBP2Z_UfwAHsuZkRDaUiQkpiuM5KTHfbO4EzHhnTGznzhP0/s320/07.png" width="320" /></a></div>
<div style="text-align: center;">
<br /></div>
<div>
<br /></div>
<div dir="rtl" style="text-align: right;">
<b>استيراد القاموس الجديد إلى شيربوينت 2013</b></div>
<div dir="rtl" style="text-align: right;">
قبل البدء بعملية استيراد يجب أن تكون مدير لخدمة البحث Search service application administrator.</div>
<div dir="rtl" style="text-align: right;">
1 - افتح SharePoint 2013 Management Shell:</div>
<div dir="rtl" style="text-align: right;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEha5Pggv36sYm-up8OgXNkDxrBWhnQ9h0Q1aUrLe86XgxwhH1WWUauTbyUYH1kABHyLFl9Jem90kh7rWJ6xLMgt6rYA39TJ-yaibQ9AjRU6pWr1i2DH_8Te_8mmZW5qCUyO3VawgVunWaog/s1600/08.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEha5Pggv36sYm-up8OgXNkDxrBWhnQ9h0Q1aUrLe86XgxwhH1WWUauTbyUYH1kABHyLFl9Jem90kh7rWJ6xLMgt6rYA39TJ-yaibQ9AjRU6pWr1i2DH_8Te_8mmZW5qCUyO3VawgVunWaog/s1600/08.png" /></a></div>
<div style="text-align: center;">
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<div dir="rtl" style="text-align: right;">
2 - نفذ الأمر التالي:</div>
</div>
<div>
<br /></div>
<br />
<div dir="ltr">
$searchApp = Get-SPEnterpriseSearchServiceApplication </div>
<div dir="ltr">
<div dir="ltr">
Import-SPEnterpriseSearchThesaurus -SearchApplication $searchApp -Filename <path></path></div>
<div>
<br /></div>
</div>
<div dir="rtl" style="text-align: right;">
</div>
<div dir="rtl" style="text-align: right;">
يجب الانتباه إلى أن المسار <path> يجب أن يشير إلى مسار على الشبكة حتى لو كان الملف الذي تريد استيراده هو على نفس الخادم. أي يجب أن يكون من الشكل:</path></div>
<div dir="rtl" style="text-align: right;">
<br /></div>
<div dir="ltr" style="text-align: left;">
\\servername_or_ip\SharedPath</div>
<div>
<br /></div>
<div>
<div dir="rtl" style="text-align: right;">
<a href="http://blogs.technet.com/b/tothesharepoint/archive/2013/11/26/create-and-import-a-thesaurus-in-sharepoint-server-2013.aspx" target="_blank">المقالة الأصلية</a></div>
</div>
<div>
<br /></div>
<br />
<div dir="rtl" style="text-align: right;">
<br /></div>
<div dir="rtl" style="text-align: right;">
<br /></div>
</div>
إسماعيل عنجريني (Ismaeel Enjreny)http://www.blogger.com/profile/12167695003069491843noreply@blogger.com0tag:blogger.com,1999:blog-6356840630573574992.post-75662452161418020962013-11-21T08:07:00.002+03:002013-11-21T08:08:16.197+03:00مشكلة الـ Uploadify مع UAG (Unified Access Gateway)<div dir="ltr" style="text-align: left;" trbidi="on">
<div dir="rtl" style="text-align: right;">
<br /></div>
<div dir="rtl" style="text-align: right;">
يعتبر العنصر Uploadify.com من أشهر العناصر المستخدمة في تحميل الملفات بطريقة غير متزامنة علماً أنه يتوفر منه نسختين الأولى فلاش Flash والثانية HTML5. هذه المقالة تتحدث عن تجربة استخدام نسخة الفلاش من Uploadify مع خادم الـ UAG (Unified Access Gateway) الخاص بشركة مايكروسوفت حيث واجهتنا مشكلة ظهور الخطأ التالية:</div>
<div dir="rtl" style="text-align: right;">
<br /></div>
<div dir="rtl" style="text-align: left;">
500 internal server error</div>
<div dir="rtl" style="text-align: right;">
<br /></div>
<div dir="rtl" style="text-align: right;">
عند محاولة تحميل ملفات بغض النظر عن نوعها وأيضاً بغض النظر عن لغة البرمجة المستخدمة. وبعد محاولات كثيرة وبحث تم الاستعانة بشركة مايكروسوفت لحل هذه المشكلة وقد كان جواب مهندس مايكروسوفت كما يلي:</div>
<div style="text-align: right;">
<br /></div>
<div style="text-align: left;">
<div>
<br /></div>
<div>
<br /></div>
<div>
So Multipart/form-data is something that UAG does not support and also according to RFC http://www.w3.org/Protocols/rfc1341/7_2_Multipart.html</div>
<div>
</div>
<div>
The CRLF preceding the encapsulation line is considered part of the boundary so that it is possible to have a part that does not end with a CRLF (line break). Body parts that must be considered to end with line breaks, therefore, should have two CRLFs preceding the encapsulation line, the first of which is part of the preceding body part, and the second of which is part of the encapsulation boundary.</div>
<div>
The requirement that the encapsulation boundary begins with a CRLF implies that the body of a multipart entity must itself begin with a CRLF before the first encapsulation line -- that is, if the "preamble" area is not used, the entity headers must be followed by TWO CRLFs. This is indeed how such entities should be composed. A tolerant mail reading program, however, may interpret a body of type multipart that begins with an encapsulation line NOT initiated by a CRLF as also being an encapsulation boundary, but a compliant mail sending program must not generate such entities.</div>
<div>
Encapsulation boundaries must not appear within the encapsulations, and must be no longer than 70 characters, not counting the two leading hyphens.</div>
<div>
The encapsulation boundary following the last body part is a distinguished delimiter that indicates that no further body parts will follow. Such a delimiter is identical to the previous delimiters, with the addition of two more hyphens at the end of the line:</div>
<div>
--gc0p4Jq0M2Yt08jU534c0p—</div>
<div>
</div>
<div>
More info on page 30 : http://www.ietf.org/rfc/rfc1341.txt</div>
<div>
<br /></div>
</div>
<div dir="rtl" style="text-align: right;">
أي أنه من الواضح وجود نقص في المعلومات التي يرسلها Uploadify (Flash Version) وعلى اعتبار أنه لا يمكن التعديل على شيفرة الفلاش فقد كانت نصيحة مهندس مايكروسوفت هي إيقاف عملية فحص المعلومات المرسلة من قبل العنصر Uploadify وبذلك يتم حل المشكلة. وبالفعل تم اتباع الخطوات التالية باستخدام UGA لإيقاف عملية فحص البيانات المرسلة من قبل Uploadify:</div>
<div dir="rtl" style="text-align: right;">
<br /></div>
<div style="text-align: left;">
http://technet.microsoft.com/en-us/library/dd278134.aspx</div>
<div dir="rtl" style="text-align: right;">
<br /></div>
<div dir="rtl" style="text-align: right;">
علماً أنه في الخطوة رقم 5 يجب استخدام اسم الصفحة التي يُرسل إليها Uploadify البيانات وفي حالتنا كانت كما يلي:</div>
<div dir="rtl" style="text-align: right;">
<br /></div>
<div style="text-align: left;">
./Uploadify\.ashx.*</div>
<div dir="rtl" style="text-align: right;">
<br /></div>
<div dir="rtl" style="text-align: right;">
ملاحظة: قد لا تظهر هذه المشكلة عند رفع ملف أكبر من 3 ميغا والسبب غير معروف أيضاً وقد يعود لآلية تعامل العنصر Uploadify مع الملفات وآلية رفعها.</div>
<div dir="rtl" style="text-align: right;">
<br /></div>
<div dir="rtl" style="text-align: right;">
شكر خاص للمهندس ياسين رحال لمساعدته في هذه المشكلة.</div>
<div dir="rtl" style="text-align: right;">
<br /></div>
<div dir="rtl" style="text-align: right;">
<br /></div>
<div dir="rtl" style="text-align: right;">
<br /></div>
<div dir="rtl" style="text-align: right;">
<br /></div>
</div>
إسماعيل عنجريني (Ismaeel Enjreny)http://www.blogger.com/profile/12167695003069491843noreply@blogger.com0tag:blogger.com,1999:blog-6356840630573574992.post-82570120230495329742013-11-18T07:47:00.001+03:002013-11-18T07:47:55.984+03:00مقدمة إلى ميزة التخزين المجزأ في شيربوينت 2013<div dir="ltr" style="text-align: left;" trbidi="on">
<div dir="rtl" style="text-align: right;">
<br /></div>
<div dir="rtl" style="text-align: right;">
التخزين المجزأ في شيربوينت 2013 هو تحسين جديد على بيئة عمل شيربوينت والمرتبط بعملية تخزين البيانات الثنائية (الملفات) الكبيرة، مثل ملفات Word، PowerPoint وغيرها من الملفات الأخرى. ويعتبر التخزين المجزأ ميزة لتحسين أداء عمليتي القراءة والكتابة وتخفيض حيز التخزين اللازم لتخزين فقط التغييرات التي تمت على الملف. وقد تم بناء هذه الميزة باستخدام البروتوكول Cobalt.</div>
<div dir="rtl" style="text-align: right;">
<br /></div>
<div dir="rtl" style="text-align: right;">
<b>البروتوكول Cobalt</b></div>
<div dir="rtl" style="text-align: right;">
عند حفظ ملف في شيربوينت 2010 تم فتحه باستخدام أحد برامج الأوفيس مثلاً، فإن التغييرات التي تمت على الوثيقة فقط يتم إرسالها إلى خادم الشيربوينت وبعدها يعمل الشيربوينت على تجميع التغييرات مع كامل أجزاء الوثيقة الأخرى وبعدها يتم حفظ الوثيقة في قاعدة البيانات. بينما تم تصميم التخزين المجزأ للتأكد من أن كلفة تحديث الملفات في قاعدة البيانات يتناسب مع التغييرات التي تمت على الملف ولا يتم إعادة حفظ كامل الملف مع التغييرات مرة أخرى. وشيربوينت 2013 يحفظ محتوى الملف كمجموعة من البيانات الثنائية المستقلة وهذا ما يسمى بالتخزين المجزأ وكل جزأ يحصل على رقم متسلسل يسمح بإعادة بناء الملف بشكل كامل من جديد عند الحاجة إليه.</div>
<div dir="rtl" style="text-align: right;">
<br /></div>
<div dir="rtl" style="text-align: right;">
بينما في شيربوينت 2010 عند تحميل ملف إلى مكتبة وثائق يتم إنشاء سجل جديد في الجدول AllDocStreams لتخزين المعلومات الثنائية للملف. وأيضاً يتم إرسال التغييرات فقط إلى خدم شيربوينت 2010 لكن يتم تخزين كامل الملف مع التغييرات مرة أخرى في سجل منفصل. وهذا حسن عملية استخدام الشبكة في شيربوينت 2010 لكن كان لم يخدم في عملية خفض كلفة حيز التخزين. وباستخدام التخزين المجزأ في شيربوينت 2013 تم تحسين هذه الميزة وذلك بتقسيم البيانات الثنائية لملف إلى أكثر من جزء ويتم تخزينها في جدول جديد اسمه DocStreams وكل جزء يحتوي على رقم ID متسلسل وعندما يحدث تغيير على الملف يتم تحديث فقط الجزء المتعلق بالتغيير الذي تم على الملف.</div>
<div dir="rtl" style="text-align: right;">
<br /></div>
<div dir="rtl" style="text-align: right;">
وبمقارنة سريعة بين تطبيق التخزين المجزأ في شيربوينت 2013 وبين آلية التخزين في شيربوينت 2010 فإن عمليات القراءة والكتابة انخفضت تقريباً بمعدل النصف مقارنة مع 2010 إضافة إلى خفض كبير في حيز التخزين.</div>
<div dir="rtl" style="text-align: right;">
<br /></div>
<div dir="rtl" style="text-align: right;">
مثلاً، في حال أن المستخدم يعمل على ملف Power Point حجمه 10 ميغا ونفذ بعض التعديلات عليه ومن ثم حفظ الملف مرة أخرى، عندها البروتوكول المحسن في شيربوينت 2013 المسؤول عن عملية التخزين المجزأ يعمل على تعديل السجلات الموجودة في الجدول DocStreams المرتبة بالتغيير الذي حدث.</div>
<div dir="rtl" style="text-align: right;">
<br /></div>
<div dir="rtl" style="text-align: right;">
<b>الجدول DocStreams</b></div>
<div dir="rtl" style="text-align: right;">
يتم إنشاء الجدول DocStreams في كل قاعدة بيانات محتوى في شيربوينت 2013 حيث يتم تخزين كل جزء من المحتوى الثنائي المجزأ في سجل، علماً أنه تمت إضافة الأعمدة التالية إلى الجدول للتعامل مع عملية التخزين المجزأ:</div>
<div dir="rtl" style="text-align: right;">
</div>
<ul dir="rtl" style="text-align: right;">
<li>BSN: رقم تسلسلي يحدد ترتيب الجزء ضمن جميع الأجزاء التابعة لنفس المحتوى الثنائي.</li>
<li>Data: يحتوي على جزء من البيانات الثنائي إلا إن كان المحتوى الثنائي مخزن باستخدام تقنية الـ RBS (Remote BLOB Storage) أي حيز التخزين البعيد.</li>
<li>Offset: الإزاحة ضمن المحتوى الثنائي الذي ينتمي إليه الجزء.</li>
<li>Length: حجم جزء المحتوى الثنائي بالبايتات.</li>
<li>RbsId: في حال أن جزء المحتوى الثنائي مخزن باستخدام تقنية RBS عندها يجب أن يحتوي معرف يشير إلى الـ RBS وإلا قيمة هذا العمود تكون تساوي NULL.</li>
</ul>
<div dir="rtl" style="text-align: right;">
<b>ملاحظة</b>: بشكل افتراضي ميزة التخزين المجزأ تكون مفعلة ولا يمكن إيقافها.</div>
<div dir="rtl" style="text-align: right;">
<br /></div>
<div dir="rtl" style="text-align: right;">
<b>الخاصية FileReadChunkSize</b></div>
<div dir="rtl" style="text-align: right;">
تم إضافة الخاصية FileReadChunkSize في شيربوينت 2010 كخاصية تحكم مرتبطة بالتخزين المؤقت للبيانات الثنائية BLOB Cache والتي تسمح لمدير بيئة عمل شيربونيت التحكم بحجم البيانات التي سيتم إرسالها في حال طلب ملف من قبل المستخدم. علماً أن خاصية التخزين المؤقت للبيانات الثنائي BLOB Cache تُستخدم عند طلب بيانات ثنائية مثل الصور وملفات الفيديو. وفي حال أن الملف المطلوب حجمه أصغر من قيمة الخاصية FileReadChunkSize (القيمة الافتراضية 100 كيلو) أو يساوي قيمة الخاصية LargeFileChunkSize (القيمة الافتراضية تساوي 5 ميغا) عندها يتم إحضار معلومات الملف من خادم قواعد البيانات مباشرة.</div>
<div dir="rtl" style="text-align: right;">
<br /></div>
<div dir="rtl" style="text-align: right;">
<b>الخاصية FileWriteChunkSize</b></div>
<div dir="rtl" style="text-align: right;">
تُستخدم هذه الخاصية للتحكم بحجم جزء التخزين المجزأ الواحد. ويجب الانتباه إلى أن تحديد قيمة غير مدروسة بشكل صحيح لهذه الخاصية قد تؤدي إلى مشاكل في أداء بيئة عمل الشيربوينت عند استخدام قيمة صغيرة جداً في وقت يتم فيه استخدام ملفات الفيديو بشكل متكرر.</div>
<div dir="rtl" style="text-align: right;">
<br /></div>
<div dir="rtl" style="text-align: right;">
مترجمة بتصرف عن المقالة التالية<br />
<br />
<a href="http://blogs.technet.com/b/wbaer/archive/2012/11/12/introduction-to-shredded-storage-in-sharepoint-2013.aspx">http://blogs.technet.com/b/wbaer/archive/2012/11/12/introduction-to-shredded-storage-in-sharepoint-2013.aspx</a><br />
<br />
<br /></div>
<div dir="rtl" style="text-align: right;">
<br /></div>
<div dir="rtl" style="text-align: right;">
<br /></div>
<div dir="rtl" style="text-align: right;">
<br /></div>
<div dir="rtl" style="text-align: right;">
<br /></div>
<div dir="rtl" style="text-align: right;">
<br /></div>
</div>
إسماعيل عنجريني (Ismaeel Enjreny)http://www.blogger.com/profile/12167695003069491843noreply@blogger.com0tag:blogger.com,1999:blog-6356840630573574992.post-86131325007994773142013-10-28T10:36:00.001+03:002013-10-28T10:44:32.838+03:00كيف يمكن استخدام Report Viewer 2012 مع شيربوينت 2013<div dir="ltr" style="text-align: left;" trbidi="on">
<div dir="rtl" style="text-align: right;">
<br />
عند العمل على Reporting Service مع Visual Studio 2012 على شيربوينت 2013 يجب اتباع الخطوات التالية:</div>
<div dir="rtl" style="text-align: right;">
<br /></div>
<div dir="rtl" style="text-align: right;">
1 - تحميل Report Viewer 2012 من الرابط التالي:</div>
<div dir="rtl" style="text-align: right;">
<br /></div>
<div style="text-align: left;">
http://www.microsoft.com/en-sa/download/details.aspx?id=35747</div>
<div dir="rtl" style="text-align: right;">
<br /></div>
<div dir="rtl" style="text-align: right;">
2 - إضافة السطر التالي تحت العنصر system.webServer/handlers في ملف الـ web.config لتطبيق الويب على شيربوينت 2013:<br />
<br />
<br />
<div dir="ltr" style="text-align: left;">
<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" />
</div>
<div dir="ltr" style="text-align: left;">
<br /></div>
<div dir="ltr" style="text-align: left;">
<br /></div>
<div style="text-align: right;">
3 - حذف السطر التالي من المسار system.webServer/handlers في ملف الـ web.config لتطبيق الويب على شيربوينت 2013:</div>
<div style="text-align: right;">
<br /></div>
<div dir="ltr" style="text-align: left;">
<br />
<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" />
</div>
<div style="text-align: right;">
<br /></div>
<div style="text-align: right;">
<br /></div>
<div style="text-align: right;">
4 - حذف السطر التالي من المسار appSettings في ملف الـ web.config لتطبيق الويب على شيربوينت 2013:<br />
<br />
<div dir="ltr" style="text-align: left;">
<br />
<add key="reportviewermessages" value="microsoft.sharepoint.portal.analytics.ui.reportviewermessages, microsoft.sharepoint.portal, version=15.0.0.0, culture=neutral, publickeytoken=71e9bce111e9429c" />
</div>
<br />
<br />
5 - عند استخدام ReportViewerControl ضمن Visual Studio 2012 يجب إضافة مرجع إلى الملف Microsoft.ReportViewer.WebForms.dll تحت المسار التالي:<br />
<br />
<div dir="ltr" style="text-align: left;">
C:\Program Files (x86)\Microsoft Visual Studio 11.0\ReportViewer</div>
<div dir="ltr" style="text-align: left;">
<br /></div>
<div dir="ltr" style="text-align: left;">
<br /></div>
<div dir="ltr" style="direction: rtl; text-align: left;">
<br /></div>
</div>
</div>
</div>
إسماعيل عنجريني (Ismaeel Enjreny)http://www.blogger.com/profile/12167695003069491843noreply@blogger.com0tag:blogger.com,1999:blog-6356840630573574992.post-44348383548869736472013-10-23T15:37:00.001+03:002013-10-23T15:38:28.638+03:00إضافة أكثر من حل Solution باستخدام PowerShell<div dir="ltr" style="text-align: left;" trbidi="on">
<div dir="rtl" style="text-align: right;">
<br /></div>
<div dir="rtl" style="text-align: right;">
في بعض الحالات عند البدء في بناء بيئة العمل الحقيقية لأحد المشاريع قد تضطر إلى تثبيت أكثر من حل Solution باستخدام الملفات wsp قد يصل عددها إلى 10 وأكثر. من أجل إضافة ملف واحد في كل مرة باستخدام PowerShell يتم تنفيذ الأمر التالي:</div>
<div dir="rtl" style="text-align: right;">
<br /></div>
<div style="text-align: left;">
add-SPSolution c:\FILE_NAME.wsp</div>
<div dir="rtl" style="text-align: right;">
<br /></div>
<div dir="rtl" style="text-align: right;">
الأمر السابق يضيف حل Solution في نفس الوقت, لكن لإضافة أكثر من حل باستخدام سطر واحد يمكن بناء سكريبت يحتوي على شيفرة برمجية تستخدم أوامر PowerShell لتنفيذ هذه العملية. ولبناء هذا الملف اتبع الخطوات التالية:</div>
<div dir="rtl" style="text-align: right;">
<br /></div>
<div dir="rtl" style="text-align: right;">
1 - أنشئ ملف امتداده ps1 اسمه DeployWSPs.ps1 واكتب في التعليمات التالية:</div>
<div dir="rtl" style="text-align: right;">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background-color: white; background-position: initial initial; background-repeat: initial initial; font-family: Consolas; font-size: 9.5pt;">$path
= (get-location).path<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background-color: white; background-position: initial initial; background-repeat: initial initial; font-family: Consolas; font-size: 9.5pt;">$files
= get-childitem | where {$_.extension -eq ".wsp"}<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background-color: white; background-position: initial initial; background-repeat: initial initial; font-family: Consolas; font-size: 9.5pt;">foreach($file
in $files)<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background-color: white; background-position: initial initial; background-repeat: initial initial; font-family: Consolas; font-size: 9.5pt;">{<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background-color: white; background-position: initial initial; background-repeat: initial initial; font-family: Consolas; font-size: 9.5pt;"> $wspPath = $path + '\' + $file<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background-color: white; background-position: initial initial; background-repeat: initial initial; font-family: Consolas; font-size: 9.5pt;"> add-spsolution $wspPath <o:p></o:p></span></div>
<span style="background-color: white; background-position: initial initial; background-repeat: initial initial; font-family: Consolas; font-size: 9.5pt; line-height: 115%;">}</span><br />
<div dir="rtl" style="text-align: right;">
<br /></div>
<div dir="rtl" style="text-align: right;">
<br /></div>
<div dir="rtl" style="text-align: right;">
2 - احفظ الملف</div>
<div dir="rtl" style="text-align: right;">
<br /></div>
<div dir="rtl" style="text-align: right;">
لتجريب الملف السابق انسخ أكثر من ملف wsp مع الملف السابق إلى المسار التالي:</div>
<div dir="rtl" style="text-align: right;">
<br /></div>
<div style="text-align: left;">
c:\wsps</div>
<div dir="rtl" style="text-align: right;">
<br /></div>
<div dir="rtl" style="text-align: right;">
افتح سطر الأوامر SharePoint 2013 Management Shell ونفذ الأوامر التالية:</div>
<div dir="rtl" style="text-align: right;">
<br /></div>
cd\<br />
cd wsps<br />
.\DeployWSPs.ps1<br />
<div>
<br /></div>
<div dir="rtl" style="text-align: right;">
بعد تنفيذ الأوامر السابقة سيتم إضافة جميع الحلول Solution ذات الامتداد wsp الموجودة في المجلد c:\wsps</div>
<div dir="rtl" style="text-align: right;">
<br /></div>
<div dir="rtl" style="text-align: right;">
<br /></div>
<div dir="rtl" style="text-align: right;">
<br /></div>
<div dir="rtl" style="text-align: right;">
<br /></div>
<div dir="rtl" style="text-align: right;">
<br /></div>
</div>
إسماعيل عنجريني (Ismaeel Enjreny)http://www.blogger.com/profile/12167695003069491843noreply@blogger.com0tag:blogger.com,1999:blog-6356840630573574992.post-63181770312727142482013-10-21T07:27:00.000+03:002013-10-21T07:30:08.520+03:00تحديث أكتوبر - تشرين الأول لشيربوينت 2010<div dir="ltr" style="text-align: left;" trbidi="on">
<div dir="rtl" style="text-align: right;">
<br /></div>
<div dir="rtl" style="text-align: right;">
<br /></div>
<div dir="rtl" style="text-align: right;">
تم إصدار التحديث SharePoint Server 2010 cumulative update package October 8, 2013 على الرابط التالي:</div>
<div dir="rtl" style="text-align: right;">
<br /></div>
<div dir="rtl" style="direction: ltr; text-align: left;">
<a href="http://support.microsoft.com/default.aspx?scid=kb;EN-US;2825786" target="_blank">SharePoint Server 2010</a></div>
<div dir="rtl" style="direction: ltr; text-align: right;">
<br /></div>
<div dir="rtl" style="text-align: right;">
وباعتبار تم إصداره بعد <a href="http://support.microsoft.com/kb/2687453" target="_blank">حزمة الإصلاحات الثانية SharePoint Server 2010 SP2</a> فهذا يعني أنه يجب تحميلها بعد تثبيت SP2.</div>
<div dir="rtl" style="text-align: right;">
<br /></div>
<div dir="rtl" style="text-align: right;">
<br /></div>
<div dir="rtl" style="text-align: right;">
<br /></div>
</div>
إسماعيل عنجريني (Ismaeel Enjreny)http://www.blogger.com/profile/12167695003069491843noreply@blogger.com0tag:blogger.com,1999:blog-6356840630573574992.post-41687213012260154572013-08-07T13:52:00.000+03:002013-08-07T13:53:38.638+03:00إضافة Like Button إلى صفحة شيربوينت 2013<div dir="ltr" style="text-align: left;" trbidi="on">
<div dir="rtl" style="text-align: right;">
<br />
من الإضافات الجديدة في شيربوينت 2013 هي إمكانية إضافة ميزة الإعجاب Like إلى أي عنصر من عناصر مكتبة المستندات Document Library أو الصفحات Pages. ولكن ولسبب ما فإن مايكروسوفت تتيح إمكانية عرض التقييم باستخدام النجوم Stars في الصفحات ولكن لا يظهر زر "أعجبني" في الصفحة. فيما يلي شرح آلية استخدام هذه الميزة مع شيفرة جافا سكريبت التي تمكن من استخدام هذه الميزة.</div>
<div dir="rtl" style="text-align: right;">
<br /></div>
<div dir="rtl" style="text-align: right;">
1 - يجب التأكد من أن خاصية التقييم مفعلة على مستوى مكتبة الصفحات Pages Library:</div>
<div dir="rtl" style="text-align: right;">
- من التبويب "مكتبة" اختر إعدادات المكتبة.</div>
<div dir="rtl" style="text-align: right;">
- من ثم اختر الرابط "إعدادات التصنيف"</div>
<div dir="rtl" style="text-align: right;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://www.maba3ref.com/files/sps2013/LikeButton/lb_01.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://www.maba3ref.com/files/sps2013/LikeButton/lb_01.png" /></a></div>
<div dir="rtl" style="text-align: center;">
<br /></div>
<div dir="rtl" style="text-align: right;">
- يجب التأكد من إعدادات التقييم على أنها كما في الشكل التالي:</div>
<div style="text-align: right;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://www.maba3ref.com/files/sps2013/LikeButton/lb_02.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="99" src="http://www.maba3ref.com/files/sps2013/LikeButton/lb_02.png" width="320" /></a></div>
<div style="text-align: center;">
<br /></div>
<div dir="rtl" style="text-align: right;">
2 - بعد التأكد من ضبط إعدادات التقييم بشكل صحيح. يجب الآن إدراج عنصر التقييم في مخطط الصفحة Page Layout حيث يجب أن تظهر بالصفحة. ويتم ذلك بإدراج الشيفرة التالية علماً أنه يمكن تخصيص هذه الشيفرة بالشكل الذي يتناسب مع التصميم المعتمد:</div>
<div dir="rtl" style="text-align: right;">
<br /></div>
<div style="text-align: left;">
<a href="javascript:void(0)" onclick="(function() {SURE_likepage.LikePage();})()"><span class="sure_likecount"></span>
</div>
<div dir="rtl" style="text-align: right;">
<br /></div>
<div dir="rtl" style="text-align: right;">
3 - بعد ذلك يجب إدراج مرجع إلى الملف sure_like2013.js كما يلي:<br />
<br />
<div dir="ltr" style="text-align: left;">
<script type="text/javascript" src="FILE_PATH/sure_like2013.js"></script>
</div>
<br />
بعد تنفيذ جميع الخطوات السابقة سيظهر عنصر الإعجاب في الصفحة كما يلي في حال أن المستخدم الحالي لم يضغط على زر أعجبني:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://www.maba3ref.com/files/sps2013/LikeButton/lb_03.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://www.maba3ref.com/files/sps2013/LikeButton/lb_03.png" /></a></div>
<div style="text-align: center;">
<br /></div>
ويظهر بالشكل التالي في حال أن المستخدم الحالي ضغط على زر أعجبني مسبقاً لنفس الصفحة الحالي:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://www.maba3ref.com/files/sps2013/LikeButton/lb_04.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://www.maba3ref.com/files/sps2013/LikeButton/lb_04.png" /></a></div>
<div style="text-align: center;">
<br /></div>
كما يمكن الاستفادة من القيمة $v_3.$2d_1 لمعرفة أسماء المستخدمين الذين أعجبوا بالصفحة الحالية.<br />
<br />
<b>ملاحظة</b>: يمكن تخصيص الشكل السابق بحيث يتناسب مع التصميم المعتمد.<br />
<br />
<br /></div>
<div dir="rtl" style="text-align: right;">
<a href="http://www.maba3ref.com/files/sps2013/LikeButton/sure_like2013.js">تحميل الملف sure_like2013</a><br />
<br />
<br /></div>
</div>
إسماعيل عنجريني (Ismaeel Enjreny)http://www.blogger.com/profile/12167695003069491843noreply@blogger.com0tag:blogger.com,1999:blog-6356840630573574992.post-48858683666271571372013-08-01T12:52:00.000+03:002013-08-01T12:57:06.746+03:00استخدام المصادر في ملفات الجافا سكريبت Localized JavaScript<div dir="ltr" style="text-align: left;" trbidi="on">
<div dir="rtl" style="text-align: right;">
<br /></div>
<div dir="rtl" style="text-align: right;">
معظم استخدامات ملفات المصادر Resources لتمكين التطبيقات من دعم أكثر من لغة Localization ومعظمها تتم على مستوى الشيفرة التي يتم تنفيذها على السيرفر Server Side Code. لكن في بعض الأحيان نحتاج لدعم المصادر في شيفرة الجافا سكريبت. وهذه الإمكانية متوفرة في شيربوينت 2013 من خلال استخدام الملف ScriptResx.ashx. ويمكن استخدامه باتباع الخطوات التالية:</div>
<div dir="rtl" style="text-align: right;">
<br /></div>
<div dir="rtl" style="text-align: right;">
1 - يجب التأكد من أن ملف المصادر Resource File يدعم هذه الإمكانية وذلك بفتح الملف resx باستخدام محرر نصوص والتأكد من وجود السطر التالي:</div>
<div dir="rtl" style="text-align: right;">
<br /></div>
<resheader name="scriptResx">
<value>true</value></resheader>
<br />
<div dir="rtl" style="text-align: right;">
تحت العنصر التالي:</div>
<div dir="ltr" style="text-align: right;">
</div>
<div style="text-align: left;">
</xsd:schema>
</div>
<div dir="rtl" style="text-align: right;">
وفي حال عدم توفره يجب إضافته.</div>
<div dir="rtl" style="text-align: right;">
<br /></div>
<div dir="rtl" style="text-align: right;">
2 - هذه الخطوة مرتبطة بكيفية استدعاء قيمة من ملف المصادر من خلال شيفرة الجافا سكريبت. حيث يمكن تعريف Namespace تحتوي على جميع قيم ملف المصد. مثلاً لنفترض أن الـ namespace لملف المصدر هو ProjectName.General وتوجد قيمة ضمن ملف المصدر يمكن الوصول إليها من خلال المفتاح SiteTitle عندها ضمن شيفرة الجافا سكريبت تكون الشيفرة كما يلي:</div>
<div dir="rtl" style="text-align: right;">
<br /></div>
<div style="text-align: left;">
ProjectName.General.siteTitle</div>
<div dir="rtl" style="text-align: right;">
<br /></div>
<div dir="rtl" style="text-align: right;">
حيث يتم تغيير حالة الحرف الأول من المفتاح ليصبح حرفاً صغيراً. ولتعريف namespace لملف المصدر يجب فتح الملف ضمن محرر نصوص والبحث عن عنصر resheader الخاصية name له تساوي classFullName وفي حال عدم وجودها يجب إضافتها:</div>
<div dir="rtl" style="text-align: right;">
<br /></div>
<br />
<resheader name="classFullName"><value>ProjectName.General</value></resheader><br />
<br />
<br />
<div dir="rtl" style="text-align: right;">
3 - الآن يجب استخدام الملف ScriptResx.ashx كما يلي:</div>
<div dir="rtl" style="text-align: right;">
<br /></div>
<div style="text-align: left;">
<script src="/_layouts/15/ScriptResx.ashx?name=RESOURCE_FILE_NAME&culture=culture_name" type="text/javascript"></script></div>
<div dir="rtl" style="text-align: right;">
<br /></div>
<div dir="rtl" style="text-align: right;">
في الخطوة رقم 3 سيتم توليد ملف جافا سكريبت يحتوي على ملف المصدر ضمن الـ namespace المعرفة في الخطوة رقم 2.</div>
<div dir="rtl" style="text-align: right;">
<br /></div>
<div dir="rtl" style="text-align: right;">
<br /></div>
</div>
إسماعيل عنجريني (Ismaeel Enjreny)http://www.blogger.com/profile/12167695003069491843noreply@blogger.com0tag:blogger.com,1999:blog-6356840630573574992.post-82824872627608185762013-08-01T11:04:00.002+03:002013-08-01T11:04:54.511+03:00تثبيت معالج الحدث على القوائم باستخدام الميزات List Event Handlers<div dir="ltr" style="text-align: left;" trbidi="on">
<div dir="rtl" style="text-align: right;">
<br /></div>
<div dir="rtl" style="text-align: right;">
يمكن تثبيت معالج الحدث على أي قائمة باستخدام الشيفرة البرمجية أو باستخدام الطريقة التصريحية والتي تعتمد على الميزات Features. وعند استخدام الطريقة التصريحية فإن المجال Scope الذي يتم تحديده للميزة يغير في الإعدادات التي يمكن استخدامها أثناء التصريح عن الأحداث.</div>
<div dir="rtl" style="text-align: right;">
<br /></div>
<div dir="rtl" style="text-align: right;">
<b>تثبيت معالج الحدث باستخدام ميزة تعمل ضمن مجال مجموعة المواقع Scope=Site</b></div>
<div dir="rtl" style="text-align: right;">
يمكن تثبيت معالج الأحداث في شيربوينت 2013 على قائمة باستخدام ميزات ذات مجال Site أو مجال Web. وفي حال استخدام المجال Site للميزة عندها يمكن تحديد قيمة للخاصية Scope لتحديد مجال القوائم الذي سيثبت عليها معالج الحدث. في حال تحديد القيمة Site سيتم تثبيت معالج الحدث على جميع القوائم في مجموعة المواقع Site Collection، أما في حال تحديد القيمة Web فسيتم تثبيت معالج الحدث على الموقع الرئيسي فقط لمجموعة المواقع Root Web. ويجب الانتباه إلى أنه بغض النظر عن أي إعدادات أخرى فإن مالج الحدث سيتم تثبيته على جميع القوائم ضمن المجال المحدد في الخاصية Scope.</div>
<div dir="rtl" style="text-align: right;">
<br /></div>
<div dir="rtl" style="text-align: right;">
<b>تثبيت معالج الحدث باستخدام ميزة تعمل ضمن مجال الموقع Scope=Web</b></div>
<div dir="rtl" style="text-align: right;">
عند استخدام المجال Scope = Web عندها يمكن تحديد قيم لبعض الإعدادات الإضافية. ومنها تحديد قيمة منطقية true|false للخاصية RootWebOnly، فعند تحديد القيمة true فإن معالج الحدث يمكن تثبيته فقط على القوائم التي تحت الموقع الرئيسي فقط ف يحال تفعيل الميزة على موقع فرعي سيؤدي ذلك إلى ظهور خطأ. أيضاً سيفحص شيربوينت 20103 العناصر Receivers للتأكد من قيمة الخاصية ListTemplateId، في حال تم تحديدها من قبل المطور فإن شيربوينت سيبحث عن قيمة الخاصية ListUrl، وفي حال أن كلا القيمتين محددتان فإن شيربوينت سيرسل خطأ يفيد بأنه يجب تحديد إحدى القيمتين فقط. وفي حال أن قيمة الخاصية ListUrl غير محددة فإن شيربوينت سيثبت معالج الحدث على جميع القوائم التي تطابق القيمة المعرفة في الخاصية ListTemplateId ضمن الموقع الحالي. ويجب الانتباه أن قيمة الخاصية ListTemplateId هي إحدى القيم المعرفة في الرابط التالي:</div>
<div dir="rtl" style="text-align: right;">
<br /></div>
<div style="text-align: left;">
http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.splisttemplatetype.aspx</div>
<div dir="rtl" style="text-align: right;">
<br /></div>
<div dir="rtl" style="text-align: right;">
وهي نفس قيم الخاصية SPList.BaseTemplate.</div>
<div dir="rtl" style="text-align: right;">
<br /></div>
<div dir="rtl" style="text-align: right;">
وفي حال أن قيمة الخاصية ListTemplateId غير محددة فإن شيربوينت يبحث عن قيمة الخاصية ListUrl، ففي حال توفرها فإن شيربوينت سيثبت معالج الحدث على القائمة المحددة بقية هذه الخاصية فقط. ويجب الانتباه إلى أن قيمة هذه الخاصية هي عبارة عن العنوان النسبي للقائمة Relative List URL. أما في حال عدم تحديد قيمة للخاصية ListUrl فإن شيربوينت سيثبت معالج الحدث على جميع القوائم في الموقع حيث تم تفعيل الميزة.</div>
<div dir="rtl" style="text-align: right;">
<br /></div>
</div>
إسماعيل عنجريني (Ismaeel Enjreny)http://www.blogger.com/profile/12167695003069491843noreply@blogger.com0tag:blogger.com,1999:blog-6356840630573574992.post-8308462175041367502013-07-31T11:06:00.002+03:002013-08-08T10:01:14.029+03:00كيف تعرض اسم العمود (الحقل) في صفحة مخطط<div dir="ltr" style="text-align: left;" trbidi="on">
<div dir="rtl" style="text-align: right;">
<br /></div>
<div dir="rtl" style="text-align: right;">
عادة لكي نعرض قيمة حقل ما موجود ضمن نوع محتوى في صفحة يتم سحب وإدراج هذا الحقل باستخدام SharePoint Designer وعندها يعمل شيربوينت على تحديد نوع عنصر التحكم الذي سيتم إدراجه في الصفحة بناء على نوع الحقل. مثلاً، من أجل الحقل النصي يتم استخدام عنصر التحكم التالي:</div>
<div dir="rtl" style="text-align: right;">
<br /></div>
<div style="text-align: left;">
<sharepointwebcontrols:textfield p=""></sharepointwebcontrols:textfield><br />
<div dir="rtl" style="text-align: right;">
<br /></div>
<div dir="rtl" style="text-align: right;">
لكن لا يتم عرض اسم الحقل أثناء عرض البيانات للمستخدم، ولكن يتم عرض اسم الحقل فقط في حالة تحرير الصفحة, ولعرض اسم الحقل للزائر يمكن استخدام عنصر التحكم التالي:</div>
<div dir="rtl" style="text-align: right;">
<br /></div>
<div style="text-align: left;">
<sharepointwebcontrols:fieldproperty p=""></sharepointwebcontrols:fieldproperty><br />
<div dir="rtl" style="text-align: right;">
<br /></div>
<div dir="rtl" style="text-align: right;">
حيث يُستخدم لعرض إحدى خصائص الحقل، والخصائص التي يمكن عرضها باستخدام هذا العنصر هي:</div>
<div dir="rtl" style="text-align: right;">
</div>
<ul dir="rtl" style="text-align: right;">
<li>Type</li>
<li>InternalName</li>
<li>Title</li>
<li>Description</li>
<li>DefaultFormula</li>
<li>DefaultValue</li>
<li>إضافة إلى الخصائص المعرفة ضمن ملف الـ XML التابع لتعريف الحقل وفقط لأعمدة الموقع التي تم إنشاؤها باستخدام ميزة Feature.</li>
</ul>
<div>
<div dir="rtl" style="text-align: right;">
وكمثال على استخدام عنصر التحكم:</div>
</div>
<div>
<br /></div>
<div dir="ltr" style="text-align: left;">
<sharepointwebcontrols:fieldproperty fieldname="Title" propertyname="Title" runat="server"></sharepointwebcontrols:fieldproperty></div>
<div>
<br /></div>
<br />
<div dir="rtl" style="text-align: right;">
في الشيفرة السابقة يتم عرض اسم الحقل كما يظهر للمستخدم.</div>
<div dir="rtl" style="text-align: right;">
<br /></div>
</div>
</div>
</div>إسماعيل عنجريني (Ismaeel Enjreny)http://www.blogger.com/profile/12167695003069491843noreply@blogger.com3tag:blogger.com,1999:blog-6356840630573574992.post-88166672891780067912013-07-29T14:56:00.003+03:002013-07-29T14:56:50.168+03:00اكتشف شيربوينت<div dir="ltr" style="text-align: left;" trbidi="on">
<div dir="rtl" style="text-align: right;">
<br /></div>
<div dir="rtl" style="text-align: right;">
أطلقت شركة مايكروسوفت مؤخراً الموقع <a href="http://www.discoversharepoint.com/" style="text-align: left;">http://www.discoversharepoint.com</a> الذي يهدف إلى تعريف الآخرين بميزات شيربوينت وإمكانياته دون التطرق إلى الأمور التقنية.</div>
<div dir="rtl" style="text-align: right;">
<br /></div>
<div dir="rtl" style="text-align: right;">
أهم ملاحظة حول الموقع هي أن مايكوروسفت لم تستخدم شيربوينت في برمجة الموقع وإنما تم استخدام HTML 5 بشكل كامل.</div>
<div dir="rtl" style="text-align: right;">
<br /></div>
<div dir="rtl" style="text-align: right;">
الموقع يستحق أن تزوره. تصميم رائع ... ومحتوى مفيد جداً</div>
<div dir="rtl" style="text-align: right;">
<br /></div>
<div dir="rtl" style="text-align: right;">
استمتع</div>
<div dir="rtl" style="text-align: right;">
<br /></div>
<div dir="rtl" style="text-align: right;">
<br /></div>
</div>
إسماعيل عنجريني (Ismaeel Enjreny)http://www.blogger.com/profile/12167695003069491843noreply@blogger.com0tag:blogger.com,1999:blog-6356840630573574992.post-15524232715660981582013-07-24T10:34:00.003+03:002013-07-24T10:35:02.531+03:00حزمة الإصلاحات الثانية من شيربوينت 2010<div dir="ltr" style="text-align: left;" trbidi="on">
<div dir="rtl" style="text-align: right;">
<br /></div>
<div dir="rtl" style="text-align: right;">
تم إصدار حزمة الإصلاحات الثانية من شيربوينت 2010 SharePoint Server 2010 Service Pack 2 ويمكن الحصول عليها من الرابط التالي:</div>
<div dir="rtl" style="text-align: right;">
<br /></div>
<div dir="rtl" style="text-align: left;">
<br /></div>
<div dir="rtl" style="text-align: left;">
<a href="http://www.microsoft.com/en-us/download/details.aspx?id=39672">http://www.microsoft.com/en-us/download/details.aspx?id=39672</a></div>
<div dir="rtl" style="text-align: left;">
<br /></div>
<div dir="rtl" style="text-align: right;">
<br /></div>
</div>
إسماعيل عنجريني (Ismaeel Enjreny)http://www.blogger.com/profile/12167695003069491843noreply@blogger.com0