<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://weblogs.asp.net/utility/FeedStylesheets/atom.xsl" media="screen"?><feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en"><title type="html">Scott Guthrie's Blog in Arabic</title><subtitle type="html" /><id>http://weblogs.asp.net/scottguarabic/atom.aspx</id><link rel="alternate" type="text/html" href="http://weblogs.asp.net/scottguarabic/default.aspx" /><link rel="self" type="application/atom+xml" href="http://weblogs.asp.net/scottguarabic/atom.aspx" /><generator uri="http://communityserver.org" version="3.0.20510.895">Community Server</generator><updated>2008-04-19T10:35:10Z</updated><entry><title>الإصدارة 3 من النسخة التجريبة ASP.NET MVC</title><link rel="alternate" type="text/html" href="http://weblogs.asp.net/scottguarabic/archive/2008/06/14/3-asp-net-mvc.aspx" /><id>http://weblogs.asp.net/scottguarabic/archive/2008/06/14/3-asp-net-mvc.aspx</id><published>2008-06-14T10:37:57Z</published><updated>2008-06-14T10:37:57Z</updated><content type="html">&lt;p&gt;صباح هذا اليوم قمنا بإطلاق الإصدارة الثالثة من هيكلية ASP.NET MVC. لقد قمت بتدوين التفاصيل في الشهر الماضي عن &lt;a href="http://66.102.9.104/translate_c?hl=en&amp;amp;sl=en&amp;amp;tl=ar&amp;amp;u=http://weblogs.asp.net/scottgu/archive/2008/04/16/asp-net-mvc-source-refresh-preview.aspx"&gt;إصدارة كود المصدر المؤقتة&lt;/a&gt; ونحن لم نضمنها العديد من التغييرات في هذه الإصدارة. إصدارة اليوم&amp;#160; تشمل بعض الجوانب الاضافيه التي ليست موجودة في قطرة الشهر الماضي ، بعض بعض التحسينات / التصفيات الجميلة ، وكذلك التكامل مع الـ Visual Studio والتوثيق.&lt;/p&gt;  &lt;p&gt;يمكنك تحميل مجموعة تنصيب متكاملة للإصدار التجريبة 3 من&amp;#160; ASP.NET MVC&amp;#160; &lt;a href="http://66.102.9.104/translate_c?hl=en&amp;amp;sl=en&amp;amp;tl=ar&amp;amp;u=http://www.microsoft.com/downloads/details.aspx%3FFamilyId%3D92F2A8F0-9243-4697-8F9A-FCF6BC9F66AB%26displaylang%3Den"&gt;من هنا،&lt;/a&gt; وبشكل اختياري يمكنك ايضا تحميل كود المصدر لـ&amp;#160; ASP.NET MVC واختبارات الوحدة &lt;a href="http://66.102.9.104/translate_c?hl=en&amp;amp;sl=en&amp;amp;tl=ar&amp;amp;u=http://www.codeplex.com/Release/ProjectReleases.aspx%3FProjectName%3Daspnet%26ReleaseId%3D13792"&gt;هنا.&lt;/a&gt;&lt;/p&gt;  &lt;h5&gt;&lt;u&gt;تغيير في طريقة عمل المتحكم Controller&lt;/u&gt;&lt;/h5&gt;  &lt;p&gt;إن الإصدارة الثالثة من النسخة الأولية لـ ASP.NET MVC&amp;#160; تشمل على التغييرات في المتحكم&amp;#160; التي تمت مناقشتها في &lt;a href="http://66.102.9.104/translate_c?hl=en&amp;amp;sl=en&amp;amp;tl=ar&amp;amp;u=http://weblogs.asp.net/scottgu/archive/2008/04/16/asp-net-mvc-source-refresh-preview.aspx"&gt;في إصدارة ASP.NET MVC في نيسان إبريل&lt;/a&gt; ، مع بعض التعديلات الاضافيه والتغييرات.&lt;/p&gt;  &lt;p&gt;لا زال يمكنك الاستمرار في كتابة خوارزميات العمل في المتحكم والتي سوف تقوم بإرجاع لا شيء وتتضمن كل منطق العمل فيها، فعلى سبيل المثال :&lt;/p&gt;  &lt;p&gt;&lt;img src="http://www.scottgu.com/blogposts/mvc3announce/step2.png" /&gt;&lt;/p&gt;  &lt;p&gt;الأمر الذي يظهر هذا الـ HTML عند التشغيل :&lt;/p&gt;  &lt;p&gt;&lt;img src="http://www.scottgu.com/blogposts/mvc3announce/step3.png" /&gt;&lt;/p&gt;  &lt;p&gt;الإصدارة الأولية الثالثة الآن تؤيد استخدام نهج إرجاع كائن من نوع &amp;quot;actionresult&amp;quot; والذي يدل على نتيجة خوارزمية العمل ، وتمكنك من تأجيل تنفيذ الخوارزمية. ويتيح هذا أداء اختبارات الوحدة بشكل أسهل بكثير (دون ان يتطلب ذلك ضرورة ان نقوم بـ mock من اي شيء).&lt;/p&gt;  &lt;p&gt;فعلى سبيل المثال ، يمكن استخدامLINQ to SQL ضمن خوارزمية عمل الاستعراض&amp;#160; لاسترجاع سلسلة من كائنات المنتجات من قاعدة بياناتنا ونشير الى اننا نريد ان نمثلهم في شاشة عرض منهم . الكود ادناه سيتسبب في ثلاث قطع من &amp;quot;ViewData&amp;quot; يتم تمريرها الى شاشة العرض ، نصوص &amp;quot;tilte&amp;quot; و &amp;quot;categoryname&amp;quot;&amp;#160; ، وسلسلة من المنتجات تمرر على شكل كائنات ViewData.Model :&lt;/p&gt;  &lt;p&gt;&lt;img src="http://www.scottgu.com/blogposts/mvc3announce/step5.png" /&gt;&lt;/p&gt;  &lt;p&gt;ومن مزايا استخدام نهج الـ actionresult أعلاه ،&amp;#160; انه يجعل من اختبارات الوحدة لإجراءات المتحكم&amp;#160; سهلة جداً (دون اللجوء إلى عمل Mock).إن المثال ادناه هو اختبار وحدة ليتحقق من&amp;#160; سلوك خوارزمية العمل لدينا التي تقوم بالاستعراض :&lt;/p&gt;  &lt;p&gt;&lt;img src="http://www.scottgu.com/blogposts/mvc3announce/step11.png" /&gt;&lt;/p&gt;  &lt;p&gt;بعد ذلك يمكننا ان نكتب&amp;#160; شاشة استعراض ضمن هذا الدليل الفرعي \Views\Products لتقديم تثميل لـ Response باستخدام الـ ViewData التي إعدادها عن طريق إجراء الاستعراض :&lt;/p&gt;  &lt;p&gt;&lt;img src="http://www.scottgu.com/blogposts/mvc3announce/step6.png" /&gt;&lt;/p&gt;  &lt;p&gt;ونحن عندما نوصل إلى دليل /Products/Browse/Beverages في الموقع سوف نحصل على استجابة HTML&amp;#160; ادنا (مع استعمال ثلاث من الـ ViewData المحاطة بالأحمر):&lt;/p&gt;  &lt;p&gt;&lt;img src="http://www.scottgu.com/blogposts/mvc3announce/step7.png" /&gt;&lt;/p&gt;  &lt;p&gt;علما انه بالاضافة الى دعم استجابة &amp;quot;viewresult&amp;quot; الاستجابة (لتشير الى ان شاشة العرض ينبغي ان يتم رسمها) ،فإن الإصدار الأولية الثالثة منASP.NET MVC&amp;#160; تضيف ايضاً دعم لإرجاع نتائج على شكل &amp;quot;JsonResult&amp;quot; (لأغراض تسلسل البيانات AJAX JSON الآن) ،و &amp;quot;ContentResult&amp;quot; (لإظهار المحتوى بدون استعمال الـ View) ، فضلا عن HttpRedirect وRedirectToAction/Route.&lt;/p&gt;  &lt;p&gt;إن نهج استعمال الـ ActionResult هو نهج امتدادي (يسمح لك إايجاد نتيجة لأنواع خاصة بك) ، ومن خلال العمل الاضافي القادم سترى منا اضافة للمزيد من أنواع النتائج المدمجة.&lt;/p&gt;  &lt;h5&gt;&lt;u&gt;خوارزميات HTML مساعدة معززة&lt;/u&gt;&lt;/h5&gt;  &lt;p&gt;إن خوارزميات مساعدة الـ HTML المعززة قد تم تحديثها مع الإصدارة الأولية الثالثة لـ ASP.NET MVC . بالاضافة الى مجموعة من الحلول لبعض المشاكل التي كانت موجودة سابقاً، وهي تشمل ايضا عددا من التحسينات الممتازة لتعزيز قابليتها للإستخدام.&lt;/p&gt;  &lt;h5&gt;&lt;u&gt;قيمة البحث التلقائي&lt;/u&gt;&lt;/h5&gt;  &lt;p&gt;مع الاصدارات الأولية السابقة&amp;#160; كنت دائما بحاجة إلى تمرير قيم بشكل خارجي لتعرض الشاشات باستعمال الـ HTML Helper على سبيل المثال : ان تدرج قيمة ضمن حقل إدخال &amp;lt;input type=&amp;quot;text&amp;quot; value=&amp;quot;some value&amp;quot;/&amp;gt; كان يتوجب عليك ان تكتب :&lt;/p&gt;  &lt;p&gt;&lt;img src="http://www.scottgu.com/blogposts/mvc3announce/step13.png" /&gt;&lt;/p&gt;  &lt;p&gt;الشيفرة المدونة اعلاه لا تزال تعمل -- على الرغم من أنه الآن يمكنك ايضاً كتابة هذا فقط :&lt;/p&gt;  &lt;p&gt;&lt;img src="http://www.scottgu.com/blogposts/mvc3announce/step14.png" /&gt;&lt;/p&gt;  &lt;p&gt;أن مساعدي الـ HTML الآن تتحقق من جانب كل من قاموس عرض البيانات و أي نموذج تم تمريره للـ view لاستعمال ProductName.&lt;/p&gt;  &lt;h5&gt;&lt;u&gt;MultiSelectList ViewModels Selectlist&lt;/u&gt;&lt;/h5&gt;  &lt;p&gt;يوجد الآن دوال SelectList و MultiSelectList View-Model مضمنة تدعم طريقة اسهل لإنشاء قوائم منسدلة وصناديق الاختيار المتعددة بلغة HTML (لإدارة عمليات الاختيار) إن أحد الطرق يمكن أن يجعل من هذه السيناريوهات أسهل وأبسط وهو أن تقوم بإنشاء وإعداد نماذج العرض هذه ViewModels في إحدى عمليات المتحكم ومن ثم تقوم بتمريرها إلى قاموس عارض البيانات ViewData في شاشة العرض ليتم إظهار بعد تنسيقها &lt;/p&gt;  &lt;p&gt;فعلى سبيل المثال ،&amp;#160; قمت بإنشاء كائن نموذج عرض لقائمة اختيار لتمثل مجموعة من كائنات الـcategory الفريدة في قادعة البيانات خاصتنا. كما أدف إلى أني أريد استعمال خاصية&amp;#160; الـCategoryID لتمثل قيمة كل عنصر في هذه القائمة وكما أنوي استعمال خاصية الـ CategoryName لتثمل الالنص الذي يجب عرضه في القائمة. كما ان أعددت العنصر المختار ليكون هو الـ categoryIdلكائن الـ product الذي نقوم بتعديله:&lt;/p&gt;  &lt;p&gt;&lt;img src="http://www.scottgu.com/blogposts/mvc3announce/step23.png" /&gt;&lt;/p&gt;  &lt;p&gt;في غضون ذلك الحين ونحن نرى ان مجرد كتابة الشيفرة أدناه كافي لإنشاء القائمة المنسدلة التي ننوي وضعها في نموضج العرض خاصتنا:&lt;img src="http://www.scottgu.com/blogposts/mvc3announce/step17.png" /&gt;&lt;/p&gt;  &lt;p&gt; وذلك سوف يعرض لنا العناصر الملائمة في القائمة المنسدلة في وقت التشغيل :&lt;/p&gt;  &lt;p&gt;&lt;img src="http://www.scottgu.com/blogposts/mvc3announce/step20.png" /&gt;&lt;/p&gt;  &lt;p&gt;&lt;img src="http://www.scottgu.com/blogposts/mvc3announce/step19.png" /&gt;&lt;/p&gt;  &lt;p&gt;إن دعم التحقق من أخطاء الـ Built in ليس متوفراً للآن في دوال مساعدة الـ HTML خاصتنا (يجب أن تقوم بكتابة هذه الشيفرة بنفسك) ولكن سوف نقوم بإظهارها في المستقبل الأمر الذي سوف يجعل من سيناريوهات التحرير أمراً أكثر سهولة.&lt;/p&gt;  &lt;p&gt; وعليك ايضاً أن ترى بداية ظهور دوال المساعدة لـ ASP.NET AJAX في الإصدارت التجريرة المستقبلية ، الأمر الذي سيجعل من الأسهل دمج تطبيقات أجاكس مع الـ MVC بأقل جهد ممكن في البرمجة.&lt;/p&gt;  &lt;h5&gt;&lt;u&gt;تحسينات على توجيه العناوين URL Routing&lt;/u&gt;&lt;/h5&gt;  &lt;p&gt;إن هذه المعاينه تضم عددا من التحسينات على&amp;#160; نظام توجيه العناوين. نظام توجيه العناوين هو واحد من اكثر الأسس من مكونات هيكلية الـMVC&amp;#160; ، الأمر الذي جعلنا أننا قمنا بالتركيز عليه في الإصدارات التجريبية السابقة. إن نظام التوجيه الجديد للموقع سوف يتم إصداره مع حزمة الخدمة NET 3.5 SP1 هذا الصيف. وسوف يقوم بدعم كل من طلبات الـ WebForms و الـ MVC. إن الـ ASP.NET MVC سوف تكون قادرة على استعمال محرك نظام التوجيه المدمج في حزمة الخدمة .NET 3.5 SP1 عند استعمال .NET 3.5 SP1 كما أنها سوف تكون قادرة على العمل أيضاً باستعمال نسختها الخاصة assembly على الأنظمة التي لا تستعمل الـ NET 3.5 SP1 .&lt;/p&gt;  &lt;p&gt;..... &lt;/p&gt;  &lt;p&gt;.....&lt;/p&gt;  &lt;p&gt;آمل أن هذا ساعدكم&lt;/p&gt;  &lt;p&gt;Scott &lt;/p&gt;  &lt;p&gt;Published Tuesday, May 27, 2008 1:26 PM by &lt;a href="http://66.102.9.104/translate_c?hl=en&amp;amp;sl=en&amp;amp;tl=ar&amp;amp;u=http://weblogs.asp.net/members/ScottGu.aspx"&gt;ScottGu&lt;/a&gt; نشرت الثلاثاء ، 27 أيار / مايو 2008 في الساعة 1:26 من قبل &lt;a href="http://66.102.9.104/translate_c?hl=en&amp;amp;sl=en&amp;amp;tl=ar&amp;amp;u=http://weblogs.asp.net/members/ScottGu.aspx"&gt;scottgu&lt;/a&gt;&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6274230" width="1" height="1"&gt;</content><author><name>IsToFix</name><uri>http://weblogs.asp.net/members/IsToFix.aspx</uri></author></entry><entry><title>كتاب "Professional ASP.NET 3.5: In C# and VB" إنه بـ 16$ فقط لفترة قصيرة على موقع أمازون</title><link rel="alternate" type="text/html" href="http://weblogs.asp.net/scottguarabic/archive/2008/05/30/quot-professional-asp-net-3-5-in-c-and-vb-quot-16.aspx" /><id>http://weblogs.asp.net/scottguarabic/archive/2008/05/30/quot-professional-asp-net-3-5-in-c-and-vb-quot-16.aspx</id><published>2008-05-30T06:54:54Z</published><updated>2008-05-30T06:54:54Z</updated><content type="html">&lt;table style="direction: rtl" border="0"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td&gt;         &lt;p&gt;&lt;font face="Tahoma" size="2"&gt;إن أحد الأشياء التي أرغب دائماً في متابعتها هي مبيعات الكتب على AMAZON.COM ، والتي توفر بيانات مفيدة ومؤشرة لرصد ما يهم مطوري البرمجيات في أي يوم من الأيام. إني أستعمل موقع &lt;/font&gt;&lt;a href="http://66.102.9.104/translate_c?hl=en&amp;amp;sl=en&amp;amp;tl=ar&amp;amp;u=http://www.titlez.com/"&gt;&lt;font face="Tahoma" size="2"&gt;www.titlez.com&lt;/font&gt;&lt;/a&gt;&lt;font face="Tahoma" size="2"&gt;&amp;#160; (والذي بني باستخدام ASP.NET) لتتبع عناوين محددة أريد مشاهدتها - وبعد ذلك أقوم بإخراج تقرير يظهر ترتيب بيانات المبيعات في الوقت الحقيقي لـ AMAZON.COM&amp;#160;&amp;#160; ، فضلا عن تقرير آخرلترتيب متوسطات البيع لآخر7 أيام و 30 يوماً و 90 يوما .&lt;/font&gt;&lt;/p&gt;          &lt;p&gt;&lt;font face="Tahoma" size="2"&gt;&amp;#160;&lt;/font&gt;&lt;/p&gt;          &lt;p&gt;&lt;font face="Tahoma" size="2"&gt;هذا الصباح قمت بسحب تقريري اليومي ورأيت الكتب المعتادة قرب أعلى القائمة وبعد ذلك عندما كنت أهم بالغادرة لاحظت تطوراً حيث تربع على قمة الترتيب كتاب &lt;/font&gt;&lt;a href="http://66.102.9.104/translate_c?hl=en&amp;amp;sl=en&amp;amp;tl=ar&amp;amp;u=http://www.amazon.com/gp/product/0470187573/104-4617720-5654313%3Fie%3DUTF8%26tag%3Dscoblo04-20%26linkCode%3Dxm2%26camp%3D1789%26creativeASIN%3D0470187573"&gt;&lt;font face="Tahoma" size="2"&gt;Professional ASP.NET 3.5: In C# and VB&lt;/font&gt;&lt;/a&gt;&lt;font face="Tahoma" size="2"&gt; لمؤلفيه Bill Evjenو Scott Hanselman و Devin Rader . إن ترتيبه في مبيعات كتب أمازون كان مذهلاً وهو رقم #95 من كل الكتب على أمازون مما يعني أنه تجاوز مبيعات كتاب هاري بوتر الذي يعد جميلاً جداً .&lt;/font&gt;&lt;/p&gt;          &lt;p&gt;&lt;font face="Tahoma" size="2"&gt;وتبين ان الامازون يقدم عرضاً خاصاً لتعزيز الاسعار لفترة قصيرة على عدد قليل من الكتب -- وكان هذا واحدا وهذا هو المختار. فبدلاً من السعر المعتاد وهو 54 دولارا ، يمكنك شراء لفترة قصيرة سخيفة 16،49 دولار. - ولست متأكدا الى متى تستمر هذه الحملة الترويجيه-- ولكن اذا كنت تبحث عن كتاب جيد حول 3،5 asp.net فإن هذا الكتاب يمكن ان يكون شيئا قد ترغب في الاستفادة منه :&lt;/font&gt;&lt;/p&gt;          &lt;p&gt;&lt;a href="http://66.102.9.104/translate_c?hl=en&amp;amp;sl=en&amp;amp;tl=ar&amp;amp;u=http://www.amazon.com/gp/product/0470187573/104-4617720-5654313%3Fie%3DUTF8%26tag%3Dscoblo04-20%26linkCode%3Dxm2%26camp%3D1789%26creativeASIN%3D0470187573"&gt;&lt;font face="Tahoma" size="2"&gt;&lt;img src="http://silverlight1blogpost.s3.amazonaws.com/scotthabook.jpg" /&gt;&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;          &lt;p&gt;&lt;font face="Tahoma" size="2"&gt;هذا الكتاب عبارة عن كتاب عظيم حول asp.net 3.5 وأحد المصادر الممتازة. لقد كان على قائمة اكثر الكتب رواجاً لكتب البرمجة الكتب لأنها تأتي في اذار / مارس (عادة في اعلى 5 عناوين لكتب البرمجة) ، وتلقى هذا الكتاب نقداً ممتازاً&amp;#160; (لقد&amp;#160; بنشر نقد على&amp;#160; الامازون قبل بضعة اسابيع ومنحته 5 نجوم).&lt;/font&gt;&lt;/p&gt;          &lt;p&gt;&lt;font face="Tahoma" size="2"&gt;اذا كنت في السوق تبحث عن كتاب asp.net جيد ، قد ترغب في إعادة&amp;#160; النظر والتوجه لموقع أمازون لتحصل على هذا العرض قبل ان يغلق (والاعتذار مقدما اذا كانت تغيرات الاسعار قبل أن تقرأ هذا).&lt;/font&gt;&lt;/p&gt;          &lt;p&gt;&lt;font face="Tahoma" size="2"&gt;أتمنى أن يساعدكم هذا.&lt;/font&gt;&lt;/p&gt;          &lt;p&gt;&lt;font face="Tahoma" size="2"&gt;Scott&lt;/font&gt;&lt;/p&gt;          &lt;p&gt;&lt;font face="Tahoma" size="2"&gt;ملاحظة: إذا كنت تبحث عن كتب جيدة أخرى فإني أنصح بـ &lt;/font&gt;&lt;a href="http://66.102.9.104/translate_c?hl=en&amp;amp;sl=en&amp;amp;tl=ar&amp;amp;u=http://www.amazon.com/gp/product/0596527578/002-5242737-1614454%3Fie%3DUTF8%26tag%3Dscoblo04-20%26linkCode%3Dxm2%26camp%3D1789%26creativeASIN%3D0596527578"&gt;&lt;font face="Tahoma" size="2"&gt;C# 3.0 In a Nutshell&lt;/font&gt;&lt;/a&gt;&lt;font face="Tahoma" size="2"&gt; و &lt;/font&gt;&lt;a href="http://66.102.9.104/translate_c?hl=en&amp;amp;sl=en&amp;amp;tl=ar&amp;amp;u=http://www.amazon.com/gp/product/1933988169%3Fie%3DUTF8%26tag%3Dscoblo04-20%26linkCode%3Dxm2%26camp%3D1789%26creativeASIN%3D1933988169"&gt;&lt;font face="Tahoma" size="2"&gt;LINQ in Action&lt;/font&gt;&lt;/a&gt;&lt;font face="Tahoma" size="2"&gt; و &lt;/font&gt;&lt;a href="http://66.102.9.104/translate_c?hl=en&amp;amp;sl=en&amp;amp;tl=ar&amp;amp;u=http://www.amazon.com/gp/product/1590597893/002-5242737-1614454%3Fie%3DUTF8%26tag%3Dscoblo04-20%26linkCode%3Dxm2%26camp%3D1789%26creativeASIN%3D1590597893"&gt;&lt;font face="Tahoma" size="2"&gt;Pro LINQ: Language Integrated Query in C# 2008&lt;/font&gt;&lt;/a&gt;&lt;font face="Tahoma" size="2"&gt; والتي حصلت كلها على خمس نجوم في ترتيب أمازون.&lt;/font&gt;&lt;/p&gt;          &lt;p&gt;&lt;a href="http://weblogs.asp.net/scottgu/archive/2008/05/06/professional-asp-net-3-5-book-only-16-on-amazon-for-a-short-time.aspx"&gt;&lt;font face="Tahoma" size="2"&gt;المشاركة الأصلية&lt;/font&gt;&lt;/a&gt;&lt;font face="Tahoma" size="2"&gt;&amp;#160; نشرت يوم الثلاثاء ، مايو 06 ، 2008 1:38 صباحا&amp;#160; &lt;/font&gt;&lt;a href="http://66.102.9.104/translate_c?hl=en&amp;amp;sl=en&amp;amp;tl=ar&amp;amp;u=http://weblogs.asp.net/members/ScottGu.aspx"&gt;&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6232069" width="1" height="1"&gt;</content><author><name>IsToFix</name><uri>http://weblogs.asp.net/members/IsToFix.aspx</uri></author></entry><entry><title>شرائح وعروض من مؤتمر ASP.NET في أورلاندو</title><link rel="alternate" type="text/html" href="http://weblogs.asp.net/scottguarabic/archive/2008/05/02/asp-net.aspx" /><id>http://weblogs.asp.net/scottguarabic/archive/2008/05/02/asp-net.aspx</id><published>2008-05-02T08:19:00Z</published><updated>2008-05-02T08:19:00Z</updated><content type="html">&lt;p align="right"&gt;&lt;font face="Tahoma"&gt;الأسبوع الماضي قدمت محاضرة في &lt;/font&gt;&lt;a href="http://www.asp-connections.com/shows/SP2008ASP/default.asp?s=112&amp;amp;refer=" mce_href="http://www.asp-connections.com/shows/SP2008ASP/default.asp?s=112&amp;amp;refer="&gt;&lt;font face="Tahoma"&gt;مؤتمر ASP.NET Connections&lt;/font&gt;&lt;/a&gt;&lt;font face="Tahoma"&gt; في أورلاندو. 
ولقد ألقيت محاضرة عامة يوم الأثنين وقمت بإعطاء محاضرتين أخرتين في ذلك اليوم، 
بإمكانك أن تقوم بتحميل المحاضرات&lt;/font&gt;&lt;/p&gt;

