صباح هذا اليوم قمنا بإطلاق الإصدارة الثالثة من هيكلية ASP.NET MVC. لقد قمت بتدوين التفاصيل في الشهر الماضي عن إصدارة كود المصدر المؤقتة ونحن لم نضمنها العديد من التغييرات في هذه الإصدارة. إصدارة اليوم تشمل بعض الجوانب الاضافيه التي ليست موجودة في قطرة الشهر الماضي ، بعض بعض التحسينات / التصفيات الجميلة ، وكذلك التكامل مع الـ Visual Studio والتوثيق.
يمكنك تحميل مجموعة تنصيب متكاملة للإصدار التجريبة 3 من ASP.NET MVC من هنا، وبشكل اختياري يمكنك ايضا تحميل كود المصدر لـ ASP.NET MVC واختبارات الوحدة هنا.
تغيير في طريقة عمل المتحكم Controller
إن الإصدارة الثالثة من النسخة الأولية لـ ASP.NET MVC تشمل على التغييرات في المتحكم التي تمت مناقشتها في في إصدارة ASP.NET MVC في نيسان إبريل ، مع بعض التعديلات الاضافيه والتغييرات.
لا زال يمكنك الاستمرار في كتابة خوارزميات العمل في المتحكم والتي سوف تقوم بإرجاع لا شيء وتتضمن كل منطق العمل فيها، فعلى سبيل المثال :

الأمر الذي يظهر هذا الـ HTML عند التشغيل :

الإصدارة الأولية الثالثة الآن تؤيد استخدام نهج إرجاع كائن من نوع "actionresult" والذي يدل على نتيجة خوارزمية العمل ، وتمكنك من تأجيل تنفيذ الخوارزمية. ويتيح هذا أداء اختبارات الوحدة بشكل أسهل بكثير (دون ان يتطلب ذلك ضرورة ان نقوم بـ mock من اي شيء).
فعلى سبيل المثال ، يمكن استخدامLINQ to SQL ضمن خوارزمية عمل الاستعراض لاسترجاع سلسلة من كائنات المنتجات من قاعدة بياناتنا ونشير الى اننا نريد ان نمثلهم في شاشة عرض منهم . الكود ادناه سيتسبب في ثلاث قطع من "ViewData" يتم تمريرها الى شاشة العرض ، نصوص "tilte" و "categoryname" ، وسلسلة من المنتجات تمرر على شكل كائنات ViewData.Model :

ومن مزايا استخدام نهج الـ actionresult أعلاه ، انه يجعل من اختبارات الوحدة لإجراءات المتحكم سهلة جداً (دون اللجوء إلى عمل Mock).إن المثال ادناه هو اختبار وحدة ليتحقق من سلوك خوارزمية العمل لدينا التي تقوم بالاستعراض :

بعد ذلك يمكننا ان نكتب شاشة استعراض ضمن هذا الدليل الفرعي \Views\Products لتقديم تثميل لـ Response باستخدام الـ ViewData التي إعدادها عن طريق إجراء الاستعراض :

ونحن عندما نوصل إلى دليل /Products/Browse/Beverages في الموقع سوف نحصل على استجابة HTML ادنا (مع استعمال ثلاث من الـ ViewData المحاطة بالأحمر):

علما انه بالاضافة الى دعم استجابة "viewresult" الاستجابة (لتشير الى ان شاشة العرض ينبغي ان يتم رسمها) ،فإن الإصدار الأولية الثالثة منASP.NET MVC تضيف ايضاً دعم لإرجاع نتائج على شكل "JsonResult" (لأغراض تسلسل البيانات AJAX JSON الآن) ،و "ContentResult" (لإظهار المحتوى بدون استعمال الـ View) ، فضلا عن HttpRedirect وRedirectToAction/Route.
إن نهج استعمال الـ ActionResult هو نهج امتدادي (يسمح لك إايجاد نتيجة لأنواع خاصة بك) ، ومن خلال العمل الاضافي القادم سترى منا اضافة للمزيد من أنواع النتائج المدمجة.
خوارزميات HTML مساعدة معززة
إن خوارزميات مساعدة الـ HTML المعززة قد تم تحديثها مع الإصدارة الأولية الثالثة لـ ASP.NET MVC . بالاضافة الى مجموعة من الحلول لبعض المشاكل التي كانت موجودة سابقاً، وهي تشمل ايضا عددا من التحسينات الممتازة لتعزيز قابليتها للإستخدام.
قيمة البحث التلقائي
مع الاصدارات الأولية السابقة كنت دائما بحاجة إلى تمرير قيم بشكل خارجي لتعرض الشاشات باستعمال الـ HTML Helper على سبيل المثال : ان تدرج قيمة ضمن حقل إدخال <input type="text" value="some value"/> كان يتوجب عليك ان تكتب :

