تقنية ASP.NET من ASP إلى MVC و Web API

تقديم عام:

تقنية ASP.NET باختصار هي إطار عمل Framework أنشأته شركة ميكروسوفت للسماح للمبرمجين بإنشاء صفحات الويب الديناميكية، فكما نعلم جميعا لا بد من الإلمام بمجموعة من التقنيات واللغات لكي نستطيع إنشاء صفحات الويب.
ولعل أبرز ما نحتاجه:

1. لغة HTML: باعتبارها اللغة التي تسمح لنا ببناء الهيكل الأساسي لمواقع وتطبيقات الويب، ومن دونها لا نستطيع إنشاء الصفحات، إذ هي التي تسمح لنا بالقيام بأول خطوة وهي عرض المحتوى وبناء الهيكل الرئيسي للصفحات.

2. لغة CSS: تسهل عملية التصميم والتحكم في شكل الصفحات وتحديد مواقع و خصائص مكونات الصفحة.

3. لغة جافاسكريبت: تسمح بجعل الصفحات مرنة وقادرة على التجاوب مع المستخدم، لأنها لغة برمجية وتوفر للمبرمج كل ما يحتاجه للقيام بعمليات برمجية على الصفحة، كاستقبال القيم من المستخدم والتعامل معها، وإجراء العمليات الحسابية والمنطقية، والتحقق من العبارات، وتكرار الأوامر عبر آلية الحلقات، واقتناص الأحداث، وتحديد عناصر HTML عبر تراتبية DOM وغير ذلك من المزايا القوية التي توفرها لغة جافاسكريبت.

كل اللغات الآنفة، تنفذ على مستوى المتصفح، أي على حاسوب المستخدم / الزائر، مما يضمن سرعة استعراض الصفحات، لأن هذه السرعة غير مقتسمة من طرف كل الزوار، فهي متعقلة بجهاز الزائر، على خلاف لغات السيرڤر، التي كلما ازداد عدد الزوار والمستخدمين، ازداد الضغط على السيرڤر مما قد يبطيء عملية استعراض الموقع أو التطبيق حسب كفاءة جهاز السيرڤر.
لكن الللغات السابقة وحدها لا تكفي لبناء تطبيق ويب متكامل، يسمح بإجراء العمليات على مستوى السيرڤر، كإرسال الرسائل، أو التعامل مع قواعد البيانات وما إلى ذلك، لذلك وجب استخدام إحدى اللغات الديناميكية التي تخول لنا القيام بهذه العمليات وغيرها.
توجد لغات وتقنيات كثيرة، تسمح ببناء أنظمة ديناميكية على الويب، لعل أبرزها لغة PHP و JSP و التقنية الرهيبة التابعة لمنصة الدوت نيت ASP.NET.

ظهرت تقنية ASP.NET عام 2000 تحت اسم ASP اختصارا ل Active Server Pages، وجاءت كحل من ميكروسوفت لتمكين المبرمجين من بناء صفحات ويب ديناميكية، وكان مما يميز هذا الإصدار القديم أنه يسمح بكتابة أوامر ASP داخل أوامر HTML بين الرمزين <% %>.

فتقدم الزمن بعد ذلك، وتطورت تقنية ASP ليصبح اسمها ASP.NET، وصارت جزء لا يتجزأ من إطار العمل دوت نيت فريموورك، وكان من مستجدات التقنية، أنها صارت تعتمد على الترجمة Compilation لا على التفسير Interpretation كما كان الحال مع تقنية ASP الكلاسيكية، إضافة إلى تقسيم الكود إلى صفحتين، ما يتعلق بHTML يكتب في صفحة وما يتعلق بلغة البرمجة يكتب في صفحة تعرف باسم Code Behind.

تسمح تقنية ASP.NET بإنشاء صفحات ويب ديناميكية بعدة طرق، لعل أبرز هذه الطرق:


1. طريقة Web Forms:

وهي طريقة قوية جدا، شبيهة جدا بنمط برمجة الواجهات في الويندوز، إذ بدورها تعتمد على آلية السحب والإفلات Drag and Drop لوضع الأدوات على الويب فورم، واقتناص الأحداث بطريقة مماثلة جدا لبرمجة الواجهات، وهذه الطريقة هي الطريقة التي اشتهرت بها تقنية ASP.NET نظرا لسهولة تعلمها، وكفاءتها العالية.

2. طريقة MVC:

اختصارا ل Model, View and Controller وهي طريقة حديثة جدا في تقنية ASP.NET علما أنها نمط قديم يعود إلى سبعينيات القرن المنصرم، لكن لم تتمثلها ميكروسوفت إلا حديثا بسبب قوة هذا النمط البرمجي الذي ينتمي في الأصل إلى نماذج التصميم Design Patterns، وهو نمط يقضي بتقسيم المشروع إلى مجزوءات، كل مجزوءة تتناول جانبا من المشروع، وهي كما يلي:
مجزوءة النموذج Model: وهي تشمل كل ما من شأنه بناء الفئات وإنشاء خصائصها
مجزوءة العرض View: وهي خاصة بعرض النتيجة للمستخدم وإمداده بحصيلة تنفيذ Action معين.
مجزوءة المراقبة Controller: وهي تلعب دور الخادم الذي يتنقل بين View و Model لتحديد ما الواجب استدعاؤه وما الواجب عرضه.
أمام هذا التقسيم، تصبح عملية بناء صفحات الويب سلسة، والتركيز ينصب على كل مجزوءة بما تقتضيه بدل الانكباب الشامل على الوحدات الثلاثة في صفحة واحدة كما هو الحال في طريقة Web Forms، هذا بالإضافة إلى ما يتيحه النمط MVC من يسر وسهولة في عملية إجراء الاختبارات Testing.


