أرشيف الأوسمة: ASP.Net

الملف المكتوب من الدرس الآول من دورة ASP.NET Web API 2

ASP.NET Web API Course

الدرس الأول

تعرف على ASP.NET Web API

الهدف من الدرس

التعرف على ASP.NET Web API ولماذا وجدت وفى أى حالة يمكن إستخدامها وكيف يمكننا بالفعل إستخدامها فى تطبيقاتنا وما الهدف من وجودها فى الأصل , وما هى آلية عملها.

محتويات الدرس

  • مقدمة
    • Service

    • Service Types in .NET

  • ما هى ASP.NET Web API؟
  • التعريف بـ HTTPومما يتكون ؟
  • التعريف والتفصيل لكلاً من HTTP Request , HTTP Response؟
  • HTTP Methods

  • HTTP Status Code

  • HTTP Headers

  • HTTP Body

  • لماذا التفصيل فى HTTP؟
  • العودة إلى ASP.NET Web APIوالتعريف بها ؟
    • لماذا سأقوم بإستخدام ASP.NET Web API؟

    • التعريف بـ ASP.NET Web APIمن ناحية فنية وماذا تقدم لنا ؟

  • العلاقة بين Web APIوبين Web Form , MVC .
  • كيف أقوم بإستخدام ASP.NET Web API؟
  • تمرين فى كيفية بناء ASP.NET Web API .

استمر في القراءة الملف المكتوب من الدرس الآول من دورة ASP.NET Web API 2

كن واثقاً من كلامك وأنت تتحدث عن ASP.NET

تمهيد :-

كثير من الناس يتسائلون عن الفرق بين Web Forms و MVC ويوجد كثير من الخلط بينهم , وهل هم بدائل ؟, وماذا عن Web API ؟ وما هى SPA ؟ وماذا يعنى SignalR ؟ , هل كل هذا يعد ASP.NET ؟ , والكثير أيضاً يسأل , يقول أنا مبتدأ, بماذا أبدأ ؟, وغيره يقول, لا حاجة فى web Forms سأبدأ بتعلم MVC هذا هو الحديث, وغيره يقول, هل شرط أن أتعلم Web API بعد تعلم MVC ؟ , أم ماذا ؟ , الكثييير من الأسئلة التى سأحاول أن أضع إجابات مختصرة لها , والله المستعان .

Image

مقدمة :-

فى بداية الآمر, كنا لا نجد إلا ما يُعرف بـ ASP.NET فقط, حيث كنا نقوم بتعريفها, على أنها بيئة برمجية لتطوير تطبيقات الإنترنت والتى قمت بتقديم سلسلة دروس من ستة أجزاء كمقدمة تعريفية لها …وتوالت الإضافات على ASP.NET منذ نشأتها إلى يومنا هذا , حتى إزداد الأمر تعقيداً !, ففى ما يلى سأسرد لك هذة الإضافات والله المستعان.

 Web Forms

ظهرت العيوب على السطح , وإشتكى مجتمع المطورين من أمور عدة تفتقدها ASP.NET , بل وكان يحتقرها مطورى البيئات الأخرى مثال PHP وغيرها, والأسباب معروفة لدى الكل, وكانت الأسباب كالتالى:-

  • ASP.NET ليست إلا HTML Generator .

  • ASP.NET ليست إلا Drag-Drop , وليس لكم تحكم فى الـ HTML .

    • هذا الكلام يمكن أن يرد عليه بإنك تستطيع التحكم من خلال مرحلة الـ Rendering , وأيضاً من خلال الـ Source View, ولكن ليس بالقدر الكافى .

  • ASP.NET تمر بالعديد من الأحداث التى قد لا أحتاجها فى الكثير من الآوقات.

  • ASP.NET من الصعب إجراء Automation Testing عليها, إلا بمحاكاة HttpContext.

  • ASP.NET لا تتبع مبادئ ولا أنماط التصميم المتبعة فى تصميم البرمجيات, والتى نعرفها بإسم Design Patterns و Software Design Principles, ولعل التركيز الأكبر كان على مبدأ الفصل المعروف بإسم SOC.

  • ASP.NET , لا يوجد بها مرونة فى إمكانية إعادة الإستخدام و كذلك صيانة الكود .