&lt;p align="right"&gt;&lt;b&gt;&lt;u&gt;&lt;font face="Tahoma"&gt;المحاضرة 
العامة&lt;/font&gt;&lt;/u&gt;&lt;/b&gt;&lt;br&gt;&lt;font face="Tahoma"&gt;هذه هي المحاضرة للملاحظات الأساسية والمفتاحية 
&lt;/font&gt;&lt;a href="http://www.scottgu.com/blogposts/orlando2008/keynote.zip" mce_href="http://www.scottgu.com/blogposts/orlando2008/keynote.zip"&gt;&lt;font face="Tahoma"&gt;هنا&lt;/font&gt;&lt;/a&gt;&lt;font face="Tahoma"&gt;&amp;nbsp;&lt;/font&gt;&lt;/p&gt;
&lt;p align="right"&gt;&lt;font face="Tahoma"&gt;الحديث الذي قمت بعرضه حول كيفية تتبع debug شيفر 
المصدر لهيكل الـ .NET . وكيف يمكنك أن تقوم بإعداد هذا الخيار في الـ VS2008 
&lt;/font&gt;&lt;a href="http://weblogs.asp.net/scottgu/archive/2008/01/16/net-framework-library-source-code-now-available.aspx" mce_href="http://weblogs.asp.net/scottgu/archive/2008/01/16/net-framework-library-source-code-now-available.aspx"&gt;&lt;font face="Tahoma"&gt;من هنا&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p align="right"&gt;&lt;font face="Tahoma"&gt;وقد قمت أيضاً بعرض حول بناء موقع انترنت 
باستعمال الدينامكي للبيانات &lt;b&gt;ASP.NET Dynamic Data&lt;/b&gt; والذي يمكنك أن 
تتعلم عنه المزيد &lt;/font&gt;&lt;a href="http://weblogs.asp.net/scottgu/archive/2008/04/10/asp-net-dynamic-data-preview-available.aspx" mce_href="http://weblogs.asp.net/scottgu/archive/2008/04/10/asp-net-dynamic-data-preview-available.aspx"&gt;&lt;font face="Tahoma"&gt;من هنا&lt;/font&gt;&lt;/a&gt;&lt;font face="Tahoma"&gt;. وقد قمت أيضاً باستعراض استعمال 
الهيكل الجديد في &lt;b&gt;ASP.NET MVC&lt;/b&gt; ، يمكنك أن تعرف &lt;/font&gt;&lt;a href="http://weblogs.asp.net/scottgu/archive/2008/04/16/asp-net-mvc-source-refresh-preview.aspx" mce_href="http://weblogs.asp.net/scottgu/archive/2008/04/16/asp-net-mvc-source-refresh-preview.aspx"&gt;&lt;font face="Tahoma"&gt;المزيد من هنا&lt;/font&gt;&lt;/a&gt;&lt;font face="Tahoma"&gt;.&lt;/font&gt;&lt;/p&gt;
&lt;p align="right"&gt;&lt;font face="Tahoma"&gt;ولقد قمت أيضاً بعرض موقع الـ Hard Rock 
Memorabilia الذي تم بناءها باستعمال &lt;b&gt;Silverlight&lt;/b&gt; 2. يمكنك أن 
تجرب هذا التطبيق بنفسك &lt;/font&gt;&lt;a href="http://memorabilia.hardrock.com/" mce_href="http://memorabilia.hardrock.com/"&gt;&lt;font face="Tahoma"&gt;من هنا&lt;/font&gt;&lt;/a&gt;&lt;font face="Tahoma"&gt; ويمكنك أن تتعلم المويد حول تقنية 
الـ &lt;b&gt;SilverLight&lt;/b&gt; من خلال صفحة &lt;/font&gt;&lt;a href="http://weblogs.asp.net/scottgu/pages/silverlight-posts.aspx" mce_href="http://weblogs.asp.net/scottgu/pages/silverlight-posts.aspx"&gt;&lt;font face="Tahoma"&gt;الوصلات&lt;/font&gt;&lt;/a&gt;&lt;font face="Tahoma"&gt; في موقعي.&lt;/font&gt;&lt;/p&gt;
&lt;p align="right"&gt;&lt;b&gt;&lt;u&gt;&lt;font face="Tahoma"&gt;بناء المواقع باستخدم تقنية 
Silverlight &lt;/font&gt;&lt;/u&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p align="right"&gt;&lt;font face="Tahoma"&gt;إن هذه الشرائح والعروض لـ 
&lt;b&gt;Silverlight&lt;/b&gt; يمكن تنزيلها &lt;a href="http://www.scottgu.com/blogposts/orlando2008/silverlight.zip" mce_href="http://www.scottgu.com/blogposts/orlando2008/silverlight.zip"&gt;من 
هنا&lt;/a&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p align="right"&gt;&lt;font face="Tahoma"&gt;يمكنك أن تتعلم المزيد عن الـ 
&lt;b&gt;Silverlight&lt;/b&gt; من خلال &lt;font face="Tahoma"&gt;صفحة &lt;/font&gt;&lt;a href="http://weblogs.asp.net/scottgu/pages/silverlight-posts.aspx" mce_href="http://weblogs.asp.net/scottgu/pages/silverlight-posts.aspx"&gt;&lt;font face="Tahoma"&gt;الوصلات&lt;/font&gt;&lt;/a&gt;&lt;font face="Tahoma"&gt; في موقعي. وبشكل خاص أنا أوصي 
بقراءة التدريبات في هذه المشاركات &lt;a href="http://weblogs.asp.net/scottgu/archive/2008/02/22/first-look-at-silverlight-2.aspx" mce_href="http://weblogs.asp.net/scottgu/archive/2008/02/22/first-look-at-silverlight-2.aspx"&gt;هنا&lt;/a&gt; 
أو &lt;a href="http://weblogs.asp.net/scottgu/archive/2008/02/28/first-look-at-using-expression-blend-with-silverlight-2.aspx" mce_href="http://weblogs.asp.net/scottgu/archive/2008/02/28/first-look-at-using-expression-blend-with-silverlight-2.aspx"&gt;هنا&lt;/a&gt;.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p align="right"&gt;&lt;font face="Tahoma"&gt;&lt;font face="Tahoma"&gt;&lt;b&gt;&lt;u&gt;ASP.NET 
MVC&lt;/u&gt;&lt;/b&gt;&amp;nbsp;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p align="right"&gt;&lt;font face="Tahoma"&gt;إن هذه الشرائح والعروض حول الـ &lt;b&gt;ASP.NET 
MVC&lt;/b&gt; يمكن تنزيلها من &lt;a href="http://www.scottgu.com/blogposts/orlando2008/mvc.zip" mce_href="http://www.scottgu.com/blogposts/orlando2008/mvc.zip"&gt;هنا&lt;/a&gt;.&lt;/font&gt;&lt;/p&gt;
&lt;p align="right"&gt;&lt;font face="Tahoma"&gt;يمكنك أن تتعلم المزيد حول تحديث شيفرة المصدر لـ 
&lt;b&gt;ASP.NET MVC&lt;/b&gt; &lt;a href="http://weblogs.asp.net/scottgu/archive/2008/04/16/asp-net-mvc-source-refresh-preview.aspx" mce_href="http://weblogs.asp.net/scottgu/archive/2008/04/16/asp-net-mvc-source-refresh-preview.aspx"&gt;من 
هنا&lt;/a&gt;. لقد قام&amp;nbsp; Stephen Walther بالمشاركة بمجموعة جيدة من الشرائح والعروض 
التقديمية في هذا المؤتمر حول الـ ASP.NET MVC &lt;a href="http://weblogs.asp.net/stephenwalther/archive/2008/04/27/talks-asp-net-mvc-post-conference-workshop-at-asp-net-connections-orlando.aspx" mce_href="http://weblogs.asp.net/stephenwalther/archive/2008/04/27/talks-asp-net-mvc-post-conference-workshop-at-asp-net-connections-orlando.aspx"&gt;من 
هنا&lt;/a&gt;.&lt;/font&gt;&lt;/p&gt;
&lt;p align="right"&gt;&lt;font face="Tahoma"&gt;أتنى أن أكون قد ساعدتكم &lt;/font&gt;&lt;/p&gt;
&lt;p align="right"&gt;&lt;font face="Tahoma"&gt;Scott &lt;/font&gt;&lt;/p&gt;