الشيفرة المدونة اعلاه لا تزال تعمل -- على الرغم من أنه الآن يمكنك ايضاً كتابة هذا فقط :

أن مساعدي الـ HTML الآن تتحقق من جانب كل من قاموس عرض البيانات و أي نموذج تم تمريره للـ view لاستعمال ProductName.
MultiSelectList ViewModels Selectlist
يوجد الآن دوال SelectList و MultiSelectList View-Model مضمنة تدعم طريقة اسهل لإنشاء قوائم منسدلة وصناديق الاختيار المتعددة بلغة HTML (لإدارة عمليات الاختيار) إن أحد الطرق يمكن أن يجعل من هذه السيناريوهات أسهل وأبسط وهو أن تقوم بإنشاء وإعداد نماذج العرض هذه ViewModels في إحدى عمليات المتحكم ومن ثم تقوم بتمريرها إلى قاموس عارض البيانات ViewData في شاشة العرض ليتم إظهار بعد تنسيقها
فعلى سبيل المثال ، قمت بإنشاء كائن نموذج عرض لقائمة اختيار لتمثل مجموعة من كائنات الـcategory الفريدة في قادعة البيانات خاصتنا. كما أدف إلى أني أريد استعمال خاصية الـCategoryID لتمثل قيمة كل عنصر في هذه القائمة وكما أنوي استعمال خاصية الـ CategoryName لتثمل الالنص الذي يجب عرضه في القائمة. كما ان أعددت العنصر المختار ليكون هو الـ categoryIdلكائن الـ product الذي نقوم بتعديله:

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


إن دعم التحقق من أخطاء الـ Built in ليس متوفراً للآن في دوال مساعدة الـ HTML خاصتنا (يجب أن تقوم بكتابة هذه الشيفرة بنفسك) ولكن سوف نقوم بإظهارها في المستقبل الأمر الذي سوف يجعل من سيناريوهات التحرير أمراً أكثر سهولة.
وعليك ايضاً أن ترى بداية ظهور دوال المساعدة لـ ASP.NET AJAX في الإصدارت التجريرة المستقبلية ، الأمر الذي سيجعل من الأسهل دمج تطبيقات أجاكس مع الـ MVC بأقل جهد ممكن في البرمجة.
تحسينات على توجيه العناوين URL Routing
إن هذه المعاينه تضم عددا من التحسينات على نظام توجيه العناوين. نظام توجيه العناوين هو واحد من اكثر الأسس من مكونات هيكلية الـMVC ، الأمر الذي جعلنا أننا قمنا بالتركيز عليه في الإصدارات التجريبية السابقة. إن نظام التوجيه الجديد للموقع سوف يتم إصداره مع حزمة الخدمة NET 3.5 SP1 هذا الصيف. وسوف يقوم بدعم كل من طلبات الـ WebForms و الـ MVC. إن الـ ASP.NET MVC سوف تكون قادرة على استعمال محرك نظام التوجيه المدمج في حزمة الخدمة .NET 3.5 SP1 عند استعمال .NET 3.5 SP1 كما أنها سوف تكون قادرة على العمل أيضاً باستعمال نسختها الخاصة assembly على الأنظمة التي لا تستعمل الـ NET 3.5 SP1 .
.....
.....
آمل أن هذا ساعدكم
Scott
Published Tuesday, May 27, 2008 1:26 PM by ScottGu نشرت الثلاثاء ، 27 أيار / مايو 2008 في الساعة 1:26 من قبل scottgu