تعلم ASP.NET MVC


الدرس: مقدمة في ASP.NET MVC


الصفحة السابقة
ما هو ASP.NET MVC؟ هل سيسمح لي حقًا بإنشاء مواقع ويب؟ كيف يختلف عن HTML؟ لماذا استخدام ASP.NET MVC بدلاً من أي شيء آخر؟ ما الذي أحتاجه لبدء تعلم ASP.NET MVC؟ كيف يعمل الموقع؟
هذا كل ما سنتعلمه في هذا الفصل. سيتيح لك الحصول على فكرة جيدة و كذلك عن الخطوات اللازمة لإنشاء موقع ويب ، والحلول التي يقدمها ASP.NET MVC للتغلب عليها. دعنا نصل إلى جوهر المسألة ومعرفة ما هو ASP.NET ...
لاحظ أنه يمكن استخدام ASP.NET MVC أيضًا مع لغة برمجة VB.NET . المبادئ هي نفسها في C# لكن بناء الجملة مختلف. إذا كنت معتادًا على VB.NET ولكنك ليس على C# ، فقد تتمكن من تكييف نماذج التعليمات البرمجية التي ستجدها في هذه الدورة التدريبية.

ما هو ASP.NET؟


لنبدأ في البداية: كيف يتم نطقها؟
يمكن نطق ASP.NET باللغة الإنجليزية ("أي اس بي دوت نات ") . الأمر متروك لك لاختيار النطق الخاص بك ، لأنه ليس له أي تأثير على التعلم الخاص بك.
وما هو إذن؟
ASP.NET هو المنصة الأساسية للتطويرفي Microsoft الذي يسمح بإنشاء تطبيقات الويب.
حتى لو كنا سنقوم بإنشاء مواقع ويب ، فإن .NET ليس اختصارًا للإنترنت ، ولكنه يتوافق ، كما يمكنك أن تتخيل ، مع .NET Framework .
ما يسمى "منصة" هنا هو مجموعة من المكونات لبناء تطبيق ويب. عندما نبني منزلًا ، نحتاج إلى الأرض ، و الموقع ، ومواد البناء ، وخطة البناء ، والأدوات ، والدراية الفنية (وبالتأكيد أشياء أخرى) . حسنًا لجعل تطبيق الويب ، هو نفس المبدأ قليلاً ، نحن بحاجة (من بين أمور أخرى):
  • أداة تطوير.
  • مجموعة من الوظائف للتطوير.
  • من منطق للتطوير.
  • لغة برمجة.
أداة التطوير هي Visual Studio ( وتتضمن نسخة مجانية تسمى " Visual Studio Express للويب " ) . هذا هو البرنامج الذي سيتيح لنا إنشاء موقع الويب والذي سيوفر لنا الأدوات اللازمة لتنسيق تطوراتنا. هو إلى حد ما مدير موقع ASP.NET .
مجموعة الوظائف هي " .NET Framework " ، والتي تتضمن أنواعًا مختلفة من الوظائف:
  • ما يسمى بالوظائف العامة التي سيتم استخدامها لجميع التطبيقات التي تستخدم .NET Framework ، سواء تطبيقات الويب أو Windows ، أو تطبيقات الهاتف ، أو الألعاب ، إلخ.
  • وظائف محددة لإنشاء مواقع الويب: هذا هو ASP.NET . في موقعنا ، سيمثل إطار عمل .NET المواد الموجودة في أي موقع أو طوب أو اسمنت ، إلخ. بينما يمثل ASP.NET مادة خاصة بنوع البناء ، على سبيل المثال الخطوط المنتظمة لبناء حمام سباحة. 
سوف يتوافق منطق التطوير إلى حد ما مع خطة البناء. يوفر مخططًا لإنشاء موقع ويب. يقدم لنا ASP.NET منطقين لإنشاء تطبيق ويب: WebForms و MVC . في هذه الدورة ، سوف نركز على منطق تطوير MVC . أخيرًا ، ستكون لغة البرمجة في هذه الدورة هي C# ، والتي سنتحدث عنها لاحقًا في هذا الفصل.

MVC و WEBFORMS


يمكننا القول تقريبًا أن ASP.NET مقسم إلى قسمين رئيسيين (المنطق الشهير!) ، وهو:
  • ASP.NET WebForms
  • ASP.NET MVC