&lt;p align="right"&gt;&lt;font face="Tahoma"&gt;للإطلاع على &lt;a href="http://weblogs.asp.net/scottgu/archive/2008/04/27/slides-from-my-asp-net-connections-orlando-talks.aspx" mce_href="http://weblogs.asp.net/scottgu/archive/2008/04/27/slides-from-my-asp-net-connections-orlando-talks.aspx"&gt;المشاركة 
الأصلية&lt;/a&gt; بتاريخ 27-4-2008.&lt;/font&gt;&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6149776" width="1" height="1"&gt;</content><author><name>IsToFix</name><uri>http://weblogs.asp.net/members/IsToFix.aspx</uri></author><category term=".NET" scheme="http://weblogs.asp.net/scottguarabic/archive/tags/.NET/default.aspx" /><category term="MVC" scheme="http://weblogs.asp.net/scottguarabic/archive/tags/MVC/default.aspx" /><category term="ASP.NET" scheme="http://weblogs.asp.net/scottguarabic/archive/tags/ASP.NET/default.aspx" /><category term="Talks" scheme="http://weblogs.asp.net/scottguarabic/archive/tags/Talks/default.aspx" /><category term="Silverlight" scheme="http://weblogs.asp.net/scottguarabic/archive/tags/Silverlight/default.aspx" /></entry><entry><title>تحديث شيفرة المصدر للإصدارة الأولية من ASP.NET MVC</title><link rel="alternate" type="text/html" href="http://weblogs.asp.net/scottguarabic/archive/2008/04/27/asp-net-mvc.aspx" /><id>http://weblogs.asp.net/scottguarabic/archive/2008/04/27/asp-net-mvc.aspx</id><published>2008-04-27T05:52:00Z</published><updated>2008-04-27T05:52:00Z</updated><content type="html">
&lt;p align="right"&gt;مؤخراً قمنا بافتتاح &lt;a href="http://www.codeplex.com/aspnet" mce_href="http://www.codeplex.com/aspnet"&gt;مشروع جديد على ASP.NET CodePlex&lt;/a&gt; والذي سوف يدعم استعمال الإصدارات الأولية مع (شيفرة المصدر Source Code) لعدد من الإضافات والمزايا الجديدة المتعلقة بالـASP.NET. الشهر الماضي استعملنا هذا المشروع لإصدار &lt;a href="http://weblogs.asp.net/scottgu/archive/2008/03/21/asp-net-mvc-source-code-now-available.aspx" mce_href="http://weblogs.asp.net/scottgu/archive/2008/03/21/asp-net-mvc-source-code-now-available.aspx"&gt;النقطة الأولى في شيفرة المصدر لـ ASP.NET MVC&lt;/a&gt;. هذه النقطة احتوت على شيفرة المصدر للإصدارة الأولية الثانية والتي شحنت خلال حدث MIX بالإضافة إلى ملفات المشاريع الخاصة بالـ Visual Studio والتي تمكنك من إصلاح وبناء هذه النسخة بنفسك.&lt;/p&gt;
  
&lt;p align="right"&gt;قبل بضعة ساعات قمنا &lt;a href="http://www.codeplex.com/aspnet/Release/ProjectReleases.aspx?ReleaseId=12640" mce_href="http://www.codeplex.com/aspnet/Release/ProjectReleases.aspx?ReleaseId=12640"&gt;بإصدار تحديث&lt;/a&gt; لكود المصدرلـ ASP.NET MVC على الموقع ، هذا التحديث &lt;b&gt;ليس&lt;/b&gt; إصدارة أولية جديدة من الـ ASP.NET MVC ، بل على العكس إنها نقطة مؤقتة تقدم نظرة إلى الوضع الحالي الذي وصلته شجرة المصدر. سوف يتم شحن الإصدار الأولية الثالثة من الـ ASP.NET MVC&amp;nbsp; خلال عدة أسابيع قادمة بعد أن يتم الانتهاء من بعض الأعمال (مزايا جديدة والتحسين على بعض المزايا الموجودة ، تحسينات على التوافق مع VS ، دعم لـ VS express edition ، التوثيق ... الخ). إذا كنت&amp;nbsp; تريد تنصيب نسخة ASP.NET MVC&amp;nbsp; خالية من العيوب مع التوثيق والدعم فعليك أن تنتظر على الأرجح لحين إصدار النسخة الرسمية من هذه الإصدارة الأولية. وأما إذا ممن يحبون أن يحصلوا على فرصة مبكرة للنظر إلى" نسخة أولية من النسخة الأولية"وأن يكون لك الفرصة في أن تبدأ باستعمال وإبداء آرائك بخصوص بعض المزايا مباشرة فالنظر إلى هذا&amp;nbsp; التحديث لشيفرة المصدر سيكون ممتعاً.&lt;/p&gt;
  &lt;h5 align="right"&gt;&lt;u&gt;التحسينات على هذا التحديث لشيفرة المصدر لـ ASP.NET MVC&lt;/u&gt;&lt;/h5&gt;  