كان الحديث كله يدور حول ASP.NET والتى باتت تعرف الأن بإسم Web Forms, أو ASP.NET Classic (ولاحظ إنى لا أقول ASP Classic بل أقول ASP.NET Classic ), وكان الهدف من وجود Web Forms بهذا الشكل, هو محاكاة تطبيقات الـ Event-Driven مثال Windows Form Application , فظلت المشكلة تنغص على مايكروسوفت فرحتها بإبداعاتها داخل Web Forms.

دورة فى ASP.NET Web Forms تتكون من 20 درساً  تجد التفاصيل هنـــــــــا

 MVC Framework

قرأت مرة أن Scott Guthrie حيث كان مدير قسم التطويرفى فريق ASP.NET حينها على ما أذكر , أنه كان مسافراً, وفى رحلته على متن الطائرة, فكر بتطبيق MVC Pattern داخل ASP.NET , حيث كان الجميع يتحدثون حينها عن هذا النمط (MVC) , وما يقدمه من مزايا فى العمل, رغم أن هذا النمط موجود من عشرات السنين, إلا أن الحاجة إليه باتت ملحة بالنسبة لمايكروسوفت , وذلك لإعجاب الكثيرين به عندما تم تطبيقه فى كثيرمن بيئات التطوير,فما كان من مايكروسوفت إلا أن تسعى لإيجاد حلاً لعلاج ذلك, فجائت له الفكرة, أن يقوم بتطبيق هذا النمط بإستخدام HttpHandler وHttpModule, ولكن كيف والنمط ينص على أن لكل صفحة مدير وحالة بيانات تنتقل منها وإليها, والصفحة هنا هى View والمدير هنا هو Controller وحالة البيانات هنا هى Model ,وهنا ستكون كل صفحة مصحوبة بـ Controller, ذلك الوصف قريباً مما يحدث فى aspx Page و Code-behind إلا أن الإثنان هنا لا يَعرفان بعضهما البعض, بمعنى إنهم غير مرتبطين ببعض كما فى aspx, أى أن الـ Controller لا يعرف شئ عن الـ View والعكس صحيح.

فظهرت الحاجة إلى وجود نمط آخر, يضمن وجود Controller لأكثر من View, فكانت فكرة تطبيق نمط آخر وهو Front Controller, وهو الذى ينص على وجود Controller واحد يخدم أكثر من View.

فأصبح لدينا نمطين أولهم MVC Pattern مبنى على الثانى وهو Front Controller Pattern .

 فكان نتاج هذا الأمر هو MVC Framework , والذى جاء ليعمل جنباً إلى جنب Web Forms, وليس بديل, وليس تحديث, وأعلنت مايكروسوفت من اللحظة الأولى لإنطلاقه, أنها ستدعم Web Forms ولن تتخلى عنه, ولكن قد قدمت لك طريقين لبناء تطبيقات إنترنت أحدهما Web Forms وثانيهما MVC , فأختر إيهما تسلك.

 وقد سألنى الكثيرون هذا السؤال لدى مشروع , فهل أستخدم Web Forms أم MVC ؟ “ ….. وتكون إجابتى دوماً بــ على حسب ” …فلابد أن تستجمع تركيزك لترد على هذة الإجابة بسؤال آخر , وهو على حسب ماذا؟ ” ……….. الحقيقة على حسب الكثيييير , ولكن سأسرد لك بعضها:-

  • إذا كنت تريد أن تتحكم أكثر فى HTML فعليك بـ MVC.

  • إذا كنت تريد أن تحصل على Re-usability أعلى , فعليك بـ MVC.

  • إذا كنت تريد أن تحصل على Maintainability أعلى , فعليك بـ MVC.

  • إذا كنت تريد أن تحصل على Testability أعلى , فعليك بـ MVC.

  • إذا كنت تريد Productivity أعلى مع إهمال ما سبق فعليك بـ Web Forms.

 ربما يقول قائل ماذا عن تطبيقMVP Pattern داخل Web Forms ؟ ”. مممم , حقاً تطبيق هذا النمط قد يجعل Web Forms تكسب كل هذة النقاط لمصلحتها…. الحقيقة, ربما, ولكن ما التكلفة ؟…………. التكلفة ستكون على حساب الـ Productivity وما سيأخذ ذلك التطبيق من وقت, حيث أن تطبيق MVP داخل Web Forms يتطلب عناءاً مع الوقت فى كتابة الكود, وقد قدمت مقالتين من قبل فى شرح هذا النمط وكذلك فى شرح Framework يسمى WebFormsMVP وكيفية إستخدامه.

 تلقيت سؤالاً أيضاً يقول أنا أريد أن أبدأ فى ASP.NET , هل أبدأ معWeb Forms أم MVC “ ……. التجربة أثبتت أنه لا فرق…………. إشترك فى دورة MVC معى يوماً مطوراً قادماً من PHP, وأخبرنى أنه إستطاع أن يقوم بإنشاء موقع كامل بعد الدرس الرابع, فلا شك أنه مجتهد,والشاهد من هذا, أنه لم يجد معاناةً فى التعرف على MVC مباشرةً دون العلم بـ Web Forms, فهذا جيد, فكل ما تريد فقط معرفته هو لغة البرمجة التى تستخدمها C#/VB, والبقية هو إجتهادك والله الموفق. هذة هى التجربة, أما عن رأيى , فلا أرى أى فرق, غير أن الفهم العميق لألية عمل MVC فيما وراء المشهد يتطلب معرفتك بـ ASP.NET Runtime وكيف تسير الآمور.

