الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

9عن تحديثات أعلنت عنها مايكروسوفت 9/12/2013

بدأه Ahmed Moosa في 11 ديسمبر 2013 · 3 رد · 1,171 مشاهدة · في ASP.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

عن تحديثات أعلنت عنها مايكروسوفت 9/12/2013

 

فى البداية من يرى سعى مايكروسوفت فى التسارع فى عملية الإصدارات , يقول لك :- يبدو أن مهندسى مايكروسوفت يعانون من مشكلة الفراغ :) يحاولون شغله بالإصدارات المتتالية, لم ينتظروا حتى موعد إصدار النسخة الحديثة من visual studio , بل سارعوا إلى إصدار يحمل إسم x.1 .

 

فى الحقيقة, ليس الأمر كذلك, الفكرة, أن هذة التحديثات, مجرد ترقيع إن صح التعبير للمزايا المضافة منذ شهرين فى النسخة الأخيرة من Visual Studio, أو بعبارة أخرى, معالجة السقطات أو ماتم نسيانه أو ربما ما طالب مجتمع المطورين به, ولا ننسى ذكر أن هناك بعض المشاكل التى آتى التحديث بعلاجها. على كل حال , لدينا فى هذا التحديث نوعين من التحديثات :-

  • إضافة جديدة

  • معالجة خطأ

 

ولنأخذ نظرة سريعة على كلاً منهم وما جاء به :-

 

إضافة الجديد

تضمنت التحديثات إضافة إلى كلاً من :-

  • ASP.NET MVC 5 تحت إسم ASP.NET MVC 5.1 .

  • ASP.NET Web API تحت إسم ASP.NET Web API 2.1 .

 

ما هذة التحديثات ؟

العارف بهما , يعلم أنهما مشتركان فى كثير من الأمور , بل إن Web API قد بنيت إستناداً على MVC , ولهذا ما يتم إضافتة فى الأولى من السهل أن يضاف فى الثانية والعكس صحيح أيضاً, لهذا نجد أن هناك إضافة ً واحدة مشتركة إلى MVC و Web API فى هذا التحديث كانت كالتالى :-

  • ظهر فى الإصدار الأخير MVC5 و Web API 2 ما يعرف بـ Attribute Routing وهو عبارة عن ضبط الـ Routing من خلال مجموعة من Attributes , والحقيقة فى هذا , أنهم قد آخذوا خبرتهم فى عملية الـ routing الأصلية التى تسمى Convention-based Routing والتى مازالت موجودة حتى الآن وتعمل جنباً إلى جنب Attribute Routing ونسخوها وقدموها بطريقة آخرى وهى أن يتم ضبطها وعملها بواسطة مجموعة من الـ Attributes, مثال Route و Route Prefix , فطالب مجتمع المطورين بوجود ما يعرف بـ Version Routes , أى السماح لنا بتعريف version للـRoute , بمعنى أننا إذا كان لدينا عنوان مثال api/customer فإنه يمكن مع تحديد الـ Version يمكن أن يذهب إلى أكثر من Controller , حسب الـ Version المحدد , حيث يتم تحديد الـ Route مصحوباً برقم يسمى Version(الأصدار) مثال التالى :-

Route(“api/customer”, 2 )

حيث يتم بعد ذلك إرسال رقم الـ version ضمن الـ Request Header .

  • إضافة آخرى فيما يخص Routing وهى موجودة بالفعل فى MVC ولكن لم نجدها هنا فى Web API وهى Ignore Route وتخص تجاهل العناوين المحددة, والكثير منا يعرفها.

  • كذلك تمت إضافة إمكانية ملئ DropDownlist بقيم قادمة من Eunm وكذلك تقديم EunmHelper وذلك داخل الـ Views فى MVC بالطبع .

  • إضافة آخرى إلى Views داخل MVC وهى دعم العمل مع boostrap فى الحقل Editor والفكرة أنهم أضافوا إمكانية قبول الحقل Editor لمتغير يمثل html attributes والأصل فيها هو إمكانية إضافة css class كما يلى :-

@Html.EditorFor(model => model, new { htmlAttributes = new { @class = "form-control" }, })

 

  • شهدت Web API مجموعة أكبر من الإضافات , ورأينا منها بالأعلى Attribute Routing , وأضف على هذا التالى :-

  • معالجة الأخطاء لعموم التطبيق وتسجيلها, ولعمل هذا قاموا بإضافة ما يعرف بـ Logger أى مسجل الأخطاء على مستوى التطبيق .

  • بعض التحسينات إلى صفحة التوثيق أو المساعدة لـ Web API والتى تعرف بإسم Help Page .

  • تقديم Formatter يدعم البيانات من نوع BSON وعم العمل مع كلاً من HttpClient الذى يمثل الـ Client , وكذلك Web API Controller و التى تمثل الـ Server .

  • دعم العمل مع Action Filter من خلال Async , أى إجراء Action Filter تعمل بنظام Asynchronous , وذلك من خلال إمكانية العمل مع كلاً من async , await .

  • دعم تحليل ومعالجة Query String فى Http Client وذلك من خلال معرفة القيم المرسلة فى العنوان وتجميعها بل وإمكانية الإضافة والتعديل عليها من خلال ما يعرف بإسم HttpValueCollection .

 

معالجة الأخطأء

شملت معالجة الأخطاء كلاً من Web API وMVC وكذلك Web Pages و Razor ,, وسأعطيك رابطاً بصفحة بها كامل الأخطاء التى تم معالجتها.

 