&lt;p align="right"&gt;
&lt;/p&gt;&lt;ul&gt;   
&lt;li&gt;     &lt;div align="right"&gt;إن تحديثات هذا الأسبوع (والتي يمكنك أن تقوم بتحميلها من &lt;a href="http://www.codeplex.com/aspnet/Release/ProjectReleases.aspx?ReleaseId=12640" mce_href="http://www.codeplex.com/aspnet/Release/ProjectReleases.aspx?ReleaseId=12640"&gt;هنا&lt;/a&gt;) تحتوي على عدد من التحسينات على الـ ASP.NET MVC. بعضها يشتمل على:&lt;/div&gt;   &lt;/li&gt;
    
&lt;li&gt;     &lt;div align="right"&gt;بالإضافة إلى وجود شيفرة المصدر لـهيكل ASP.NET MVC قمنا أيضاً بوضع شيفر المصدر لاختبارات الوحدة unit test التي يمكنك استعمالها، هذه الاختبارات أعدت بواسطة الـ MSTest وهيكل &lt;a href="http://code.google.com/p/moq/" mce_href="http://code.google.com/p/moq/"&gt;Moq&lt;/a&gt; مفتوح المصدر. كما وتم وضع ملف مشروع VS2008 لاختبارات الوحدة لتسهيل بناء وتشغيل الاختبارات من خلال بيئة التطوير المتكاملة VS2008 . &lt;/div&gt;   &lt;/li&gt;
    
&lt;li&gt;     &lt;div align="right"&gt;بشكل ملحوظ تم دعم اختبارات دوال الـ Controllers . مما يمكنك من اختبار السيناريوهات الشائعة لـ Controllers دون أن يـتوجــب عليك ختبار أية objects (المزيد من التفصيل عن كيفية عمل ذلك تأتي لاحقا ) &lt;/div&gt;   &lt;/li&gt;
    
&lt;li&gt;     &lt;div align="right"&gt;مجموعة من المزايا الإضافية الجميلة وتحسينات على نظام تحويل العناوين URL routing&amp;nbsp; تساعد على سهولة الاستخدام(التفاضيل في الأسفل). &lt;/div&gt;   &lt;/li&gt;
 &lt;/ul&gt;

  &lt;h5 align="right"&gt;&lt;u&gt;إنشاء مشروع جديد لـ&amp;nbsp; ASP.NET MVC:&lt;/u&gt;&lt;/h5&gt;  
&lt;p align="right"&gt;يمنكن أن تقوم ببناء نسختتك الخاصة من ASP.NET MVC من الملفات التنفيذية assembly بتحميل شيفرة المصدر لـ MVC ومن ثم تجميعها compile على جهازك الخاص. أو بدلاً من ذلك يمكنك أن تقوم بتحميل حزمة القوالب الخاصة بـ VS لتبدأ بنسخة مبنية بشكل مسبق لتسعملها عن طريق الـ VS والذي يمكنك وبشكل سريع بأن تبني مشروع ASP.NET MVC جديداً لتستعمل آخر التحديثات. &lt;/p&gt;
  
&lt;p align="right"&gt;بعد أن تقوم بتنصيب تحديث شيفرة المصدر لـ ASP.NET MVC ، ستلاحظ وجود "برنامج ASP.NET MVC" مندرجا تحت جزء "قوالبي الخاصة" في شاشة "مشروع جديد"&lt;/p&gt;
  
&lt;p align="right"&gt;&lt;img src="http://www.scottgu.com/blogposts/aprilmvc/step1.png" mce_src="http://www.scottgu.com/blogposts/aprilmvc/step1.png"&gt;&lt;/p&gt;
  
&lt;p align="right"&gt;هذه النسخة الجديدة من "قوالبي الخاصة" التي تخص قوالب مشروع MVC ستدوم مع وجود النسخة الأولية الثانية من ASP.NET MVC (والتي ستجدها مندرجة تحت قائمة القوالب الأساسية في الشاشة ). هذا يسمح لك ببناء مشاريع جديدة وأيضاً باستعمال آخر إصدارة من من شيفرة المصدر وأيضاً باستعمال آخر إصدارة رسمية من الإصدارات المبدئية على نفس الجهاز.&lt;/p&gt;
  
&lt;p align="right"&gt;عندما تقوم بإنشاء مشروع جديد باستخدام النسخة المحدثة من قالب مشروع الـ ASP.NET MVC ، يمكنك بشكل أساسي أن تحصل على مشروع يظهر بهذا الشكل:&lt;/p&gt;
  
&lt;p align="right"&gt;&lt;img src="http://www.scottgu.com/blogposts/aprilmvc/step23.png" mce_src="http://www.scottgu.com/blogposts/aprilmvc/step23.png"&gt;&lt;/p&gt;
  
&lt;p align="right"&gt;هذا المشروع الجديد يحتوي على متحكم Controller واحد ("Home Controller ") تحت مجلد "Controllers" كما ويحتوي على قوالب لشاشاتين views&amp;nbsp; هما ("Index" و"About") تحت المجلد الفرعي "Views\Home". كلا هذان القالبان يعتمدان على شاشة رئيسية عامة واحدة لهذا الموقع تسمى ("Site.master")، كل ملفات الـ style تعرف في ملف "Site.css" وتندرج تحت مجلد "\Content".&lt;/p&gt;
  
&lt;p align="right"&gt;عندما تقوم بتشغيل البرنامج في إن خادم الويب المدمج سوف يقوم وبشكل أتوماتيكي بالبدء وسوف يظهرصفحة البداية home في الموقع.&lt;/p&gt;
  
&lt;p align="right"&gt;&lt;img src="http://www.scottgu.com/blogposts/aprilmvc/step3.png" mce_src="http://www.scottgu.com/blogposts/aprilmvc/step3.png"&gt;&lt;/p&gt;
  
&lt;p align="right"&gt;إذا قمت بالضغط على "About us" سوف تظهر محتوى شاشة "About":&lt;/p&gt;
  
&lt;p align="right"&gt;&lt;img src="http://www.scottgu.com/blogposts/aprilmvc/step5.png" mce_src="http://www.scottgu.com/blogposts/aprilmvc/step5.png"&gt;&lt;/p&gt;
  
&lt;p align="right"&gt;إن دالة المتحكم بصفحة البداية "Home controller" في هذا المشروع هي المسؤولة عن معالجة كلا العنوانين URLs وسوف يحتوي على خوارزميتين كالآتي &lt;/p&gt;
  
&lt;p align="right"&gt;&lt;img src="http://www.scottgu.com/blogposts/aprilmvc/step6.png" mce_src="http://www.scottgu.com/blogposts/aprilmvc/step6.png"&gt;&lt;/p&gt;
  
&lt;p align="right"&gt;إن قالب الصفحة الرئيسية "Site.master" يبحث عن قيمة "Title" في مجموعة&amp;nbsp; الـ ViewData ويستعملها لعرض عنصر الـ &amp;lt;title&amp;gt; في صفحة الـ HTML. إن قالب شاشة "Index" يبحث أيضاً عن قيمة "Message" ويستعملها لعرض رسالة الترحيب التي تظهر في الصفحة الرئيسية في الموقع. يمكنك وبشكل واضح من أن تخصص هذه الملفات متى شئت.&lt;/p&gt;
  
&lt;p align="right"&gt;&amp;nbsp;&lt;/p&gt;
  &lt;h5 align="right"&gt;&lt;u&gt;Controller Changes with this ASP.NET MVC Drop نقطة&amp;nbsp; تغيير المتحكم Controller في الـ ASP.NET MVC:&lt;/u&gt;&lt;/h5&gt;  
&lt;p align="right"&gt;إذا كنت تقرأ شيفرة المصدر أعلاه فسوف تلاحظ وبشكل قريب التغيير الذي طرأ على الطريقة التي صنعت بها دوال الـ Controller باستعمال القطرة الجديدة لـتحديث شيفرة المصدر لـ ASP.NET MVC. باستعمال الإصدارة الأولية الثانية من ASP.NET MVC سوف تكون خوارزميات المتحكم Home Controller تبدو بهذا الشكل&lt;/p&gt;
  
&lt;p align="right"&gt;&lt;img src="http://www.scottgu.com/blogposts/aprilmvc/step8.png" mce_src="http://www.scottgu.com/blogposts/aprilmvc/step8.png"&gt;&lt;/p&gt;
  
&lt;p align="right"&gt;إن فريق الـ MVC&amp;nbsp; يتختبرون بعض المزايا الجديدة في قطرة هذا الأسبوع كما ويحاولون في بعض الأفكار الجديدة:&lt;/p&gt;
  
&lt;ol&gt;   
&lt;li&gt;     &lt;div align="right"&gt;إن خوارزميات العملAction&amp;nbsp; في دوال المتحكم أصبحت الآن بشكل اساسي ترجع كائن "ActionResult" بدلاً من لا شيء void. إن كائن الـ، Action Result هذا يحدد نتيجة العمل (إظهار شاشة ، توجيه إلى عنوان URL آخر ، أو أي عمل آخر توجيه/تنفيذ ... الخ ). &lt;/div&gt;   &lt;/li&gt;
    
&lt;li&gt;     &lt;div align="right"&gt;إن الخوارزميات المساعدة : RenderView، RedirectToAction،Redirect الموجود في الدالة المتحكم Controller الأساسية base أصبحت ترجع كائن ActionResult يمكن معالجته بشكل أوسع أو إرجاعه إلى خوارزميات العمل. &lt;/div&gt;   &lt;/li&gt;
    
&lt;li&gt;     &lt;div align="right"&gt;إن خوارزمية RenderView يمكن أن تدعى بدون الحاجة إلى تمرير اسم قالب الشاشة الذي يراد إظهاره بشكل خارجي. عندما تسقط اسم القالب فإن خوارزمية RenderView سوف تستعمل خوارزمية العمل على اساس أنها هي اسم الشاشة التي يراد إظهارها. فقط قم باستدعاء RenderView بدون تمرير parameters&amp;nbsp; لخوارزمية العمل "About" سوق يقوم بعمل نفس الشيء كما لو استعملت RenderView("About") &lt;/div&gt;   &lt;/li&gt;
 &lt;/ol&gt;
  
&lt;p align="right"&gt;أصبح من السهل جداً أن يتم تحديث دوال Controller الموجودة في الإصدارة الابتدائية الثانية لتقوم باستخدام هذا النمط الجديد (فقط قم تبغيير Void إلى ActionResult وقم بإضافة جملة return في بداية مناداة خوارزمية المساعدة RenderView أو RedirectToAction ).&lt;/p&gt;
  &lt;h5 align="right"&gt;&lt;u&gt;إرجاع كائنات ActionResult من خوارزميات العمل :&lt;/u&gt;&lt;/h5&gt;  
&lt;p align="right"&gt;إذن لماذ تم تغيير خوارزميات دوال التحكم لتقوم بإرجاع كائنات ActionResults بدلاً من لا شيء void ؟ إن عدداً من هيكليات Web-MVC تستعملطريقة&amp;nbsp; إرجاع الكائن (مثل Django,Tapestry و هيكليات أخرى) كما وجدنا فوائد أخرى يمكن تحقيقها لـ ASP.NEt MVC مثل:&lt;/p&gt;
  
&lt;ol&gt;   
&lt;li&gt;     &lt;div align="right"&gt;إنها توفر طريقة أسهل لدعم اختبارات الوحدة على دوال التحكم. لست بحاجة بعد الآن أن تقوم بعمل mock للخوارزميات في كائن الـ response أو كائنات الـ ViewEngine&amp;nbsp; لتقوم بعمل اختبارات الوحدة على أداء خوارزميات العمل. بدلاً من ذلك يمكنك وبكل بساطة أن تقوم بعمل assert للشروط التي تستخدم كائن الـ ActionResult العائد من مناداة وارزمية الهمل ضمن اختبار الوحدة (سوف يتم شرح ذلك في المقطع القادم). &lt;/div&gt;   &lt;/li&gt;
    
&lt;li&gt;     &lt;div align="right"&gt;يمكمك أن تجعل هدف منطق المتحكم Controller أوضح قليلاً وأن يصبح بشكل خارجي أكثر في بعض السيناريوهات عندما يكون هناك احتمال لأن يعود نتيجتين مختلفتين بالاعتماد على بعض الشروط (فمثلاً إعادة التحويل إذا حصل الشرط &lt;b&gt;أ&lt;/b&gt; أو إظهارالشاشة إذا لم يحصل هذا الشرط ). هذا يمكنك من قراءة وتتبع خوارزميات عمل معقدة في المتحكم. &lt;/div&gt;   &lt;/li&gt;
    
&lt;li&gt;     &lt;div align="right"&gt;إنه يمكنك من تفعيل بعض السيناريوهات المعقة واللطيفة عندما يمكن لـ FilterActionAttribute أن يأخذ نتيجة خوارزمية العمل ويقوم بتعجيل وتحويل هذه النتيجة قبل أن يككل تشغيلها. فمثلاُ أمر"تصفح" في متحكم "ProudcutCatalog" يمكن أن يقوم بإرجاع RenderActionResult التي تحدد أنها يجب أن تقوم بعرضا شاشة قائمة المنتجات. إن FilterActionAttribute يمكنك وبشكل تعريفي Declaratively أن يعرف في دالة المتحكم ومن ثم يمكن أن تكون هناك فرصة لتخصيص قالب شاشة عرض القائمة التي يراد عرضها من أن تكون من نوه html.aspx أو list-xml.aspx بالاعتماد على النوع المفضل من الوسائط المتعددة MIME&amp;nbsp; لدى المستخدم. إن وجود العديد من FilterActionAttribute&amp;nbsp; يمكنك وبشكل اختياري أن تسلسلها لتتبع النتائج من واحدة للأخرى. &lt;/div&gt;   &lt;/li&gt;
    