دورة فى ASP.NET MVC تتكون من 15 درساً , تجد التفاصيل هنــــــــــا

 ظهربعد ذلك ما يعرف بـ ASP.NET Web API .

Web API Framework

هى Framework لبناء Service مستندة فى عملها على ASP.NET وتستطيع الوصول إليها من خلال HTTP. بدايتها ظهرت مع WCF تحت إسم WCF Http Service, فبعيداً عن تعقيدات إعدادات (Configuration) WCF , كانت الحاجة لإستقلالها ومجيئها تحت إسم ASP.NET Web API, والهدف مازال واحداً وهو بناء Service قائمة على HTTP.

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

  • إذا أردت أن تقوم بتصميم خدمة (Service ) تعمل كمزود للبيانات فقط أو ما يسمى Data Point فعليك بـ Web API.

  • إذا أردت أن تقوم بتصميم خدمة تصل إلى كافة الأجهزة التى تملك إمكانية إرسال HTTP Request وإستقبال HTTP Response فعليك بـ Web API , ولاحظ أن ذلك يشمل , كافة الأجهزة الحديثة بإختلاف أنواعها من هواتف نقالة إلى أجهزة ذكية إلى مواقع إنترنت إلى تطبيقات سطح المكتب وغير ذلك .

  • إذا أردت مرونة فى العمل, ولا وجود لإى متطلبات غير HTTP فعليك بـ Web API.

  • إذا أردت أن تكون لديك خدمة تستطيع التفاوض حول المحتوى المطلوب, والمقصود هنا نوع البيانات على إختلاف أنواعها فعليك بـ Web API.

  • إذا أردت أن تتحكم بمرونة كافية فى طلبات العملاء (Http Requests ) والردود على هذة الطلبات (Http Response) فعليك بـ Web API , مما يجعلك وكأنك تتعامل مباشرةً مع HTTP.

 وقد سألنى أيضاً آخرون هل لابد من معرفتى بـ MVC حتى أتعرف على Web API ؟ ” …………. وإجابتى تكون…………. “الأفضل ذلك ولكن ليس شرطاً” ……. وذلك لمسته حقاً حينما كنت أقوم بشرح دورة فى Web API…….. فالإضافة التى ستجنيها من معرفتك أولاً بـ MVC , هى أنك, ستجد مرونة فى تقبل Web API بوقت أسرع, وذلك لسابق معرفتك ببعض الأمور المتشابة بين Web API و MVC .

 والسؤال الثانى … هل يمكن أن أقوم بإستخدام Web API مع Web Forms “ …….. إجابتى تكون نعم” …. وخذ فى إعتبارك أيضاً, أنه يمكنك أن تستخدمها فى Client -Applications.

 ساهمت Web API أيضاً فى جعل العمل مع Single Page Application أكثر مرونة .

دورة فى ASP.NET Web API  تتكون من 15 درساً , تجد التفاصيل هنــــــــــــا

