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

مكانيكة الmvc

بدأه Slayer666 في 24 سبتمبر 2008 · 6 رد · 1,868 مشاهدة · في ASP.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

قبل عدة ايام كان هناك كابوس يلاحقني يدعى MVC

و يلحق هذا الكابوس الالف من الاسئلة منها

هل علية ان اتعلم MVC

ما مدى صعوبتها

ما اختالفها عن برمجة ال ASP .net بستخدام ال Form

هل سوف اقرا كتاب جديد اخر

و العديد من الاسئلة التي تشغل فكري منذ ان سمعت بوجود هذه التقنية الجديدة

الان سوف افتح بعض الافاق و اسلط الضوء عن هذه التقنية الجديدة

قبل البدء احب ان انوه باني جديد جدا جدا على هذا التقنية و جديد جدا تعني اني لم اكمل اكثر من 50 دقيقة بتعلم ما سوف اكتبه في هذا الموضوع

ولهذا ان كانت هناك اخطاء فا اتمنى ان تبلغوني فا انا جديد

قبل العمل يجب تحميل الامتداد الخاص بال MVC و تثبيته على جهازك هذا اخر اصدار و هو جديد و لا اعرف الفرق بين الاصدرات والاحدث هو الاحسن دائما :wink:

http://www.codeplex.com/aspnet/Release/Pro...ReleaseId=16775

لنبدء ببدء مشروع جديد

افتح ال Visual Studio

New Project اكرر New Project و ليس Web Site :blink:

post-59755-1222208362_thumb.jpg

ثم اختر ASP .net MVC web Applction

post-59755-1222208490_thumb.jpg

الغاء وحدات التجربة لن نحتاج اليها في هذا الموضوع

post-59755-1222208523_thumb.jpg

Visual Studio قام ببعض العمل لنا

اضافة عدد من الفولدات التي سنتعرف على البعض منها في هذا الموضوع

post-59755-1222208542_thumb.jpg

قبل البدء باي شي للننفذ البرنامج (يوجد مثال بسيط عند تكوين اي مشروع MVC)

صفحة بسيطة جداً

post-59755-1222208586_thumb.jpg

اضغط على About

post-59755-1222208614_thumb.jpg

نلاحظ هنا ان ال URL غريب

لا توجد صفحة بهذا الاسم

من اين اتت اذن صفحة ال /Home/About

دعنا نلقي نظرة سريعة على Global.asax

post-59755-1222208927_thumb.jpg

عند تنفيذ اي برنامج كلنا نعرف اول خطوه له يقوم بستدعاء ال Start Application

		protected void Application_Start()
		{
			RegisterRoutes(RouteTable.Routes);
		}

الذي يقوم بدوره بستعداء RegisterRoutes و هو مكان يقوم بوضع اساس استدعاء ما يكتب في ال Url

دعنا نرى ما يحصل

لن ندخل في جميع محتويات لان هذا الموضوع هو للمبتدئين (مثلي انا) ولكن للنظر على اهم جزء منه و هو

 routes.MapRoute(
				"Default",											  // Route name
				"{controller}/{action}/{id}",						   // URL with parameters
				new { controller = "Home", action = "Index", id = "" }  // Parameter defaults

مذا يحدث هنا هو تعريف احد تشكيلا ال Url و كيفية استدعاء الصفحات

Defalut هو اسم هذا التشكيل

"{controller}/{action}/{id}" هو صيغة التحويل اي انه سوف ياخذ اول حقل من الUrl و يضعه في الController اما الجزء الثاني فهو الحدث الخاص بهذا الController

اما ال ID فهو قيمة يتم ارسالها لهذا الحدث

الموضوع صعب الان ولكن سوف ترى سهولته بعد قليل

يوجد 3 اقسام رئيسية لعمل ال MVC و هي

Controller

View

Models ( هو لوضع Classes الخاصة بك ولن اتطرق له في هذا الموضوع)

و يمكن ان تشاهد ان تم وضع مجلد لكل قسم من هذا الاقسام

post-59755-1222209068_thumb.jpg

لنفهم ما عمل كل قسم دعنا ناخذ مثالنا السابق عند استدعاء http://localhost:2011/Home/About

قلنا بانه اول حقل من العنوان يتم وضعه في ال Controllers هذه تعبير خاطئ و الصحيح هو انه يقوم بستعداء Controller الذي يحتوي على بعض الاحداث التي يتم تنفيذها

افتح مجلد ال Controllers

سوفت تجد ان هناك Controller يسمى HomeController

post-59755-1222209117_thumb.jpg

ملاحظة نستطيع ان نطلق عليه اسم Home بسبب ان كلمة Controller هي بمثابة كلمة مفتاحية اي كونترول يجب ان يحتوي هذه الكلمة

لنرى مذا يوجد داخل هذا الClass

	public class HomeController : Controller
	{
		public ActionResult Index()
		{

			return View();
		}

		public ActionResult About()
		{
			return View();
		}
	}

ملاحظة : قمت بخذف بعض الاسطر التي ليست موضوعنا هنا

قلنا كلمة Home تستدعي HomeController.cs

اما كلمة About ف سوف تستعدي ال method الذي يحمل نفس الاسم داخل ال HomeController.cs

بهذه الحالة اذن سوف يتم استعداء

		public ActionResult About()
		{
			return View();
		}
	}

