<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>مملكة القلم &#187; Dlinq</title>
	<atom:link href="http://eqalam.com/tag/dlinq/feed" rel="self" type="application/rss+xml" />
	<link>http://eqalam.com</link>
	<description>مدونة ووردبريس عربية أخرى</description>
	<lastBuildDate>Tue, 15 Mar 2011 06:33:33 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>كيفية استخدام  LINQ To SQL</title>
		<link>http://eqalam.com/tech_city/linq</link>
		<comments>http://eqalam.com/tech_city/linq#comments</comments>
		<pubDate>Fri, 28 Dec 2007 07:38:29 +0000</pubDate>
		<dc:creator>سفير القلم</dc:creator>
				<category><![CDATA[المدينة التقنية]]></category>
		<category><![CDATA[المدينة الجامعية]]></category>
		<category><![CDATA[Database]]></category>
		<category><![CDATA[Dlinq]]></category>
		<category><![CDATA[KFUPM]]></category>
		<category><![CDATA[Learn]]></category>
		<category><![CDATA[LINQ]]></category>
		<category><![CDATA[microsoft]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[Studio]]></category>
		<category><![CDATA[Visual]]></category>
		<category><![CDATA[WPF]]></category>
		<category><![CDATA[XLinq]]></category>
		<category><![CDATA[البيانات]]></category>
		<category><![CDATA[العمودي]]></category>
		<category><![CDATA[برنامج]]></category>
		<category><![CDATA[تقنية]]></category>
		<category><![CDATA[جديد]]></category>
		<category><![CDATA[درس]]></category>
		<category><![CDATA[شرح]]></category>
		<category><![CDATA[عمر]]></category>
		<category><![CDATA[قواعد]]></category>

		<guid isPermaLink="false">http://sfeer.psdgroups.com/?p=38</guid>
		<description><![CDATA[في أيام العيد الأولى انتهيت من جزء كبير من مشروع إحدى المواد و سأفرد للبرنامج و فكرته موضوع مستقل بعد الانتهاء من النسخة الأولية لكني سأتحدث هنا عن شيء عظيم جداً و نقله نوعية في استخدام قواعد البيانات مع البرامج فقد استخدمت LINQ To SQL وكانت تجربة رائعة جداً .. الفضل بعد الله فيها يعود [...]]]></description>
			<content:encoded><![CDATA[<p><span style="color: #808080;">في أيام العيد الأولى انتهيت من جزء كبير من مشروع إحدى المواد</span></p>
<p><span style="color: #808080;">و سأفرد للبرنامج و فكرته موضوع مستقل بعد الانتهاء من النسخة الأولية</span></p>
<p><span style="color: #000080;">لكني سأتحدث هنا عن شيء عظيم جداً و نقله نوعية في استخدام قواعد البيانات مع البرامج</span></p>
<p><span style="color: #000080;">فقد استخدمت <span style="color: #800000;">LINQ To SQL</span></span></p>
<p><span style="color: #808080;">وكانت تجربة رائعة جداً .. الفضل بعد الله فيها يعود إلى الأخ <span style="color: #333333;">عمر العمودي</span> .. حيث كان دائماً يحدثني عنها ..</span></p>
<p><span style="color: #808080;">وفي اليوم الأخير قبل ساعات من رحلته إلى مكة فتحنا موضوع<span style="color: #800000;"> LINQ</span> وبدأت يومها الخطوات الأولى</span></p>
<p><span style="color: #808080;">وانتهيت من جزء كبير جداً فيما يتعلق بقواعد البيانات و استخدامها في البرنامج في وقت قياسي</span></p>
<p><span style="color: #808080;">شكراً عمر</span></p>
<p><img src="http://smartsmedia.com/images/smiles_files/new/flowerysmile.gif" alt="" /></p>
<p><span id="more-38"></span></p>
<p><span style="color: #000080;">و الآن لنتحدث قليلاً عن <span style="color: #800000;">LINQ</span></span></p>
<p><span style="color: #000080;">إنها <span style="color: #800000;">Language Integrated Query</span></span></p>
<p><span style="color: #000080;">نظرة عامة : </span></p>
<p><span style="color: #000080;"><span style="color: #808080;">حين تريد أن تصنع برنامجاً و تستخدم فيه قاعدة بيانات ففي الغالب أنك ستستخدم <span style="color: #800000;">SQL</span> وهي لغة قوية و رائعة جداً لكن ستشعر و كأن برنامجك انقسم إلى قسمين قسم خاص بالكود الذي عملت عليه و قسم آخر كأنه منفصل يختص بقواعد البيانات</span></span></p>
<p><span style="color: #808080;">بالإضافة إلى الخطوات الطويلة في استخدام قاعدة البيانات و استخدام أوامر الاستعلام و و و</span></p>
<p><span style="color: #000080;">الآن مع <span style="color: #800000;">LINQ</span> الأمر يتم بسهولة عجيبة تحفظ وقتك بشكل كبير جداً و تنفذ لك ما أردت في سهولة وقوة</span></p>
<p><span style="color: #808080;">لم أجد <span style="color: #333333;">LINQ</span> في الإصدار القديم من فيجوال استوديو<span style="color: #333333;"> Visual Studio 2005</span></span></p>
<p><span style="color: #808080;">يوجد فقط في الإصدار الجديد<span style="color: #333333;"> Visual Studio 2008</span> أوكما يطلقون عليه أوركاس <span style="color: #333333;">Orcas</span></span></p>
<p><span style="color: #000080;"><span style="color: #800000;">الفكرة ببساطة :</span> </span></p>
<p><span style="color: #000080;">تمكنك <span style="color: #800000;">LINQ</span> من استخدام قاعدة البيانات و الارتباط بها و التعامل معها في الدوت نت<span style="color: #800000;"> .NET</span> كأنها<span style="color: #800000;"> Classes</span></span></p>
<p><span style="color: #000080;">وفي السابق كان التعامل مع البيانات يختلف باختلاف نوعها فقواعد البيانات<span style="color: #800000;"> database</span> تختلف عن <span style="color: #800000;">XML</span> و تختلف عن <span style="color: #800000;">Collections</span> مثل <span style="color: #808080;">ArrayList</span></span></p>
<p><span style="color: #000080;">و الآن مع <span style="color: #800000;">LINQ</span> فستتوحد طريقة التعامل معها بغض النظر عن النوع </span></p>
<p><span style="color: #000080;">لها ثلاثة أنواع رئيسية</span></p>
<p><span style="color: #808080;">DLinq &#8212; DataBase</span></p>
<p><span style="color: #808080;">XLinq &#8212; XML Files</span></p>
<p><span style="color: #808080;">Linq &#8211;Collection e.g. ArrayList</span></p>
<p><span style="color: #808080;"> </span></p>
<p><span style="color: #000080;">و الآن إلى الجانب العملي و التطبيق الذي استفدت منه كثيراً في مشروعي </span><img src="http://smartsmedia.com/images/smiles_files/smile.gif" alt="" /></p>
<p><span style="color: #000080;">أولاً أنشأت قاعدة البيانات و أدخلت بيانات افتراضية ثم فتحت الفيجوال ستوديو <span style="color: #808080;">2008</span></span></p>
<p><span style="color: #000080;"><span style="color: #808080;">بالنسبة لي استخدمت مشروع <span style="color: #800000;">WPF</span> وهذا موضوع آخر سأتحدث عنه لاحقاً</span><br />
</span></p>
<p><span style="color: #000080;">المهم اختر المشروع و أعطه الاسم الذي تريد ثم توجه إلى إضافة عنصر جديد</span></p>
<p><span style="color: #000080;">سأطبق لكم على المشروع الذي عملت عليه</span></p>
<p><span style="color: #000080;">بعد أن تفتح المشروع .. من قائمة <span style="color: #800000;">Project</span></span></p>
<p><span style="color: #000080;">اختر</span></p>
<p><span style="color: #000080;"><span style="color: #800000;">Add New Item</span> أو اضغط على الاختصار <span style="color: #808080;">Ctrl + Shift + A</span></span></p>
<p><span style="color: #000080;">و اختر</span></p>
<p><span style="color: #800000;">LINQ To SQL Classes</span></p>
<p><span style="color: #000080;">لا تنس الاسم الذي ستختاره .. مثلاً في مشروعي اخترت <span style="color: #800000;">Boardr.dbml</span></span></p>
<p><span style="color: #000080;">طبعاً أنت قد اتصلت بقاعدة البيانات وهي موجودة في  مشروعك و الآن من القائمة اليسرى</span></p>
<p><span style="color: #800000;">Server Explorer</span></p>
<p><span style="color: #000080;">اذهب إلى</span></p>
<p><span style="color: #800000;">Database Diagrams</span></p>
<p><img src="http://sfeer.psdgroups.com/wp-content/uploads/linq1.gif" alt="http://sfeer.psdgroups.com/wp-content/uploads/linq1.gif" /></p>
<p><span style="color: #000080;">ثم اختر الجداول التي تريد</span></p>
<p><img src="http://sfeer.psdgroups.com/wp-content/uploads/linq2.gif" alt="http://sfeer.psdgroups.com/wp-content/uploads/linq2.gif" /></p>
<p><span style="color: #000080;">سيتكون عندك الشكل التالي</span></p>
<p><img src="http://sfeer.psdgroups.com/wp-content/uploads/linq3.gif" alt="http://sfeer.psdgroups.com/wp-content/uploads/linq3.gif" /></p>
<p><span style="color: #000080;">الآن اذهب إلى صفحة الكود  وتابع أهم الخطوات لتفهم الفكرة فقط ثم تبدع بنفسك</span></p>
<p><span style="color: #000080;">أولاً :</span></p>
<p><span style="color: #000080;">أنشئ <span style="color: #800000;">DataContext</span> من خلال السطر التالي</span></p>
<p><span style="color: #808080;"><code>BoarderDataContext bdct = new BoarderDataContext();</code></span></p>
<p><span style="color: #000080;">الآن بإمكانك التعامل مع قاعدة  البيانات و السطر السابق سيتكفل بالوصول لقاعدة البيانات و التعامل معها</span></p>
<p><span style="color: #000080;">لدينا في المثال السابق أربعة جداول</span></p>
<p><span style="color: #000080;">الآن تستطيع أن تنشئ<span style="color: #800000;"> Object</span> منها كما تشاء مثلاً إذا أردت إنشاء <span style="color: #800000;">object</span> من جدول <span style="color: #800000;">Person</span></span></p>
<p><span style="color: #808080;"><code>Person p = new Person();</code></span></p>
<p><span style="color: #000080;">وهكذا </span></p>
<p><span style="color: #000080;">ستلاحظ إذا بدأت تكتب <span style="color: #800000;">bdct</span> ثم علامة الدوت فسيعطيك أسماء الجداول .. و لو اخترت الجدول ثم دوت فسيعطيك أسماء الأعمدة</span></p>
<p><span style="color: #000080;">هذا ما يتعلق بكيفية إنشاء <span style="color: #800000;">Objects</span> وسهولتها</span></p>
<p><span style="color: #000080;">الآن سنعرض كيفية الاستعلام وكتابة <span style="color: #800000;">Query </span>داخل الكود ثم نأخذ المثال العملي</span></p>
<p><span style="color: #000080;">الطريقة سهلة جداً</span></p>
<p><span style="color: #000080;">كالتالي</span></p>
<p><span style="color: #808080;"><code><br />
var result = from p in bdct.Person<br />
where p.Person_ID == "111"<br />
select p.Name;<br />
</code></span></p>
<p><span style="color: #000080;"> </span></p>
<p><span style="color: #000080;">المثال السابق يرجع لك أسماء الأشخاص الموجودين في قاعدة البيانات في الجدول <span style="color: #800000;">Person</span> </span></p>
<p><span style="color: #000080;">تستطيع أن تضع في الجملة الأولى أنواع أخرى من البيانات مثل <span style="color: #800000;">XML</span> أو غيرها بدل الداتابيس<br />
</span></p>
<p><span style="color: #000080;">ومن الممكن أن تضع الناتج في <span style="color: #800000;">Array</span> أو <span style="color: #800000;">List</span></span></p>
<p><span style="color: #000080;">سأضع هنا أمثلة أخرى لتوضيح فكرة التعامل مع الاستعلام و الطلب من قاعدة البيانات </span></p>
<p><span style="color: #000080;">و الأمثلة من مدونة <span style="color: #800000;">asp.net</span></span></p>
<p><span style="color: #000080;">هنا مثلاً كيفية الاستعلام و استخراج بيانات معينة من قاعدة البيانات </span></p>
<p><span style="font-family: arial; color: #000080; font-size: x-small;"><img src="http://www.scottgu.com/blogposts/linqtosql/step3.jpg" alt="" /></span></p>
<p><span style="color: #000080;">المثال السابق سيرجع لك المنتجات <span style="color: #800000;">products</span> التي اسم الصنف <span style="color: #800000;">Beverages</span></span></p>
<p><span style="color: #808080;">أليست العملية سهلة وممتعة في كتابة الاستعلام Query  بهذه الطريقة</span></p>
<p><img src="http://smartsmedia.com/images/smiles_files/smile.gif" alt="" /></p>
<p><span style="color: #000080;"> </span></p>
<p><span style="color: #000080;">هل تريد أن تضيف شيئاً إلى قاعدة البيانات .. إليك المثال .. </span></p>
<p><span style="font-family: arial; color: #000080; font-size: x-small;"><img src="http://www.scottgu.com/blogposts/linqtosql/step4.jpg" alt="" /></span></p>
<p><span style="color: #000080;"><span style="color: #808080;"> ممتعة .. </span></span><img src="http://smartsmedia.com/images/smiles_files/smile.gif" alt="" /></p>
<p><span style="color: #000080;">و الحذف أيضاً سهل جداً .. هنا المثال لحذف عنصر من قاعدة البيانات .. </span></p>
<p><span style="font-family: arial; color: #000080; font-size: x-small;"><img src="http://www.scottgu.com/blogposts/linqtosql/step6.jpg" alt="" /></span></p>
<p><span style="color: #000080;"> </span></p>
<p><span style="color: #000080;">الأمثلة كثيرة جداً و التعامل معها سهل جداً جداً جداً</span></p>
<p><span style="color: #000080;">أردت أن أنقل صورة مبسطة للتعامل مع <span style="color: #800000;">LINQ</span></span></p>
<p><span style="color: #000080;">و لأني فعلاً وجدت الأمر ممتع و سهل و أتمنى أن يستفيد منه الجميع</span></p>
<p><span style="color: #000080;">فمميزاتها كثيرة ربما منها أن الأخطاء تكتشف في <span style="color: #800000;"> Run Time</span></span></p>
<p><span style="color: #000080;">وأنها تتعامل مع جميع البيانات فلا تحتاج لتعلم كل طريقة على حدة</span></p>
<p><span style="color: #000080;">وأنها تدعم <span style="color: #800000;">Intellisense</span><br />
</span></p>
<p><span style="color: #000080;">والكثير الذي لازلت أجهله</span></p>
<p><span style="color: #000080;">ربما تفيدونا به </span><img src="http://smartsmedia.com/images/smiles_files/smile.gif" alt="" /></p>
<p><span style="color: #000080;"> </span></p>
<p><span style="color: #000080;">بقي في الختام أن أعرض لكم بعض الروابط و المصادر و شروحات الفيديو التي استفدت منها</span></p>
<p><img src="http://smartsmedia.com/images/smiles_files/new/reading.gif" alt="" /></p>
<p><span style="color: #000080;"><span style="color: #808080;">هنا شروحات الفيديو</span> </span></p>
<p><span style="color: #000080;"><a href="http://www.asp.net/learn/linq-videos/">http://www.asp.net/learn/linq-videos/</a></span></p>
<p><span style="color: #808080;">هنا  أمثلة حتى الإشباع </span><img src="http://smartsmedia.com/images/smiles_files/smile.gif" alt="" /></p>
<p><span style="color: #000080;"><a href="http://www.asp.net/learn/linq-videos/">http://www.asp.net/learn/linq-videos/</a></span></p>
<p><span style="color: #000080;"><span style="color: #808080;">هنا مدون عجيب تحدث بالتفصيل</span> </span></p>
<p><span style="color: #000080;"><a href="http://weblogs.asp.net/scottgu/archive/tags/LINQ/default.aspx">http://weblogs.asp.net/scottgu/archive/tags/LINQ/default.aspx</a></span></p>
<p><span style="color: #000080;">هنا موقع مايكروسوفت الخاص بمشروع <span style="color: #800000;"> LINQ</span></span></p>
<p><span style="color: #000080;"><a href="http://msdn2.microsoft.com/en-us/netframework/aa904594.aspx">http://msdn2.microsoft.com/en-us/netframework/aa904594.aspx</a></span></p>
<p><span style="color: #808080;">مدونة مفيدة وخطواتها العملية واضحة و سهلة</span></p>
<p><span style="color: #000080;"><a href="http://www.hookedonlinq.com/AllPages.aspx?Cat=LINQ%20to%20Objects">http://www.hookedonlinq.com/AllPages.aspx?Cat=LINQ%20to%20Objects</a></span></p>
<p><span style="color: #808080;">مصادر عربية</span></p>
<p><span style="color: #000080;"><a href="http://www.vb4arab.com/vb/showthread.php?t=343">http://www.vb4arab.com/vb/showthread.php?t=343</a></span></p>
<p><span style="color: #000080;"> <a href="http://www.orwah.net/modules/news/article.php?storyid=89">http://www.orwah.net/modules/news/article.php?storyid=89</a></span></p>
<p><span style="color: #000080;"> <a href="http://www.csharp1.com/main/index.php?option=com_content&amp;task=view&amp;id=14&amp;Itemid=2">http://www.csharp1.com/main/index.php?option=com_content&amp;task=view&amp;id=14&amp;Itemid=2</a></span></p>
<p><span style="color: #000080;"> <a href="http://mmas25.spaces.live.com/blog/cns!B0E3C022016C0ECD!121.entry">http://mmas25.spaces.live.com/blog/cns!B0E3C022016C0ECD!121.entry</a></span></p>
<p><span style="color: #000080;"> </span></p>
<p><span style="color: #808080;">و بالهنا و الشفا</span></p>
<p><span style="color: #800000;"><span style="color: #000080;">أخوكم / </span>سفير القلم </span></p>
<p><span style="color: #000080;"> </span><img src="http://smartsmedia.com/images/smiles_files/new/icon31.gif" alt="" /></p>
]]></content:encoded>
			<wfw:commentRss>http://eqalam.com/tech_city/linq/feed</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
	</channel>
</rss>