SPA Concept

يأتى الإسم SPA إختصاراً لـ Single Page Application وهو مفهوم , وليسLibrary , وليس Framework, ويمكن أن نسميه إسماً آخر وهو JavaScript Application , أى تطبيق قائم على JavaScript, وكلمة SPA تخالف الواقع الذى يتم فيه تطبيق SPA, فالمعنى الحرفى هو, تطبيق الصفحة الواحدة, وهذا ليس واقعياً, فلاشك أن تقول, ربما تكون SPA لتطبيق يتكون من صفحة واحدة, أى تطبيق متناهى الصغر, الحقيقة لا!………. ولهذا نقول أن المعنى منافى للمراد, فالمعنى يقول تطبيق مكون من صفحة واحدة , والمراد, أن المستخدم سيتعامل مع التطبيق بصفحاته المتعددة وكأنه داخل صفحة واحدة لم يخرج منها, والمعنى لا يخفى عليك كمطور لتطبيقات إنترنت, فى أننا سنقوم بإخفاء Refresh, والعمل على إنشاء Data point على الخادم (Data point على سبيل المثال Web API ) ومن ثم نقوم بإستخدام أحد الـ Libraries أو Frameworks الخاصة بـ JavaScript للعمل داخل التطبيق , فعلى سبيل المثال , يمكن العمل مع AngularJs أو DurandalJs أو EmberJs أو غيرهم, أو ربما تفضل العمل مع مجموعة من المكتبات المنفصلة مثال KnockoutJs و SammyJs و RequireJs وغيرهم. والهدف من كل هذا, هو معالجة تفاعلات المستخدم من عرض البيانات التى يطلبها, أوإرسال للبيانات التى يُدخلها, وكذلك التنقل بين الصفحات, وغير ذلك من العمليات التى تتم فى التطبيق العادى, مع الأخذ فى الإعتبار, أن الذهاب إلى الخادم لن يكون إلا فى الضرورة,وأن كافة الأعمال فى التطبيق ستتم على الـ Client, يتطلب هذا إتباع طرق مختلفة لتحقيق هذا الهدف من تخزين للبيانات فى Cache وكذلك إستخدام Rendering Templates والطرق كثيرة وكل مطور يذهب فى الطريق الذى يعرف ويفضل, فالمجال مفتوح.

SignalR Library

فى البداية هى مكتبة أكواد جاهزة أحضرتها لك مايكروسوفت ,لتقوم بالعمل مع ما يعرف Real-time , والمعنى مختصراً, أن هذة المكتبة, تعمل على إرسال البيانات من جهاز الـخادم إلى جهاز العميل تلقائياً حينما تتوفر هذة البيانات, بإضافة آخرى…….. يمكن أن تقول, أنه بدلاً من أن يقوم المستخدم بطلب البيانات, سيقوم الخادم بإرسالها إليه متى كانت متاحة, وهذا الأمر, تجده ضرورياً فى التطبيقات التى تحتاج تحديث فورى للبيانات وكذلك دورى, وفورى معناه, أى فى نفس الوقت التى تتاح فيه, ودورى معناه , أى بشكل مستمر, أفضل مثال على إستخدامها, تطبيق المحادثة (Chat ) والذى لابد له أن يرسل لك البيانات التى أدخلها من يقوم بالمحادثة فى الطرف الآخر, كذلك تطبيقات الأسهم, والتى تحتاج إلى تحديث بأسعار الأسهم وإرتفاعها وإنخفاضها, فهذان مثالان يوضحان كيف أن SignalR تقوم بإرسال البيانات إلى جهاز العميل تلقائياً متى كانت متاحة دون أن يطلبها المستخدم.

Web Pages Framework

هى Framework لبناء صفحات إنترنت بسيطة, وجاءت لتوفر بيئة مبسطة لبناء هذة الصفحات بدون تعقيدات Web Forms أو غيرها, وتم إيجاد IDE بإسم WebMatrix وهو البرنامج الذى من خلاله تستطيع أن تقوم بإنشاء مثل هذة الصفحات, حيث تتكون الصفحة الواحدة من HTML ثابت ومحتوى يتغير من خلال الكود فى نفس الصفحة, مستخدماً فى ذلك Razor Syntax, وهذا لمن يريد أن ينشأ صفحات إنترنت بسيطة بدون سابق معرفة بـ ASP.NET , ولا ولن يحتاج أن يعرف عنها شئ .

