TOC

This article is currently in the process of being translated into Arabic (~99% done).

The basics:

CodeBehind

بالرغم من أن المثال الأول عمل بنجاح، و لكن تم انتهاك أحد مبادئ كتابة الكود الخاصة بـ ASP.NET: حيث يفضل الفصل بين الكود و markup. كما تلاحظ، لقد قمنا بإضافة الكود في المكان المخصص للـ markup باستخدام (<% %>)، حيث قمنا بكتابة سطر واحد من كود C# لاستخدام label. هذا يمكن أن يستخدم في الأمثلة الصغيرة و البسيطة، و لكن قريبا سوف يكون الكود في حالة فوضى عند كتابة مجموعة من كود C# ضمن كمية كبيرة من كود HTML HTML. بالاضافة إلى ذلك، إذا قمنا بإضافة اكواد JavaScript مع CSS، هذا كله سوف يتحول إلى فوضى يصعب من بعدها تعديل الكود. لهذا السبب قامت MS بتقديم CodeBehind، و التي تعتبر تقنية تسمح بفصل بين markup (HTML, CSS,etc.) و الكود (C#, VB,NET, etc.). الأن سوف نقوم بإزالة الكود الذي بين العلامتين <% %> شاملا هاتين العلامتين و من ثم حفظ الملف.

كما تحدثنا سابقاً، VS أضافت ملف معنون باسم Default.aspx.cs. إذا لم تتمكن من رؤية الملف في Solution Explorer، قم بالنقر على علامة الجمع/الزائد الصغيرة على يسار الملف Default.aspx. قم بفتح هذا الملف. إذا لم تكن قد تعاملت سابقاً مع .NET أو أي لغة برمجة اخرى التي لا تختص بتطبيقات الويب (non-web programming langauage)، ربما سوف تكون نوعا ما غريبة و مخيفة. هي ربما تكون شبيهة للـ HTML. و لكن سوف نحاول شرح الأجزاء المختلفة، بعد ذلك سوف تتعرف على فوائد CodeBehind كأداة تنظم أعمالك. الكود التالي يوضح ماهي محتويات الملف:

using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

public partial class _Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {

    }
}

الآن، سوف نقوم بتجاهل الجزء العلوي من الملف (الكود العلوي). هذا الجزء يحتوي على قائمة من namespaces التي تظهر مع الكلمة المحجوزة using، و التي تسمح لنا باستخدام هذه المكتبات في هذا الجزء/الملف. بما أن هذه الدروس خاصة بـ ASP.NET و ليس خاصة بـدروس C# C# tutorial، سوف لن ندخل في شرح تفاصيلها. بعد هذا الجزء، هناك class. تعتبر Classes جزء من مفهوم Object Oriented Programming و التي أصبحت ذات شعبية كبيرة في عالم البرمجة و خصوصا مع لغات برمجة مثل Java و C#. تعتبر OO من المواضيع الصعبة و المعقدة، لذلك لن نقوم بالغوص في تفاصيلها.

من خلال الكود، يمكننا معرفة اسم class و الذي هو "_Default"، و علامة النقطتان : (colon) تخبرنا بأن هذا class يرث (inherits) من Page class والذي يتبع فضاء الاسماء System.Web.UI namespace. عملية الوراثة هذه تعني بأن الصفحة يمكنها القيام ببعض الوظائف حتى بدون إضافة أي شي لها، لأنها ترث بعض الطرق (methods) و الخصائص (properties) من class اخر. نسطيع القول بأن كل ASP.NET pages ترث من Page class، أو ترث من class اخر و الذي بدوره سوف يرث من Page class. يعتبر Page class الـ class الأب لكل الصفحات.

الطريقة/الوظيفة الوحيدة في هذا الـ Class هي Page_Load و التي يتم استدعائها و تنفيذها في كل مرة يتم فيها تحميل الـ page. سوف نقوم باستخدام نفس الكود الذي تم كتابته في المرة السابقة، و لكن بدون script block tags. الأن قم بإضافة سطر الكود و قم كتابته بين القوسين { } الخاصة بالوظيفة Page_Load.

HelloWorldLabel.Text = "Hello, world!";

الأن، نفذ المشروع بالضغط على زر F5. الصفحة التي سوف تظهر ستكون تماما تشبه الصفحة التي ظهرت في السابق و التي كانت باستخدام الطريقة الأولى في كتابة الكود، و لكن هذه الصفحة كانت باستخدام CodeBehind، و هذا يعتبر أول استخدام لهذه التقنية. بالرغم من ذلك، هذا المثال أصبح يعتبر قديم، و لذلك في الفصل القادم سوف نتطرق لمواضيع أكثر إثارة للإهتمام.


This article has been fully translated into the following languages: Is your preferred language not on the list? Click here to help us translate this article into your language!