3. طريقة Web pages:

وهي طريقة سهلة لبناء الصفحات الديناميكية، تعتمد بالأساس على الشكل الكلاسيكي لتقنية ASP، إذ يتم الجمع بين كود السيرڤر وكود العميل في صفحة واحدة، كود العميل معلوم حاله وهو عبارة عن أوسمة HTML وما يترتب عنها من اللغات والتقنيات التي تعمل عند العميل، وكود السيرڤر هو عبارة عن كود مكتوب بطريقة حديثة اختارت لها ميكروسوفت اسم Razor، وهي طريقة تنبني في الأساس على كتابة الأوامر البرمجية بعد الرمز @، كما تسمح أيضا باستخدام لغات البرمجة فيجوال بيسيك و سي شارب مع أوامر Razor حسب نوع الصفحة، إن كانت صفحة العرض بامتداد cshtml فأوامر Razor تدعم لغة سي شارب، وإن كانت بامتداد vbhtml فهي تدعم لغة الفيجوال بسيك.


4. طريقة Web API:

وهي طريقة حديثة بدورها، مدارها بالأساس على بناء تطبيقات من نوع RESTfull أي أنها عبارة عن تطبيقات قريبة من مفهوم خدمات الويب Web Services، تتم برمجتها بتقنية ASP.NET بالاعتماد على النمط MVC لتصير قابلة للاستهلاك من قبل تطبيقات أخرى متصلة بالسيرڤر الذي يستضيفها، وهي تدخل فيما يعرف ببناء الأنظمة المتصلة Connected Systems، أي مجموعة من التطبيقات المتصلة فيما بينها عبر وسيط شبكي.

طريقة Web API تعكس ميول شركة ميكروسوفت للاستحواذ على مجال صناعة خدمات الويب، إذ من الملحوظ أن ميكروسوفت أخذت منحى تصاعديا في هذا المجال، كان مبدؤه مع خدمات الويب في إصدارات ASP.NET القديمة، مرورا بتقنية WCF التي أتت كحل متكامل لبناء تطبيقات موزعة خدميا SOA (Services Oriented Architecture)، وانتهاء بتقنية Web API التي ـ في نظري ـ تتفوق على كل ما تقدمها من تقنيات بسبب سهولة استعمالها في إنشاء تطبيقات من نوع RESTfull.

العدد الثالث + العدد الرابع من مجلة الرابط - مجلة برمجية شهرية


مقدمة العدد المزدوج بعنوان: "سين: لماذا؟ جيم: لهذا!"

الحمد لله ابتداء وانتهاء وبعد:
مما علق بذاكرتي من فصول الدراسة، قصة عن عنترة بن شداد كان قد رواها لنا أحد الأساتذة، تقول أن رجلا قدم إلى عنترة يسأله عن أسباب بأسه وأسرار انتصاره في كل نزالاته، فكان جواب عنترة للرجل عمليا:
إذا أردت أن تفهم فهات اصبعك لأعضه، وخذ إصبعي لتعضه، ولنرى من سيستسلم الأول !
وافق الرجل على التحدي، وتبادلا عض الأصبع، وظل كل منهما يكابد الألم إلى أن صاح الرجل:
توقف...أنا أستسلم يا عنترة !
فابتسم عنترة بكبرياء وقال: لهذا أنتصر دوما !
فسأله الرجل مستفسرا: كيف ذلك يا عنترة؟
فرد عنترة: لو صبرت قليلا لاستسلمت قبلك، فأنا أيضا تألمت بشدة لكنني كنت أسلي نفسي وأهيؤها لصراخك واستسلامك في أية لحظة، وكذلك كان.

العبرة من هذه القصة أن النجاح ليس سهلا، وفي الوقت نفسه ليس صعبا، جوهر المسألة شوء من الصبر وشيء من الوقت، ولكل نجاح سبب، فإن سألت أحد الناجحين: لمادا نجحت؟ فلن يجيبك: أمطرت السماء علي ذهبا، وإنما سيجيبك بالأسباب: لهذا نجحت !
آمن بهذه المسألة، واصبر في عملك صبرا جميلا حتى تقطف ثماره، دون أن تتكاسل أو تستعجل، فما يأتي بالسهل يمشي بالسهل كما يقول المثل الانجليزي Easy Come Easy Go

لو ركنا إلى زاوية الذرائع لما صدر هذا العدد الذي بين يديك عزيزي القارىء، ولو اعتذرنا لناسبنا الاعتذار، بحكم أن شهري نونبر وديسمبر كانا حافلين بالأعمال والمشاغل، لكنني تحاملت على نفسي لأخرج هذا العدد المزدوج في محاولة مني لسد الخلل ومواصلة السير في هذا الدرب النبيل.

أرجو من الله العلي القدير أن ينفع بهذا الإصدار كل مهتم بالشأن البرمجي، وكل متتبع لإنتاجات أكاديمية المبرمجين العرب.

دام لكم البشر والفرح !

رابط تحميل المجلة - رجاء اضغط هنا لتحميل العدد المزدوج من مجلة الرابط