الختام

فى النهاية , ليس هناك بديل لشئ, إنما الكل يعمل لديك, وكلها أدواتك, وهناك أوقات سيتم فرض العمل مع أحدهم عليك رغماً عنك, فلا غنى لك عن تعلم الجميع, على سبيل المثال, قد يأتيك تطبيقاً تم إنشائه بـ Web Forms منذ زمن, وتم طلب تعديلات أو ربما تحديثات, فهل يعقل, أن تخبر العميل, أو حتى المدير, أن نقوم بترقية التطبيق وإنشائه من الصفر ولكن بـ MVC, هذا غير وارد فى الأصل, وكذلك العكس, وربما كنت فى Web Forms فعلاً, ولديك إضافة تتطلب تحديث فورى للبيانات, فعندها SignalR تفى بالغرض, أو ربما تحتاج إلى Data Point داخل Web Forms, أو قد تحتاج إلى Service تقبل الإتصال من خلال HTTP لتدعم العديد من انواع الـ Clients, فحينها Web API هو الحل الأمثل.

خلاصة الأمر لا غنى لك بواحدة عن الآخرى, أنت فقط توظف معرفتك حيث تحتاجها.

 سأحاول أن أوضح كيف تعمل كلاً منهم , متعمقين فى ما يحدث وراء المشهد وذلك فى مقالات منفصلة فى أقرب وقت إن شاء الله.

 هذا وبالله التوفيق .

المراجعة :-
أتوجه بالشكر لـكلاً من “محمد مليجى” والذى تستطيع أن تصل إليه من خلال @meligy على تويتر,  و”محمد الشريف” والذى تستطيع أن تصل إليه من خلال @bashmohandes على تويتر أيضاً , على إعطائنا من وقتهم الثمين للمراجعة بعد النشر .

نظرة سريعة على Serialization

شباب ::- كلمة Serialization عندنا فى البرمجة , معناها , تحويل حالة Object من صيغة إلى صيغة آخرى , أو بمعنى آخر , من Format إلى Format آخر , كمثال :- تحويل CLR Object وليكن Class Car إلى XML أو إلى JSON أو ممكن يكون إلى Text أو النوع إللى إنت تحدده .

أما كلمة Deserialization فدى معناها العكس , وبيها نقدر نحول XML أو JSON أو أى نوع , إلى CLR Object , يعنى ممكن نقوم بنحول XML إلى Class Car .

والسؤال هنا , هو إحنا ليه بنحتاج نعمل Serialization أوDeserialization ؟
والإجابة :- إننا بنعمل الكلام ده , لما بنحتاج ننقل Object من مكان لمكان عبر الشبكة , أو عبر التطبيقات , من تطبيق لآخر, أو ممكن فى نفس التطبيق الواحد , لما بنحتاج ننقل Object من الـ Server إلى Client والعكس.

مايكروسوفت قدمت للموضوع أكثر من Library بتعمل الكلام ده وهتلاقى مثال على كده :- XmlSerializer ودى بستخدمها مع XML , وكمان هتلاقى JavaScriptSerializer ودى بنستخدمها مع JavaScript (JSON) وكمان هتلاقى BinaryFormatter ودى مع Binary , وكمان هتلاقى SoapFormatter ودى مع Soap , وأخيراً هتلاقى DataContractJsonSerializer ودى برضه بنستخدمها مع JSON .

وهتلاقى أيضاً كـ Open-Source مكتبة كاملة للعمل مع JSON وإسمها JSON.net .

بالتوفيق للجميع .

نظرة سريعة على Single Page Application (SPA)

شباب مستقبل الويب متجه إلى SPA إختصار Single Page Application ,
والصفحة الرسمية له :- http://www.asp.net/single-page-application

