<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" gd:etag="W/&quot;DUQBRns5cSp7ImA9WhRUGUs.&quot;"><id>tag:blogger.com,1999:blog-8379064344023344719</id><updated>2012-01-30T15:49:17.529-08:00</updated><category term="تويتر إكستندر" /><category term="jQuery" /><category term="MVC" /><category term="جوجل" /><category term="الانترنت" /><category term="الملفات" /><category term="النسخ الاحتياطي" /><category term="شرح" /><category term="تجاربي" /><category term="SQLServer" /><category term="Mode2Form" /><category term="اضافات" /><category term="Web Forms" /><category term="ASP.NET" /><category term="Open Source" /><category term="C#" /><category term="مشروع" /><category term="درس" /><category term="كروم" /><category term="شخصي" /><category term="أخطاء" /><category term="مقسم التويتات" /><category term="مقال" /><category term="نصائح" /><category term="Web Controls" /><category term="twitter" /><category term="الأمان" /><category term="JavaScript" /><category term="Facebook" /><title>مدونة خالد مسيعد</title><subtitle type="html">Web 2.0 , Web Development, ASP.NET , jQuery , وأكثر ...</subtitle><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://tip2dev.blogspot.com/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://tip2dev.blogspot.com/" /><author><name>Khaled H. Musaied</name><uri>http://www.blogger.com/profile/17959625831089674087</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://2.bp.blogspot.com/_HMxACWDTC_E/S0EbhzLzrfI/AAAAAAAAB8c/6OQTHzfWWMc/S220/kmusaied@yahoo.com_118bb4bf+(1).jpg" /></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>18</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/tip2dev" /><feedburner:info uri="tip2dev" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><entry gd:etag="W/&quot;DkIGSHk5fCp7ImA9WhdSFE8.&quot;"><id>tag:blogger.com,1999:blog-8379064344023344719.post-4099053882578259744</id><published>2011-07-23T05:32:00.000-07:00</published><updated>2011-07-23T05:35:29.724-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-07-23T05:35:29.724-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="مقسم التويتات" /><category scheme="http://www.blogger.com/atom/ns#" term="شرح" /><category scheme="http://www.blogger.com/atom/ns#" term="twitter" /><category scheme="http://www.blogger.com/atom/ns#" term="تويتر إكستندر" /><title>تويتر إكستندر - Twitter Extender</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/-w72BV8V5Nzo/TiqeU1lLclI/AAAAAAAAC5w/csS7cgq--3U/s1600/TwitterExtenderLogo.png" /&gt;&lt;/div&gt;&lt;div dir="rtl" style="text-align: right;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div dir="rtl" style="text-align: right;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div dir="rtl" style="text-align: right;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="color: orange;"&gt;مقدمة&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div dir="rtl" style="text-align: right;"&gt;تويتر اكستندر (&lt;a href="https://chrome.google.com/webstore/detail/ddcgpjemdlhkehjpibldielpoodpjgjc"&gt;Twitter Extender&lt;/a&gt;) عبارة عن اضافة لمتصفح كروم تقوم بإضافة الكثير من المميزات إلى موقع تويتر الأساسي.&amp;nbsp;&lt;/div&gt;&lt;div dir="rtl" style="text-align: right;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div dir="rtl" style="text-align: right;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="color: orange;"&gt;قائمة الخواص&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div dir="rtl" style="text-align: right;"&gt;&lt;/div&gt;&lt;ol dir="rtl" style="text-align: right;"&gt;&lt;li&gt;الاقتباس أو الريتويت بالطريقة القديمة.&lt;/li&gt;
&lt;li&gt;إرسال رسالة خاصة (DM) بشكل سريع.&lt;/li&gt;
&lt;li&gt;تغيير اتجاه نص التويته (للنصوص العربية فقط).&lt;/li&gt;
&lt;li&gt;تقصير الروابط الطويلة.&lt;/li&gt;
&lt;li&gt;تغيير لون التويتات التي تحتوي التي تشير إلى اسمك.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;ارسال تويتات أطول من 140 حرف&lt;/li&gt;
&lt;li&gt;إخفاء الردود في الملف الشخصي.&lt;/li&gt;
&lt;li&gt;تحدث لتغرد!&lt;/li&gt;
&lt;li&gt;الإعدادات&lt;/li&gt;
&lt;/ol&gt;&lt;div dir="rtl" style="text-align: right;"&gt;&lt;/div&gt;&lt;div dir="rtl" style="text-align: right;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div dir="rtl" style="text-align: right;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="color: orange;"&gt;الاقتباس أو الريتويت بالطريقة القديمة&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-QETACmwt8C0/TiqdRmGbpHI/AAAAAAAAC5s/DXcx6MCQfi4/s1600/Old-Retweet.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="143" src="http://4.bp.blogspot.com/-QETACmwt8C0/TiqdRmGbpHI/AAAAAAAAC5s/DXcx6MCQfi4/s320/Old-Retweet.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div dir="rtl" style="text-align: right;"&gt;في السابق لم يكن زر الريتويت (Retweet) موجودا في تويتر فإبتكر مستخدموا تويتر طريقة لاعادة إرسال التويتات إلى متابعيهم بإستخدام من خلال كتابة RT ثم &amp;nbsp;نسخ التويته مع اسم كاتبها وكان بالإمكان كتابة تعليق على التويته قبل حرفي RT. تويتر قام بإضافة زر ريتويت (Retweet) ولكن للأسف لايمكنك كتابة تعليق. في اضافة تويتر اكستندر تستطيع عمل ذلك بسهولة من خلال النقر على زر (RT) وسيقوم بفتح نافذة تويت تحتوي على التويته مسبوقة بحرفي (RT). &amp;nbsp;&lt;/div&gt;&lt;div dir="rtl" style="text-align: right;"&gt;&lt;b&gt;ملحوظة:&amp;nbsp;&lt;/b&gt;&lt;/div&gt;&lt;div dir="rtl" style="text-align: right;"&gt;في تحديث جديد لتويتر أصبح يقوم بفك الروابط القصير بشكل مخصص بحيث يظهر جزء من الرابط فقط وهذا يجعل عملية نسخ الرابط &amp;nbsp;يدويا مسألة صعبة ولكن تويتر اكستندر يحل تلك المشكلة :)&amp;nbsp;&lt;/div&gt;&lt;div dir="rtl" style="direction: ltr; text-align: right;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div dir="rtl" style="text-align: right;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div dir="rtl" style="text-align: right;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="color: orange;"&gt;إرسال رسالة خاصة (DM) بشكل سريع.&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-uLE8DzGhcfA/TiqdQZEbktI/AAAAAAAAC5o/sxWV_c_Lipo/s1600/DM.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="139" src="http://1.bp.blogspot.com/-uLE8DzGhcfA/TiqdQZEbktI/AAAAAAAAC5o/sxWV_c_Lipo/s320/DM.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div dir="rtl" style="text-align: right;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div dir="rtl" style="text-align: right;"&gt;إذا احتجت إلى إرسال رسالة خاصة (Direct Message) إلى صديقك بشكل سريع كل ما عليك هو النقر على زر (DM) والذي بدوره سيقوم بفتح نافذة تحتوي يمكنك من خلالها كتابة الرسالة إلى صديقك ولكن تذكر دائما أن صديقك يجب أن يكون متابعا لك كي تصله رسالتك&amp;nbsp;&lt;/div&gt;&lt;div dir="rtl" style="text-align: right;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div dir="rtl" style="text-align: right;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="color: orange;"&gt;تغيير اتجاه نص التويته (للنصوص العربية فقط)&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-Xtah0qULfbA/Tiq3xNX5xFI/AAAAAAAAC6c/L-ufHhMVAWI/s1600/swichDir.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="97" src="http://4.bp.blogspot.com/-Xtah0qULfbA/Tiq3xNX5xFI/AAAAAAAAC6c/L-ufHhMVAWI/s320/swichDir.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div dir="rtl" style="text-align: right;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div dir="rtl" style="text-align: right;"&gt;يعاني مستخدموا تويتر من العرب من تداخل جمل التويته العربية عند احتوائها على حروف انجليزية ومما يسبب ارباكا في قراءة التويته &amp;nbsp;لذلك اضفت إلى تويتر اكستندر رز (Switch) والذي يظهر فقط في حالة أن التويته تحتوي على أحرف عربية ومن خلاله يمكن تغيير المحاذاه للتويته إلى اليمن بحيث تتمكن من قراءة التويته بشكل طبيعي.&lt;/div&gt;&lt;div dir="rtl" style="text-align: right;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div dir="rtl" style="text-align: right;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="color: orange;"&gt;تقصير الروابط الطويلة&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-L9chE9TrZO0/Tiqwn-ZsIFI/AAAAAAAAC6E/leqVNpOPHZ4/s1600/addUrl.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="203" src="http://1.bp.blogspot.com/-L9chE9TrZO0/Tiqwn-ZsIFI/AAAAAAAAC6E/leqVNpOPHZ4/s320/addUrl.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div dir="rtl" style="text-align: right;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div dir="rtl" style="text-align: right;"&gt;يمكنك تقصير الروابط الطويلة من خلال تويتر اكستندر النقر على (Add Url) وادخال الرابط الطويل وسوف يتم تحويله إلى رابط صغير بإستخدام خدمة بت.لي (&lt;a href="http://bit.ly/"&gt;http://bit.ly&lt;/a&gt;) الشهيرة ويمكنك ربطها مع حسابك في بت.لي من خلال الاعدادات.&amp;nbsp;&lt;/div&gt;&lt;div dir="rtl" style="text-align: right;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div dir="rtl" style="text-align: right;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div dir="rtl" style="text-align: right;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div dir="rtl" style="text-align: right;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="color: orange;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div dir="rtl" style="text-align: right;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="color: orange;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div dir="rtl" style="text-align: right;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="color: orange;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div dir="rtl" style="text-align: right;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="color: orange;"&gt;تغيير لون التويتات التي تحتوي التي تشير إلى اسمك&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-icfK4-IEnfo/TiqwpA-HxDI/AAAAAAAAC6I/9uiQNLnLMVA/s1600/mention.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="135" src="http://3.bp.blogspot.com/-icfK4-IEnfo/TiqwpA-HxDI/AAAAAAAAC6I/9uiQNLnLMVA/s320/mention.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div dir="rtl" style="text-align: right;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div dir="rtl" style="text-align: right;"&gt;هذه الميزة في تويتر اكستندر تجعل تقوم بتغيير لون الخلفية للتويتات التي تحتوي على اسمك لكي تلفت انتباهك وبالطبع يمكنك تغيير اللون من خلال الاعدادات.&lt;/div&gt;&lt;div dir="rtl" style="text-align: right;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div dir="rtl" style="text-align: right;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="color: orange;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div dir="rtl" style="text-align: right;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="color: orange;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div dir="rtl" style="text-align: right;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="color: orange;"&gt;ارسال تويتات أطول من 140 حرف&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-S7l_BpkfNAM/TiqwrZ1uHMI/AAAAAAAAC6Q/7_Ko41wakuU/s1600/tweetViaLTS.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="120" src="http://1.bp.blogspot.com/-S7l_BpkfNAM/TiqwrZ1uHMI/AAAAAAAAC6Q/7_Ko41wakuU/s320/tweetViaLTS.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div dir="rtl" style="text-align: right;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="color: orange;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div dir="rtl" style="text-align: right;"&gt;قد تحتاج أحيانا لارسال تويت أطول من 140 حرف وفي هذه الحالة لن تحتاج إلى الذهاب بعيد فعند كتابتك لتويته طولها أكثر من 140 حرف سيظهر لك زر جديد بجانب زر (Twee) واسمه (Tweet via LTS) ومن خلاله يمكنك استخدام خدمة &lt;a href="http://longtweetsplitter.com/"&gt;http://LongTweetSplitter.com&lt;/a&gt; &amp;nbsp;واختيار اما تقسيم التويت أو ارسال بدايتها واتباعها برابط.&amp;nbsp;&lt;/div&gt;&lt;div dir="rtl" style="text-align: right;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div dir="rtl" style="text-align: right;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="color: orange;"&gt;إخفاء الردود في الملف الشخصي&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-p9YTEJm5VgM/Tiq3vCODlQI/AAAAAAAAC6U/vlfV2FqH8wA/s1600/hideMentions.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="195" src="http://4.bp.blogspot.com/-p9YTEJm5VgM/Tiq3vCODlQI/AAAAAAAAC6U/vlfV2FqH8wA/s320/hideMentions.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div dir="rtl" style="text-align: right;"&gt;&lt;b&gt;&lt;br /&gt;
&lt;/b&gt;&lt;/div&gt;&lt;div dir="rtl" style="text-align: right;"&gt;في بعض الأحيان تحتاج الدخول إلى الملف الشخصي لأحد المستخدمين لقراءة التويتات ولكن قد يربكك وجود الكثير من الردود ولكن من خلال تويتر إكستندر يمكنك اخفاء جميع الردود لكي تقرأ التويتات العامة على راحتك :)&lt;/div&gt;&lt;div dir="rtl" style="text-align: right;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div dir="rtl" style="text-align: right;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div dir="rtl" style="text-align: right;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div dir="rtl" style="text-align: right;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div dir="rtl" style="text-align: right;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div dir="rtl" style="text-align: right;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="color: orange;"&gt;تحدث لتغرد!&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-2WpjCyg9L_Y/Tiq96PDeivI/AAAAAAAAC6g/roKh2_7_WiY/s1600/speech2tweet2.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="193" src="http://3.bp.blogspot.com/-2WpjCyg9L_Y/Tiq96PDeivI/AAAAAAAAC6g/roKh2_7_WiY/s320/speech2tweet2.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div dir="rtl" style="text-align: center;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div dir="rtl" style="text-align: right;"&gt;هل مللت من الكتابة ولكن لا زلت تريد التغريد يمكنك استخدام خدمة Speak to Tweet من خلال النقر على صورة المايكرفون والتحدث (باللغة الانجليزية حاليا) وسيقوم تويتر إكستندر بتحويل الصوت إلى تويته.&lt;/div&gt;&lt;div dir="rtl" style="text-align: right;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div dir="rtl" style="text-align: right;"&gt;&lt;/div&gt;&lt;div dir="rtl" style="text-align: right;"&gt;&lt;/div&gt;&lt;div dir="rtl" style="text-align: right;"&gt;&lt;/div&gt;&lt;div dir="rtl" style="text-align: right;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div dir="rtl" style="text-align: right;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div dir="rtl" style="text-align: right;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div dir="rtl" style="text-align: right;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div dir="rtl" style="text-align: right;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="color: orange;"&gt;الاعدادات&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-QYMucBSJ3lQ/TiqwqSURyvI/AAAAAAAAC6M/VC909OaXnvw/s1600/TEsettings.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="187" src="http://1.bp.blogspot.com/-QYMucBSJ3lQ/TiqwqSURyvI/AAAAAAAAC6M/VC909OaXnvw/s320/TEsettings.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div dir="rtl" style="text-align: right;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div dir="rtl" style="text-align: right;"&gt;كما ذكرنا سابقا أنه يمكنك ربط حسابك في بت.لي (&lt;a href="http://bit.ly/"&gt;http://bit.ly&lt;/a&gt;) مع تويتر اكستندر من خلال الإعدادات وأيضا يمكنك تغيير لون التويتات التي تحتوي على اسمك من خلال الاعدادات .&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8379064344023344719-4099053882578259744?l=tip2dev.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/tip2dev/~4/xbD9BYOedgM" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8379064344023344719/posts/default/4099053882578259744?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8379064344023344719/posts/default/4099053882578259744?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/tip2dev/~3/xbD9BYOedgM/twitter-extender.html" title="تويتر إكستندر - Twitter Extender" /><author><name>Khaled H. Musaied</name><uri>http://www.blogger.com/profile/17959625831089674087</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://2.bp.blogspot.com/_HMxACWDTC_E/S0EbhzLzrfI/AAAAAAAAB8c/6OQTHzfWWMc/S220/kmusaied@yahoo.com_118bb4bf+(1).jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/-w72BV8V5Nzo/TiqeU1lLclI/AAAAAAAAC5w/csS7cgq--3U/s72-c/TwitterExtenderLogo.png" height="72" width="72" /><feedburner:origLink>http://tip2dev.blogspot.com/2011/07/twitter-extender.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUIHQHc5fCp7ImA9WhdTGE0.&quot;"><id>tag:blogger.com,1999:blog-8379064344023344719.post-6615402504247488339</id><published>2011-04-24T02:18:00.000-07:00</published><updated>2011-07-16T02:12:11.924-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-07-16T02:12:11.924-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="مقسم التويتات" /><category scheme="http://www.blogger.com/atom/ns#" term="MVC" /><category scheme="http://www.blogger.com/atom/ns#" term="ASP.NET" /><category scheme="http://www.blogger.com/atom/ns#" term="مشروع" /><category scheme="http://www.blogger.com/atom/ns#" term="اضافات" /><category scheme="http://www.blogger.com/atom/ns#" term="تويتر إكستندر" /><category scheme="http://www.blogger.com/atom/ns#" term="تجاربي" /><title>خدمة مقسم التويتات الطويلة Long Tweet Splitter</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://longtweetsplitter.com/"&gt;&lt;img border="0" src="http://longtweetsplitter.com/Content/images/longTweetSplitter2.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div dir="rtl" style="text-align: right;"&gt;من المعلوم أن موقع &lt;a href="http://twitter.com/"&gt;تويتر &lt;/a&gt;لا يسمح لك بأن تكتب تويتات أكثر من 140 حرف ويحاول غالبية مستخدمي تويتر يحاولون أن يكيفوا تويتاتهم على هذا المبدأ ولكن هذا لا يعني أنهم قادرون دائما على أن يقصّروا تغريداتهم الى 140 حرف لذلك خرجت بعض المواقع التي تقدم لك خدمة كتابة تويته أكثر من 140 حرف بحيث تقوم بكتابة التويتة الطويلة في الموقع بعد تسجيل الدخول بمعرف تويتر ويقوم هذا الموقع بنشر أول جزء من التويتة على تويتر ويتبعها برابط كي تنقر عليه لقراءة التويته كاملة في الموقع الخاص بنشر تلك التويتات الطويلة ومن أشهر المواقع التي تقدم هذه الخدمة هو موقع تويت لونقر (&lt;a href="http://www.twitlonger.com/"&gt;Twit Longer&lt;/a&gt;).&lt;/div&gt;&lt;div dir="rtl" style="text-align: right;"&gt;&lt;/div&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div dir="rtl" style="text-align: right;"&gt;في الواقع أن كثير من المستخدمين لا يريد فعلا كتابة تويتات طويلة جدا تتعدى 500 حرف فتجد أن المستخدم يكتب تويته 160 حرف أو 200 حرف لأنه يعلم أنه يكتب في موقع أسس على اختصار الكلام ولكن غُلب على أمره واحتاج إلى كتابة تويتة أطول من 140 حرف. &amp;nbsp;ففي هذه الحالة لديه أكثر من حل وأحد هذه الحلول أن يقوم بتقسيم التويته وارسالها على دفعات ولكن المشكلة أن من يتابعه لن يجد التويتات متتابعة ولكن سيجدها متفرقة وهذا أمر يشوش على المتابع.&lt;/div&gt;&lt;div dir="rtl" style="text-align: right;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div dir="rtl" style="text-align: right;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="color: #e69138;"&gt;مقسم التويتات Long Tweet Splitter :&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div dir="rtl" style="text-align: right;"&gt;لحل هذه المشكلة قمت ببناء خدمة &lt;a href="http://longtweetsplitter.com/"&gt;مقسم التويتات الطويلة&lt;/a&gt; بإستخدام (ASP.NET MVC) ليقوم بإستقبال التويته الطويلة بالاضافة إلى الوسوم (الهاشتاغات) ثم تقوم الأداة بتقسيم التويته والحاق الوسوم بها بحيث أن كل تويته مع الوسوم لا تتجاوز 140 حرف ومن ثم يقوم بإرسال التويتات المقسمة دفعة واحدة إلى موقع تويتر.&amp;nbsp;&lt;/div&gt;&lt;div dir="rtl" style="text-align: right;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div dir="rtl" style="text-align: right;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="color: #e69138;"&gt;لماذا الوسوم #hashtags:&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div dir="rtl" style="text-align: right;"&gt;قد يتسائل البعض ما المقصود من فصل الوسوم (الهاشتاقات) في مربع نص منفصل والاجابة هي أن الوسوم ستتكرر في كل تويته من التويتات بعد التقسيم ويمكن الاستفادة أيضا الاستفادة منه مربع النص الخاص بالوسوم بأن تقوم بإضافة وسم مميز للتويتة الطويل بحيث يمكن لمتابعيك النقر على هذ الوسم لإستعراض التويتات المقسمة فقط. فعلى سبيل المثال لو كانت التويته الطويلة تتكلم عن الرياضة يمكنك اضافة الوسم #sport001 بحيث أن أي مستخدم يقوم بالنقر على الوسم ستتظهر له فقط التويتات المقسمة للتويته الأصلية.&lt;/div&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-X034WNaX_sY/TbPkL-SVHpI/AAAAAAAACy4/v3kgsM0Z0BU/s1600/sport001.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="205" src="http://3.bp.blogspot.com/-X034WNaX_sY/TbPkL-SVHpI/AAAAAAAACy4/v3kgsM0Z0BU/s320/sport001.png" width="320" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;#sport001&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;div dir="rtl" style="text-align: right;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="color: #e69138;"&gt;العلامة المرجعية الخاصة (Bookmarklet):&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div dir="rtl" style="text-align: right;"&gt;قد يستصعب بعض المستخدمين أن يقوموا بنسخ تويتاتهم ونقلها إلى موقع مقسم التويتات لذلك قمت بإضافة البوكماركلت(Bookmarklet) وهي عبارة عن علامة مرجعية خاصة للمتصفحات تقوم بنسخ التويتة من مربع النص في موقع تويتر وتنقلها لك إلى موقع مقسم التويتات بنقرة واحدة فقط.&amp;nbsp;&lt;/div&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://longtweetsplitter.com/Content/images/bookmarklet_demo.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="188" src="http://longtweetsplitter.com/Content/images/bookmarklet_demo.png" width="640" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;شرح الطريقة&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;div dir="rtl" style="text-align: right;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div dir="rtl" style="text-align: right;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="color: #e69138;"&gt;التكامل مع تويتر إكستندر:&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div dir="rtl" style="text-align: right;"&gt;إذا كنت تستخدم الاصدار الأخير من الاضافة الخاصة بالمتصفح كروم تويتر إكستندر (&lt;a href="https://chrome.google.com/extensions/detail/ddcgpjemdlhkehjpibldielpoodpjgjc"&gt;Twitter Extender&lt;/a&gt;) فقد تكون قد لاحظت ظهور زر جديد "Tweet via LTS" بجانب زر "Tweet" حينما يتعدى طول التويتة التي تكتبها 140 حرف. وهذا الزر يقوم بنقل التويتة من موقع تويتر إلى موقع مقسم التويتات.&lt;/div&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-57s0opDRAv0/TbPo-L7uevI/AAAAAAAACy8/HwjTaKJgtkY/s1600/tweet+via+lts.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="148" src="http://1.bp.blogspot.com/-57s0opDRAv0/TbPo-L7uevI/AAAAAAAACy8/HwjTaKJgtkY/s400/tweet+via+lts.png" width="400" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Tweet via LTS&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;div dir="rtl" style="text-align: right;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="color: #e69138;"&gt;خصائص جديدة مضافة إلى الموقع:&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;ol style="text-align: right;"&gt;&lt;li&gt;خدمة ارسال تويته واحدة طويلة برابط تمام مثل تويت لونقر.&lt;/li&gt;
&lt;li&gt;خدمة تقطيع التويتات بشكل يدوي ثم ارسالها دفعة واحدة إلى تويتر.&lt;/li&gt;
&lt;li&gt;خدمة ارسال رسائل خاصة (DM) طويلة.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;خدمة تقصير الروابط تلقائيا.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;خدمة استعرض التويتات الطويلة المرسلة من قبل المستخدم.&lt;/li&gt;
&lt;li&gt;دعم الحسابات المحمية عند ارسال تويتات طويلة برابط&lt;/li&gt;
&lt;/ol&gt;&lt;/div&gt;&lt;div dir="rtl" style="text-align: right;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8379064344023344719-6615402504247488339?l=tip2dev.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/tip2dev/~4/_UFnBa-Phzs" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8379064344023344719/posts/default/6615402504247488339?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8379064344023344719/posts/default/6615402504247488339?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/tip2dev/~3/_UFnBa-Phzs/long-tweet-spliter.html" title="خدمة مقسم التويتات الطويلة Long Tweet Splitter" /><author><name>Khaled H. Musaied</name><uri>http://www.blogger.com/profile/17959625831089674087</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://2.bp.blogspot.com/_HMxACWDTC_E/S0EbhzLzrfI/AAAAAAAAB8c/6OQTHzfWWMc/S220/kmusaied@yahoo.com_118bb4bf+(1).jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/-X034WNaX_sY/TbPkL-SVHpI/AAAAAAAACy4/v3kgsM0Z0BU/s72-c/sport001.png" height="72" width="72" /><feedburner:origLink>http://tip2dev.blogspot.com/2011/04/long-tweet-spliter.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEIDQXg6eyp7ImA9WhdWEU4.&quot;"><id>tag:blogger.com,1999:blog-8379064344023344719.post-1849228897880413564</id><published>2010-12-21T03:52:00.000-08:00</published><updated>2011-09-04T03:36:10.613-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-09-04T03:36:10.613-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Mode2Form" /><category scheme="http://www.blogger.com/atom/ns#" term="Open Source" /><category scheme="http://www.blogger.com/atom/ns#" term="ASP.NET" /><category scheme="http://www.blogger.com/atom/ns#" term="Web Forms" /><category scheme="http://www.blogger.com/atom/ns#" term="Web Controls" /><category scheme="http://www.blogger.com/atom/ns#" term="درس" /><title>أداة تحكم - تحويل صنف المعلومات الى نموذج - Model2Form</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://4.bp.blogspot.com/_HMxACWDTC_E/TQytx3_GZdI/AAAAAAAACqw/crXPl3x4z0A/s1600/Model2Form.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="142" src="http://4.bp.blogspot.com/_HMxACWDTC_E/TQytx3_GZdI/AAAAAAAACqw/crXPl3x4z0A/s320/Model2Form.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div dir="rtl" style="text-align: right;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div dir="rtl" style="text-align: right;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div dir="rtl" style="text-align: right;"&gt;
قمت -قبل سنتين تقريبا- بعمل أداة تحكم (Web Control) للـASP.NET بإستخدام لغة السي شارب (#C) أسميتها "صنف الى نموذج" (&lt;b&gt;Model2Form&lt;/b&gt;) &amp;nbsp; لتوفير الوقت على المبرمجين بحيث لا يحتاج المبرمج الى بناء نموذج (Form) خاص بكل صنف معلومات (Model Class). تقوم اداة التحكم بإستقبال كائن من نوع صنف المعلومات ومن ثم تقوم بتحويله الى نموذج (Form).&amp;nbsp;&lt;/div&gt;
&lt;div dir="rtl" style="text-align: right;"&gt;
كما يمكنك تخصيص النموذج (تغيير العناوين - التحقق - تغيير التنسيق - ...) من خلال اضافة بعض السمات (Attributes) الى صنف المعلومات (Model Class) وايضا يمكنك تعديل بعض الخصائص (Properties) &amp;nbsp;في أداة التحكم بالإضافة الى القدرة على معالجة الأحداث (Event Handling).&amp;nbsp;&lt;/div&gt;
&lt;div dir="rtl" style="text-align: right;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div dir="rtl" style="text-align: right;"&gt;
يمكنك تحميل&lt;a href="http://model2form.codeplex.com/releases/view/57648"&gt; الأدة مع الأمثلة&lt;/a&gt; وقراءة &lt;a href="http://model2form.codeplex.com/documentation"&gt;التوثيق &lt;/a&gt;من على موقع &lt;a href="http://model2form.codeplex.com/"&gt;CodePlex.com&lt;/a&gt;.&lt;/div&gt;
&lt;div dir="rtl" style="text-align: right;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div dir="rtl" style="text-align: right;"&gt;
&lt;b&gt;للمعلومية الأداة مفتوحة المصدر ;)&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;تحديث:&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;يمكنك الأن تحميل الأداة من موقع&amp;nbsp;&lt;a href="http://nuget.org/List/Packages/Model2Form"&gt;NuGet&lt;/a&gt;.&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8379064344023344719-1849228897880413564?l=tip2dev.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/tip2dev/~4/z9rS00JblXw" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8379064344023344719/posts/default/1849228897880413564?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8379064344023344719/posts/default/1849228897880413564?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/tip2dev/~3/z9rS00JblXw/model2form.html" title="أداة تحكم - تحويل صنف المعلومات الى نموذج - Model2Form" /><author><name>Khaled H. Musaied</name><uri>http://www.blogger.com/profile/17959625831089674087</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://2.bp.blogspot.com/_HMxACWDTC_E/S0EbhzLzrfI/AAAAAAAAB8c/6OQTHzfWWMc/S220/kmusaied@yahoo.com_118bb4bf+(1).jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/_HMxACWDTC_E/TQytx3_GZdI/AAAAAAAACqw/crXPl3x4z0A/s72-c/Model2Form.png" height="72" width="72" /><feedburner:origLink>http://tip2dev.blogspot.com/2010/12/model2form.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkIAQXs5fip7ImA9WhdSFE0.&quot;"><id>tag:blogger.com,1999:blog-8379064344023344719.post-4039331414722327201</id><published>2010-11-21T13:18:00.000-08:00</published><updated>2011-07-23T01:09:00.526-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-07-23T01:09:00.526-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="نصائح" /><category scheme="http://www.blogger.com/atom/ns#" term="مقال" /><title>إدراة الإصدارات للتطبيقات</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div dir="rtl" style="text-align: right;"&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-MKmqp2NJvM0/TOl1p9v3IZI/AAAAAAAACoA/nhvvDQHLxeg/s1600/version+release+control.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="173" src="http://1.bp.blogspot.com/-MKmqp2NJvM0/TOl1p9v3IZI/AAAAAAAACoA/nhvvDQHLxeg/s200/version+release+control.png" width="200" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
إن طبيعة تطوير التطبيقات (Application Development) تتطلب التطوير المستمر فمن الوارد ظهور الأخطاء (Errors) وتغيير المتطلبات (Change Request) أو طلب واقتراح مميزات جديدة (New Feature). وهنا تبرز أهمية ادارة الاصدارات لتطبيقك (Software Version&amp;nbsp;Release Control).&lt;br /&gt;
&lt;br /&gt;
&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="color: #b45f06;"&gt;ما هو الإصدار (Release)؟&lt;/span&gt;&lt;br /&gt;
في عالم البرمجيات (Software) كل نسخة من التطبيق تقوم بنشرها (Publish) أو تركيبها (Deployment) على الخادم تعتبر اصدارا.&lt;br /&gt;
&lt;br /&gt;
&lt;span class="Apple-style-span" style="color: #b45f06;"&gt;ما هو رقم الاصدار؟&lt;/span&gt;&lt;br /&gt;
رقم الاصدار هو عبارة عن رقم فريد (Unique Number) يعبر عن مرحلة من مراحل تطوير أونشر التطبيق.&amp;nbsp;يوجد أكثر من شكل أرقم الإصدار (Schema) &amp;nbsp;فمنها ما هو رقم تسلسلي مثل (1.0.0.0) &amp;nbsp;وهو الأكثر استخداما ومنها ما هو &lt;a href="http://en.wikipedia.org/wiki/Versioning"&gt;غير ذلك&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;span class="Apple-style-span" style="color: #b45f06;"&gt;تفرعات الرقم التسلسلي:&lt;/span&gt;&lt;br /&gt;
يتفرع الرقم التسلسلي بشكل أساسي إلى ثلاثة أفرع:&lt;br /&gt;
[Major Sequence].[Minor Sequence].[Revision Sequence]&lt;br /&gt;
التوضيح:&lt;br /&gt;
&lt;ol style="text-align: right;"&gt;&lt;li&gt;فرع الرقم الأساس (Major Sequence):&lt;br /&gt;
يمثل رقم تسلسلي للإصدار الأساسي الذي لا يزيد إلا إذا تمت كتابة الشيفرة مرة أخرى أو تم التعديل على جزء كبير منها.&lt;/li&gt;
&lt;li&gt;فرع الرقم الثانوي (Minor Sequence):&lt;br /&gt;
يمثل رقم تسلسلي ثانوي يزيد في حالة تمت اضافة وظيفة جديدة أو تغيير كبير في ميزة معينة أو تغيير كبير في واجهة المستخدم.&lt;/li&gt;
&lt;li&gt;فرع رقم المراجعة (Revision&amp;nbsp;Sequence):&lt;br /&gt;
يمثل رقم تسلسلي للمراجعة ويزيد في حالة اصلاح مشكلة وتعديل بسيط في واجهة المستخدم للتطبيق.&lt;/li&gt;
&lt;/ol&gt;&lt;br /&gt;
&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="color: #b45f06;"&gt;ما هي ادارة الاصدارت؟&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;هي طريقة للتحكم في الشيفرة المصدرية (Source Code) للتطبيقات وهيكلة قاعدة البيانات بعد نشر (Publish) أوتركيب (Deployment)&amp;nbsp;يمكن من خلالها معرفة تاريخ التطبيق والتغييرات التي تمت عليه وكذالك ماهي التغييرات المخطط لتنفيذها في المستقبل -إن وجدت-.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="color: #b45f06;"&gt;ما أهمية ادارة الاصدارات؟&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;تكمن أهمية ادارة الاصدارات -كما ذكرنا سابقا- في كون طبيعة تطوير التطبيقات غير ثابته وتحتاج الى التعديل والتطوير بإستمرار. وإدارة الإصدارات ما هي إلى طريق لتنظيم وإدارة لتوولتوضيح أهمية ادراة الاصدارات.&lt;br /&gt;
&lt;br /&gt;
&lt;div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_HMxACWDTC_E/TOmCxezVodI/AAAAAAAACoc/QNmYbEVI3h8/publish.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="155" src="http://4.bp.blogspot.com/_HMxACWDTC_E/TOmCxezVodI/AAAAAAAACoc/QNmYbEVI3h8/publish.png" width="200" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;blockquote&gt;1- تنظيم نشر التطبيق:&lt;/blockquote&gt;&lt;/div&gt;&lt;div&gt;&lt;blockquote&gt;عند تحديدك رقم اصدار لتطبيقك في كل مرة تقوم بنشره فذلك يسهل عليك تتبع تاريخ تطبيقك والتغييرات التي طرأت عليه.&lt;/blockquote&gt;&lt;/div&gt;&lt;div&gt;&lt;blockquote&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_HMxACWDTC_E/TOmCxRwVNFI/AAAAAAAACoY/AIgPteNdeLM/develop.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" height="183" src="http://3.bp.blogspot.com/_HMxACWDTC_E/TOmCxRwVNFI/AAAAAAAACoY/AIgPteNdeLM/develop.png" width="200" /&gt;&lt;/a&gt;&lt;/div&gt;2- تنظيم تطوير التطبيق:&lt;/blockquote&gt;&lt;/div&gt;&lt;div&gt;&lt;blockquote&gt;يمكنك تنظيم تطوير التطبيق من خلال تحديد مراحل تطوير التطيبق واعتبار كل مرحلة عبارة عن اصدار يحتوي على مجموعة من الوظائف والمزايا الجديدة. فعلى سبيل المثل يمكنك أن تقوم ببناء تطبيق يحتوي في اصداره الأول الى خمسة مزايا ومن ثم تصدر الاصدار الثاني والذي يحتوي على ثلاثة مزايا اضافية وهكذا.&lt;/blockquote&gt;&lt;/div&gt;&lt;div&gt;&lt;blockquote&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_HMxACWDTC_E/TOmCxeSAwNI/AAAAAAAACog/2NWdx_Th-E4/update.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="191" src="http://3.bp.blogspot.com/_HMxACWDTC_E/TOmCxeSAwNI/AAAAAAAACog/2NWdx_Th-E4/update.png" width="200" /&gt;&lt;/a&gt;&lt;/div&gt;3- تنظيم صيانة للتطبيق:&lt;/blockquote&gt;&lt;/div&gt;&lt;div&gt;&lt;blockquote&gt;من الطبيعي حدوث أخطاء في التطبيقات بعد نشرها وستتحتاج في هذه الحالة إلى العودة الى الاصدار الذي قمت بنشره واصلاح المشكلة فيه ومن ثم ستقوم بنشر الاصدار الجديد بعد اصلاح تلك الأخطاء. إليك السيناريو التالي للتوضيح:&lt;/blockquote&gt;&lt;/div&gt;&lt;div style="text-align: right;"&gt;&lt;blockquote class=""&gt;&lt;br /&gt;
&lt;ol style="text-align: right;"&gt;&lt;li&gt;لو افترضنا أنك قمت بنشر الاصدار رقم 1.0.0 من تطبيقك&lt;/li&gt;
&lt;li&gt;ثم بدأت بالعمل على الاصدار رقم 1.1.0 والذي يحتوي على مزايا جديدة.&lt;/li&gt;
&lt;li&gt;وبعد وفتره ظهرت مشكلة في الاصدار المنشور رقم 1.0.0&lt;/li&gt;
&lt;li&gt;ففي هذه الحالة ستتوقف عن العمل على الاصدار رقم 1.1.0&lt;/li&gt;
&lt;li&gt;وسترجع الى الاصدار رقم 1.0.0 لتقوم بإصلاح المشكلة&lt;/li&gt;
&lt;li&gt;وبعد الانتهاء من حل المشكلة ستنشر الاصدار الجديد رقم 1.0.1&lt;/li&gt;
&lt;li&gt;وستعود مجددا للعمل على الاصدار الجديد 1.1.0&lt;/li&gt;
&lt;/ol&gt;&lt;/blockquote&gt;&lt;/div&gt;&lt;div style="text-align: right;"&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div dir="rtl" style="text-align: right;"&gt;تم بحمد الله ,,,&lt;/div&gt;&lt;div dir="rtl" style="text-align: right;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div dir="rtl" style="text-align: right;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div dir="rtl" style="text-align: right;"&gt;المراجع:&lt;/div&gt;&lt;div dir="rtl" style="text-align: right;"&gt;&lt;a href="http://en.wikipedia.org/wiki/Revision_control"&gt;http://en.wikipedia.org/wiki/Revision_control&lt;/a&gt;&lt;/div&gt;&lt;div dir="rtl" style="text-align: right;"&gt;&lt;a href="http://en.wikipedia.org/wiki/Software_release_life_cycle"&gt;http://en.wikipedia.org/wiki/Software_release_life_cycle&lt;/a&gt;&lt;/div&gt;&lt;div dir="rtl" style="text-align: right;"&gt;&lt;a href="http://en.wikipedia.org/wiki/Software_versioning"&gt;http://en.wikipedia.org/wiki/Software_versioning&lt;/a&gt;&lt;/div&gt;&lt;div dir="rtl" style="text-align: right;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8379064344023344719-4039331414722327201?l=tip2dev.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/tip2dev/~4/RdrG9WjsXbM" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8379064344023344719/posts/default/4039331414722327201?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8379064344023344719/posts/default/4039331414722327201?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/tip2dev/~3/RdrG9WjsXbM/version-release-control.html" title="إدراة الإصدارات للتطبيقات" /><author><name>Khaled H. Musaied</name><uri>http://www.blogger.com/profile/17959625831089674087</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://2.bp.blogspot.com/_HMxACWDTC_E/S0EbhzLzrfI/AAAAAAAAB8c/6OQTHzfWWMc/S220/kmusaied@yahoo.com_118bb4bf+(1).jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/-MKmqp2NJvM0/TOl1p9v3IZI/AAAAAAAACoA/nhvvDQHLxeg/s72-c/version+release+control.png" height="72" width="72" /><feedburner:origLink>http://tip2dev.blogspot.com/2010/11/version-release-control.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0cCRX45eSp7ImA9Wx5aEUQ.&quot;"><id>tag:blogger.com,1999:blog-8379064344023344719.post-7557328409694154229</id><published>2010-11-07T14:07:00.000-08:00</published><updated>2010-11-07T21:44:24.021-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-11-07T21:44:24.021-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Facebook" /><category scheme="http://www.blogger.com/atom/ns#" term="نصائح" /><category scheme="http://www.blogger.com/atom/ns#" term="مقال" /><title>الربط مع الفيس بوك - Facebook Connect</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="rtl" style="text-align: right;"&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_HMxACWDTC_E/TNU9BNvO89I/AAAAAAAACnk/93JAEi7QCMA/s1600/facebook_logo.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="200" src="http://2.bp.blogspot.com/_HMxACWDTC_E/TNU9BNvO89I/AAAAAAAACnk/93JAEi7QCMA/s200/facebook_logo.png" width="200" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;a href="http://www.facebook.com/"&gt;فيس بوك&lt;/a&gt; أكبر شبكة اجتماعية على مستوى الانترنت فقد وصل عدد المستخدمين الفاعلين الى أكثر من نصف مليار مستخدم 50% منهم يقومون بالدخول على فيس بوك يوميا. معدل الأصدقاء لكل مستخدم هو 130 صديق ويقضي المستخدمون 700 مليار دقيقة شهريا على الفيس بوك معظم مستخدمي الفيس بوك (70%) هم من خارج الولايات المتحدة الأمريكية ولذلك يوفر فيس بوك خيارات ترجمة الواجهة الى أكثر من 70 لغة. اضف الى ذلك أن عدد كبير من المستخدمين (70%) يقومون بإستخدام حساباتهم في الفيس بوك لاستخدام مواقع وتطبيقات مرتبطة بالفيس بوك حيث أنه يقدر عدد المواقع المرتبطة بالفيس بوك أكثرمن مليون موقع. (&lt;a href="http://www.facebook.com/press/info.php?statistics"&gt;المرجع&lt;/a&gt;)&lt;br /&gt;
&lt;br /&gt;
&lt;span class="Apple-style-span" style="color: #b45f06;"&gt;لماذا نرتبط مع فيس بوك:&lt;/span&gt;&lt;/div&gt;&lt;div dir="rtl" style="text-align: right;"&gt;نظرا للعدد الهائل من المستخدمين لموقع الفيس بوك وقابليتهم لاستخدام حساباتهم للدخول على المواقع والتطبيقات الأخرى&amp;nbsp;أصبح من الأفضل الاستفادة من هذا البيانات المتاحة من خلال &lt;a href="http://developers.facebook.com/"&gt;واجهات الموقع البرمجية (APIs)&lt;/a&gt; عند بناء تطبيقاتك.&lt;br /&gt;
&lt;br /&gt;
&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span class="Apple-style-span" style="color: #b45f06;"&gt;أشكال الارتباط بالفيس بوك:&lt;/span&gt;&lt;br /&gt;
هنالك الكثير من أشكال الارتباط بالفيس بوك وكل تطبيق يمكنه الارتباط بالفيس بوك بالشكل المناسب له ولكل شكل من أشكال الارتباط ميزاته وعيوبه وسنقوم بعرض الطرق الأكثر رواجا:&lt;br /&gt;
&lt;br /&gt;
&lt;div dir="rtl" style="text-align: right;"&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="color: #e69138;"&gt;1- التسجيل بإستخدام الفيس بوك (Register using Facebook):&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div dir="rtl" style="text-align: right;"&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;بإمكانك إلغاء نموذج التسجيل الجديد في الموقع واستبداله بزر "تسجيل أو دخول بإستخدام الفيس بوك" وعند دخول المستخدم باستخدام حسابه في الفيس بوك تقوم "داخليا" بجلب البيانات الخاصة بنموذج التسجيل من حساب المستخدم في الفيس بوك وتقوم بتخزينها في نظامك وبذلك تكون قد وفرت على المستخدم&amp;nbsp;الوقت والجهد وجعلت استخدام موقعك سهلا للغاية.&lt;br /&gt;
&lt;br /&gt;
&lt;span class="Apple-style-span" style="color: #38761d;"&gt;مثال:&lt;/span&gt;&lt;br /&gt;
لنفترض أن نموذج التسجيل الخاص بموقعك يطلب البيانات التالية:&lt;br /&gt;
الاسم الأول - الاسم الأخير - الجنس - تاريخ الميلاد&lt;br /&gt;
نلاحظ أن البيانات المطلوبة في نموذج التسجيل يمكن الحصول عليها من حساب المستخدم في الفيس بوك ولذلك بمجرد نقر المستخدم على زر "تسجيل أو الدخول بإستخدام الفيس بوك" سنقوم بإستخدام الواجهة البرمجية للفيس بوك (Facebook APIs) للاستعلام عن البيانات المطلوبة ومن ثم حفظها وتخزينها في قاعدة البيانات الخاصة بنظامك.&lt;br /&gt;
&lt;br /&gt;
&lt;span class="Apple-style-span" style="color: #38761d;"&gt;مخطط توضيحي:&lt;/span&gt;&lt;br /&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_HMxACWDTC_E/TNVQCHI5eII/AAAAAAAACno/4CdZIb92SqE/s1600/SSO_Diagram.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/_HMxACWDTC_E/TNVQCHI5eII/AAAAAAAACno/4CdZIb92SqE/s1600/SSO_Diagram.png" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;عملية التسجيل بإستخدام الفيس بوك&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;blockquote&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="color: #999999;"&gt;"خطوة (تحديث بيانات المستخدم) اختيارية"&lt;/span&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="color: #38761d;"&gt;المميزات:&lt;/span&gt;&lt;br /&gt;
1- توفير الوقت على المستخدم في التسجيل.&lt;br /&gt;
2- امكانية الوصول الى بيانات اضافية عن المستخدم في أي وقت.&lt;br /&gt;
3- امكانية معرفة اصدقاء المستخدم الذي يستخدمون تطبيقك.&lt;br /&gt;
4- الاستغناء عن برمجة خدمات خاصة بالحسابات مثل تغيير كلمة المرور - استرجاع كلمة المرور - التحقق من البريد الإلكتروني - ..&lt;br /&gt;
&lt;br /&gt;
&lt;span class="Apple-style-span" style="color: #38761d;"&gt;العيوب:&lt;/span&gt;&lt;br /&gt;
1- حصر الموقع على مستخدمي الفيس بوك.&lt;br /&gt;
2- عدم القدرة على تعديل البيانات يدويا ( قد تكون البيانات المدخلة في الفيس بوك غير حقيقية).&lt;br /&gt;
3- اعتمادية كبيرة على الفيس بوك فلو حصلت مشكلة في الفيس بوك لن يستطيع مستخدمي موقعك الدخول.&lt;/div&gt;&lt;/div&gt;&lt;div dir="rtl" style="text-align: right;"&gt;&lt;/div&gt;&lt;/div&gt;&lt;div dir="rtl" style="text-align: right;"&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;/div&gt;&lt;div dir="rtl" style="text-align: right;"&gt;&lt;span class="Apple-style-span" style="color: #e69138;"&gt;2- جلب جزء من بيانات التسجيل (Data&amp;nbsp;Fetching) :&lt;/span&gt;&lt;/div&gt;&lt;div dir="rtl" style="text-align: right;"&gt;يستخدم هذا الشكل عندما يكون نموذج التسجيل يحتوي على بيانات مشتركة مع الفيس بوك وبيانات أخرى مختلفة أو في حالة أنك تريد أن تعطي للمستخدم القدرة على تعديل بياناته الى بيانات أكثر مصداقية.&lt;br /&gt;
في الحالة الثانية لن نلغي نموذج التسجيل ولكن سنقوم بملئه بالبيانات المتوفرة في فيس بوك عند النقر على زر التسجيل بإستخدام الفيس بوك بحيث يستطيع المستخدم أن يقوم بتعديلها &amp;nbsp;ومن ثم التسجيل.&lt;br /&gt;
&lt;br /&gt;
&lt;span class="Apple-style-span" style="color: #38761d;"&gt;مثال:&lt;/span&gt;&lt;br /&gt;
لو افترضنا أن لديك موقع يوفر خدمة البيع عبر الانترنت باستخدام البطاقة الإئتمانية. سيكون نموذج التسجيل يحتوي على جزأين أحدهما &amp;nbsp;هو البيانات الشخصية والثاني هو بيانات البطاقة الإئتمانية. ففي هذه الحالة يمكننا توفير الوقت على المستخدم بالقيام بجلب بياناته الشخصية من الفيس بوك ووضعاها في نموذج التسجيل وبعدها يمكنه أن يقوم بتعديل تلك البيانات واكمال بيانات البطاقة الإتمانية.&lt;br /&gt;
&lt;br /&gt;
&lt;span class="Apple-style-span" style="color: #38761d;"&gt;المميزات:&lt;/span&gt;&lt;br /&gt;
1- توفير الوقت على المستخدم.&lt;br /&gt;
2- القدرة على تعديل البيانات القادمة من الفيس بوك.&lt;br /&gt;
3- عدم الاعتماد على الفيس بوك بشكل كامل (بحيث يمكن لمن لا يملك حساب في الفيس بوك أن يقوم بالتسجيل في موقعك)&lt;br /&gt;
&lt;br /&gt;
&lt;span class="Apple-style-span" style="color: #38761d;"&gt;العيوب:&lt;/span&gt;&lt;br /&gt;
1- العملية تأخذ وقتا أطول.&lt;br /&gt;
2- امكانية التلاعب بالبيانات.&lt;br /&gt;
&lt;br /&gt;
&lt;span class="Apple-style-span" style="color: #e69138;"&gt;3- المعرف الثانوي (Linked Accounts):&lt;/span&gt;&lt;br /&gt;
يمكنك بناء تطبيقك بشكل منفصل عن الفيس وبعد الانتهاء من بناء تطبيقك تعطي المستخدم القدرة على ربط حسابه على موقعك بحسابه على الفيس بوك.&lt;br /&gt;
&lt;br /&gt;
&lt;span class="Apple-style-span" style="color: #38761d;"&gt;مثال:&lt;/span&gt;&lt;br /&gt;
لو افترضنا أنك قمت ببناء تطبيق (نادر الاستخدام) يقوم بتحويل الملفات الصوتية الى صيغة مختلفة وكان تطبيقك يطالب المستخدم بالتسجيل لكي تتمكن من ربط الملفات الصوتية المرفوعة والمحولة مع حساب المستخدم. يمكنك أن تعطي للمستخدم الخيار بأن يقوم بربط حسابه في موقعك مع حسابه في الفيس بوك بحيث أن يستطيع تسجيل الدخول الى موقعك عن طريق حسابه أو عن طريق حسابه في الفيس بوك. ففي هذه &amp;nbsp;الحالة لو نسي المستخدم معرفه أو كلمة المرور لحسابه في موقعك يمكنه الدخول بإستخدام الفيس بوك.&lt;br /&gt;
&lt;br /&gt;
&lt;span class="Apple-style-span" style="color: #38761d;"&gt;المميزات:&lt;/span&gt;&lt;br /&gt;
1- تطبيق قائمة بذاته (Stand Alone Application).&lt;br /&gt;
2- امكانية الدخول بأكثر من طريقة.&lt;br /&gt;
3- امكانية الوصول الى بيانات المستخدم عن طريق الفيس بوك في حال قام بربط حسابه.&lt;br /&gt;
4- سهل التطبيق في حال أن قمت ببناء تطبيقك بدون الارتباط مع فيس بوك.&lt;br /&gt;
&lt;br /&gt;
&lt;span class="Apple-style-span" style="color: #38761d;"&gt;العيوب:&lt;/span&gt;&lt;br /&gt;
1- تحتاج الى بناء التطيبق كاملا بجميع وظائفه وخدماته.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;/div&gt;&lt;div dir="rtl" style="text-align: right;"&gt;&lt;span class="Apple-style-span" style="color: #e69138;"&gt;4- نشر تطبيقك (Post on User Wall):&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div dir="rtl" style="text-align: right;"&gt;بإمكانك أن تقوم بالكتابة عن تطبيقك على جدار العضو (Facebook User Wall) -بعد موافقته على ذلك- وفي هذه الحالة سينتشر موقعك بين أصدقاء المستخدم.&lt;br /&gt;
&lt;br /&gt;
&lt;span class="Apple-style-span" style="color: #38761d;"&gt;مثال:&lt;/span&gt;&lt;br /&gt;
لو افترضنا أن تطبيقك عبارة عن برنامج لقياس الذكاء, فبإمكانك أن تعرض على المستخدم أن ينشر نتيجته على الفيس بوك وفي هذه الحالة يمكن لأصدقائه مشاهدة تلك النتيجة وزيارة موقعك لاختبار أنفسهم.&lt;br /&gt;
&lt;br /&gt;
&lt;span class="Apple-style-span" style="color: #38761d;"&gt;المميزات:&lt;/span&gt;&lt;br /&gt;
1- امكانية نشر موقعك مجانا لمستخدمين حقيقيين.&lt;br /&gt;
2- اعطاء موقعك صبغة اجتماعية.&lt;br /&gt;
&lt;br /&gt;
&lt;span class="Apple-style-span" style="color: #38761d;"&gt;العيوب:&lt;/span&gt;&lt;br /&gt;
1- البعض يعتبر ذلك اختراقا للخصوصية.&lt;br /&gt;
&lt;br /&gt;
&lt;span class="Apple-style-span" style="color: #b45f06;"&gt;إذن متى نستخدم الربط مع الفيس بوك؟&lt;/span&gt;&lt;br /&gt;
استخدم الربط مع الفيس بوك إذا:&lt;br /&gt;
1- كان موقعك مفتوحا لشريحة واسعة من المستخدمين.&lt;br /&gt;
2- كانت تريد الوصول الى بيانات كثيرة للمستخدم.&lt;br /&gt;
3- كنت تريد أن تنشر موقعك.&lt;br /&gt;
&lt;br /&gt;
&lt;span class="Apple-style-span" style="color: #b45f06;"&gt;ملحق:&lt;/span&gt;&lt;br /&gt;
لمعرفة مستويات الصلاحيات (Permissions) للمستخدم يمكن راجع الرابط التالي:&lt;br /&gt;
&lt;a href="http://developers.facebook.com/docs/authentication/permissions"&gt;http://developers.facebook.com/docs/authentication/permissions&lt;/a&gt;&lt;br /&gt;
لمعرفة البيانات التي يمكن الوصول إليها للمستخدام راجع الرابط التالي:&lt;br /&gt;
&lt;a href="http://developers.facebook.com/docs/reference/api/user"&gt;http://developers.facebook.com/docs/reference/api/user&lt;/a&gt;&lt;br /&gt;
لمعرفة البيانات التي يمكن الوصول لبقية العناصر راجع الرابط التالي:&lt;br /&gt;
&lt;a href="http://developers.facebook.com/docs/reference/api/"&gt;http://developers.facebook.com/docs/reference/api/&lt;/a&gt;&lt;br /&gt;
عرض تقديمي للمقارنة بين مختلف أنواع طرق الربط مع الشبكات الاجتماعية:&lt;br /&gt;
&lt;a href="http://www.slideshare.net/drock/openid-vs-facebook-connect-vs-friendconnect"&gt;http://www.slideshare.net/drock/openid-vs-facebook-connect-vs-friendconnect&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
تم بحمد الله&lt;br /&gt;
&lt;br /&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8379064344023344719-7557328409694154229?l=tip2dev.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/tip2dev/~4/78rrj_gk11M" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8379064344023344719/posts/default/7557328409694154229?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8379064344023344719/posts/default/7557328409694154229?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/tip2dev/~3/78rrj_gk11M/facebook-connect.html" title="الربط مع الفيس بوك - Facebook Connect" /><author><name>Khaled H. Musaied</name><uri>http://www.blogger.com/profile/17959625831089674087</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://2.bp.blogspot.com/_HMxACWDTC_E/S0EbhzLzrfI/AAAAAAAAB8c/6OQTHzfWWMc/S220/kmusaied@yahoo.com_118bb4bf+(1).jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/_HMxACWDTC_E/TNU9BNvO89I/AAAAAAAACnk/93JAEi7QCMA/s72-c/facebook_logo.png" height="72" width="72" /><feedburner:origLink>http://tip2dev.blogspot.com/2010/11/facebook-connect.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkQMQHc7cCp7ImA9Wx5bF0U.&quot;"><id>tag:blogger.com,1999:blog-8379064344023344719.post-712356585413196533</id><published>2010-10-30T07:14:00.000-07:00</published><updated>2010-11-03T05:46:21.908-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-11-03T05:46:21.908-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="JavaScript" /><category scheme="http://www.blogger.com/atom/ns#" term="درس" /><category scheme="http://www.blogger.com/atom/ns#" term="jQuery" /><title>كيف تبني اضافة للجي كويري - jQuery Plugin</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_HMxACWDTC_E/TMvlhXVB7QI/AAAAAAAACms/TyqmiBYlMVQ/s1600/114-jquery-plugin.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="200" src="http://4.bp.blogspot.com/_HMxACWDTC_E/TMvlhXVB7QI/AAAAAAAACms/TyqmiBYlMVQ/s200/114-jquery-plugin.jpg" width="200" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div dir="rtl" style="text-align: right;"&gt;أصبحت الجي كويري (&lt;a class="zem_slink" href="http://jquery.com/" rel="homepage" title="JQuery"&gt;jQuery&lt;/a&gt;) من أكثر مكتبات الجافا سكريبت (&lt;a class="zem_slink" href="http://en.wikipedia.org/wiki/JavaScript" rel="wikipedia" title="JavaScript"&gt;Javascript&lt;/a&gt;) انتشارا والأوسع استخداما حيث صارت تستخدم في 31% من أكثر عشرة آلاف موقع زيارة في الانترنت رغم أن عمرها صغير نسبيا حيث انها من &lt;a href="http://en.wikipedia.org/wiki/JQuery"&gt;مواليد 2006&lt;/a&gt;.&lt;/div&gt;&lt;div dir="rtl" style="text-align: right;"&gt;&lt;/div&gt;&lt;div dir="rtl" style="text-align: right;"&gt;احدى أهم خصائص الجي كويري هو أنها قابلة للتوسع أي أنها توفر قاعدة للمبرمجين الذي يريدون تكوين مكتبات أخرى تعتمد على مكتبة الجي كويري الأساسية وهذا ما يسمى بالاضافة (Plug-in).&lt;/div&gt;&lt;div dir="rtl" style="text-align: right;"&gt;&lt;/div&gt;&lt;div dir="rtl" style="text-align: right;"&gt;سنقوم بعمل اضافة بسيطة تقوم بالتحقق من محتوى مربعات النصوص (Text Boxs) لتوضيح مباديء عمل الاضافات (&lt;a class="zem_slink" href="http://plugins.jquery.com/" rel="wikipedia" title="Plug-in (computing)"&gt;Plugins&lt;/a&gt;) على الجي كويري (jQuery):&lt;/div&gt;&lt;div dir="rtl" style="text-align: right;"&gt;&lt;/div&gt;&lt;div dir="rtl" style="text-align: right;"&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;span class="Apple-style-span" style="color: #b45f06;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="color: #b45f06;"&gt;الخطوة الأولى: التجهيز&lt;/span&gt;&lt;/div&gt;&lt;div dir="rtl" style="text-align: right;"&gt;قم بتكوين ملف انترنت&amp;nbsp;(&lt;a class="zem_slink" href="http://en.wikipedia.org/wiki/HTML" rel="wikipedia" title="HTML"&gt;HTML&lt;/a&gt;)&amp;nbsp;جديد وليكن اسمه "jQueryPluginTest.html".&lt;/div&gt;&lt;div dir="rtl" style="text-align: right;"&gt;ثم قم بإضافة ملف جافا سكريبت ولكن اسمه "jQuery.validate.js".&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_HMxACWDTC_E/TMvo4oHIugI/AAAAAAAACmw/urom1ap9H9I/s1600/s1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_HMxACWDTC_E/TMvo4oHIugI/AAAAAAAACmw/urom1ap9H9I/s1600/s1.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div dir="rtl" style="text-align: right;"&gt;&lt;span class="Apple-style-span" style="color: #b45f06;"&gt;الخطوة الثانية: الكود الأساسي&lt;/span&gt;&lt;/div&gt;&lt;div dir="rtl" style="text-align: right;"&gt;اكتب الكود التالي والذي يمثل الكود الأساسي لأي ملف اضافة جي كويري:&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_HMxACWDTC_E/TMvpMx_WVjI/AAAAAAAACm0/S5LB8SVSJHM/s1600/s2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="188" src="http://3.bp.blogspot.com/_HMxACWDTC_E/TMvpMx_WVjI/AAAAAAAACm0/S5LB8SVSJHM/s320/s2.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div dir="rtl" style="text-align: right;"&gt;&lt;span class="Apple-style-span" style="color: #b45f06;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="color: #b45f06;"&gt;الخطوة الثالثة: الكود&lt;/span&gt;&lt;/div&gt;&lt;div dir="rtl" style="text-align: right;"&gt;سنقوم بإضافة كود بسيط للتحقق من محتوى مربعات &amp;nbsp;النصوص كما في الكود التالي:&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_HMxACWDTC_E/TMvrNRVZrCI/AAAAAAAACm4/KGgWXBNDoG4/s1600/s3.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/_HMxACWDTC_E/TMvrNRVZrCI/AAAAAAAACm4/KGgWXBNDoG4/s1600/s3.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div dir="rtl" style="text-align: right;"&gt;كما هو واضح في الكود يتم التحقق من محتوى مربع النص وفي حال كان فارغا يتم تلوين حدوده باللون الأحمر وخلفيته بالون الأحمر الفاتح أما في حالة وجود محتوى فيتم مسح التعديلات على الحدود والخلفية من مربع النص.&lt;/div&gt;&lt;div dir="rtl" style="text-align: right;"&gt;&lt;/div&gt;&lt;div dir="rtl" style="text-align: right;"&gt;&lt;span class="Apple-style-span" style="color: #b45f06;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="color: #b45f06;"&gt;الخطوة الرابعة: الاختبار&lt;/span&gt;&lt;/div&gt;&lt;div dir="rtl" style="text-align: right;"&gt;لنقوم بتجربة الاضافة من خلال كتابة الكود التالي لصفحة "jQueryPluginTest.html":&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_HMxACWDTC_E/TMvvV-iCyYI/AAAAAAAACm8/IhE-uGVce90/s1600/demo1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_HMxACWDTC_E/TMvvV-iCyYI/AAAAAAAACm8/IhE-uGVce90/s1600/demo1.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div dir="rtl" style="height: 15px; margin-top: 10px; text-align: right;"&gt;والآن قم بتشغيل الصفحة:&lt;a href="http://www.zemanta.com/" title="Enhanced by Zemanta"&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_HMxACWDTC_E/TMvwQDPgjDI/AAAAAAAACnA/FuLGLea5b8Q/s1600/demo2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_HMxACWDTC_E/TMvwQDPgjDI/AAAAAAAACnA/FuLGLea5b8Q/s1600/demo2.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div dir="rtl" style="height: 15px; margin-top: 10px; text-align: right;"&gt;عند النقر على زر "دخول" دون ادخال اي شيء في مربعات النصوص أن لون الحدود والخلفية تحول الى اللون الأحمر.&lt;/div&gt;&lt;div dir="rtl" style="height: 15px; margin-top: 10px; text-align: right;"&gt;&lt;/div&gt;&lt;div dir="rtl" style="height: 15px; margin-top: 10px; text-align: right;"&gt;&lt;span class="Apple-style-span" style="color: #b45f06;"&gt;الخطوة الخامسة: الخيارات&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div dir="rtl" style="height: 15px; margin-top: 10px; text-align: right;"&gt;عندما تريد أن تنشر اضافتك يفضل أن يكون فيها شيء من المرونة فعلى سبيل المثل ماذا لو احتاج شخص ليستخدم اضافتك ولكنه يريد أن يغير بعض الألوان ففي هذه الحالة يجب أن تستخدم الخيارات (options) لكي تجعل المستخدم يقوم بتمرير اسم نمط شكلي(Css Class) &amp;nbsp;الى مكتبتك.&lt;/div&gt;&lt;div dir="rtl" style="height: 15px; margin-top: 10px; text-align: right;"&gt;&lt;/div&gt;&lt;div dir="rtl" style="height: 15px; margin-top: 10px; text-align: right;"&gt;&lt;/div&gt;&lt;div dir="rtl" style="height: 15px; margin-top: 10px; text-align: right;"&gt;بتعديلات بسيطة على المكتبة يمكننا فعل ذلك , انظر الى التغير في الكود التالي:&lt;/div&gt;&lt;div dir="rtl" style="height: 15px; margin-top: 10px; text-align: right;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_HMxACWDTC_E/TMvyhG4PLpI/AAAAAAAACnE/NhDJyjTXyL8/s1600/s4.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_HMxACWDTC_E/TMvyhG4PLpI/AAAAAAAACnE/NhDJyjTXyL8/s1600/s4.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div dir="rtl" style="height: 15px; margin-top: 10px; text-align: right;"&gt;اصبح الآن بالإمكان تمرير اسم الكلاس (Css Class) الى الاضافة كما في الصورة التالية:&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_HMxACWDTC_E/TMvz-301atI/AAAAAAAACnI/Kr_umHuMpKI/s1600/demo3.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_HMxACWDTC_E/TMvz-301atI/AAAAAAAACnI/Kr_umHuMpKI/s1600/demo3.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="rtl" style="height: 15px; margin-top: 10px; text-align: right;"&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;a href="https://sites.google.com/site/kmusaied/download/jQuery.validate_demo.zip?attredirects=0&amp;amp;d=1"&gt;رابط تحميل النسخة النهائية من الاضافة&lt;/a&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;تم بحمد الله تعالى ..&lt;/div&gt;&lt;/div&gt;&lt;div style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div dir="rtl" style="height: 15px; margin-top: 10px; text-align: right;"&gt;&lt;br /&gt;
&lt;a href="https://sites.google.com/site/kmusaied/download/jQuery.validate_demo.zip?attredirects=0&amp;amp;d=1"&gt;&lt;span class="Apple-style-span" style="color: black;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8379064344023344719-712356585413196533?l=tip2dev.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/tip2dev/~4/hsGI9SQV3PA" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8379064344023344719/posts/default/712356585413196533?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8379064344023344719/posts/default/712356585413196533?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/tip2dev/~3/hsGI9SQV3PA/jquery-plugin.html" title="كيف تبني اضافة للجي كويري - jQuery Plugin" /><author><name>Khaled H. Musaied</name><uri>http://www.blogger.com/profile/17959625831089674087</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://2.bp.blogspot.com/_HMxACWDTC_E/S0EbhzLzrfI/AAAAAAAAB8c/6OQTHzfWWMc/S220/kmusaied@yahoo.com_118bb4bf+(1).jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/_HMxACWDTC_E/TMvlhXVB7QI/AAAAAAAACms/TyqmiBYlMVQ/s72-c/114-jquery-plugin.jpg" height="72" width="72" /><feedburner:origLink>http://tip2dev.blogspot.com/2010/10/jquery-plugin.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkQASH0yfip7ImA9Wx5bF0U.&quot;"><id>tag:blogger.com,1999:blog-8379064344023344719.post-1555779821084956807</id><published>2010-10-27T04:56:00.000-07:00</published><updated>2010-11-03T05:45:49.396-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-11-03T05:45:49.396-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="MVC" /><category scheme="http://www.blogger.com/atom/ns#" term="ASP.NET" /><category scheme="http://www.blogger.com/atom/ns#" term="مقال" /><title>ASP.NET MVC سؤال وجواب</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_HMxACWDTC_E/TMf4R5YWUEI/AAAAAAAACmo/whRsFTayu1s/s1600/mvc.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="185" src="http://3.bp.blogspot.com/_HMxACWDTC_E/TMf4R5YWUEI/AAAAAAAACmo/whRsFTayu1s/s320/mvc.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;ul dir="rtl" style="text-align: right;"&gt;&lt;li&gt;مقدمة توضيحية.&lt;/li&gt;
&lt;li&gt;ما هي ASP.NET MVC؟&lt;/li&gt;
&lt;li&gt;لماذا ظهرت ASP.NET MVC؟&lt;/li&gt;
&lt;li&gt;ما الذي يميز ASP.NET MVC؟&lt;/li&gt;
&lt;li&gt;هل ASP.NET MVC بديل للـ ASP.NET Web Forms؟&lt;/li&gt;
&lt;li&gt;هل يمكنني أن أستخدم أدوات التحكم (Controls) &amp;nbsp;في ASP.NET MVC؟&lt;/li&gt;
&lt;/ul&gt;&lt;div style="text-align: right;"&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;/div&gt;&lt;div dir="rtl" style="text-align: right;"&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="color: #e69138;"&gt;مقدمة توضيحية:&lt;/span&gt;&lt;/div&gt;&lt;div dir="rtl" style="text-align: right;"&gt;في البداية أود توضيح بعض المصطلحات التي سأستخدماها في هذه المقالة. وهي كالتالي:&lt;/div&gt;&lt;div dir="rtl" style="text-align: right;"&gt;- ASP.NET MVC: الطريقة الجديدة لإنشاء تطبيقات الويب بإستخدام تقنيات مايكروسوفت.&lt;/div&gt;&lt;div dir="rtl" style="text-align: right;"&gt;- ASP.NET Web Forms: الطريقة المعروفة لانشاء تطبيقات الويب من خلال استخدام ادوات التحكم (Web Controls).&lt;br /&gt;
- MVC: نمط تصميم (&lt;a href="http://en.wikipedia.org/wiki/Model%E2%80%93View%E2%80%93Controller"&gt;Design Pattern&lt;/a&gt;) يتكون من ثلاثة أجزاء:&lt;br /&gt;
&lt;ol style="text-align: right;"&gt;&lt;li&gt;حامل البيانات (Model): صنف (Class) يقابل جدول في قاعدة البيانات (في الغالب) لحمل البيانات من وإلى الصفحة (View).&lt;/li&gt;
&lt;li&gt;الصفحة (View): تجاوزا سميتها الصفحة وهي منطقة العرض.&lt;/li&gt;
&lt;li&gt;التحكم (Controller): صنف (Class) الأوامر (Actions) أي أنه الحلقة الوسيطة بين (Model) و (View).&lt;/li&gt;
&lt;/ol&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div dir="rtl" style="text-align: right;"&gt;&lt;span class="Apple-style-span" style="color: #e69138;"&gt;ما هي ASP.NET MVC؟&lt;/span&gt;&lt;/div&gt;&lt;div dir="rtl" style="text-align: right;"&gt;هي مكتبة مبنية بإستخدام منصة دوت نت (.NET Framework) تساعد لانشاء تطبيقات الويب (Web Application) بالطريقة التقليدية! نعم بالطريقة التقليدة التي تستخدم في لغات برمجة الويب الأخرى مثل PHP و Pathon و Perl &amp;nbsp;وغيرها من لغات البرمجة حيث يغلب استخدام نمط MVC في بناء التطبيقات.&lt;br /&gt;
&lt;br /&gt;
&lt;span class="Apple-style-span" style="color: #e69138;"&gt;لماذا ظهرت ASP.NET MVC؟&lt;/span&gt;&lt;br /&gt;
ظهرت ASP.NET MVC لردم الفجوة بين مطوري الويب بإستخدام تقنيات مايكروسوفت ومطوري الويب بإستخدام التقنيات واللغات الأخرى. عندما نرجع الى الماضي وبالتحديد في عام 2002 مع أول اصدار لتقنيات Microsoft.NET ومن ضمنها ASP.NET ظهرت فجوة بين مستخدمي ASP.NET Web Forms ومستخدمي اللغات الأخرى حيث أن ASP.NET كانت تعتبر ثورة في عالم برمجة تطبيقات الويب ولكنها كانت موجهة بشكل كبير لمبرمجي تطبيقات الويندوز فصار من السهل لأي مبرمج لديه خبرة في برمجة تطبيقات الويندوز أن ينتقل إلى عمل تطبيقات الويب بإستخدام ASP.NET Web Forms لأنها كانت تستخدم واجهة قريبة جدا من واجعة الفيجوال بسيك (Visual Basic) لعمل التطبيقات من خلال سحب أدوات التحكم (Controls) وترتيبها على النموذج وكتابة الكود بإستخدام فيجوال بيسك دوت نت (Visual Basic.NET) أو سي شارب (C#.NET) ومع كل إصدار جديد لمنصة الدوت نت (.NET Framework) تتسع تلك الفجوة التي تتمثل بأن طريقة تطوير تطبيقات الويب أصبحت أقرب إلى طريقة تطوير تطبيقات الويندوز فصار من الصعب على مطوري الويب بإستخدام لغات أخرى الانتقال إلى ASP.NET. فجاءت ASP.NET MVC في عام 2007 لردم تلك الفجوة ولتسهيل انتقال مطوري الويب بإستخدام اللغات الأخرى الى تقنيات مايكروسوفت.&lt;br /&gt;
&lt;br /&gt;
&lt;/div&gt;&lt;div dir="rtl" style="text-align: right;"&gt;&lt;span class="Apple-style-span" style="color: #e69138;"&gt;ما الذي يميز ASP.NET MVC؟&lt;/span&gt;&lt;br /&gt;
كما ذكرنا سابقا أن ASP.NET MVC صممت للبناء تطبيقات الويب بالطريقة التقليدة لذلك فإن أهم ما يميزها هو التالي:&lt;br /&gt;
&lt;ol style="text-align: right;"&gt;&lt;li&gt;استخدام نمط التصميم MVC بشكل واضح.&lt;/li&gt;
&lt;li&gt;القدرة على التحكم الكامل بالـHTML:&lt;/li&gt;
&lt;li&gt;السرعة (Fast)&lt;/li&gt;
&lt;li&gt;الروابط المعبرة (SEO URL's)&lt;/li&gt;
&lt;li&gt;قابلية الإختبار.&lt;/li&gt;
&lt;li&gt;نمط تطوير الويب التقليدي.&lt;/li&gt;
&lt;li&gt;التكامل مع بيئة الدوت نت (Visual Studio.NET).&lt;/li&gt;
&lt;/ol&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: #e69138;"&gt;هل ASP.NET MVC بديل للـ ASP.NET Web Forms؟&lt;/span&gt;&lt;/div&gt;&lt;div&gt;لا ليست بديل عن ASP.NET Web Forms لأن كلا منهما له استخدامه ومميزاته. فـASP.NET Web Forms مفيدة في بناء التطبيقات التي لا تحتاج الى تخصيص كبير في الواجهات من خلال الاستفادة من أدوات التحكم (Controls) بالاضافة الى امكانية انجاز المشاريع بسرعة أكبر وفي وقت أقل. بينما ASP.NET MVC يمكن استخدامها في في المشاريع التي تحتاج الى تخصيص أكبر للواجهات ولبناء تطبيقات الـ Web 2.0.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: #e69138;"&gt;هل يمكنني أن أستخدم أدوات التحكم (Controls) &amp;nbsp;في ASP.NET MVC؟&lt;/span&gt;&lt;br /&gt;
نعم يمكنك ولكن لا ينصح بذلك لأن ASP.NET MVC مصممة لبناء تطبيقات الويب بالشكل التقليدي وادوات التحكم هي تتبع لـASP.NET Web Forms لذلك لا يجب أن الخلط بينهما.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;a href="http://codeismagic.blogspot.com/2010/10/introduction-to-aspnet-mvc.html"&gt;للاستزادة يمكنك الاطلاع على العرض التقديمي عن ASP.NET MVC&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;span class="Apple-style-span" style="color: #38761d;"&gt;لديك سؤال .. تفضل بكتابته هنا..&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="color: #38761d;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8379064344023344719-1555779821084956807?l=tip2dev.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/tip2dev/~4/xJT7duYJgNk" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8379064344023344719/posts/default/1555779821084956807?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8379064344023344719/posts/default/1555779821084956807?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/tip2dev/~3/xJT7duYJgNk/aspnet-mvc.html" title="ASP.NET MVC سؤال وجواب" /><author><name>Khaled H. Musaied</name><uri>http://www.blogger.com/profile/17959625831089674087</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://2.bp.blogspot.com/_HMxACWDTC_E/S0EbhzLzrfI/AAAAAAAAB8c/6OQTHzfWWMc/S220/kmusaied@yahoo.com_118bb4bf+(1).jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/_HMxACWDTC_E/TMf4R5YWUEI/AAAAAAAACmo/whRsFTayu1s/s72-c/mvc.jpg" height="72" width="72" /><feedburner:origLink>http://tip2dev.blogspot.com/2010/10/aspnet-mvc.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0YCQ3g9fyp7ImA9Wx9TE0o.&quot;"><id>tag:blogger.com,1999:blog-8379064344023344719.post-4776580376713189172</id><published>2010-10-26T11:25:00.000-07:00</published><updated>2010-11-21T14:39:22.667-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-11-21T14:39:22.667-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="نصائح" /><category scheme="http://www.blogger.com/atom/ns#" term="مقال" /><title>تلميحات في 140 حرف - DevTips</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="rtl" style="text-align: right;"&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_HMxACWDTC_E/TMcgTZ1HiiI/AAAAAAAACmk/dF84yh-Zm7w/s1600/computer_programming.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="240" src="http://1.bp.blogspot.com/_HMxACWDTC_E/TMcgTZ1HiiI/AAAAAAAACmk/dF84yh-Zm7w/s320/computer_programming.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
هذه مجموعة من التلميحات السريعة في 140 حرف كحد أقصى (&lt;span class="Apple-style-span" style="color: red;"&gt;سيتم تحديثها بإستمرار&lt;/span&gt;):&lt;/div&gt;&lt;ol dir="rtl" style="text-align: right;"&gt;&lt;li&gt;عند بنائك موقع يحتاج الى التسجيل من قبل الزوار فكر بإستخدام &lt;a href="http://tip2dev.blogspot.com/2010/11/facebook-connect.html"&gt;Facebook Connect&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;اجعل ادخال بيانات حقيقية الى قاعدة البيانات جديدة تقوم بنائها آخر خطوة قبل اعتمادها.&lt;/li&gt;
&lt;li&gt;إذا كان تطبيق الويب الذي تريد بنائه سيستضاف على أكثر من خادم تجنب الإعتماد على الملفات (قدر الإمكان).&lt;/li&gt;
&lt;li&gt;فكّر في استخدام التخزين المؤقت (Cache) بعد الانتهاء من برمجة المشروع!.&lt;/li&gt;
&lt;li&gt;كل مرة تقوم بتركيب نسخة محدثة من الموقع على السيرفر &lt;a href="http://tip2dev.blogspot.com/2010/11/version-release-control.html"&gt;اعط النسخة رقما (version)&lt;/a&gt; واحفظ منها نسخة احتياطية للرجوع إليها عند الحاجة.&lt;/li&gt;
&lt;li&gt;تحقق من جميع ادخالات المستخدمين ولا تثق بها أبدأ.&lt;/li&gt;
&lt;li&gt;عند استخدامك للجافا سكريبت تحقق من أن التطبيق يعمل (كحد أدنى) على المتصفحات الأساسية IE , FireFox ,Chrome.&lt;/li&gt;
&lt;li&gt;عند بنائك لقاعدة بيانات يجب أن تضع في الحسبان الحد الأقصى للبيانات في كل جدول وعليها تحدد نوع البيانات لكل حقل.&lt;/li&gt;
&lt;li&gt;استخدم ASP.NET MVC في حال أن التطبيق يحتاج كم كبير من التخصيص في الشكل الخارجي.&lt;/li&gt;
&lt;li&gt;استخدم ASP.NET Web Forms لانجاز المشاريع في وقت أقل.&lt;/li&gt;
&lt;li&gt;لا تجعل تصميم نظامك الهيكلي (Architectural Design) يمنعك من التوسع في العتاد (Hardware) في المستقبل.&lt;/li&gt;
&lt;li&gt;عند البدء في مشروع جديد اجعل بناء التطبيق من الصفر آخر الخيارات وابحث عن خيارات أخرى.&lt;/li&gt;
&lt;li&gt;في تطبيقات الويب حاول أن يكون استخدامك لذاكرة الخادم العشوائية (RAM) أقل ما يمكن.&lt;/li&gt;
&lt;li&gt;لا تقم بتخزين الملفات الكبيرة في قاعدة البيانات.&lt;/li&gt;
&lt;li&gt;استخدم برنامج لادارة الشيفرة المصدرية (Source Control) حتى وان كنت تعمل على التطبيق منفردا.&lt;/li&gt;
&lt;li&gt;استخدم &lt;a href="http://tip2dev.blogspot.com/2010/10/code-security.html"&gt;الحد الأدنى من الصلاحيات&lt;/a&gt; للوصول إلى الموارد.&lt;/li&gt;
&lt;li&gt;قم بتشفير الكود (Source Code) قبل تركيب التطبيق على الخادم.&lt;/li&gt;
&lt;li&gt;لا يوجد لغة برمجة أفضل من أخرى بشكل مطلق ولكن كل لغة برمجة معينة مناسبة لمتطلبات معينة.&lt;/li&gt;
&lt;/ol&gt;&lt;div dir="rtl" style="text-align: right;"&gt;&lt;span class="Apple-style-span" style="color: #6aa84f;"&gt;هل لديك تلميح تود أن يضاف .. تفضل بكتابته في التعليقات :)&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8379064344023344719-4776580376713189172?l=tip2dev.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/tip2dev/~4/M-meoNqM5fQ" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8379064344023344719/posts/default/4776580376713189172?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8379064344023344719/posts/default/4776580376713189172?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/tip2dev/~3/M-meoNqM5fQ/140-devtips.html" title="تلميحات في 140 حرف - DevTips" /><author><name>Khaled H. Musaied</name><uri>http://www.blogger.com/profile/17959625831089674087</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://2.bp.blogspot.com/_HMxACWDTC_E/S0EbhzLzrfI/AAAAAAAAB8c/6OQTHzfWWMc/S220/kmusaied@yahoo.com_118bb4bf+(1).jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/_HMxACWDTC_E/TMcgTZ1HiiI/AAAAAAAACmk/dF84yh-Zm7w/s72-c/computer_programming.jpg" height="72" width="72" /><feedburner:origLink>http://tip2dev.blogspot.com/2010/10/140-devtips.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkQGSXk7cSp7ImA9Wx5bF0U.&quot;"><id>tag:blogger.com,1999:blog-8379064344023344719.post-6906759473897839211</id><published>2010-10-23T04:41:00.000-07:00</published><updated>2010-11-03T05:45:28.709-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-11-03T05:45:28.709-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="نصائح" /><category scheme="http://www.blogger.com/atom/ns#" term="الأمان" /><category scheme="http://www.blogger.com/atom/ns#" term="مقال" /><title>كيف تجعل الكود أكثر أمنا؟ - Code Security</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_HMxACWDTC_E/TMLJhMpBmVI/AAAAAAAACmM/c81HsGB55kQ/s1600/Hacker_d70focus_1.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="213" src="http://4.bp.blogspot.com/_HMxACWDTC_E/TMLJhMpBmVI/AAAAAAAACmM/c81HsGB55kQ/s320/Hacker_d70focus_1.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div dir="rtl" style="text-align: justify;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div dir="rtl" style="text-align: justify;"&gt;من المهم أن يكون الكود (الشيفرة) الخاصة بتطبيقك أمنة وخالية من الثغرات لكي لا تتعرض للاختراق وهنا بعض النصائح التي تساعدك على ذلك:&lt;/div&gt;&lt;div dir="rtl" style="text-align: justify;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div dir="rtl" style="text-align: justify;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="color: #38761d;"&gt;الحد الأدنى من الصلاحيات (Least Privileges)&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div dir="rtl" style="text-align: justify;"&gt;عندما تحتاج الى الوصول الى موارد (Resources) مثل الملفات (File System) أو الاتصال بقواعد البيانات (Databases) لا تستخدم صلاحيات المدير (Administrator) بل انشىء مستخدما بصلاحيات محددة بما يخدمك للوصول الى المورد المطلوب. فعلى سبيل المثال إذا كان برنامج يتصل بقاعدة بيانات (Database) وبرنامجك لا يحتاج الى إنشاء أوتعديل أوحذف كائنات جديدة ( Tables- View - Procedure-...) إنما المطلوب هو الاتصال بقاعدة البيانات وقراءة سجلات وحذفها والتعديل عليها, فبالتالي يفترض أن تنشيء مستخدما بالصلاحيات المطلوبة فقط بدون القدرة على التعديل على الكانئات الموجودة.&amp;nbsp;&lt;/div&gt;&lt;div dir="rtl" style="text-align: justify;"&gt;وكذلك الحال مع الملفات ففي حالة أن تطبيقك يقوم برفع ملفات الى الخادم (Server) يفترض أنشاء مجلد خاص لاستقبال الملفات المرفوعة على السيرفر (Server) واعطاء صلاحية انشاء الملفات لهذا المجلد فقط.&lt;/div&gt;&lt;div dir="rtl" style="text-align: justify;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div dir="rtl" style="text-align: justify;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="color: #38761d;"&gt;لا تثق بمدخلات المستخدمين (Don't Trust User Inputs)&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div dir="rtl" style="text-align: justify;"&gt;يجب أن تتحقق من جميع مدخلات المستخدم بدقة وتتأكد من أن شكل المدخلات (Input Format) هو الشكل المطلوب فعلا. وفي حالة تطبقات الويب فإن الأمر يتطلب التحقق على مستويين; مستوى المتصفح (Web Browser) بإستخدام الجافا سكريبت (JavaScript) والأجاكس (Ajax) وعلى مستوى الخادم (Server) بإستخدام لغة برمجة الخادم (Server&amp;nbsp;Scripting&amp;nbsp;Language).&amp;nbsp;والسبب في ذلك أنه بالإمكان تجاوز التحقق في المتصفح (Client Validation) بسهولة وبالتالي يجب أن يكون هنالك مستوى حماية ثاني يصعب تجاوزه وهو التحقق في في السيرفر (Server Validation).&lt;/div&gt;&lt;div dir="rtl" style="text-align: justify;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div dir="rtl" style="text-align: justify;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="color: #38761d;"&gt;تتبع الأخطاء الغيرمتوقعة (Manage Unexpected Errors)&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div dir="rtl" style="text-align: justify;"&gt;قد تقوم ببناء نظام متكامل وتختبر نظامك ولا تجد فيه أي خطأ ولكن هل هذا يعني أنه من المستحيل أن تظهر الأخطاء في المستقبل؟ بالطبع لا وحدوث الأخطاء أمر متوقع لذلك يجب أن تتبع الأخطاء غير المتوقعة من خلال إلتقاطها وقت حدوثها (Catch Error) وتخزين رسالة الخطأ ( Log Error) وبيانات عنه مثل اسم المستخدم والتاريخ والوقت والصفحة واسم الجهاز وغيرها , وبعد أن تخزن معلومات عن الخطأ قم بنقل المستخدم الى شاشة أو صفحة تبين له أن حصل خطأ ما غير متوقع أو أي رسالة أخرى. إن عدم تتبع الأخطاء ومعالجتها قد يعرض تطبيقك للخطر حيث أن رسائل الخطأ الافتراضية (Default Error Messages) قد تحمل معلومات حساسة ومفيدة لمن يتربص بتطبيقك.&lt;/div&gt;&lt;div dir="rtl" style="text-align: justify;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8379064344023344719-6906759473897839211?l=tip2dev.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/tip2dev/~4/ayN3nvBq6V4" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8379064344023344719/posts/default/6906759473897839211?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8379064344023344719/posts/default/6906759473897839211?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/tip2dev/~3/ayN3nvBq6V4/code-security.html" title="كيف تجعل الكود أكثر أمنا؟ - Code Security" /><author><name>Khaled H. Musaied</name><uri>http://www.blogger.com/profile/17959625831089674087</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://2.bp.blogspot.com/_HMxACWDTC_E/S0EbhzLzrfI/AAAAAAAAB8c/6OQTHzfWWMc/S220/kmusaied@yahoo.com_118bb4bf+(1).jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/_HMxACWDTC_E/TMLJhMpBmVI/AAAAAAAACmM/c81HsGB55kQ/s72-c/Hacker_d70focus_1.jpg" height="72" width="72" /><feedburner:origLink>http://tip2dev.blogspot.com/2010/10/code-security.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0QCRno9eyp7ImA9Wx5bEEU.&quot;"><id>tag:blogger.com,1999:blog-8379064344023344719.post-5193722820434192544</id><published>2010-10-22T05:35:00.000-07:00</published><updated>2010-10-26T01:22:47.463-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-10-26T01:22:47.463-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="كروم" /><category scheme="http://www.blogger.com/atom/ns#" term="جوجل" /><category scheme="http://www.blogger.com/atom/ns#" term="اضافات" /><title>اضافات المتصفح كروم - Chrome Extensions</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://www.google.com/intl/en/images/logos/chrome_extensions_logo.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="39" src="https://www.google.com/intl/en/images/logos/chrome_extensions_logo.gif" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div dir="rtl" style="text-align: right;"&gt;الاضافات التي قمت بعملها على متصفح كروم:&amp;nbsp;&lt;/div&gt;&lt;div dir="rtl" style="text-align: right;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div dir="rtl" style="text-align: right;"&gt;&lt;a href="http://codeismagic.blogspot.com/2010/10/twitter-extender-chrome-extension.html"&gt;1- تويتر إكستندر (Twitter Extender):&lt;/a&gt;&lt;/div&gt;&lt;div dir="rtl" style="text-align: right;"&gt;تويتر اكستندر تضيف مميزات أكثر إلى موقع تويتر مثل الرد على الجميع وتغييراتجاه التويتر والريتويت مع التعديل وغيرها الكثير من المميزات.&lt;/div&gt;&lt;div dir="rtl" style="text-align: right;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div dir="rtl" style="text-align: right;"&gt;&lt;a href="http://codeismagic.blogspot.com/2010/09/customize-youtube-theater-chrome.html"&gt;2- تخصيص يوتيوب (Customize&amp;nbsp;YouTube&amp;nbsp;Teater):&lt;/a&gt;&lt;/div&gt;&lt;div dir="rtl" style="text-align: right;"&gt;&lt;/div&gt;&lt;div dir="rtl" style="text-align: right;"&gt;هل تزعجك قوائم الفيديو الاضافية (Related,Featured,Channel) في يوتيوب؟&lt;/div&gt;&lt;div dir="rtl" style="text-align: right;"&gt;هل تريد أن تتحكم في ظهور واخفاء خذه القوائم بشكل مستمر؟&lt;/div&gt;&lt;div dir="rtl" style="text-align: right;"&gt;اذن الحل هو في استخدام هذه الاضافة لكروم والتي تمكنك من اخفاء القوائم نهائيا أو بشكل جزئي بينما انت تشاهد الفيديو على يوتيوب&lt;/div&gt;&lt;div dir="rtl" style="text-align: right;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div dir="rtl" style="text-align: right;"&gt;&lt;a href="http://codeismagic.blogspot.com/2010/08/simple-translate-chrome-extension.html"&gt;3- المترجم البسيط (Simple Translate):&lt;/a&gt;&lt;/div&gt;&lt;div dir="rtl" style="text-align: right;"&gt;اضافة ترجمة بسيطة لجوجل كروم&lt;/div&gt;&lt;div dir="rtl" style="text-align: right;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div dir="rtl" style="text-align: right;"&gt;&lt;a href="http://codeismagic.blogspot.com/2009/12/i-am-viewing-google-chrome-extension-is.html"&gt;4- أنا أشاهد (I am Viewing):&lt;/a&gt;&lt;/div&gt;&lt;div dir="rtl" style="text-align: right;"&gt;هذه الاضافة تضيف رمز إلى شريط الأدوات في متصفح جوجل كروم وعند النقر على تلك الأيقونة سيتم نشر تويته (tweet) بالصفحة الحالية التي تطالعها (العنوان والرابط).&lt;/div&gt;&lt;div dir="rtl" style="text-align: right;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div dir="rtl" style="text-align: right;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8379064344023344719-5193722820434192544?l=tip2dev.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/tip2dev/~4/iWyPbnCr_e8" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8379064344023344719/posts/default/5193722820434192544?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8379064344023344719/posts/default/5193722820434192544?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/tip2dev/~3/iWyPbnCr_e8/chrome-extensions.html" title="اضافات المتصفح كروم - Chrome Extensions" /><author><name>Khaled H. Musaied</name><uri>http://www.blogger.com/profile/17959625831089674087</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://2.bp.blogspot.com/_HMxACWDTC_E/S0EbhzLzrfI/AAAAAAAAB8c/6OQTHzfWWMc/S220/kmusaied@yahoo.com_118bb4bf+(1).jpg" /></author><feedburner:origLink>http://tip2dev.blogspot.com/2010/10/chrome-extensions.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUUFQH08cCp7ImA9WxBQEUg.&quot;"><id>tag:blogger.com,1999:blog-8379064344023344719.post-3722642557577145628</id><published>2009-12-31T11:55:00.000-08:00</published><updated>2010-01-10T11:53:31.378-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-01-10T11:53:31.378-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="شخصي" /><title>أمنياتي للعام الجديد 2010</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="rtl" style="text-align: right;"&gt;&lt;span style="font-family: Arial; font-size: small;"&gt;&lt;span style="font-size: 13px;"&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;span style="font-size: medium;"&gt;&lt;b&gt;هذه امنياتي لعام 2010:&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div dir="rtl" style="text-align: right;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;ol dir='rtl' style="text-align: right;"&gt;&lt;li&gt;أن تزول الفرقة بين الفلسطينيين ويجتمعوا على قلب واحد لمواجهة اسرائيل.&lt;/li&gt;
&lt;li&gt;أن يلغى مشروع بناء الجدار الفولاذي بين مصر وفلسطين.&lt;/li&gt;
&lt;li&gt;أن تتوقف حرب الحوثيين.&lt;/li&gt;
&lt;li&gt;أن يصلح الله احوال البلدان الاسلامية عامة واليمن خاصة.&lt;/li&gt;
&lt;li&gt;أن تنخفض الأسعار.&lt;/li&gt;
&lt;li&gt;أن أحج للمرة الثانية.&lt;/li&gt;
&lt;li&gt;أن أكون عضوا فاعلا في مجتمعي.&lt;/li&gt;
&lt;li&gt;أن أطبق العادات السبع.&lt;/li&gt;
&lt;li&gt;أن أصل الى مستوى التوازن الروحي والنفسي.&lt;/li&gt;
&lt;li&gt;أن يحقق الله أمنياتي.&lt;/li&gt;
&lt;/ol&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8379064344023344719-3722642557577145628?l=tip2dev.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/tip2dev/~4/lRG-yKse5RI" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8379064344023344719/posts/default/3722642557577145628?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8379064344023344719/posts/default/3722642557577145628?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/tip2dev/~3/lRG-yKse5RI/2010.html" title="أمنياتي للعام الجديد 2010" /><author><name>Khaled H. Musaied</name><uri>http://www.blogger.com/profile/17959625831089674087</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://2.bp.blogspot.com/_HMxACWDTC_E/S0EbhzLzrfI/AAAAAAAAB8c/6OQTHzfWWMc/S220/kmusaied@yahoo.com_118bb4bf+(1).jpg" /></author><feedburner:origLink>http://tip2dev.blogspot.com/2009/12/2010.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkQEQX04fSp7ImA9Wx5bF0U.&quot;"><id>tag:blogger.com,1999:blog-8379064344023344719.post-5444804163800514391</id><published>2009-09-07T15:55:00.000-07:00</published><updated>2010-11-03T05:45:00.335-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-11-03T05:45:00.335-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="الانترنت" /><category scheme="http://www.blogger.com/atom/ns#" term="الملفات" /><category scheme="http://www.blogger.com/atom/ns#" term="مقال" /><category scheme="http://www.blogger.com/atom/ns#" term="تجاربي" /><category scheme="http://www.blogger.com/atom/ns#" term="النسخ الاحتياطي" /><title>قبل أن ُيسرق جهازك ,,, كن مستعدا!</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="rtl" style="text-align: right;"&gt;&lt;b&gt;&lt;br /&gt;
&lt;/b&gt;&lt;/div&gt;&lt;div dir="rtl" style="text-align: right;"&gt;&lt;b&gt;تصور أنك وضعت جهازك المحمول في السيارة وذهبت الى أحد المطاعم لتناول طعام العشاء مع أحد الأصدقاء وبعد أن انتهيتما من العشاء تبادلتما أطراف الحديث ثم ذهب كل واحد منكما إلى سيارته. وبعد أن وصلت إلى سيارتك وجدت أن الزجاح مكسور وجهازك المحمول قد سرق!! ماذا ستفعل؟&lt;/b&gt;&lt;/div&gt;&lt;div dir="rtl" style="text-align: right;"&gt;&lt;b&gt;&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&lt;/b&gt;&lt;br /&gt;
&lt;a name='more'&gt;&lt;/a&gt;&lt;b&gt;&lt;br /&gt;
&lt;/b&gt;&lt;/div&gt;&lt;div dir="rtl" style="text-align: right;"&gt;&lt;span class="Apple-style-span" style="color: #38761d;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-size: x-large;"&gt;المشكلة:&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div dir="rtl" style="text-align: right;"&gt;&lt;b&gt;&lt;br /&gt;
&lt;/b&gt;&lt;/div&gt;&lt;div dir="rtl" style="text-align: right;"&gt;&lt;b&gt;قد يكون سعر جهازك المحمول ليس ذا قيمة مقابل البيانات التي فقدتها -هذا ما يقال في الغالب- فقد تكون قد مبرمجا وتذهب مشاريعك في أدراج الرياح. أو قد تكون مصمما ولا يبقى من تصاميمك الرائعة إلا ما تبقى في مخيلتك منها أو قد تكون مهندسا معماريا ويتبدد جهدك في التصميم والأمثلة كثيرة...&lt;/b&gt;&lt;/div&gt;&lt;div dir="rtl" style="text-align: right;"&gt;&lt;b&gt;&lt;br /&gt;
&lt;/b&gt;&lt;/div&gt;&lt;div dir="rtl" style="text-align: right;"&gt;&lt;b&gt;ولعل الكثير من الحريصين يقومون بأخذ نسخة احتياطية في قرص صلب خارجي ولكن يضعون القرص الصلب في نفس حقيبة المحمول وإذا سرق المحمول سرقت النسخ الاحتياطية :(. حتى وإن احتفظ بالقرص الصلب الخارجي في مكان ما آخر فإن العملية نفسها - أي أخذ نسخة احتياطية في قرص صلب خارجي- ثقيلة نوعا ما فلا بد لها من وقت وجهد مخصص لهذه العملية أي أنه يجب تخصيص مثلا ساعة اسبوعيا لاخذ نسخة احتياطية وتخزينها على القرص الصلب الخارجي .... ألا يوجد طريقة أفضل من هذه نحن في عام 2009!!&lt;/b&gt;&lt;/div&gt;&lt;div dir="rtl" style="text-align: right;"&gt;&lt;b&gt;&lt;br /&gt;
&lt;/b&gt;&lt;/div&gt;&lt;div dir="rtl" style="text-align: right;"&gt;&lt;b&gt;البعض الآخر يستخدم البريد الالكتروني فيرسل لنفسه رسالة ويرفق فيها النسخة الاحتياطية أو يستخدم خدمات التخزين على الانترنت مثل: Sky Drive أو Media Fire وغيرها الكثير التي تعطيك القدرة على رفع ملفات إلى خوادمها والاحتفاظ بها هنالك ولكن لا زلنا واقعين في نفس المشكلة فلا بد لها من وقت وجهد مخصص لرفع النسخ الاحتياطية على الانترنت.&lt;/b&gt;&lt;/div&gt;&lt;div dir="rtl" style="text-align: right;"&gt;&lt;b&gt;&lt;br /&gt;
&lt;/b&gt;&lt;/div&gt;&lt;div dir="rtl" style="text-align: right;"&gt;&lt;span class="Apple-style-span" style="color: #38761d;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-size: x-large;"&gt;الحل:&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div dir="rtl" style="text-align: right;"&gt;&lt;b&gt;&lt;br /&gt;
&lt;/b&gt;&lt;/div&gt;&lt;div dir="rtl" style="text-align: right;"&gt;&lt;b&gt;لقد وقعت يدي -أثناء متابعتي لـمدونة نثار(متوقفه حاليا)- على موقعين يقدمان خدمة النسخ الاحتياطي للملفات على الانترنت (Online Backup Service) الأول هو SpiderOAK والثاني هو SugarSync. ولكن ماهي خدمة مزامنة الملفات؟ تتلخص الخدمة في أن تقوم بتثبيت برنامج مقدم من مزود الخدمة يقوم هذا البرنامج بمزامنة محتويات مجلدات معينة مهمة لديك ونسخها إلى حسابك عند مزود الخدمة. فيمكنك على سبيل المثال مزامنة مجلد المستندات الذي يحوي أعمالك ويمكنك تحديد عدة مجلدات بالاضافة الى ميزة الاحتفاظ بالاصدارات القديمة (Versions) وامكانية الوصول الى ملفاتك عن طريق الانترنت.&lt;/b&gt;&lt;/div&gt;&lt;div dir="rtl" style="text-align: right;"&gt;&lt;b&gt;بالطبع يوجد أكثر من مزود للخدمة ويمكن الاستزادة من المقارنة بين مزودي الخدمة من خلال هذا الموقع وعن نفسي فقد قمت بتجربة SpiderOAK و SugarSync وفي الواقع استفدت كثيرا من استخدام هذا الخدمة , صحيح أنه لم يُسرق محمولي والحمد لله ولكني أحس براحة نفسية من هذه الناحية.&lt;/b&gt;&lt;/div&gt;&lt;div dir="rtl" style="text-align: right;"&gt;&lt;b&gt;&lt;br /&gt;
&lt;/b&gt;&lt;/div&gt;&lt;div dir="rtl" style="text-align: right;"&gt;&lt;b&gt;واذا سُئلت عن الأفضل بينهما فهو SugarSync وذلك لأنه أخف وأجمل بالاضافة الى أنه يعطيك مساحة إضافية كلما أتيت له بأصدقاء جدد. فعلى سبيل المثال إذا قمت بالتسجيل في الموقع عن طريق هذا الرابط:https://www.sugarsync.com/referral?rf=dzh0eq5ca4qx8 فسيضاف الى حسابي 500 ميجا بايت اضافية وإذا لم ترغب في ذلك فما عليك إلا أن تسجل عن طريق الرابط التالي:http://www.sugarsync.com&lt;/b&gt;&lt;/div&gt;&lt;div dir="rtl" style="text-align: right;"&gt;&lt;b&gt;&lt;br /&gt;
&lt;/b&gt;&lt;/div&gt;&lt;div dir="rtl" style="text-align: right;"&gt;&lt;span class="Apple-style-span" style="color: #38761d;"&gt;&lt;span class="Apple-style-span" style="font-size: x-large;"&gt;&lt;b&gt;ملحوظة:&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div dir="rtl" style="text-align: right;"&gt;&lt;b&gt;البعض قد يتوجس من عملية رفع الملفات على الانترنت والذي يمكن أن يسبب اختراق لخصوصيتك أو يمكّن المزود من الوصول إلى ملفاتك مع أن مزود الخدمة يدعي أنه يقوم بتشفير الملفات.&lt;/b&gt;&lt;/div&gt;&lt;div dir="rtl" style="text-align: right;"&gt;&lt;b&gt;وفي هذه الحالة يجب عليك أن توازن بين الايجابيات والسلبيات وتتخذ القرار بناءً على ذلك.&lt;/b&gt;&lt;/div&gt;&lt;div dir="rtl" style="text-align: right;"&gt;&lt;b&gt;&lt;br /&gt;
&lt;/b&gt;&lt;/div&gt;&lt;div dir="rtl" style="text-align: right;"&gt;&lt;b&gt;أتمنى أن يكون يكون الموضوع قد أضاف شيئا جديدا لك ,,, تحياتي.&lt;/b&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8379064344023344719-5444804163800514391?l=tip2dev.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/tip2dev/~4/tT59aj8Rv2k" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8379064344023344719/posts/default/5444804163800514391?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8379064344023344719/posts/default/5444804163800514391?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/tip2dev/~3/tT59aj8Rv2k/blog-post.html" title="قبل أن ُيسرق جهازك ,,, كن مستعدا!" /><author><name>Khaled H. Musaied</name><uri>http://www.blogger.com/profile/17959625831089674087</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://2.bp.blogspot.com/_HMxACWDTC_E/S0EbhzLzrfI/AAAAAAAAB8c/6OQTHzfWWMc/S220/kmusaied@yahoo.com_118bb4bf+(1).jpg" /></author><feedburner:origLink>http://tip2dev.blogspot.com/2009/09/blog-post.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEABR344eip7ImA9Wx5aEUQ.&quot;"><id>tag:blogger.com,1999:blog-8379064344023344719.post-7246609766511970785</id><published>2009-05-15T08:43:00.000-07:00</published><updated>2010-11-07T22:12:36.032-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-11-07T22:12:36.032-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="شخصي" /><title>يا عالم أنا مبرمج ولست فني صيانة!</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="rtl" style="text-align: right;"&gt;إذا كنت مبرمجا فأنا متأكد أنك قد مررت بالكثير من المواقف التي تضيع وقتك بإعتبار أنك "متخصص في مجال الكمبيوتر".&amp;nbsp;&lt;/div&gt;&lt;div dir="rtl" style="text-align: right;"&gt;كثيرا ما كان يأتي إلي بعض الأصحاب والأقارب يسألوني: ما هي أفضل مواصفات كمبيوتر؟ ما رأيك في مواصفات هذا الكمبيوتر؟ ما رأيك في بنتيوم فور؟ إلخ... فأضطر للاجابة عن تلك التسألات بجواب دبلوماسي ... أممم ... "&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;الكمبيوتر مثل الثوب تفصله حسب حاجتك وعليك أن تعرف ما الذي تريد استخدام الكمبيوتر فيه لنحدد المواصفات المناسبة&lt;/span&gt;" كان هذا الجواب مقنعا نوعا ما ولكن المصيبة عندما يطلب مني أن أقوم بصيانة كمبيوتر عطلان ... يالها من مشكلة -بالنسبة لي طبعا- لأني تركت هذا العمل من أيام الثانوية وحاليا من يقوم به لي هم الفنيون في الشركة التي أعمل فيها.&lt;br /&gt;
&lt;br /&gt;
&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div dir="rtl" style="text-align: right;"&gt;الذي دفعني لكتابة هذا الموضوع هو أني في الليلة الماضية طلب مني أحد الجيران اصلاح كمبيوتر ابنه فقبلت -وياليتني لم أقبل-. فتحت الكمبيوتر فإذا هو Sony Vaio وهو يعمل بشكل صحيح ولكني فوجئت أن الانترنت هو الذي لا يعمل. قمت بمحاولة الاتصال بالشبكة اللاسلكية التي في البيت وبعد محاولات مضنية اتصل ولكنه حتى الآن لا يقوم باستعراض أي موقع ويب,,, امممم ,,, ما العمل؟؟ قلت في نفسي: "من المؤكد أن هذا الجهاز مليء بالفيروسات الضارة" فقمت بتحميل برنامج Mcafee ولسوء الحظ فإنه عندما يصل الى المنتصف في التحميل يتوقف. ,,, فقلت في نفسي: "لابد أن أستطيع تحميل البرنامج في الوضع الآمن". وبالفعل تم التحميل بنجاح في الوضع الآمن فقمت بإعادة التشغيل للدخول في الوضع الطبيعي ولكن فوجئت أنه عندما يدخل الى الوضع الطبيعي يتوقف الجهاز عن الاستجابة؟؟؟؟؟!!! قمت بالرجوع الى الوضع الآمن وحاولت استخدام خدمة استعادة النظام "System Restore" أكثر من مرة ولكن بلا فائدة. بصراحة في ذلك الوقت عرفت معني المثل القائل "جا يكحلها عماها!"&lt;/div&gt;&lt;div dir="rtl" style="text-align: right;"&gt;لا حول ولا قوة الا بالله ,, تمنيت أني أو أستطيع رمي الجهاز من أقرب نافذة ,,,,.&lt;/div&gt;&lt;div dir="rtl" style="text-align: right;"&gt;&lt;/div&gt;&lt;div dir="rtl" style="text-align: right;"&gt;طيب الآن لم يتبقى لي من الحلول إلا البتر (الفورمات) أقسى الحلول وأكثرها إيلاما ولكن ليس باليد حيلة فقد تقطعت جميع السبل أمامي.&lt;/div&gt;&lt;div dir="rtl" style="text-align: right;"&gt;اتجهت الى مكتبي واخذت نسخة من فستا وقمت بتحميلها على الفور ,,, تم التثبيت بنجاح ,,, ولكن ,,, الشاشة لا تظهر بالشكل المناسب!! نعم تذكرت أني أحتاج إلى تعريف Drivers يالها من ورطة ,,, بحثت في الجهاز فوجبت أنه على القرص D موجود ملف مضغوط مكتوب عليه Drivers فقلت الحمد لله فرجت ,,,, ولكن للأسف ,,, غالبية الDrivers لوبندوز XP وانا قمت بتثبيت ويندوز Vista ,,, إمممممممممممممممممممممم ,,,, لا يمكنني الاتصال بالانترنت عبر اللاسلكي لأنه غير معرف ,,, ما هو الحل إذن ,,, وجدت أن لدي كيبل فوصلته بالمودم من طرف والطرف الآخر في الجهاز,,, الحمد لله ,,, اتصلنا بالانترنت ,,, ذهبت الى موقع سوني لتحميل الDrivers ولكن للأسف لم أجد رقم الموديل على موقع سوني -طبعا رقم الموديل دائما يكون في الخلف- وبعد البحث المضني وجدت أن رقم الموديل الحقيقي موجود بجانب TouchPad وهو مختلف تماما عن الرقم الموجود في الملصق خلف الجهاز !!!!. عموما ذهبت الى الموقع ووجدت الDrivers &amp;nbsp;حاولت تنزيلها من هنالك ولكن كانت بطيئة جدا جدا -أتوقع لوجود مشكلة في السيرفر- ,,, فقمت بتحميل Download Manager &amp;nbsp;لتسريع التنزيل وفعلا استطعت تنزيل الملفات بسرعة أكبر وقمت بتثبيتها على الجهاز ومن ثم بدأت بكتابة هذا البوست :).&lt;/div&gt;&lt;div dir="rtl" style="text-align: right;"&gt;&lt;/div&gt;&lt;div dir="rtl" style="text-align: right;"&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;الخلاصة:&lt;/span&gt;&lt;/div&gt;&lt;div dir="rtl" style="text-align: right;"&gt;انتهت القصة المأساوية ولم استمتع بنهاية الاسبوع لأن هذا العمل أخذ مني يوم ونص تقريبا -أسأل الله أن لا يحرمني الأجر-. وأريد أيضا أن أقول شيء آخر وهو الأهم ,,,&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;&amp;nbsp;"يا عالم أنا مبرمج ولست فني صيانة.!!"&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8379064344023344719-7246609766511970785?l=tip2dev.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/tip2dev/~4/IBdqtgFGn7M" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8379064344023344719/posts/default/7246609766511970785?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8379064344023344719/posts/default/7246609766511970785?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/tip2dev/~3/IBdqtgFGn7M/blog-post.html" title="يا عالم أنا مبرمج ولست فني صيانة!" /><author><name>Khaled H. Musaied</name><uri>http://www.blogger.com/profile/17959625831089674087</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://2.bp.blogspot.com/_HMxACWDTC_E/S0EbhzLzrfI/AAAAAAAAB8c/6OQTHzfWWMc/S220/kmusaied@yahoo.com_118bb4bf+(1).jpg" /></author><feedburner:origLink>http://tip2dev.blogspot.com/2009/05/blog-post.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkMARXo4eCp7ImA9Wx9TEk4.&quot;"><id>tag:blogger.com,1999:blog-8379064344023344719.post-8701921909112006103</id><published>2009-05-03T12:10:00.000-07:00</published><updated>2010-11-19T21:20:44.430-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-11-19T21:20:44.430-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="درس" /><category scheme="http://www.blogger.com/atom/ns#" term="SQLServer" /><category scheme="http://www.blogger.com/atom/ns#" term="C#" /><title>طريقة استخدام SQL Helper  للتعامل مع SQL Server</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="rtl" style="text-align: right;"&gt;إذا كنت من الذين يكتبون برامج باستخدام لغة الدوت نت (.NET) &amp;nbsp;تتعامل مع قواعد بيانات SQL Server &amp;nbsp;قد يكون هذا الموضوع مفيد لك.&lt;/div&gt;&lt;div dir="rtl" style="text-align: right;"&gt;&lt;/div&gt;&lt;div dir="rtl" style="text-align: right;"&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;- ما هي SQL Helper؟&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div dir="rtl" style="text-align: right;"&gt;هي عبارة عن مكتبة للتعامل مع قواعد بيانات SQL Server من خلال الاجراءات المخزنة (Stored Proceders) بسرعة وفعالية أكبر وأيضا بسهولة أكبر.&lt;/div&gt;&lt;div dir="rtl" style="text-align: right;"&gt;&lt;/div&gt;&lt;div dir="rtl" style="text-align: right;"&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;- كيفية استخدام SQL Helper؟&lt;/span&gt;&lt;/div&gt;&lt;div dir="rtl" style="text-align: right;"&gt;أولا يجب تنزيل نسخة من Microsoft Data Access Block &amp;nbsp;من خلال هذا &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=f63d1f0a-9877-4a7b-88ec-0426b48df275&amp;amp;displaylang=en"&gt;الربط&lt;/a&gt;&lt;/div&gt;&lt;div dir="rtl" style="text-align: right;"&gt;من ثم قم بتثبيت البرنامج على جهازك وستجد في البرامج Microsoft Application Blocks for .NET ضمن البرامج قم بتشغيل Quick Start Samples للاطلاع على الأمثلة بالاضافة الى ملفات المساعدة.&lt;br /&gt;
&lt;a name='more'&gt;&lt;/a&gt;&lt;/div&gt;&lt;div dir="rtl" style="text-align: right;"&gt;&lt;/div&gt;&lt;div dir="rtl" style="text-align: right;"&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;- بعض الأمثلة التي تسخدم كثيرا:&lt;/span&gt;&lt;/div&gt;&lt;div dir="rtl" style="text-align: right;"&gt;&lt;/div&gt;&lt;div dir="rtl" style="text-align: right;"&gt;كود قراءة سجلات متعددة من قاعدة البيانات:&lt;/div&gt;&lt;div dir="rtl" style="text-align: right;"&gt;&lt;/div&gt;&lt;pre class="c#" dir="rtl" name="code" style="text-align: right;"&gt;string connectionString = ConfigurationManager.ConnectionStrings["ConnectionStringKey1"].ConnectionString;
SqlConnection sqlConnection = new SqlConnection(connectionString);
SqlCommand sqlCommand = sqlConnection.CreateCommand();
sqlCommand.CommandType = CommandType.Text;
sqlCommand.CommandText = "Select column1,column2 from Table1";
IDataReader reader = sqlCommand.ExecuteReader();

&lt;/pre&gt;&lt;div dir="rtl" style="text-align: right;"&gt;&lt;/div&gt;&lt;div dir="rtl" style="text-align: right;"&gt;الكود باستخدامSQL Helper:&lt;/div&gt;&lt;div dir="rtl" style="text-align: right;"&gt;&lt;/div&gt;&lt;pre class="c#" dir="rtl" name="code" style="text-align: right;"&gt;string connectionString = ConfigurationManager.ConnectionStrings["ConnectionStringKey1"].ConnectionString;
IDataReader reader = SqlHelper.ExecuteReader(connectionString, CommandType.Text, "Select column1,column2 from Table1");

&lt;/pre&gt;&lt;div dir="rtl" style="text-align: right;"&gt;كود قراءة سجلات متعددة باستخدام الاجراءات المخزنة (ٍَStored Procedure)&lt;/div&gt;&lt;div dir="rtl" style="text-align: right;"&gt;&lt;/div&gt;&lt;pre class="c#" dir="rtl" name="code" style="text-align: right;"&gt;string connectionString = ConfigurationManager.ConnectionStrings["ConnectionStringKey1"].ConnectionString;
SqlConnection sqlConnection = new SqlConnection(connectionString);
SqlCommand sqlCommand = sqlConnection.CreateCommand();
sqlCommand.CommandType = CommandType.StoredProcedure;
sqlCommand.CommandText = "sp_GetProducts";
sqlCommand.Parameters.Add(new SqlParameter("@p1", "value1"));
sqlCommand.Parameters.Add(new SqlParameter("@p2", "value1"));
IDataReader reader = sqlCommand.ExecuteReader();
&lt;/pre&gt;&lt;div dir="rtl" style="text-align: right;"&gt;&lt;/div&gt;&lt;div dir="rtl" style="text-align: right;"&gt;الكود باستخدام SQL Helper:&lt;/div&gt;&lt;div dir="rtl" style="text-align: right;"&gt;&lt;/div&gt;&lt;pre class="c#" dir="rtl" name="code" style="text-align: right;"&gt;string connectionString = ConfigurationManager.ConnectionStrings["ConnectionStringKey1"].ConnectionString;
IDataReader reader = SqlHelper.ExecuteReader(connectionString, "sp_GetProducts", "value1", "value2");

&lt;/pre&gt;&lt;div dir="rtl" style="text-align: right;"&gt;حيث يتم تمرير قيم المتغيرات (Paramerters) بنفس ترتيبها في الاجراء المخزن (Stored Procedure) &lt;/div&gt;&lt;div dir="rtl" style="text-align: right;"&gt;&lt;/div&gt;&lt;div dir="rtl" style="text-align: right;"&gt;لعلك لاحظت أخي الكريم كيف أن التعامل مع قاعدة البيانات صار أسهل وأسرع ,,,&amp;nbsp;&lt;/div&gt;&lt;div dir="rtl" style="text-align: right;"&gt;&lt;/div&gt;&lt;div dir="rtl" style="text-align: right;"&gt;تحياتي ,,,&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8379064344023344719-8701921909112006103?l=tip2dev.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/tip2dev/~4/5zvIfKWVtDI" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8379064344023344719/posts/default/8701921909112006103?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8379064344023344719/posts/default/8701921909112006103?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/tip2dev/~3/5zvIfKWVtDI/sql-helper-sql-server.html" title="طريقة استخدام SQL Helper  للتعامل مع SQL Server" /><author><name>Khaled H. Musaied</name><uri>http://www.blogger.com/profile/17959625831089674087</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://2.bp.blogspot.com/_HMxACWDTC_E/S0EbhzLzrfI/AAAAAAAAB8c/6OQTHzfWWMc/S220/kmusaied@yahoo.com_118bb4bf+(1).jpg" /></author><feedburner:origLink>http://tip2dev.blogspot.com/2009/05/sql-helper-sql-server.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkMDR3c6eyp7ImA9Wx9TEk4.&quot;"><id>tag:blogger.com,1999:blog-8379064344023344719.post-2016778739205014029</id><published>2009-04-27T13:24:00.000-07:00</published><updated>2010-11-19T21:21:16.913-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-11-19T21:21:16.913-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="أخطاء" /><category scheme="http://www.blogger.com/atom/ns#" term="C#" /><category scheme="http://www.blogger.com/atom/ns#" term="مقال" /><title>انسخ وإلصق الكود</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="rtl" style="text-align: right;"&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;"الكود عندي جاهز بس نسخ ولصق وبعض تعديلات وانتهى الموضوع"&lt;/span&gt; &lt;/div&gt;&lt;div dir="rtl" style="text-align: right;"&gt;لعلك سمعت هذا الكلام وقلته من قبل عندما يوكل إليك عمل ما مثل موقع أو تطبيق بسيط. عن نفسي أرى أن هذا التصرف غير صحيح وأن سياسة النسخ واللصق -رغم رواجها في المجتمع العربي على الانترنت- سياسة غير صحيحة. &lt;/div&gt;&lt;div dir="rtl" style="text-align: right;"&gt;لدي قناعة راسخة أن ما الكود الذي تنسخه وتلصقه في مكان آخر من النظام أو حتي في نظام أوتطبيق آخر هو تصرف خاطئ وبالتأكيد هنالك طريقة أفضل لعمل ذلك.&lt;/div&gt;&lt;div dir="rtl" style="text-align: right;"&gt;وفيما يلي بعض الأمثلة:&lt;br /&gt;
&lt;a name='more'&gt;&lt;/a&gt;&lt;/div&gt;&lt;ol dir="rtl" style="text-align: right;"&gt;&lt;li&gt;نص الاتصال مع قاعدة البيانات (Connection String ): يمكن وضعه في قسم ConnectionStrings في ملف Web.Config واستدعاؤه من هنالك.&lt;/li&gt;
&lt;li&gt;كود التعامل مع قاعدة البيانات:  &lt;pre class="C#" id="CodeBox" name="code"&gt;SqlConnection connection = new SqlConnection(connectionString);
SqlCommand command = new SqlCommand();
command.Connection = connection;
command.CommandText = "Select * from Table1";
command.ExecuteReader();
&lt;/pre&gt;يمكن وضعه في دالة يتم استدعائها في كل مرة بسطر واحد مثل: &lt;pre class="C#" name="code"&gt;public IDataReader GetReader(string sql){
SqlConnection connection = new SqlConnection(connectionString);
SqlCommand command = new SqlCommand();
command.Connection = connection;
command.CommandText = sql;
command.ExecuteReader();
}&lt;/pre&gt;وللمعلومية من الأفضل أن تستخدم &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=f63d1f0a-9877-4a7b-88ec-0426b48df275"&gt;SQL HELPER&lt;/a&gt; التي تسهل التعامل مع قاعدة البيانات بشكل كبير جدا&amp;nbsp;&lt;/li&gt;
&lt;/ol&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8379064344023344719-2016778739205014029?l=tip2dev.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/tip2dev/~4/Kwk3uJiAZq8" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8379064344023344719/posts/default/2016778739205014029?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8379064344023344719/posts/default/2016778739205014029?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/tip2dev/~3/Kwk3uJiAZq8/blog-post_27.html" title="انسخ وإلصق الكود" /><author><name>Khaled H. Musaied</name><uri>http://www.blogger.com/profile/17959625831089674087</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://2.bp.blogspot.com/_HMxACWDTC_E/S0EbhzLzrfI/AAAAAAAAB8c/6OQTHzfWWMc/S220/kmusaied@yahoo.com_118bb4bf+(1).jpg" /></author><feedburner:origLink>http://tip2dev.blogspot.com/2009/04/blog-post_27.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DE8EQ3o-eyp7ImA9Wx5aEUQ.&quot;"><id>tag:blogger.com,1999:blog-8379064344023344719.post-4565081740430573906</id><published>2009-04-25T18:07:00.002-07:00</published><updated>2010-11-07T22:13:22.453-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-11-07T22:13:22.453-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="مقال" /><title>تأكد من أنك تملك الاساسيات</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: tahoma; font-size: 12px; line-height: 18px;"&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div dir="rtl" style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 10px; text-align: right;"&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: tahoma; font-size: 12px; line-height: 18px;"&gt;كل صنعة لها أساسيات وكذلك البرمجة لها اساسيات وأنا في هذا المقال أتكلم عن برمجة الويب بالتحديد نظرا لأن المستقبل ها - في الغالب-.&lt;/span&gt;&lt;/div&gt;&lt;div dir="rtl" style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 10px; text-align: right;"&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: tahoma; font-size: 12px; line-height: 18px;"&gt;نحن يا معشر مبرمجي ASP.NET متقوقعون على أنفسنا مع أنه يوجد الكثير من لغات برمجة الويب الأخرى &amp;nbsp;مثل PHP, Paython, JSP,… &amp;nbsp;وغيرها وهؤلاء يعيشون معنا في عالم الانترنت والفرق بيننا وبينهم هو في Server Side Scripting Language فنحن نكتب بلغة C# أو VB وهم يكتبون بلغات أخرى أما باقي الاشياء فنح نشترك معهم&amp;nbsp;فيها. &amp;nbsp;على سبيل المثال لوافترضنا أن هنالك نجار يعمل على نوع من أنواع الخشب &amp;nbsp;فيجب أن يكون عنده فكرة عن باقي أنواع الأخشاب وأن يكون لديه &amp;nbsp;خبرة عميقة في باقي أدوات النجارة.&lt;/span&gt;&lt;/div&gt;&lt;div dir="rtl" style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 10px; text-align: right;"&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: tahoma; font-size: 12px; line-height: 18px;"&gt;حقيقة ما يؤلمني أن كثير من مبرمجي ASP.NET لا يملكون اساسيات برمجة الويب وهي كالتالي:&lt;/span&gt;&lt;/div&gt;&lt;ol dir="rtl" style="text-align: right;"&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: tahoma; font-size: 12px; line-height: 18px;"&gt;HTML.&lt;/span&gt;&lt;/li&gt;
&lt;span class="Apple-style-span" style="color: #333333; font-family: tahoma; font-size: 12px; line-height: 18px;"&gt;
&lt;li&gt;لغة برمجة للسيرفر&amp;nbsp;Server Side Scripting Language&lt;/li&gt;
&lt;li&gt;CSS&lt;/li&gt;
&lt;li&gt;لغة لبرمجة المتصفح Client Side Scripting Language&lt;/li&gt;
&lt;/span&gt;&lt;/ol&gt;&lt;div dir="rtl" style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 10px; text-align: right;"&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: tahoma; font-size: 12px; line-height: 18px;"&gt;دعونا الآن نتكلم عن هذا نفصل قليلا…&lt;/span&gt;&lt;/div&gt;&lt;div dir="rtl" style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 10px; text-align: right;"&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: tahoma; font-size: 12px; line-height: 18px;"&gt;&lt;strong&gt;أولا: لغة HTML:&lt;/strong&gt;&lt;/span&gt;&lt;/div&gt;&lt;div dir="rtl" style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 10px; text-align: right;"&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: tahoma; font-size: 12px; line-height: 18px;"&gt;ومن لا يعرف هذه اللغة الجميلة والبسيطة ولكن معرفتنا بها سطحية فالكثير لا يعرف الفرق بن DIV &amp;nbsp;و SPAN ولا ما هي XHTML.&lt;/span&gt;&lt;/div&gt;&lt;div dir="rtl" style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 10px; text-align: right;"&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: tahoma; font-size: 12px; line-height: 18px;"&gt;للاستزادة في لغة HTML يمكنك استخدام الموقع التالي:&lt;/span&gt;&lt;/div&gt;&lt;div dir="rtl" style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 10px; text-align: right;"&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: tahoma; font-size: 12px; line-height: 18px;"&gt;&lt;a href="http://www.w3schools.com/html/default.asp" style="color: #105cb6; text-decoration: underline;"&gt;http://www.w3schools.com/html/default.asp&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div dir="rtl" style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 10px; text-align: right;"&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: tahoma; font-size: 12px; line-height: 18px;"&gt;وللاستزادة في لغة XHTML :&lt;/span&gt;&lt;/div&gt;&lt;div dir="rtl" style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 10px; text-align: right;"&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: tahoma; font-size: 12px; line-height: 18px;"&gt;&lt;a href="http://www.w3schools.com/xhtml/default.asp" style="color: #105cb6; text-decoration: underline;"&gt;http://www.w3schools.com/xhtml/default.asp&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div dir="rtl" style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 10px; text-align: right;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div dir="rtl" style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 10px; text-align: right;"&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: tahoma; font-size: 12px; line-height: 18px;"&gt;&lt;strong&gt;ثانيا: لغة برمجة السيرفرServer Side Scripting Language&lt;/strong&gt;&lt;/span&gt;&lt;/div&gt;&lt;div dir="rtl" style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 10px; text-align: right;"&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: tahoma; font-size: 12px; line-height: 18px;"&gt;كما ذكرنا سابقا أنه هنا يكمن الفرق بين مبرمجي ASP.NET &amp;nbsp;ومبرمجي لغات برمجة الويب الأخرى. ومن الأشياء الأساسية التي يجب على المبرمج معرفتها هي المميزات التي امتازت بها ASP.NET عن باقي اللغات الأخرى ومجموعة أدواة التحكم Web Controls والأهم من ذلك متى وأين نستخدمها. اضافة الى ذلك معرفة كيفية كتابة كود مرتب وبالطريقة الأفضل.&lt;/span&gt;&lt;/div&gt;&lt;div dir="rtl" style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 10px; text-align: right;"&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: tahoma; font-size: 12px; line-height: 18px;"&gt;&lt;strong&gt;ثالثا: CSS(Cascading Style Sheets)&lt;/strong&gt;&lt;/span&gt;&lt;/div&gt;&lt;div dir="rtl" style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 10px; text-align: right;"&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: tahoma; font-size: 12px; line-height: 18px;"&gt;&amp;nbsp;كما أنه يمكننا أن نضمن التنسيق ضمن HTML ولكن هذا ليس خيارا صائبا -في الغالب- يجب أن نفصل التنسيق في ملف منفصل ليسهل التعديل على التنسيق ولتخفيف حجم الصفحة وتسريع التصفح.&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div dir="rtl" style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 10px; text-align: right;"&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: tahoma; font-size: 12px; line-height: 18px;"&gt;للمزيد عن CSS:&lt;/span&gt;&lt;/div&gt;&lt;div dir="rtl" style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 10px; text-align: right;"&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: tahoma; font-size: 12px; line-height: 18px;"&gt;&lt;a href="http://www.w3schools.com/css/default.asp" style="color: #105cb6; text-decoration: underline;"&gt;http://www.w3schools.com/css/default.asp&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div dir="rtl" style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 10px; text-align: right;"&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: tahoma; font-size: 12px; line-height: 18px;"&gt;&lt;strong&gt;رابعا: لغة برمجة المتصفح Client Side Scripting Language&lt;/strong&gt;&lt;/span&gt;&lt;/div&gt;&lt;div dir="rtl" style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 10px; text-align: right;"&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: tahoma; font-size: 12px; line-height: 18px;"&gt;بالطبع لدينا لغتين في هذا الجزء الأولى هي Java Script والغة الثانية هي VB Script , قد تكون لغة الجافا سكربت غير مهمة أو ثانوية في السابق ولكنها في الوقت الحاضر تعتبر أساسية خصوصا عندما نتكلم عن بناء تطيبقات ويب تطبق مفاهيم Web 2.0 لذلك يجب تعلم هذه اللغة الرائعة.&lt;/span&gt;&lt;/div&gt;&lt;div dir="rtl" style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 10px; text-align: right;"&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: tahoma; font-size: 12px; line-height: 18px;"&gt;للاستزادة في الجافا سكربت:&lt;/span&gt;&lt;/div&gt;&lt;div dir="rtl" style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 10px; text-align: right;"&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: tahoma; font-size: 12px; line-height: 18px;"&gt;&lt;a href="http://www.w3schools.com/js/default.asp" style="color: #105cb6; text-decoration: underline;"&gt;http://www.w3schools.com/js/default.asp&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8379064344023344719-4565081740430573906?l=tip2dev.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/tip2dev/~4/gL8UXINaujQ" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8379064344023344719/posts/default/4565081740430573906?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8379064344023344719/posts/default/4565081740430573906?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/tip2dev/~3/gL8UXINaujQ/blog-post_8425.html" title="تأكد من أنك تملك الاساسيات" /><author><name>Khaled H. Musaied</name><uri>http://www.blogger.com/profile/17959625831089674087</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://2.bp.blogspot.com/_HMxACWDTC_E/S0EbhzLzrfI/AAAAAAAAB8c/6OQTHzfWWMc/S220/kmusaied@yahoo.com_118bb4bf+(1).jpg" /></author><feedburner:origLink>http://tip2dev.blogspot.com/2009/04/blog-post_8425.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DE8AQ3k4eyp7ImA9Wx5aEUQ.&quot;"><id>tag:blogger.com,1999:blog-8379064344023344719.post-3193766129658049870</id><published>2009-04-25T18:07:00.001-07:00</published><updated>2010-11-07T22:14:02.733-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-11-07T22:14:02.733-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="مقال" /><title>أنت في عالم كبير وأيضا سريع الاتساع</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: tahoma; font-size: 12px; line-height: 18px;"&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div dir="rtl" style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 10px; text-align: right;"&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: tahoma; font-size: 12px; line-height: 18px;"&gt;لا يخفى عليك أن مجال تصميم وتطوير مواقع الانترنت مجال رحب وأيضا سريع التطور والاتساع, ففي كل يوم هنالك مقالات جديدة اضافة الى التقنيات الجديدة وغيرها ,,,&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div dir="rtl" style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 10px; text-align: right;"&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: tahoma; font-size: 12px; line-height: 18px;"&gt;لذا يجب علينا أن نشد همتنا ونسارع الى تطوير قدرتنا ومتابعة كل جديد, وفيما يلي بعض النصائح والتوجيهات:&lt;/span&gt;&lt;/div&gt;&lt;ul dir="rtl" style="text-align: right;"&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: tahoma; font-size: 12px; line-height: 18px;"&gt;أولا وقبل شيء استعن بالله وابدأ التحدي بعزم.&lt;/span&gt;&lt;/li&gt;
&lt;span class="Apple-style-span" style="color: #333333; font-family: tahoma; font-size: 12px; line-height: 18px;"&gt;
&lt;li&gt;حاول أن لا تكرر ما تعمله وأت تستفيد من اخطاءك السابقة.&lt;/li&gt;
&lt;li&gt;ضع لك خطة شهرية لتعلم شيء محدد خلال شهر أو أكثر.&lt;/li&gt;
&lt;li&gt;شارك في مشروع مفتوح المصدر في احد المواقع التي تستضيف المشاريع المفتوحة المصدر مثل &amp;nbsp;&lt;a href="http://codeplex.com/" style="color: #105cb6; text-decoration: underline;" title="Code Plex"&gt;Code Plex&amp;nbsp;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;أستخدم قارئ الخلاصات RSS Reader لمتابعة جديد المجال: هنالك الكثير والكثير من المدونات المفيدة والمواقع المتخصصة وعلى سبيل المثال وليس الحصر&amp;nbsp;&lt;/li&gt;
&lt;/span&gt;&lt;/ul&gt;&lt;div dir="rtl" style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 10px; text-align: right;"&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: tahoma; font-size: 12px; line-height: 18px;"&gt;&lt;a href="http://www.4guysfromrolla.com/" style="color: #105cb6; text-decoration: underline;" target="_blank"&gt;4GuysFromRolla.com&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div dir="rtl" style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 10px; text-align: right;"&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: tahoma; font-size: 12px; line-height: 18px;"&gt;&lt;a href="http://aspalliance.com/" style="color: #105cb6; text-decoration: underline;" target="_blank"&gt;ASPAlliance.com - Articles, reviews, and samples for .NET Developers&amp;nbsp;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div dir="rtl" style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 10px; text-align: right;"&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: tahoma; font-size: 12px; line-height: 18px;"&gt;&lt;a href="http://www.c-sharpcorner.com/" style="color: #105cb6; text-decoration: underline;" target="_blank"&gt;C-Sharpcorner Latest Articles&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div dir="rtl" style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 10px; text-align: right;"&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: tahoma; font-size: 12px; line-height: 18px;"&gt;&lt;a href="http://weblogs.asp.net/MainFeed.aspx" style="color: #105cb6; text-decoration: underline;" title="ASP.NET Blogs"&gt;ASP.NET Blogs&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div dir="rtl" style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 10px; text-align: right;"&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: tahoma; font-size: 12px; line-height: 18px;"&gt;&lt;a href="http://www.codeproject.com/" style="color: #105cb6; text-decoration: underline;" target="_blank"&gt;The Code Project Latest Articles&amp;nbsp;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div dir="rtl" style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 10px; text-align: right;"&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: tahoma; font-size: 12px; line-height: 18px;"&gt;&lt;a href="http://madskristensen.net/" style="color: #105cb6; text-decoration: underline;" target="_blank"&gt;.NET slave&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div dir="rtl" style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 10px; text-align: right;"&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: tahoma; font-size: 12px; line-height: 18px;"&gt;&lt;a href="http://blog.willasrari.com/" style="color: #105cb6; text-decoration: underline;" target="_blank"&gt;Will Asrari&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div dir="rtl" style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 10px; text-align: right;"&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: tahoma; font-size: 12px; line-height: 18px;"&gt;هذا غيض من فيض ,,,,&lt;/span&gt;&lt;/div&gt;&lt;div dir="rtl" style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 10px; text-align: right;"&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: tahoma; font-size: 12px; line-height: 18px;"&gt;تحياتي ,,,&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8379064344023344719-3193766129658049870?l=tip2dev.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/tip2dev/~4/gGK3ams-xVc" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8379064344023344719/posts/default/3193766129658049870?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8379064344023344719/posts/default/3193766129658049870?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/tip2dev/~3/gGK3ams-xVc/blog-post_25.html" title="أنت في عالم كبير وأيضا سريع الاتساع" /><author><name>Khaled H. Musaied</name><uri>http://www.blogger.com/profile/17959625831089674087</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://2.bp.blogspot.com/_HMxACWDTC_E/S0EbhzLzrfI/AAAAAAAAB8c/6OQTHzfWWMc/S220/kmusaied@yahoo.com_118bb4bf+(1).jpg" /></author><feedburner:origLink>http://tip2dev.blogspot.com/2009/04/blog-post_25.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkcNSXo8eip7ImA9Wx5aE0o.&quot;"><id>tag:blogger.com,1999:blog-8379064344023344719.post-5703414991744779299</id><published>2009-04-25T18:05:00.000-07:00</published><updated>2010-11-09T23:28:18.472-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-11-09T23:28:18.472-08:00</app:edited><title>بسم الله ,, نبدأ</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="rtl" style="text-align: right;"&gt;سم الله الرحمن الرحيم هذه هي أول تدوينة لي في مدونتي الجديدة “&lt;s&gt;نصائح وتلميحات لمبرمجي الدوت نت&lt;/s&gt;” "مدونة خالد مسيعد" &lt;s&gt;وكما هو واضح من اسم المدونة -الطويل نسبيا:) - أن&lt;/s&gt; الهدف من هذه المدونة هو توجيه ومساعدة مبرمجي الدوت نت .NET Developers ومبرمجي ASP.NET بشكل أخص لبناء تطبيقات انترنت Web Applications بطريقة صحيحة وعملية. هذه المدونة موجهة للمبرمجين المبتدئين والمتوسطين الذين سنوات خبرتهم أقل من ثلاث سنوات.&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8379064344023344719-5703414991744779299?l=tip2dev.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/tip2dev/~4/FJcVfXDCH7M" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8379064344023344719/posts/default/5703414991744779299?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8379064344023344719/posts/default/5703414991744779299?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/tip2dev/~3/FJcVfXDCH7M/blog-post.html" title="بسم الله ,, نبدأ" /><author><name>Khaled H. Musaied</name><uri>http://www.blogger.com/profile/17959625831089674087</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://2.bp.blogspot.com/_HMxACWDTC_E/S0EbhzLzrfI/AAAAAAAAB8c/6OQTHzfWWMc/S220/kmusaied@yahoo.com_118bb4bf+(1).jpg" /></author><feedburner:origLink>http://tip2dev.blogspot.com/2009/04/blog-post.html</feedburner:origLink></entry></feed>