&lt;li&gt;     &lt;div align="right"&gt;إنه يوفر ميكانيكة للتوسع extensibility للناس(بما فيهم أنفسنا) ليتمكنوا من إضافة بعض المزايا في المستقبل. إن أنواع ActionResult يمكنها وبكل سهولة أن تخلق بالوراثة من دوال الأساس ActionResult&amp;nbsp; ويمكن Override خورازمية "ExecuteResult". وسوف يكون من السهل جداً أن تنشئ خورازمية مساعدة "RenderFile()" فمثلاُ إن مطور البرنامج يمكنه أن يكتب أمراً action ليرجع كائنا جديداً من "FileActionResult". &lt;/div&gt;   &lt;/li&gt;
    
&lt;li&gt;     &lt;div align="right"&gt;سوف يكون من السعل أن تقوم ببعض السناريوهات التنفيذية الغير متزامنة في المستقبل ، إن خوارزميات العمل سوف تتكمكن من إرجاع كائن AsyncActionResult الذي يدل على أن هذه الخوارزمية تتنظر في عملية شبكة وأنها تريد منح الـ thread الفاعل لـ ASP.NET بحيث يمكنها أن تطبق خوارزميات أخرى حتى تكتمل خوارزمية الشبكة. هذاي يمكن المطورين من أن يتجنبوا توقف الـ threads على الخادم ويقوموا بدعم شيفرة فعالة وقابلة للتطويرو والتوسع. &lt;/div&gt;   &lt;/li&gt;
 &lt;/ol&gt;
  
&lt;p align="right"&gt;إن بعضا من اهداف هذه المراحعة المرحلية هو أن تعطي الناس فرصة للعمل على هذا التوجه الجديد وعمل بعض البرامج الحقيقة والتعلم في إطار هذا التوجه.&lt;/p&gt;
  
&lt;p align="right"&gt;سوف نقوم بعمل دالة اساسية جديدة للمتحكم مما يجعل من الممكن استعمالها إذا كنت تفضل العمل على توجه أوامر void. إننا تأنينا في عدم إدراج هذا البديل في نقطة المراجعة هذه لأن هذا سوف يثبط بعض الناس عن استعمال توجه "ActionResult" مما يمنعنا من الاستفاة من مراجعاتهم الناتجة عن تطبيقه في برامجهم.&lt;/p&gt;
  
&lt;p align="right"&gt;&amp;nbsp;&lt;/p&gt;
  &lt;h5 align="right"&gt;&lt;u&gt;كيف تختبر دوال العمل في دوال المتحكم &lt;/u&gt;&lt;/h5&gt;  
&lt;p align="right"&gt;لقد وضحت آنفاً أن توجه الـ ActionResult الجديد يمكنك من أن تقوم بعمل اختبارات الوحدة على دوال المتحكم بشكل أسهل (ويجنبك الحاجة إلى أن تقوم Mock في بعض السيناريوهات) دعنا نتحدث عن هذا الموضوع من خلال هذا المثال العملي.&lt;/p&gt;
  
&lt;p align="right"&gt;لنفترض دالة متحكم بالأرقام بسيطة NumberController:&lt;/p&gt;
  
&lt;p align="right"&gt;&lt;img src="http://www.scottgu.com/blogposts/aprilmvc/step22.png" mce_src="http://www.scottgu.com/blogposts/aprilmvc/step22.png"&gt;&lt;/p&gt;
  
&lt;p align="right"&gt;إن دالة المتحكم هذه تحتوي على خوارزمية عمل "IsEvenNumber" والتي تأخذ رقماً على شكل قيمة للعنوان URL argument. إن خوارزمية العمل IsEvenNumber تفحص أولاً إذا كان الرقم سالباً -في حالة كهذه لتحول المستخدم إلى صفحة خطأ- إذا كان الرقم موجباً فإنها تحدد إذا كان الرقم زوجياً أم فردياً ، وتقوم بعرض شاشة تختوي على الرسالة المناسبة.&lt;/p&gt;
  
&lt;p align="right"&gt;&lt;img src="http://www.scottgu.com/blogposts/aprilmvc/step11.png" mce_src="http://www.scottgu.com/blogposts/aprilmvc/step11.png"&gt;&lt;/p&gt;
  
&lt;p align="right"&gt;لكتابة اختبار الوخد خوارزمية العمل IsEvenNumber فإن هذا سهل جداً ويعود الفضل في ذلك إلى ActionResult. في الأسفل مثال على اختبار الوحدة التي يتحقق من أن حصول عملية http صحيحة لتحويل المستخدم عندما يكون الرقم الذي أدخله المستخدم سالباً فمثلاً (/Number/IsEvenNumber/-1) تنتج:&lt;/p&gt;
  
&lt;p align="right"&gt;&lt;img src="http://www.scottgu.com/blogposts/aprilmvc/step17.png" mce_src="http://www.scottgu.com/blogposts/aprilmvc/step17.png"&gt;&lt;/p&gt;
  
&lt;p align="right"&gt;لاحظ في الأعلى كيف أننا لم نحتج إلى عمل Mock لأي من الكائنات لننجح في اختبار خوارزمية العمل الخاصة بنا. بلاً من ذلك وبكل بساطة قمنا بإنشاء كائن جديد من دالة المتحكم ونادينا خوارزمية العمل مباشرة وقمنا بتمرير الرقم السالب لها وقمنا بإعطاء النتيجة القادم منها إلى تغير باسم "result". ولقد قمت باستعمال نمط "as type" المتوفر الـ C# لتحويل النتيجة إلى دالة HttpRedirectResult.&lt;/p&gt;
  
&lt;p align="right"&gt;إن من الجميل في الـ C# أن تستعمل الكلمة المفتاحية "as" لأنها سوف تقوم بتخزين القيمة كـ null في حالة ان التحويل لم يكن صالحاً بدلاً من إحداث تجاوز exception (فمثلاً إذا كانت خوارزمية العمل ترجع RenderViewResult بدلاً من ذلك). هذا يعني أنه من الممكن وبسهولة أن تقوم بإدارج فحص جازم في اختبار الوحدة ليتحقق من أن النتيجة ليست null للتحقق من أنHttp لإعادة تحويل العنوان سوف تحصل. ويمكن إضافة فحص جازم آخر للتحقق من أن هذا هو العنوان URL الصحيح الذي سوف يتم التحويل إليه.&lt;/p&gt;
  
&lt;p align="right"&gt;إن سيناريو الاختبار هذا عندما لا يتم تمرير أصفار سوف ينجح بشكل سهل أيضاً. لنحقق هذا وبشكل جيد سوف نقوم بإنشاء خوارزميتين للاختبار واحدة لفحص الأرقام الزوجية وأخرى لفحص الأرقام الفردية. في كلا الفحصين سوف نعمل على الجزم بانRenderViewResult سوف تكون هي النتيجة وأن نتأكد من الرسالة التي سوف يتم تمريرها إلى الـ ViewData المرتبطة بالشاشة.&lt;/p&gt;
  
&lt;p align="right"&gt;&lt;img src="http://www.scottgu.com/blogposts/aprilmvc/step31.png" mce_src="http://www.scottgu.com/blogposts/aprilmvc/step31.png"&gt;&lt;/p&gt;
  
&lt;p align="right"&gt;يمكننا من خلال استعمال أمر الـ "Run Test " الموجود في القائمة التي سوف تظهر عندما ننقر على الزر الأيمن للماوس على ملف الاختبار في بيئة VS2008 &lt;/p&gt;
  
&lt;p align="right"&gt;&lt;img src="http://www.scottgu.com/blogposts/aprilmvc/step20.png" mce_src="http://www.scottgu.com/blogposts/aprilmvc/step20.png"&gt;&lt;/p&gt;
  
&lt;p align="right"&gt;هذا الأمر سوف ينفذ خوارزميات الاختبار الثلاثة&amp;nbsp; التي قمنا بكتابتها وسف تتنفذ في الذاكرة ولن يكون هناك حاجة لوجود خادم ويب وسوف يظهر التقرير الذي يظهر بأن خوارزمية NumberController.IsEvenNumber تنفذ بالشكل الصحيح.&lt;/p&gt;
  
&lt;p align="right"&gt;&lt;img src="http://www.scottgu.com/blogposts/aprilmvc/step21.png" mce_src="http://www.scottgu.com/blogposts/aprilmvc/step21.png"&gt;&lt;/p&gt;
  
&lt;p align="right"&gt;&lt;i&gt;ملاحظة: في قطرة هذا الأسبوع سوف تحتاج إلى استعمال mocking لتنجح في اختبار خاصية TempData في المتحكم. إن خطتنا تقضي بعدم الحاجة إلى عمل mock أثناء الاختبار عندما تصدر الإصدارة الأولية الثالثة من ASP.NET MVC للأسابيع القادمة.&lt;/i&gt;&lt;/p&gt;
  &lt;h5 align="right"&gt;&lt;u&gt;الخوارزمية المساعدة MapRoute&lt;/u&gt;&lt;/h5&gt;  
&lt;p align="right"&gt;إن قواعد إعادة توجيه العناوين URL في الـ ASP.NET MVC بشكل اساسي توضح في خوارزمية الـ RegisterRoutes في ملف دالة الـ Global.asax&lt;/p&gt;
  
&lt;p align="right"&gt;باستعمال النسخ الأولية لـ ASP.NET MVC الأولى والثانية فإن إعادة التحويل routes كانت تضاف إلى مجموع الـ routs عن طريق خلق كائنRoute جديد وربطه مباشرة بدالة MvcRouteHandler ومن ثم بتعريف قيم الخصائص المناسبة فيه ليتم تعريف قواعد إعادة التحويل &lt;/p&gt;
  
&lt;p align="right"&gt;&lt;img src="http://www.scottgu.com/blogposts/aprilmvc/step27.png" mce_src="http://www.scottgu.com/blogposts/aprilmvc/step27.png"&gt;&lt;/p&gt;
  
&lt;p align="right"&gt;إن الشيفرة أعلاه سوف تستمر في العمل في المرات القادمة ، علماً أن سوف يمكنك أيضاً من تستفيد من خوارزمية المساعدة MapHelper الجديدة والتي سوف تقدم طريق أسهل لعمل نفس الشيء. في الأسفل يمكن النظر إلى الطريق الرسمية لعمل إعادة توجيه لـ URL عن طريق الإعداد الأساسي عندما يتم إنشاء مشروع MVC جديد (وهذه الشيفرة تستبدل الشيفرة السابقة أعلاه)&lt;/p&gt;
  
&lt;p align="right"&gt;&lt;img src="http://www.scottgu.com/blogposts/aprilmvc/step26.png" mce_src="http://www.scottgu.com/blogposts/aprilmvc/step26.png"&gt;&lt;/p&gt;
  
&lt;p align="right"&gt;إن خوارزمية العمل MapRoute المساعدة تتوفر بعدة صيغ بعضها يحتاج إلى تمرير متغيرين أو ثلاث أو أربع متغيرات مثل (route name, URL syntax, URL parameter default, and URL parameter regular expression constraints).&amp;nbsp; &lt;/p&gt;
  
&lt;p align="right"&gt;يمكنك مناداة MapRoute قدر ما تشاء من المرات التي تريد أن تسجل فيها أسماء مختلفة من إعادة التحويل route في البرنامج. فمثلاُ بالإضافة إلى القاعدة الأساسية يمكنك أن تضيف قاعدة لإعادة تحويل "Proudcts-Brows" بهذا الاسم مثل الآتي:&lt;/p&gt;
  
&lt;p align="right"&gt;&lt;img src="http://www.scottgu.com/blogposts/aprilmvc/step28.png" mce_src="http://www.scottgu.com/blogposts/aprilmvc/step28.png"&gt;&lt;/p&gt;
  
&lt;p align="right"&gt;عندها يمكن أن نرجع إلى هذه القاعدة "Products-Browse" بشكل خارجي من خلال دوال المتحكم والشاشات views&amp;nbsp; عندما نريد أن ننشئ عنواناً لها URL. فمثلاً يمكنك أن تستعمل مساعد الشاشة Html.RouteLink لتحدد أنه يمكن أن توصل إلى إعادة التحويل "Products-Browse" وأن تمرر لها متغير لعنوان التصنيف باسم"Food" باستعمال الشيفرة في الشاشة مثلما يظهر في القالب هنا:&lt;/p&gt;
  