والمعنى أن التطبيق مكون من صفحة واحدة , والفكرة هنا , أننا لدينا صفحة واحدة بالفعل هى التى سيتم عرضها للمستخدم , ولكن المحتوى سيتغير بدون حدوث Postback. وتغيير المحتوى سيتم بإستخدام Javascript ولكن ليس بطريقة مباشرة , بل سيتم إستخدام أحد مكتباتها أو framework تم إنشائه بإستخدامها , ومثال على ذلك Knockoutjs و Emberjs و BackboneJS و AngularJs وغيرهم كثير وإليك رابط يوضح بعضاً منها .

www.asp.net/single-page-application/overview/introduction/other-libraries

وفى المقابل , سنجد أن JavaScript ستحتاج أن تتفاعل مع الـ Server لهذا سنجد , أنه يمكننا العمل مع MVC Controller و كذلك Web-API أو HttpHandler أو WebService أوWCF Service
أو ربما SignleR. كما أوضحنا فى الفيديو السابق والذى شرحنا فيه “JQuery Ajax Functions” .

وجاء دورها هنا , لإن الإتصال بالـــServer سيكون عن طريق هذة الـFunctions “غالباً “, ولكن ليس فى الكل , لإنك ستجد على سبيل المثال , فى AngularJS يوجد $resource و $http , واللتان يمكنك الإتصال بالخادم من خلالهما , ولكن فى كل الإحوال ستجد Post,Get , Put,Delete وبقية HttpVerbs .

كذلك بعضاً منها يقدم لك نظام Routing مثال , AngularJs و EmberJs لتستعين بها من التنقل من صفحة إلى صفحة ولكن على جهاز الـ Client أى بدون حدوث Postback, ولكن لن يغنيك هذا عن الـ Routing الموجود فى ASP.NET على الــ Server .

هذا ما استحضرته الآن , وأسأل الله سبحانه وتعالى للجميع التوفيق

سلسلة المقدمة التعريفية بـ ASP.NET , ما وراء المشهد

الحمد لله رب العالمين , تم كتابة ستة أجزاء فى سلسلة مقدمة تعريفية بـ ASP.NET لعرض ما وراء المشهد , وأسأل الله أن يكون فيها الفائدة ,  ولزم التنوية هنا أن هذة المقدمة ليست للمبتدئين , فهى تركز على الفهم العميق لـ ASP.NET وما تتكون منه هذة البيئة لتطوير مواقع الإنترنت , وليست مقدمة لشرح بيئة العمل أو كيفية إستخدام الأدوات أو إنشاء مشروع توضيحى , وإليك الأجزاء , وأسأل الله لكم التوفيق ,

الجزء الآول :- تعرف على ASP.Net , الجزء الأول : ما وراء المشهد

الجزء الثانى :- تعرف على ASP.Net,الجزء الثانى:ASP.Net Patterns

الجزء الثالث :-HttpContext,HttpApplication

الجزء الرابع :- تعرف على بـ ASP.Net ,الجزء الرابع: Global.asax,Modules,Handlers

الجزء الخامس :-تعرف على ASP.Net , الجزء الخامس:ASP.Net Compilation

الجزء السادس :-مقدمة تعريفية بـ ASP.Net , الجزء السادس :- Page Class

بالتوفيق إن شاء الله .

ASP.Net MVC

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

دورة عبر الإنترنت فى 3 & 4  ASP.Net MVC
العمل يتم على اصدارات 2010
(الدورة ليست مجانية )

MVC Course
MVC Course

كثيراً منا قد تعلم كيف يقوم بتطوير المواقع من خلال ASP.Net Web Forms  وحان الوقت للإستزادة من العلم , لنتعرف سوياً على ASP. Net MVC  فى دورة عبر الإنترنت .

التفاصيل :-

ASP.NET MVC

إسم الدورة

16 درساً

عدد الدروس

ملفات مكتوبة وملفات صوتية وملفات مرئية ومجلد أكواد

مكونات الدرس الواحد

338 صفحة مكتوبة

عدد الصفحات المكتوبة

5+ ساعات فيديو

عدد ساعات الفيديو

14 ساعة صوت فقط

عدد ساعات المسموعة (Audio)

يوجد مع كل نقطة شرح مثال مصاحب لها

الأمثلة

الجزء الأول من الدرس الرابع

نموذج على الدروس

300 جنية للمقيمين داخل مصر

200 ريال لجميع الدول العربية

أو 50 دولار

رسوم الدورة