ASP.NET هو أساس نظام تطوير Microsoft لبناء تطبيقات الويب . WebForms و MVC هما منطقتي تطوير مختلفتين تتناسبان مع أساس ASP.NET .
سوف ندرس في هذه الدورة التدريبية ASP.NET MVC وليس ASP.NET WebForms وسأشرح لماذا ، ولكن قبل كل شيء ما هو WebForms ASP.NET ؟

تم إنشاء ASP.NET WebForms في عام 2002 وهو الآن في الإصدار 5. وهو عبارة عن منصة ناضجة أثبتت نفسها وتستخدم على نطاق واسع في العالم الاحترافي. في الأصل ، تم إنشاء ASP.NET WebForms بواسطة Microsoft حتى يتمكن مطورو تطبيقات Windows من إنشاء تطبيقات الويب بسهولة من خلال معرفتهم ببيئة تطوير Windows . وبالتالي ، فإن ASP.NET WebForms لديه آلية كاملة تسمح باستخلاص أكبر قدر ممكن من نموذج الويب (الذي سنصفه بالتفصيل لاحقًا) بحيث يكون لدى المطورين انطباع عن إيجاد أنفسهم في ظروف تطوير تطبيق ويندوز. هذا ينطوي على منطق معين للتطوير. تطبيقات ASP.NET WebForms تقترب من نموذج الحدث ، ذلك أي أن كل مكون في الصفحة قادر على الاستجابة إلى إجراء المستخدم. يتيح لك نموذج ASP.NET WebForms أيضًا الحفاظ على حالة الصفحة ، وهو أمر لا يسمح به بروتوكول HTTP .
HTTP هو اختصار HyperText Transfer Protocol . إنه بروتوكول اتصال بخادم العميل يسمح لك باستشارة موقع ويب من متصفح إنترنت. المبدأ هو أن المتصفح يقدم طلبًا إلى الموقع عبر هذا البروتوكول وأن الموقع يرسل ردًا وهو محتوى الصفحة التي يريد المتصفح عرضها.  في هذا البروتوكول ، الطلبات مستقلة عن بعضها البعض ولا يتم الاحتفاظ بأي معلومات خاصة بالطلب.
ASP.NET WebForms هو منطق تطوير قوي للغاية لبناء تطبيقات الويب. ويضيف طبقة من التجريد التي تفاجئ مستخدميها كل يوم. تتيح طبقة التجريد هذه إخفاء التعقيد في العمل المطلوب تنفيذه بالإضافة إلى جميع خصائص برمجة تطبيقات الويب التي سنكتشفها لاحقًا. يوفر ASP.NET WebForms أيضًا الكثير من عناصر تحكم الخادم لإنشاء HTML . على سبيل المثال ، في بضعة سطور من التعليمات البرمجية ، يمكننا إنشاء شبكة كاملة لعرض البيانات ، وإدارة صفحات متعددة ، وأنواعها ، إلخ. لكن كل هذا يأتي بتكلفة: دورة حياة صفحة معقدة ، تحكم أقل في HTML الذي تم إنشاؤه ، الكثير من الجهد للتغلب على قيود معينة ، إلخ.

يعد ASP.NET MVC أكثر حداثة وظهر في عام 2009. تعتمد طريقة التفكير هذه في إنشاء تطبيقات الويب على نمط تصميم مشهور جدًا ، وهو MVC ( من "model-view-controller" بالإنجليزية ) ، التي كانت موجودة منذ عام 1979 .
 يُعرف نمط التصميم ، المعروف جيدًا باسم "design pattern" باللغة الإنجليزية ، حلاً مجربًا يُعرف بأنه ممارسة جيدة لمشكلة متكررة في تصميم تطبيقات الكمبيوتر. بشكل عام ، يصف نموذجًا للفصول المستخدمة لحل مشكلة معينة. هناك العديد من أنماط التصميم. سوف أصف قالب تصميم MVC بمزيد من التفصيل ، لكنني أعرف الآن أن قالب التصميم هذا يسمح لك بفصل البيانات وعروضها التقديمية.
