السلام عليكم
قبل عدة ايام كان هناك كابوس يلاحقني يدعى 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:
ثم اختر ASP .net MVC web Applction
الغاء وحدات التجربة لن نحتاج اليها في هذا الموضوع
Visual Studio قام ببعض العمل لنا
اضافة عدد من الفولدات التي سنتعرف على البعض منها في هذا الموضوع
قبل البدء باي شي للننفذ البرنامج (يوجد مثال بسيط عند تكوين اي مشروع MVC)
صفحة بسيطة جداً
اضغط على About
نلاحظ هنا ان ال URL غريب
لا توجد صفحة بهذا الاسم
من اين اتت اذن صفحة ال /Home/About
دعنا نلقي نظرة سريعة على Global.asax
عند تنفيذ اي برنامج كلنا نعرف اول خطوه له يقوم بستدعاء ال 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 الخاصة بك ولن اتطرق له في هذا الموضوع)
و يمكن ان تشاهد ان تم وضع مجلد لكل قسم من هذا الاقسام
لنفهم ما عمل كل قسم دعنا ناخذ مثالنا السابق عند استدعاء http://localhost:2011/Home/About
قلنا بانه اول حقل من العنوان يتم وضعه في ال Controllers هذه تعبير خاطئ و الصحيح هو انه يقوم بستعداء Controller الذي يحتوي على بعض الاحداث التي يتم تنفيذها
افتح مجلد ال Controllers
سوفت تجد ان هناك Controller يسمى HomeController
ملاحظة نستطيع ان نطلق عليه اسم 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 التي كنا نبحث عنها
اي ان التسمية في MVC مهمة جدا
لقد تم ربط ال Controllers مع ال Url عن طريق الاسم و هنا ايضا يتم ربط الController مع ال Views
لنعيد الان ما تم شرحه بشكل سريع
عند كتابة الUrl التالي http://localhost:2011/Home/About
تم استدعاء الكونترول Home الموجود في الكلاس HomeController.cs
و قام هذا الكونتر بستعداء ال View المسمى About الذي هو عبارة عن صفحة MVC View Content Page التي تحتوي على البعض من اكواد ال HTML و اكواد برمجية
الان لنضع اجوبة على الاسئلة السابقة
هل علية ان اتعلم MVC
نعم ان لم تكن قد بدئت بتعلمها (لقد بداء بقرات اول موضوع خاص بMVC
ما مدى صعوبتها
لا توجد اي صعوبة فقط توجد اختلاف بسيطة مع ال Asp.net الاعتيادية
ما اختالفها عن برمجة ال ASP .net بستخدام ال Form
انت سوف تفتقد البعض من خصاص ال Form مثل الRich Controls و بعض خصائص الاخرى
هل سوف اقرا كتاب جديد اخر
الكتاب صديق المبرمج الدائم ولا ارى اي ضرر بقرائة كتاب جديد و لكن ان كنت مللت الكتب فيمكنك قرائه بعض المقالات و سوف تحترف ال MVC
كل هذه المعلومات ب 50 دقيقة و كتابة الموضوع استغرق ساعة
و كما ذكرت سابقا اي خطا يرجى تبليغي