داخل مصر : حوالة بريد عن طريق مكتب البريد

خارج مصر : حوالة عن طريق أقرب بنك

خارج مصر : حوالة عن طريق أحد مكاتب ويسترن يونيون

طرق سداد رسوم الدورة

التمارين

 إنشاء مشروع جديد وعرضه فى المتصفح للتعرف على تركيبة مشروع MVC

البدء فى مشروع مدونة , يعتمد على قواعد البيانات وكذلك Entity Framework

إستكمال مشروع مدونة ,مع قواعد البيانات من حفظ وتعديل وحذف .

مشروع مصغر لمعرض صور من تحميل وتصفح وتنزيل .

إستكمال مشروع المدونة , مع ضبط الـ Routing له مع إستخدام محرر النصوص ckEditor .

إجراء Unit Testing على مشروع مصغر لمركز تدريب .

الفهرس :-

الدرس الأول :- Introduction to ASP. Net MVC

الدرس الثانى :- Controller & Action Methods & Action Filters

الدرس الثالث :- Views & State Management

الدرس الرابع :- Razor Engine & LINQ

الدرس الخامس :- Models

الدرس السادس : MVC Run-time Execution Process & Areas

الدرس السابع :- HTML Helpers

الدرس الثامن :- Model Binding

الدرس التاسع :- Model Validation

الدرس العاشر :- Authorization & Authentication

الدرس الحادى عشر :-Routing

الدرس الثانى عشر:- JQUERY

الدرس الثالث عشر :- Scripts .

الدرس الرابع عشر :- Unit Testing

الدرس الخامس عشر :- Deployment

الدرس السادس عشر :- How To  (عبارة عن فيديوهات لمواضيع مستقلة متنوعة )
1- Using Report Viewer in MVC 4 with Razor
2 – Using jTable in MVC4
3- Using WebGrid in MVC4 With Razor 

ملحوظة هامة :-  الدورات ليست ملفات مكتوبة وفيديو وصوت فقط ______ بل يصاحبهم دعم فنى طوال فترة دراستك للدورة, فيمكن أن تقوم بإرسال أسئلتك وإستفاراتك, بإستخدام أحد وسائل الإتصال المتاحة مثال الهاتف , البريد الإلكترونى , سكايب , وغيرهم, فالمجال مفتوح , فالهدف أن تجد حلاً لمشكلتك ________ فلن ينقطع الإتصال بيننا بمجرد حصولك على الدورة, بل نظل على إتصال دائم على حسب حاجتك,

للإشتراك :-

تعلم كيف تضيف مكونات Nuget إلى مشروعك

تعلم كيف تضيف مكونات Nuget إلى مشروعك

تمهيد :-

جمعت لك مايكروسوفت , مكتبات وأداوت , كنت تبحث عنها شرقاً وغرباً (وربما شمالأ وجنوباً ),فى أداة واحدة , والأصح أن نقول فى مكان واحد , حيث توفر المزيد من السهولة فى التعامل من حيث الإضافة فقط. أى جمعت خطوات كثيرة فى ربما خطوة أو خطوتين فقط .

مقدمة :-

هناك عدة ادوات ظهرت ,لتجعل عمل مطورى الويب به بعض المرونة واليسر , ولعل الهدف أيضاً من وراء هذة الأدوات أن لا يتم تكرار كتابتها فى كل مشروع ينتجه المطور .لذلك ظهرت أداة , تمثل نظام معالجة الأخطاء والتى تعرف بإسم Elmah وكذلك ظهرت مكتبة , تزيد الأمر يسراً حين تأتى للعمل مع JavaScript , ألا , وهى JQuery ,وكذلك NUint والتى تتيح إجراء الإختبارات على اكواد مشاريعك والتى تسمى تحت مصطلح Unit Testing , ولا ننسى موضوع حديثنا, وهو الذى اتى بنا إلى هنا وهو WebFormsMVP , تلك المكتبة التى تم إنشائها ,حيث نستطيع إضافة MVP Pattern إلى ASP.Net وقد سبق وتقدم درس بإسم “تعلم كيف تستخدم MVP Pattern فى ASP.Net ”, وأيضاً NHibernate والتى تعمل كـORM لتخدم العمل مع قواعد البيانات والتى تلقى إهتماماً من المطورين فى إستخدامها بجانب إستخدام Entity Framework و LINQ2SQL ,ولاجديد , حين نذكر AjaxControlTollkit بأدواتها الرائعة ,و……….و……….. و………….. بالطبع لن نسرد الجميع , لإن هناك مئات من هذة الأدوات والمكتبات .ما يهمنا هنا , هو ان مايكروسوفت , حفظها الله 🙂 , وجعل لها منافساً عربياً ,اللهم آمين , قد جمعت هذة الأدوات والمكتبات المذكورة وغيرها كثير فى شكل Plugin , او Extension , ولا يهم المسمى , المهم هنا أنها جمعتهم , ليتمكن المطور من إضافتهم وإستخدامهم فى Visual Studio بمزيد من المرونة . ووضعت لهم إسم وهو Nuget ,و تنطق بالعربية (نوجت, بضم النون ). فهيا بنا لخطوات الإضافة ومن ثم , العمل على أحد الإدوات التى تشتمل عليها Nuget .