ASP.NET MVC هو أيضًا لبنة تتم إضافتها أعلى ASP.NET وتستغل جميع أعمال السباكة الخاصة بها. هنا لا يتمثل المبدأ في تقديم طبقة من التجريد تسمح بتبسيط العمل ، بل إطار عمل لتحقيق تطبيقات الويب ، وذلك بفضل نمط التصميم الشهير ؛ نوع من المبادئ التوجيهية التي ستوجهنا في إنشاء تطبيق ويب. لكن ASP.NET MVC يمنح أيضًا حرية أكبر في تقديم HTML ، خاصة من خلال السماح باستخدام مكتبات Javascript الخارجية لتحسين تجربة المستخدم وإنشاء تطبيقات ويب 2.0 قوية ، وذلك بفضل AJAX (التي سوف تدرس بمزيد من التفصيل في نهاية الدورة) .

لماذا استخدام ASP.NET MVC؟


إذن ما الذي يجب دراسته؟ ASP.NET WebForms أو ASP.NET MVC ؟
هذا هو السؤال المهم أن تسأل نفسك! لا توجد طريقة صحيحة وخاطئة لتصميم المواقع باستخدام ASP.NET ، فكلاهما جيد ويعتمد على احتياجاتك. الأفضل بالطبع هو تعلم كلاهما ، لكن هذه قصة أخرى. 

هل تحتاج إلى إنشاء تحكم خاص بك ، لإعادة استخدامه في عدة أماكن ، أو لبيعه؟ أنت لا تعرف أي شيء عن الويب ولكنك تعرف كيفية برمجة تطبيقات Windows؟
ثم ASP.NET WebForms هو لك! طراز الحدث الخاص به وتجريده من بروتوكول HTTP سيسعدك ويسمح لك أن تكون فعالاً بسرعة. يمتلك ASP.NET WebForms ميزة وجود العديد من عناصر التحكم المتقدمة: شبكة معقدة أو treeview أو العديد من الأشياء الأخرى التي تتطلب القليل جدًا من التعليمات البرمجية لتعمل ويمكن إعادة استخدامها حسب الرغبة.
إذا كنت محترفًا في تطوير الويب وقمت بالفعل بالكثير من PHP (أو لغة مشابهة) ، فسوف أخبرك بالذهاب إلى ASP.NET MVC ومواصلة قراءة هذه الدورة التدريبية. لأن ASP.NET MVC سوف يقترب أكثر مما كنت بالفعل قادراً على القيام به. سيكون لديك بعض الميزات المحددة لتتعلمها ، لكن المنطق سيكون على نطاق واسع. سيكون لديك سيطرة كاملة على نموذج HTTP وكذلك كود HTML الذي تم إنشاؤه. يعد إتقان HTML الذي تم إنشاؤه عاملاً محددًا أيضًا إذا كنت تخطط لإنشاء موقع يعمل على أجهزة الكمبيوتر الشخصية ولكن أيضًا على الأجهزة اللوحية أو الهواتف الذكية. التصميم المتجاوب ، وهو ممارسة عصرية للغاية تتمثل في تكييف موقع ويب مع جهاز الدعم (الهاتف الذكي أو الجهاز اللوحي أو الكمبيوتر ، إلخ) ، مما يعني وجود سيطرة جيدة على HTML الذي تم إنشاؤه ، وهو الأمر الأكثر تعقيدًا في ASP.NET WebForms . من ناحية أخرى ، مع ASP.NET MVC ، يجب عليك كتابة كل HTML اللازمة لذلك بنفسك.

يستفيد ASP.NET WebForms من نضج النظام الأساسي الصلب ، ويستخدم المحترفون على نطاق واسع. ASP.NET MVC ، الأحدث ، أقل نضجًا حتى إذا كان موجودًا بالفعل في الإصدار 5 وأن Microsoft استثمرت الكثير في هذا الموضوع. المجتمع أصغر ولكن أيضًا أكثر ديناميكية. قد يكون هناك موارد أقل ، لكن هذا جيد لأن لديك مفتاح تعلم ASP.NET MVC
في أي حال ، هذا هو ما اخترته لتتعلمه هنا: ASP.NET MVC . لقد عملت شخصيا مع كليهما وكلاهما مثير للاهتمام. الآن الأمر متروك لك لاختيار العنصر الذي تريد أن تتعلمه ، ولكن لديك عناصر لتقررها ، وما لم تكن قد اخترت تعلم ASP.NET WebForms ، أقترح عليك المتابعة معنا واكتشاف هذه المنصة الكبيرة.