أما الآن فدعونا نثرثر قليلاً عن ما يحدث :-

لماذا بهذة السرعة , وهل الموضوع بهذة الدرجة من المرونة والسهولة كذلك ؟ …..... أم أنهم يعملون على قدمٍ وساق حتى يقوموا بهذا العمل ؟ ….................. الحقيقة, كل هذة الأمور وزيادة عليها ليست بالعمل الشاق ,ولعلك تندهش حينما أخبرك بأنه فى الأصل ,عملية إخراج كلاً من Web API وقبلها MVC أيضاً إلى النور لم تكن بالعمل الشاق !!!! , فمن الأولى أن تكون التحديثات ومعالجة الأخطاء أمراً يسير.

بالفعل هم كذلك , الأصل فيهما , أنهما قد تم بنائهما على خلفية وجود ASP.NET Framework فكانا بمثابة إنشاء Handler و Module , بالفعل هم كذلك , Routing Module و MvcHandler فى MVC وhttpMessageHandler فى Web API , وتم العمل بداخلهم بإستخدام Reflection للوصول إلى الـ Controller وما يحتويه من Actions , وهذا هو إختصار موجز لتعريف كلاً من MVC ,Web API.

 

الروابط :-

رابط الإعلان عن التحديثات :- http://goo.gl/fg2Jxk

رابط شرح المزايا المضافة وكذلك الأخطاء التى تمت معالجتها :- http://goo.gl/qNjVPj

وفى الختام نسأل الله التوفيق للجميع .

 

Ahmed Moosa

Microsoft Community Contributor | MCC

Microsoft Certified Professional Developer | MCPD

Microsoft Certified Technology Specialist | MCTS

Senior .NET Developer

.Net Trainer

English blog : http://weblogs.asp.net/ahmedmoosa/

مدونة عربى : http://ahmedmoosa.wordpress.com/

#2

السلام عليكم ورحمة الله وبركاتة

 

تحية طيبة وبعد...

 

في الحقيقة أخي أحمد لا أعلم الى أي version سوف يصلون بهذا التطورات. لان في أعتقادي الشخصي أنهم يستطيعون تطوير MVC بدون كتابة رقم جديد على أنها نسخة جديدة. و في النهاية ما هي الا اضافات على النسخة التي قبلها.

 

و انا مهتم لـ web api. لان اقضي الكثير من وقتي مع الـ javascript ولا بد للحاجة الى طرق للأتصال مع السيرفر.

My Latest

Hello Entity Framework Code First

--------------------

#3
D a r K T o u c h كتب:

في الحقيقة أخي أحمد لا أعلم الى أي version سوف يصلون بهذا التطورات. لان في أعتقادي الشخصي أنهم يستطيعون تطوير MVC بدون كتابة رقم جديد على أنها نسخة جديدة. و في النهاية ما هي الا اضافات على النسخة التي قبلها.

 

هنا فى هذةالحالة , الأمر يكمن فى أن تجد كل هذة التطورات Built-in , لا أن تقوم بإضافة مجموعة من Dlls إلى تطبيقاتك . ولهذا وجب ترقيم الإصدار لإمكانية الإستفادة بالإضافات الجديدة.

 

 

D a r K T o u c h كتب:
و انا مهتم لـ web api. لان اقضي الكثير من وقتي مع الـ javascript ولا بد للحاجة الى طرق للأتصال مع السيرفر.

 

جميل , إذاً , أتقن Web API , وأنصحك بمعرفة Java script frameworks للتبسيط من عملك , مثال knockoutjs أو AngularJs أو DurandalJs أو غيرهم , فكلهم رائعون , نعم هناك إختلافات ولكن حسب الحاجة ستحدد من تستخدم , بالتوفيق

تم تعديل هذه المشاركة بواسطة Ahmed Moosa في 11 ديسمبر 2013 في 20:11

Ahmed Moosa

Microsoft Community Contributor | MCC

Microsoft Certified Professional Developer | MCPD

Microsoft Certified Technology Specialist | MCTS

Senior .NET Developer

.Net Trainer

English blog : http://weblogs.asp.net/ahmedmoosa/

مدونة عربى : http://ahmedmoosa.wordpress.com/

#4
اقتباس
هنا فى هذةالحالة , الأمر يكمن فى أن تجد كل هذة التطورات Built-in , لا أن تقوم بإضافة مجموعة من Dlls إلى تطبيقاتك . ولهذا وجب ترقيم الإصدار لإمكانية الإستفادة بالإضافات الجديدة.

 

 

 

فهمت أخي أحمد.

 

اقتباس
جميل , إذاً , أتقن Web API , وأنصحك بمعرفة Java script frameworks للتبسيط من عملك , مثال knockoutjs أو AngularJs أو DurandalJs أو غيرهم , فكلهم رائعون , نعم هناك إختلافات ولكن حسب الحاجة ستحدد من تستخدم , بالتوفيق

 

 

 

نعم, أنا في البداية أستخدمت Backbone لفترة وبعدها تعرفت على Angular و بكل صراحة سوف تغير نظرتك للـ javascript. و أنا أجد المتعة في أستخدام javascript بسبب أهتمامي لبناء small libraries

 

وتعلم الطرق التي تم بناء فيها library معينه :)

My Latest

Hello Entity Framework Code First

--------------------

مواضيع مشابهة