كيف تضيف Nuget ؟

بالطبع بعد إنشائك لمشروع داخل Visual Studio أو Express Edition أيضاً ,نذهب إلى قائمة Tools , ثم نختار الأمر Extension Manager . تظهر لك نافذة , حدد فى الجانب الأيسر فيها , الأمر Online ,لتذهب للبحث عن الادوات والنماذج المتاحة Online .

وبعد البحث يمكنك أن تقوم بتحديد Nuget Package Manager و إن لم تجدها أمامك , يمكنك إستخدام اداة البحث فى الجانب الأيمن من هذة النافذة , كما ترى بالشكل بالأسفل , وستجد بجوارها كلمة download ,يمكنك الضغط علي هذة الكلمة , لتقوم بإضافة Nuget إلى مشروعك , وهذة هى الخطوة الأولى :-

الخطوة الثانية :-

هى إضافة احد مكونات Nuget إلى مشروعك , ,ولنقم بإضافة كمثال, مكتبات Jquery , إلى مشروعاً قمنا بإنشائه , تاتى هذة الخطوة بدايةً , مع الوقوف على ملف المشروع فى نافذة Solution ومن ثم الضغط Right Click , وإختيار Manage Nuget Packages (كما يمكن الوصول إلى هذا الأمر من قائمة Tools ) , لتظهر لك مجموعة من الأدوات والمكتبات التى أسلفنا ذكرها , فى المقدمة ,كما بالشكل :

 

بالطبع , بعد الضغط على Install ,سيصبح لديك ضمن ملفات مشروعك , مجلد باسم Scripts به مكتبات JQuery . بعدها يمكنك التمتع , باستخدام Jquery بلا قلق , فلديك المكتبة , ولا داعى لعناء الذهاب إلى الموقع الرسمى لها ,وتحميها , او ان تبحث عليها فى جهازك , فقط هى خطوة واحدة .

ومن أجل الهدف الذى جاء بنا إلى هنا, هيا بنا نقوم بإضافة WebFormsMVP إلى تطبيقنا .

من المؤكد انك لن تذهب هذة المرة إلى Extension Manager , ولكن , ستذهب للخطوة الثانية مباشرةً , لتختار Manage Nuget Packages ومنها للبحث عن WebFormsMVP وإضافتها .

أضفتها , ولم أعد أريدها ,كيف أقوم بإزالتها ؟

يتلخص الأمر فى الذهاب إلى نافذة Manage Nuget Packages ومن ثم إختيار Installed Packages ثم الضغط علىUninstall . كما بالشكل :-

 

مما سبق , ماذا تقدم لنا Nuget ؟

بإختصار شديد , بدلاً من البحث عن مكتبات عدة ,ومن ثم القيام بتحميلها على حهازك , ثم بعد ذلك , نأتى لإضافة Add Reference أو تضمينها ضمن ملفات المشروع (الإختيار هنا على حسب نوعية المكتبة ). ثم تبدأ بالإستخدام . جاءت Nuget لتوفر لك هذا فى خطوة واحدة كما رأيت بالأعلى .

الدرس القادم يتناول إستخدام WebFormsMVP  فى  ASP.Net    إن شاء الله .

والحمد لله رب العالمين .