&lt;p align="right"&gt;&lt;img src="http://www.scottgu.com/blogposts/aprilmvc/step29.png" mce_src="http://www.scottgu.com/blogposts/aprilmvc/step29.png"&gt;&lt;/p&gt;
  
&lt;p align="right"&gt;إن مساعد الشاشة هذا يسوف يمكنك من أن تتوصل ‘لى نظام إعادة التحويل وأن تظهرعنوان الوصلة التشعبية HTML hyperlink URL الملائم (لاحظ كيف أنه تم اقتاطع متغير اسم الصنف من العنوان بشكل اتوماتيكي باستعمال قاعدة التحويل )&lt;/p&gt;
  
&lt;p align="right"&gt;&lt;img src="http://www.scottgu.com/blogposts/aprilmvc/step30.png" mce_src="http://www.scottgu.com/blogposts/aprilmvc/step30.png"&gt;&lt;/p&gt;
  
&lt;p align="right"&gt;&lt;i&gt;ملاحظة: في قطرة هذا الاسبوع أن تحتاج لأن تمرر المتحكم ومتغيرات الأمر (بالإضافة إلى متغير اسم الصنف) إلى الخوارزمية المساعدة&amp;nbsp; Hrml.RouteLink ليتمكن من أنتاج العنوان الصحيح. إن الإصدارة الأولية الثالثة لـ ASP.NET MVC في الأسابيع القادمة سوف لن تحتاج إلى هذا وسوف تسمح لك باستعمال Html.RouteLink مثلما فعلت في المثال أعلاه بالضبط لإنتاج إعادة التحويل.&lt;/i&gt;&lt;/p&gt;
  &lt;h5 align="right"&gt;&lt;u&gt;مزايا إعادة تحويل عناوين &lt;/u&gt;&lt;/h5&gt;  
&lt;p align="right"&gt;قطرة شيفرة الـ MVC لهذا الأسبوع تدعم أيضاً مزايا تحويل عناوين جديدة. يمكنك إضافة هذه الرموز ".",";","," وأية رموز أخرى ترغب أن تكون ضمن قواعد إعادة التوجيه. فمثلاً إن استعمال فاصل "-" يمكنك من أن تترجم قيم اللغة&lt;span style="font-size: 10pt; font-family: 'Arial','sans-serif';"&gt;language&lt;/span&gt; والخصائص المحلية &lt;span style="font-size: 10pt; font-family: 'Arial','sans-serif';"&gt;locale&lt;/span&gt; من العنوان URL بشكل منفصل مثل الآتي:&lt;img src="http://www.scottgu.com/blogposts/aprilmvc/step32.png" mce_src="http://www.scottgu.com/blogposts/aprilmvc/step32.png"&gt;&lt;/p&gt;
  
&lt;p align="right"&gt;إن هذا سوف يقوم بتمرير متغيرات "اللغة " و"الخصائص المحلية" و"الصنف" إلى دالة المتحكم ProductsController استعرض خوارزميات العمل عندما يتم تشغيلها:&lt;/p&gt;
  &lt;div align="right"&gt;   
&lt;table class="MsoNormalTable" align="right" border="1" cellpadding="0" cellspacing="0" height="325" width="701"&gt;&lt;tbody&gt;       
&lt;tr style=""&gt;         
&lt;td style="padding: 1.5pt;" valign="top"&gt;           
&lt;p class="MsoNormal"&gt;&lt;u&gt;&lt;span style="font-size: 10pt;" arial?,?sans-serif?;="arial?,?sans-serif?;" mso-fareast-font-family:="mso-fareast-font-family:" ?times="?Times" new="New" roman??="Roman??"&gt;قاعدة إعادة توجيه العنوان URL&lt;/span&gt;&lt;/u&gt;&lt;/p&gt;
         &lt;/td&gt;
          
&lt;td style="padding: 1.5pt;" valign="top"&gt;           
&lt;p class="MsoNormal"&gt;&lt;u&gt;&lt;span style="font-size: 10pt;" arial?,?sans-serif?;="arial?,?sans-serif?;" mso-fareast-font-family:="mso-fareast-font-family:" ?times="?Times" new="New" roman??="Roman??"&gt;مثال على العنوان URL &lt;/span&gt;&lt;/u&gt;&lt;/p&gt;
         &lt;/td&gt;
          
&lt;td style="padding: 1.5pt;" valign="top"&gt;           
&lt;p class="MsoNormal"&gt;&lt;u&gt;&lt;span style="font-size: 10pt;" arial?,?sans-serif?;="arial?,?sans-serif?;" mso-fareast-font-family:="mso-fareast-font-family:" ?times="?Times" new="New" roman??="Roman??"&gt;المتغيرات التم تم تمريرها إلى خوارزمية العمل &lt;/span&gt;&lt;/u&gt;&lt;/p&gt;
         &lt;/td&gt;
       &lt;/tr&gt;
        
&lt;tr style=""&gt;         
&lt;td style="padding: 1.5pt;" valign="top"&gt;           
&lt;p class="MsoNormal"&gt;&lt;span style="font-size: 10pt;" arial?,?sans-serif?;="arial?,?sans-serif?;" mso-fareast-font-family:="mso-fareast-font-family:" ?times="?Times" new="New" roman??="Roman??"&gt;{language}-{locale}/products/browse/{category}&lt;/span&gt;&lt;span style="" mso-fareast-font-family:="mso-fareast-font-family:" ?times="?Times" new="New" roman??="Roman??" calibri?,?sans-serif?;="calibri?,?sans-serif?;"&gt; &lt;/span&gt;&lt;/p&gt;
            
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
            
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
            
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
         &lt;/td&gt;
          
&lt;td style="padding: 1.5pt; width: 148.5pt;" valign="top" width="198"&gt;           
&lt;p class="MsoNormal"&gt;&lt;span style="font-size: 10pt;" arial?,?sans-serif?;="arial?,?sans-serif?;" mso-fareast-font-family:="mso-fareast-font-family:" ?times="?Times" new="New" roman??="Roman??"&gt;/en-us/products/browse/food&lt;/span&gt;&lt;span style="" mso-fareast-font-family:="mso-fareast-font-family:" ?times="?Times" new="New" roman??="Roman??" calibri?,?sans-serif?;="calibri?,?sans-serif?;"&gt; &lt;/span&gt;&lt;/p&gt;
            
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
            
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
            
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
         &lt;/td&gt;
          
&lt;td style="padding: 1.5pt; width: 266.25pt;" valign="top" width="355"&gt;           
&lt;p class="MsoNormal"&gt;&lt;span style="font-size: 10pt;" arial?,?sans-serif?;="arial?,?sans-serif?;" mso-fareast-font-family:="mso-fareast-font-family:" ?times="?Times" new="New" roman??="Roman??"&gt;language=en, locale=us, category=food&lt;/span&gt;&lt;span style="" mso-fareast-font-family:="mso-fareast-font-family:" ?times="?Times" new="New" roman??="Roman??" calibri?,?sans-serif?;="calibri?,?sans-serif?;"&gt; &lt;/span&gt;&lt;/p&gt;
            
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
            
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
            
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
         &lt;/td&gt;
       &lt;/tr&gt;
        
&lt;tr style=""&gt;         
&lt;td style="padding: 1.5pt; width: 222pt;" valign="top" width="296"&gt;           
&lt;p class="MsoNormal"&gt;&lt;span style="" mso-fareast-font-family:="mso-fareast-font-family:" ?times="?Times" new="New" roman??="Roman??" calibri?,?sans-serif?;="calibri?,?sans-serif?;"&gt;&amp;nbsp; &lt;/span&gt;&lt;/p&gt;
            
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
            
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
            
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
         &lt;/td&gt;
          
&lt;td style="padding: 1.5pt; width: 148.5pt;" valign="top" width="198"&gt;           
&lt;p class="MsoNormal"&gt;&lt;span style="font-size: 10pt;" arial?,?sans-serif?;="arial?,?sans-serif?;" mso-fareast-font-family:="mso-fareast-font-family:" ?times="?Times" new="New" roman??="Roman??"&gt;/en-uk/products/browse/food&lt;/span&gt;&lt;span style="" mso-fareast-font-family:="mso-fareast-font-family:" ?times="?Times" new="New" roman??="Roman??" calibri?,?sans-serif?;="calibri?,?sans-serif?;"&gt; &lt;/span&gt;&lt;/p&gt;
            
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
            
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
            
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
         &lt;/td&gt;
          
&lt;td style="padding: 1.5pt; width: 266.25pt;" valign="top" width="355"&gt;           
&lt;p class="MsoNormal"&gt;&lt;span style="font-size: 10pt;" arial?,?sans-serif?;="arial?,?sans-serif?;" mso-fareast-font-family:="mso-fareast-font-family:" ?times="?Times" new="New" roman??="Roman??"&gt;language=en, locale=uk, category=food&lt;/span&gt;&lt;span style="" mso-fareast-font-family:="mso-fareast-font-family:" ?times="?Times" new="New" roman??="Roman??" calibri?,?sans-serif?;="calibri?,?sans-serif?;"&gt; &lt;/span&gt;&lt;/p&gt;
            
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
            
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
            
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
         &lt;/td&gt;
       &lt;/tr&gt;
     &lt;/tbody&gt;&lt;/table&gt;
 &lt;/div&gt;  

&lt;p align="right"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p align="right"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p align="right"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p align="right"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p align="right"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p align="right"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p align="right"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p align="right"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p align="right"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p align="right"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p align="right"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p align="right"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p align="right"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p align="right"&gt;أو يمكنك استعمال "." لامتداد الملف في نهاية العنوان لتحدد هل يجب أن تظهر النتيجة بشكل ملف xml أو html &lt;img src="http://www.scottgu.com/blogposts/aprilmvc/step33.png" mce_src="http://www.scottgu.com/blogposts/aprilmvc/step33.png"&gt;&lt;/p&gt;
  
&lt;p align="right"&gt;هذا سوف يكون بتمرير متغييرات "category" و"format" إلى متحكم المنتجات ProductsController ، استعرض خوارزميات التشغيل عند تشغيلها:&lt;/p&gt;
  &lt;div align="right"&gt;   
&lt;table class="MsoNormalTable" align="right" border="1" cellpadding="0" cellspacing="0" height="325" width="658"&gt;&lt;tbody&gt;       
&lt;tr style=""&gt;         
&lt;td style="padding: 1.5pt; width: 222.75pt;" valign="top" width="297"&gt;           
&lt;p class="MsoNormal"&gt;&lt;u&gt;&lt;span style="font-size: 10pt; font-family: 'Arial','sans-serif';"&gt;مثال على العنوان URL &lt;/span&gt;&lt;/u&gt;&lt;/p&gt;
         &lt;/td&gt;
          
&lt;td style="padding: 1.5pt; width: 148.5pt;" valign="top" width="198"&gt;           
&lt;p class="MsoNormal"&gt;&lt;u&gt;&lt;span style="font-size: 10pt; font-family: 'Arial','sans-serif';"&gt;مثال على العنوان URL &lt;/span&gt;&lt;/u&gt;&lt;/p&gt;
         &lt;/td&gt;
          
&lt;td style="padding: 1.5pt; width: 266.25pt;" valign="top" width="355"&gt;           
&lt;p class="MsoNormal"&gt;&lt;u&gt;&lt;span style="font-size: 10pt; font-family: 'Arial','sans-serif';"&gt;المتغيرات التم تم تمريرها إلى خوارزمية العمل &lt;/span&gt;&lt;/u&gt;&lt;/p&gt;
         &lt;/td&gt;
       &lt;/tr&gt;
        
&lt;tr style=""&gt;         
&lt;td style="padding: 1.5pt; width: 222.75pt;" valign="top" width="297"&gt;           
&lt;p class="MsoNormal"&gt;&lt;span style="font-size: 10pt;" arial?,?sans-serif?;="arial?,?sans-serif?;" mso-fareast-font-family:="mso-fareast-font-family:" ?times="?Times" new="New" roman??="Roman??"&gt;products/browse/{category}.{format}&lt;/span&gt;&lt;span style="" mso-fareast-font-family:="mso-fareast-font-family:" ?times="?Times" new="New" roman??="Roman??" calibri?,?sans-serif?;="calibri?,?sans-serif?;"&gt; &lt;/span&gt;&lt;/p&gt;
            
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
            
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
            
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
         &lt;/td&gt;
          
&lt;td style="padding: 1.5pt; width: 148.5pt;" valign="top" width="198"&gt;           
&lt;p class="MsoNormal"&gt;&lt;span style="font-size: 10pt;" arial?,?sans-serif?;="arial?,?sans-serif?;" mso-fareast-font-family:="mso-fareast-font-family:" ?times="?Times" new="New" roman??="Roman??"&gt;/products/browse/food.xml&lt;/span&gt;&lt;span style="" mso-fareast-font-family:="mso-fareast-font-family:" ?times="?Times" new="New" roman??="Roman??" calibri?,?sans-serif?;="calibri?,?sans-serif?;"&gt; &lt;/span&gt;&lt;/p&gt;
            
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
            
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
            
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
         &lt;/td&gt;
          