One ASP.NET


أخبرتك عن قاعدة تطوير (ASP.NET) وعن منطقين مختلفين لإنشاء موقع ويب ( WebForms و MVC ) . أعلم جيدًا أنه يمكننا مزج هذين المنطقين أيضًا لتحقيق تطبيق أحلامنا. من الممكن تمامًا إنشاء موقع ويب عن طريق تنفيذ كل من WebForms و MVC والأشياء الأخرى التي لم أناقشها بعد (مثل Web API التي سأناقشها نهاية الدورة ، أو SignalR التي لن أتحدث عنها والتي لا علاقة لها بمعجون الأسنان ...).
وهذا ما يسمى ONE ASP.NET . إنها إمكانية تفعيل هذا الطوب بشكل مستقل أو معًا في مشاريعنا المختلفة. هذه هي ميزة مثيرة للاهتمام لا تربطنا بقاعدة فنية من بناء المشروع.

سنركز هنا على تعلم MVC ، لذلك لن أعود إلى One ASP.NET .

المتطلبات الأساسية


لا يوجد سوى اثنين من المتطلبات المسبقة لمتابعة هذه الدورة:
  • الأول هو امتلاك جهاز كمبيوتر.
أبسطها أنها مزودة بنظام تشغيل Windows لأنني سأقدم تثبيت الأدوات المجانية التي سنستخدمها مع نظام التشغيل هذا. من ناحية أخرى ، ليس ضروريًا لأن هناك حلًا يسمح بالتطوير باستخدام ASP.NET MVC ضمن Linux على سبيل المثال ، بفضل Mono http://www.mono-project.com/ASP.NET . لم يتم شرح تركيبها واستخدامها في هذه الدورة التدريبية ، لكن يجب أن تكون قادرًا على استخدام هذه الدورة التدريبية بسهولة مع Mono .
  • والثاني هو تحدث لغة C# .
C# هي لغة التطوير الرئيسية لشركة Microsoft وتمكّن من إنشاء جميع أنواع تطبيقات الكمبيوتر. من الضروري معرفة القليل عن لغة البرمجة C# لتتمكن من تطوير تطبيقات ASP.NET . كما قلت في المقدمة ، لم تتم تغطية دراسته في هذه الدورة ولكن يمكنك العثور على دورة كاملة على C# على Arabclassroom على هذا العنوان http://arabclassroom.com/modules/6
لتلخيص ماهية C# ، يمكننا القول أنها لغة موجهة للكائنات ظهرت في نفس الوقت مثل .NET Framework الذي لم يتوقف عن التطور منذ عام 2001. وهو يسمح باستخدام إطار عمل .NET لانشاء التطبيقات بجميع أنواعها وفي تطبيقات معينة لـ ASP.NET ، ولكن أيضًا لنظام التشغيل Windows و Windows Phone والألعاب ، إلخ. هذا هو الاسمنت والأدوات التي تسمح لنا بتجميع الطوب من تطبيقاتنا.
 لاحظ أنه من الممكن أيضًا إنشاء تطبيقات ASP.NET بلغة VB.NET والتي تعد أيضًا لغة .NET مثل C# . يختلف بناء الجملة قليلاً وربما يكون في متناول الأشخاص الذين طوروا بالفعل باستخدام Visual Basic .
خلاف ذلك ، سيتم تغطية كل شيء آخر في هذه الدورة. ما هو موقع الويب ، أو كيف يعمل نموذج HTTP .

في الخلاصة


  • ASP.NET هو نظام تطوير تطبيقات الويب من Microsoft
  • يقدم ASP.NET منطقين للتطوير : WebForms و MVC . في هذه الدورة ، سنقوم بدراسة منطق الإصدار 5 من MVC باستخدام لغة C# .
  • يقدم ASP.NET WebForms طبقة تجريدية تسمح بإنشاء تطبيقات الويب كما لو كنا نقوم بإنشاء تطبيقات Windows
  • يوفر ASP.NET MVC إطار عمل للتطوير والمزيد من التحكم في HTML النهائي للصفحات