عند عدم ارسال اي Parameter يقوم الView باعادة View بنفس اسم الMethod بهذا الحالة سوف يتم ارسال

 View("About")

اي يمكنك عادة كتابة الView السابق كالتالي

بهذه الحالة اذن سوف يتم استعداء

		public ActionResult About()
		{
			return View("View");
		}
	}

لحد الان لم نعلم مين ان اتت الصفحة التي رئيناها :((

لنرى مذا يفعل هذا المثود ببساطة يعيد View

و هو القسم الاخير من الاقسام المذكورة

ولكن ماهو ال View ؟

لننظر مذا يوجد تحت المجلد View

يوجد مجلدات تحمل اسماء ال Controller

و تحت المجلد Home توجد صفحة الAbout التي كنا نبحث عنها

post-59755-1222209202_thumb.jpg

اي ان التسمية في MVC مهمة جدا

لقد تم ربط ال Controllers مع ال Url عن طريق الاسم و هنا ايضا يتم ربط الController مع ال Views

لنعيد الان ما تم شرحه بشكل سريع

عند كتابة الUrl التالي http://localhost:2011/Home/About

تم استدعاء الكونترول Home الموجود في الكلاس HomeController.cs

و قام هذا الكونتر بستعداء ال View المسمى About الذي هو عبارة عن صفحة MVC View Content Page التي تحتوي على البعض من اكواد ال HTML و اكواد برمجية

post-59755-1222209266_thumb.jpg

الان لنضع اجوبة على الاسئلة السابقة

هل علية ان اتعلم MVC

نعم ان لم تكن قد بدئت بتعلمها (لقد بداء بقرات اول موضوع خاص بMVC

ما مدى صعوبتها

لا توجد اي صعوبة فقط توجد اختلاف بسيطة مع ال Asp.net الاعتيادية

ما اختالفها عن برمجة ال ASP .net بستخدام ال Form

انت سوف تفتقد البعض من خصاص ال Form مثل الRich Controls و بعض خصائص الاخرى

هل سوف اقرا كتاب جديد اخر

الكتاب صديق المبرمج الدائم ولا ارى اي ضرر بقرائة كتاب جديد و لكن ان كنت مللت الكتب فيمكنك قرائه بعض المقالات و سوف تحترف ال MVC

كل هذه المعلومات ب 50 دقيقة و كتابة الموضوع استغرق ساعة

و كما ذكرت سابقا اي خطا يرجى تبليغي

تم تعديل هذه المشاركة بواسطة Slayer666 في 24 سبتمبر 2008 في 02:07

#2

كل التحية لك يا أخ Slayer666 .....

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

انت الان حفزتني على التعمق في هذه التقنية...

الى اللقاء

#3

شكرا على المجهود اخي Slayer666 :clapping:

ملاحظه للجميع ، الASP.NET MVC تغيرت كثيرا خلال النسخ السابقه Preview 1 وحتى 5 لذلك يمكن ان ترى دروس في مواقع عن نسخ سابقه التي تغيرت فيها خصائص او حذفت

تم تعديل هذه المشاركة بواسطة EnigmaOX في 24 سبتمبر 2008 في 03:10

#4

أعتقد أن هذا الدرس يناقش اخر نسخة, فقد لاحظت أن الaction methods تستخدم ActionResult و هذا ظهر في Preview 5 على ما أتذكر

Sr. Software Development Engineer
Hulu, LLC
My Blogs

#5

ألا تروا يا أخوان أنه من المفترض التحدث عن مفهوم MVC قبل الشروع في كتابة مثال

اللهم أطل عمري وأحسن عملي واختم بالشهادة أجلي

#6

الف شكر اخونا Slayer

جارى التحميل والتطبيق

ولدي إليك وصيتي عهد الأسودْ

العز غايتنا نعيش لكي نسود

و عريننا في الأرض معروف الحدود

فاحم العرين و صنه عن عبث القرود

أظفارنا للمجد قد خُلقت فدى

و نيوبنا سُنَّت بأجساد العدى

و زئيرنا في الأرض مرهوب الصدى

نعلي على جثث الأعادي السؤددا

#7

رائع جداً أعتقد انه يجب ان نعود قليلاً للقراءة

joseph.gif

logo.gif

CCNA 640-802

مدونتي

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