&lt;td style="padding: 1.5pt; width: 266.25pt;" valign="top" width="355"&gt;           
&lt;p class="MsoNormal"&gt;&lt;span style="font-size: 10pt;" arial?,?sans-serif?;="arial?,?sans-serif?;" mso-fareast-font-family:="mso-fareast-font-family:" ?times="?Times" new="New" roman??="Roman??"&gt;category=food, format=xml&lt;/span&gt;&lt;span style="" mso-fareast-font-family:="mso-fareast-font-family:" ?times="?Times" new="New" roman??="Roman??" calibri?,?sans-serif?;="calibri?,?sans-serif?;"&gt; &lt;/span&gt;&lt;/p&gt;
            
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
            
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
            
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
         &lt;/td&gt;
       &lt;/tr&gt;
        
&lt;tr style=""&gt;         
&lt;td style="padding: 1.5pt; width: 222pt;" valign="top" width="296"&gt;           
&lt;p class="MsoNormal"&gt;&lt;span style="" mso-fareast-font-family:="mso-fareast-font-family:" ?times="?Times" new="New" roman??="Roman??" calibri?,?sans-serif?;="calibri?,?sans-serif?;"&gt;&amp;nbsp; &lt;/span&gt;&lt;/p&gt;
            
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
            
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
            
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
         &lt;/td&gt;
          
&lt;td style="padding: 1.5pt; width: 148.5pt;" valign="top" width="198"&gt;           
&lt;p class="MsoNormal"&gt;&lt;span style="font-size: 10pt;" arial?,?sans-serif?;="arial?,?sans-serif?;" mso-fareast-font-family:="mso-fareast-font-family:" ?times="?Times" new="New" roman??="Roman??"&gt;/products/browse/food.html&lt;/span&gt;&lt;span style="" mso-fareast-font-family:="mso-fareast-font-family:" ?times="?Times" new="New" roman??="Roman??" calibri?,?sans-serif?;="calibri?,?sans-serif?;"&gt; &lt;/span&gt;&lt;/p&gt;
            
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
            
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
            
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
         &lt;/td&gt;
          
&lt;td style="padding: 1.5pt; width: 266.25pt;" valign="top" width="355"&gt;           
&lt;p class="MsoNormal"&gt;&lt;span style="font-size: 10pt;" arial?,?sans-serif?;="arial?,?sans-serif?;" mso-fareast-font-family:="mso-fareast-font-family:" ?times="?Times" new="New" roman??="Roman??"&gt;category=food, format=html&lt;/span&gt;&lt;span style="" mso-fareast-font-family:="mso-fareast-font-family:" ?times="?Times" new="New" roman??="Roman??" calibri?,?sans-serif?;="calibri?,?sans-serif?;"&gt; &lt;/span&gt;&lt;/p&gt;
            
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
            
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
            
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
         &lt;/td&gt;
       &lt;/tr&gt;
     &lt;/tbody&gt;&lt;/table&gt;
 &lt;/div&gt;  &lt;div align="right"&gt;&amp;nbsp;&lt;/div&gt;  &lt;div align="right"&gt;&amp;nbsp;&lt;/div&gt;  &lt;div align="right"&gt;&amp;nbsp;&lt;/div&gt;  &lt;div align="right"&gt;&amp;nbsp;&lt;/div&gt;  &lt;div align="right"&gt;&amp;nbsp;&lt;/div&gt;  &lt;div align="right"&gt;&amp;nbsp;&lt;/div&gt;  &lt;div align="right"&gt;&amp;nbsp;&lt;/div&gt;  &lt;div align="right"&gt;&amp;nbsp;&lt;/div&gt;  &lt;div align="right"&gt;&amp;nbsp;&lt;/div&gt;  
&lt;p align="right"&gt;&amp;nbsp;&lt;/p&gt;

&lt;p align="right"&gt;&amp;nbsp;&lt;/p&gt;

&lt;p align="right"&gt;&amp;nbsp;&lt;/p&gt;

&lt;p align="right"&gt;&amp;nbsp;&lt;/p&gt;

&lt;p align="right"&gt;&amp;nbsp;&lt;/p&gt;

&lt;p align="right"&gt;&amp;nbsp;&lt;/p&gt;

&lt;p align="right"&gt;إن الإصدارة الأولية الثانية من ASP.NET MVC قدمت قواعد إعادة توجيه wildcard فمثلاً يمكنك أن تحدد في إحدى هذه القواعد كل ما تبقى من مكونات URI على أساس أنها متغيرات لخوارزمية عمل:&lt;/p&gt;
  
&lt;p align="right"&gt;&lt;img src="http://www.scottgu.com/blogposts/aprilmvc/step34.png" mce_src="http://www.scottgu.com/blogposts/aprilmvc/step34.png"&gt;&lt;/p&gt;
  
&lt;p align="right"&gt;هذا سوف يمرر متغير "contentUrl" إلى خوارزمية عمل&amp;nbsp; WikiController.DisplayPage عندما يتم تشغيلها:&lt;/p&gt;
  &lt;div align="right"&gt;   
&lt;table class="MsoNormalTable" align="right" border="1" cellpadding="0" cellspacing="0" height="325" width="717"&gt;&lt;tbody&gt;       
&lt;tr style=""&gt;         
&lt;td style="padding: 1.5pt; width: 222.75pt;" valign="top" width="297"&gt;           
&lt;p class="MsoNormal"&gt;&lt;u&gt;&lt;span style="font-size: 10pt; font-family: 'Arial','sans-serif';"&gt;مثال على العنوان URL &lt;/span&gt;&lt;/u&gt;&lt;/p&gt;
         &lt;/td&gt;
          
&lt;td style="padding: 1.5pt; width: 148.5pt;" valign="top" width="198"&gt;           
&lt;p class="MsoNormal"&gt;&lt;u&gt;&lt;span style="font-size: 10pt; font-family: 'Arial','sans-serif';"&gt;مثال على العنوان URL &lt;/span&gt;&lt;/u&gt;&lt;/p&gt;
         &lt;/td&gt;
          
&lt;td style="padding: 1.5pt; width: 266.25pt;" valign="top" width="355"&gt;           
&lt;p class="MsoNormal"&gt;&lt;u&gt;&lt;span style="font-size: 10pt; font-family: 'Arial','sans-serif';"&gt;المتغيرات التم تم تمريرها إلى خوارزمية العمل &lt;/span&gt;&lt;/u&gt;&lt;/p&gt;
         &lt;/td&gt;
       &lt;/tr&gt;
        
&lt;tr style=""&gt;         
&lt;td style="padding: 1.5pt; width: 222.75pt;" valign="top" width="297"&gt;           
&lt;p class="MsoNormal"&gt;&lt;span style="font-size: 10pt;" arial?,?sans-serif?;="arial?,?sans-serif?;" mso-fareast-font-family:="mso-fareast-font-family:" ?times="?Times" new="New" roman??="Roman??"&gt;Wiki/Pages/{*contentUrl}&lt;/span&gt;&lt;span style="" mso-fareast-font-family:="mso-fareast-font-family:" ?times="?Times" new="New" roman??="Roman??" calibri?,?sans-serif?;="calibri?,?sans-serif?;"&gt; &lt;/span&gt;&lt;/p&gt;
            
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
            
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
            
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
         &lt;/td&gt;
          
&lt;td style="padding: 1.5pt; width: 148.5pt;" valign="top" width="198"&gt;           
&lt;p class="MsoNormal"&gt;&lt;span style="font-size: 10pt;" arial?,?sans-serif?;="arial?,?sans-serif?;" mso-fareast-font-family:="mso-fareast-font-family:" ?times="?Times" new="New" roman??="Roman??"&gt;/Wiki/Pages/People/Scott&lt;/span&gt;&lt;span style="" mso-fareast-font-family:="mso-fareast-font-family:" ?times="?Times" new="New" roman??="Roman??" calibri?,?sans-serif?;="calibri?,?sans-serif?;"&gt; &lt;/span&gt;&lt;/p&gt;
            
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
            
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
            
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
         &lt;/td&gt;
          
&lt;td style="padding: 1.5pt; width: 266.25pt;" valign="top" width="355"&gt;           
&lt;p class="MsoNormal"&gt;&lt;span style="font-size: 10pt;" arial?,?sans-serif?;="arial?,?sans-serif?;" mso-fareast-font-family:="mso-fareast-font-family:" ?times="?Times" new="New" roman??="Roman??"&gt;contentUrl="People/Scott"&lt;/span&gt;&lt;span style="" mso-fareast-font-family:="mso-fareast-font-family:" ?times="?Times" new="New" roman??="Roman??" calibri?,?sans-serif?;="calibri?,?sans-serif?;"&gt; &lt;/span&gt;&lt;/p&gt;
            
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
            
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
            
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
         &lt;/td&gt;
       &lt;/tr&gt;
        
&lt;tr style=""&gt;         
&lt;td style="padding: 1.5pt; width: 222pt;" valign="top" width="296"&gt;           
&lt;p class="MsoNormal"&gt;&lt;span style="" mso-fareast-font-family:="mso-fareast-font-family:" ?times="?Times" new="New" roman??="Roman??" calibri?,?sans-serif?;="calibri?,?sans-serif?;"&gt;&amp;nbsp; &lt;/span&gt;&lt;/p&gt;
            
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
            
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
            
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
         &lt;/td&gt;
          
&lt;td style="padding: 1.5pt; width: 148.5pt;" valign="top" width="198"&gt;           
&lt;p class="MsoNormal"&gt;&lt;span style="font-size: 10pt;" arial?,?sans-serif?;="arial?,?sans-serif?;" mso-fareast-font-family:="mso-fareast-font-family:" ?times="?Times" new="New" roman??="Roman??"&gt;/Wiki/Pages/Countries/UK&lt;/span&gt;&lt;span style="" mso-fareast-font-family:="mso-fareast-font-family:" ?times="?Times" new="New" roman??="Roman??" calibri?,?sans-serif?;="calibri?,?sans-serif?;"&gt; &lt;/span&gt;&lt;/p&gt;
            
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
            
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
            
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
         &lt;/td&gt;
          
&lt;td style="padding: 1.5pt; width: 266.25pt;" valign="top" width="355"&gt;           
&lt;p class="MsoNormal"&gt;&lt;span style="font-size: 10pt;" arial?,?sans-serif?;="arial?,?sans-serif?;" mso-fareast-font-family:="mso-fareast-font-family:" ?times="?Times" new="New" roman??="Roman??"&gt;contentUrl="Countries/UK"&lt;/span&gt;&lt;span style="" mso-fareast-font-family:="mso-fareast-font-family:" ?times="?Times" new="New" roman??="Roman??" calibri?,?sans-serif?;="calibri?,?sans-serif?;"&gt; &lt;/span&gt;&lt;/p&gt;
            
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
            
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
            
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
         &lt;/td&gt;
       &lt;/tr&gt;
     &lt;/tbody&gt;&lt;/table&gt;
 &lt;/div&gt;  
&lt;p align="right"&gt;&amp;nbsp;&lt;/p&gt;

&lt;p align="right"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p align="right"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p align="right"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p align="right"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p align="right"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p align="right"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p align="right"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p align="right"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p align="right"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p align="right"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p align="right"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p align="right"&gt;إن هذه القواعد wildcards سوف تستمر بالعمل بشكل جيد ضمن الإصدارة الأولية لهذا الأسبوع وسوف تكون مفيدة جداً إذا كنت تنوي بناء نظام مدونات، أوموسوعات wiki أو نظام إدارة المحتوى cms أو أي نظام آخر لإدارة المحتوى.&lt;/p&gt;
  
&lt;p align="right"&gt;لاحظ أن هذه الإضافة سوف تستعمل في نظام إعادة التوجيه الجديد لـ ASP.NET MVC وإننا نستعمل نفس النظام في &lt;a href="http://weblogs.asp.net/scottgu/archive/2008/04/10/asp-net-dynamic-data-preview-available.aspx" mce_href="http://weblogs.asp.net/scottgu/archive/2008/04/10/asp-net-dynamic-data-preview-available.aspx"&gt;ASP.NET Dynamic Data&lt;/a&gt; ضمن الـ ASP.NET Windows Forms&lt;/p&gt;
  &lt;h5 align="right"&gt;&lt;u&gt;الملخص&lt;/u&gt;&lt;/h5&gt;  
&lt;p align="right"&gt;أتمنى أن هذه المشاركة أعلاه توفر تحديثاً سريعا لبعض المزيا الهامة والجديدة والتغييرات التي سوف تعرض في نقطة التحديث لـ ASP.NET MVC هذا الاسبوع. يمكنك أن تقوم بتحميلها &lt;a href="http://www.codeplex.com/aspnet/Release/ProjectReleases.aspx?ReleaseId=12640" mce_href="http://www.codeplex.com/aspnet/Release/ProjectReleases.aspx?ReleaseId=12640"&gt;من هنا&lt;/a&gt; إذا أردت أن تبدأ العمل مباشرة. بدلاً من ذلك يمكنك أن تنتظر للأسابيع المقبلة حتى يتم إصدار الإصدارة الرسمية من الإصدارة الأولية الثالثة لـ ASP.NET MVC والتي سوف تحوي بعض المزايا إضافية (وسف يتم مراجعات وملاحظات من المستخدمين حول قطرة هذا الأسبوع)، برنامج سهل للتنصيب ، تكامل أفضل مع بيئة التطوير VS وتوثيق محدث.&lt;/p&gt;
  
&lt;p align="right"&gt;لأية اسئلة أو مشاكل حول قطرة هذا الأسبوع من ASP.NET MVC تأكد من مراجعة منتدى &lt;a href="http://forums.asp.net/1146.aspx" mce_href="http://forums.asp.net/1146.aspx"&gt;ASP.NET MVC forum&lt;/a&gt; على موقع &lt;a href="http://www.asp.net" mce_href="http://www.asp.net"&gt;www.asp.net&lt;/a&gt;&lt;/p&gt;
  
&lt;p align="right"&gt;أتنمى أن اكون قد أفدتكم &lt;/p&gt;
  
&lt;p align="right"&gt;Scott &lt;/p&gt;
  
&lt;p align="right"&gt;يمكنكم الإطلاع على&amp;nbsp; المشاركة الأصلية عن طريق &lt;a href="http://weblogs.asp.net/scottgu/archive/2008/04/16/asp-net-mvc-source-refresh-preview.aspx" mce_href="http://weblogs.asp.net/scottgu/archive/2008/04/16/asp-net-mvc-source-refresh-preview.aspx"&gt;هذه الوصلة&lt;/a&gt; على مدونة Scott باللغة الإنجليزية بتاريخ 17-4-2008 &lt;/p&gt;
&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6134605" width="1" height="1"&gt;</content><author><name>IsToFix</name><uri>http://weblogs.asp.net/members/IsToFix.aspx</uri></author><category term=".NET" scheme="http://weblogs.asp.net/scottguarabic/archive/tags/.NET/default.aspx" /><category term="MVC" scheme="http://weblogs.asp.net/scottguarabic/archive/tags/MVC/default.aspx" /><category term="ASP.NET" scheme="http://weblogs.asp.net/scottguarabic/archive/tags/ASP.NET/default.aspx" /></entry><entry><title>إصدارة أولية من ASP.NET Dynamic Data أصبحت متوفرة</title><link rel="alternate" type="text/html" href="http://weblogs.asp.net/scottguarabic/archive/2008/04/19/asp-net-dynamic-data.aspx" /><id>http://weblogs.asp.net/scottguarabic/archive/2008/04/19/asp-net-dynamic-data.aspx</id><published>2008-04-19T07:35:10Z</published><updated>2008-04-19T07:35:10Z</updated><content type="html">&lt;p align="right"&gt;قبل بضعة أشهر قمنا بإصدار&lt;a href="http://weblogs.asp.net/scottgu/archive/2007/12/09/asp-net-3-5-extensions-ctp-preview-released.aspx"&gt;امتدادات العرض لـ ASP.Net 3.5&lt;/a&gt; التي احتوت مجموعة من المزايا الجديدة التي سوف يتم إصداراها فيما بعد خلال هذه السنة (تطويرات على ASP.NET AJAX ،ASP.NET MVC،دعم لـASP.NET SilverLight، و ASP.NET Dynamic Data )&lt;/p&gt;  &lt;p align="right"&gt;الـ&lt;a href="http://weblogs.asp.net/scottgu/archive/2007/12/14/new-asp-net-dynamic-data-support.aspx"&gt;دعم ASP.NET Dynamic Data&lt;/a&gt; خلال الإصدارة الأولية تلكقد&amp;#160; قدمت نظرة أولية إلى ميزات رائعة وجديدة تسمح لك ببناء المواقع المعتمدة على البيانات Data driven&amp;#160; بسرعة، والتي تعمل باستخدام كائنات LINQ to SQL&amp;#160; و LINQ to Entities. إن &lt;a href="http://weblogs.asp.net/scottgu/archive/2007/12/14/new-asp-net-dynamic-data-support.aspx"&gt;ASP.NET Dynamic Data support&lt;/a&gt; يسمح بشكل اتوماتيكي بإنشاء صفحات كاملة المهام لإدخال البيانات وإصدارا التقارير بالاعتماد على معلوماتك الابتدائية -meta data- عن مقاربة الكائنات إلى العلاقات ORM أي&amp;#160; -Object Relation mapping-.&lt;/p&gt;  &lt;p align="right"&gt;بالإضافة إلى دعم إنشاء الصفحات بشكل ديناميكي ، فإنها تسمح لك بشكل اختياري أن تقوم&amp;#160; بتجاهل أو تخصيص قوالب العرض الجاهزة باستخدام الـ&amp;#160; HTML أو باستخدام شيفرة (أي أنه يمكنة أن تتحكم بشكل كامل بالمحتويات التي تود عرضها).&lt;/p&gt;  &lt;p align="right"&gt;&lt;u&gt;ASP.NET Dynamic Data Preview&lt;/u&gt;&lt;/p&gt;  &lt;p align="right"&gt;اليوم قمنا بإصدار إصدارة محدثة من الـ ASP.NET Dynamic Data Preview ويمكنك أن تتعلم المزيد عنها وتقوم بتحميلها باتباع هذه &lt;a href="http://code.msdn.microsoft.com/dynamicdata"&gt;الوصلة&lt;/a&gt; &lt;/p&gt;  &lt;p align="right"&gt;إن هذه الإصدارة من الـ&amp;#160; ASP.NET Dynamic Data Preview يعمل بالاعتماد على كائنات البيانات المدمجة في الـ ASP.NET مثل تفاصيل العرض DetailsView&amp;#160;&amp;#160; ،وشبكة البيانات GridView وقائمة البيانات Listview ... الخ. إن الدعم البيانات بشكل ديناميكي يسمح لهذه الكائنات أن تتعامل مع علاقات المفاتيح الخارجية foreign-key. فمثلاً باستعمال شبكة البيانات GridView سوف تحصل على اسم سهل لعرض أعمدة اللمفاتيح الخارجية كما وستحصل على قائمة منسدلة ليتم اختيار القيم من خلالها في حالة التعديل:&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;img src="http://www.scottgu.com/blogposts/dynamicdata/step11.png" border="0" /&gt;&lt;/p&gt;  &lt;p align="right"&gt;&amp;#160;&lt;/p&gt;  &lt;p align="right"&gt;إن دعم البيانات الديناميكي الجديد يقدم أيضاً تصديق-Validation- لواجهة للمستخدم UI بشكل اتوماتيكي بالاعتماد على التصديق على جهة المستخدم وعلى جهة الخادم بناء على التقييدات التي تقوم ببناءها في نموذج دوّال البيانات. فمثلاً إذا كان هناك عمود في قاعة البيانات حجمه محدود بخمسين رمز أو حرف ، كما أنه لا يمكن أن يكون فارغاً ، فستقوم ASP.NET dynamic data&amp;#160; باستعمال كائن تصديق مناسب في واجهة المستخدم لتجبر الواجهة على تطيق التقييد أيضاً. وإذا قمت بتغيير التقييد خلال دوّال الـ LINQ to SQL أو خلال دوّال الـ LINQ to Entities فإن واحهة المستخدم UI ستقوم باستقبل هذه التغييرات بشكل اتوماتيكي وتتقوم بتطبيق هذه التقييدات على أي طلب الويب جديد. بالإضافة إلى معلومات النموذج الابتدائية الأساسية يمكنك أن تقوم بتعريف معلومات ابتدائية مخصصة لتتحكم بالتصديق والشكل الأساسي لعناصر واجهة المستخدم .&lt;/p&gt;  &lt;p align="right"&gt;يمكنك تطبيق كل هذه الميزات السابقة باستخدام الـ LINQ to SQL أو باستخدام الـ LINQ to Entities .&lt;/p&gt;  &lt;p align="right"&gt;&lt;u&gt;&lt;/u&gt;&lt;/p&gt;  &lt;p align="right"&gt;&lt;u&gt;Visual Studio Dynamic Data Project Wizard&lt;/u&gt;&lt;/p&gt;  &lt;p align="right"&gt;بالإضافة إلى دعم ASP.NET dynamic data runtime فإنالـ فريق أدوات الويب في VS قام بشحن مساعد أول إصدارة تجريبة من مساعد الـ ASP.NET dynamic data project والذي يمكنك من بناء المواقع المعتمدة على البيانات بسرعة. إن المساعد يمكنك من اختيار قاعدة البيانات ومن ثم اختيار الجداول والمناظر Views&amp;#160; والعمليات المخزنة في قاعدة البيانات مما يسمح لك ببناء نموذج بيانات الـ LINQ to SQL:&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;img src="http://blogs.msdn.com/photos/webdevtools/images/8371317/original.aspx" border="0" /&gt;&lt;/p&gt;  &lt;p align="right"&gt;وبعد إنشاء نموذج البيانات يقوم المساعد وبشكل سهل باختيار قوالب الصفحات المعتمد على البيانات ليستعملها في بناء واجهة المستخدم :&lt;/p&gt;  &lt;p&gt;&lt;img src="http://blogs.msdn.com/photos/webdevtools/images/8371312/original.aspx" border="0" /&gt;&lt;/p&gt;  &lt;p align="right"&gt;ويمكنك بعد ذلك أن تقوم بتعديل نوع عمليات الإدخال، التعديل والتحديث المستخدمة في كل صفحة من واجهة مستخدم:&lt;/p&gt;  &lt;p&gt;&lt;img src="http://blogs.msdn.com/photos/webdevtools/images/8371319/original.aspx" border="0" /&gt;&lt;/p&gt;  &lt;p align="right"&gt;وعندما تنقر على إنهاء فإن المساعد سيقوم بتنصيب المشروع مع دوال نموذج البيات وصفحات واجهة المستخدم، يمكنك&amp;#160; تعلم المزيد عن هذا ابلمساعد بمشاهدة عمله في هذا العمود في هذه المدونة &lt;a href="http://blogs.msdn.com/webdevtools/archive/2008/04/09/asp-net-dynamic-data-preview-released-on-msdn-code-gallery.aspx"&gt;هنا&lt;/a&gt; &lt;/p&gt;  &lt;p align="right"&gt;&lt;u&gt;كيف تبدأ:&lt;/u&gt;&lt;/p&gt;  &lt;p align="right"&gt;يمكن البدء بالتعلم حول الإصدارة الجديدة من dynamic data preview وتقوم بتشغيله من خلال هذه &lt;a href="http://code.msdn.microsoft.com/dynamicdata"&gt;الوصلة&lt;/a&gt; ، ويمكنك مشاهد عرض &lt;a href="http://sessions.visitmix.com/?selectedSearch=T24"&gt;الـ dynamic data في مؤتمر MIX08&lt;/a&gt; الذي قام David Ebbo's بإعداده لتتعلم المزيد عن كيفية عمله. كما ويمكنك أن تتفقد عرض الشاشة الذي قدمهScott Hunter's &lt;a href="http://davidebbo.members.winisp.net/screencasts/dbimage.wmv"&gt;هنا&lt;/a&gt;&amp;#160; وعرض Brad Millington's &lt;a href="http://blogs.msdn.com/webdevtools/archive/2008/04/09/asp-net-dynamic-data-preview-released-on-msdn-code-gallery.aspx"&gt;هنا أيضاً&lt;/a&gt; ، وهنا عمود آخر لـ David يتحدث فيه التغييرات التي تم إحداثها بين إصدارة شهر ديسمبر وإصدارة اليوم.&lt;/p&gt;  &lt;p align="right"&gt;يمكنك إرسال اسئلة ومراجعاتكم عبر منتديات&lt;a href="http://www.asp.net"&gt;www.asp.net&lt;/a&gt;&amp;#160;&amp;#160; على هذه المشاركة &lt;a href="http://forums.asp.net/1145.aspx"&gt;هنا&lt;/a&gt; ، أتمنى أن أكون قد أفدتكم &lt;/p&gt;  &lt;p align="right"&gt;Scott&lt;/p&gt;  &lt;p align="right"&gt;يمكنكم الاطلاع على النسخة الأصلية من هذه المشاركة بتاريخ: يوم الخميس 4/10/2008 10:45 AM على &lt;a href="http://weblogs.asp.net/scottgu/archive/2008/04/10/asp-net-dynamic-data-preview-available.aspx"&gt;هذه الوصلة&lt;/a&gt;&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6112022" width="1" height="1"&gt;</content><author><name>IsToFix</name><uri>http://weblogs.asp.net/members/IsToFix.aspx</uri></author><category term="Data" scheme="http://weblogs.asp.net/scottguarabic/archive/tags/Data/default.aspx" /><category term="LINQ" scheme="http://weblogs.asp.net/scottguarabic/archive/tags/LINQ/default.aspx" /><category term="ِASP.Net" scheme="http://weblogs.asp.net/scottguarabic/archive/tags/_5006_ASP.Net/default.aspx" /><category term=".NET" scheme="http://weblogs.asp.net/scottguarabic/archive/tags/.NET/default.aspx" /></entry></feed>