1. مقدمة
ملف PDF لهذا المستند متاح |هنا|.
الأمثلة الواردة في هذا المستند متاحة |هنا|.
نريد كتابة تطبيق .NET يسمح للمستخدم بمحاكاة حسابات الرواتب لمقدمي خدمات رعاية الأطفال في جمعية "Maison de la petite enfance" في إحدى البلديات. سنركز على تنظيم كود .NET الخاص بالتطبيق بقدر ما سنركز على الكود نفسه.
سيكون للتطبيق النهائي، الذي سنسميه [SimuPaie]، الهيكل الثلاثي التالي:
![]() |
- ستتولى طبقة [1-DAO] (DAO = كائن الوصول إلى البيانات) الوصول إلى البيانات. وسيتم تخزين البيانات في قاعدة بيانات.
- ستتولى طبقة [2-business] منطق الأعمال للتطبيق، أي حساب الرواتب.
- ستتولى طبقة [3-ui] (ui = واجهة المستخدم) عرض البيانات للمستخدم وتنفيذ طلبات المستخدم. نشير إلى مجموعة الوحدات النمطية التي تؤدي هذه الوظيفة باسم [التطبيق]. وهي تعمل كواجهة المستخدم.
- ستصبح الطبقات الثلاث مستقلة عن بعضها البعض من خلال استخدام واجهات .NET
- سيتم التعامل مع تكامل الطبقات المختلفة بواسطة Spring IoC
تتبع معالجة طلب العميل الخطوات التالية:
- يقوم العميل بتقديم طلب إلى التطبيق.
- يقوم التطبيق بمعالجة هذا الطلب. وللقيام بذلك، قد يحتاج إلى مساعدة من طبقة [الأعمال]، والتي قد تحتاج بدورها إلى طبقة [DAO] إذا كان من الضروري تبادل البيانات مع قاعدة البيانات. يتلقى التطبيق استجابة من طبقة [الأعمال].
- وبناءً على هذا الرد، يرسل العرض المناسب (= الرد) إلى العميل.
يمكن أن تتخذ الواجهة المعروضة للمستخدم أشكالاً متنوعة:
- تطبيق وحدة التحكم: في هذه الحالة، تكون طريقة العرض عبارة عن سلسلة من أسطر النص.
- تطبيق واجهة المستخدم الرسومية لـ Windows: في هذه الحالة، يكون العرض عبارة عن نافذة Windows
- تطبيق ويب: في هذه الحالة، تكون طريقة العرض عبارة عن صفحة HTML
- ...
سنكتب إصدارات مختلفة من هذا التطبيق:
- نسخة ASP.NET تحتوي على نموذج واحد ومبنية بهيكل أحادي الطبقة.
- نسخة مطابقة للنسخة السابقة ولكن مع امتدادات Ajax
- نسخة ASP.NET تستند إلى بنية ثلاثية الطبقات حيث يتم تنفيذ طبقة الوصول إلى البيانات باستخدام إطار عمل NHibernate. وستحتفظ بالنموذج الوحيد الموجود في النسخة 1.
- إصدار 4 من تطبيق ASP.NET متعدد العروض وذو صفحة واحدة مع بنية ثلاثية الطبقات من الإصدار 3.
- الجانب الخاص بالخادم من تطبيق العميل/الخادم حيث يتم تنفيذ الخادم كخدمة ويب تستند إلى بنية الطبقات الخاصة بالإصدار 3.
- الجانب الخاص بالعميل من تطبيق العميل/الخادم السابق، الذي تم تنفيذه باستخدام طبقة ASP.NET.
- ASP.NET الإصدار 7 متعدد العروض ومتعدد الصفحات مع بنية ثلاثية المستويات من الإصدار 3.
- إصدار عميل ASP.NET 8 متعدد العروض ومتعدد الصفحات لخدمة الويب من الإصدار 5.
- إصدار ASP.NET 9 متعدد العروض ومتعدد الصفحات مع بنية ثلاثية المستويات للإصدار 3، حيث يتم تنفيذ طبقة الوصول إلى البيانات باستخدام فئات Spring التي تسهل استخدام إطار عمل NHibernate.
- إصدار 10 تم تنفيذه في FLEX ويعمل كعميل لخدمة الويب من الإصدار 5.
المتطلبات الأساسية
على مقياس [مبتدئ-متوسط-متقدم]، يندرج هذا المستند ضمن فئة [متوسط]. ويتطلب فهمه استيفاء شروط مسبقة متنوعة يمكن العثور عليها في بعض المستندات التي قمت بكتابتها:
- برمجة ASP.NET [تطوير الويب باستخدام ASP.NET 1.1]؛
- C# 2008: [تعلم C# الإصدار 3.0 مع .NET Framework 3.5]: الفئات والواجهات والوراثة والتعدد
- [Spring IoC]، متاح على [Spring IoC for .NET]. يغطي أساسيات انعكاس التحكم (IoC) أو حقن التبعية (DI) في إطار عمل Spring.NET [http://www.springframework.net].
- [بناء تطبيق ويب ثلاثي الطبقات باستخدام Spring وVB.NET]، متوفر على الرابط [إنشاء تطبيق ويب ثلاثي الطبقات باستخدام Spring.NET وVB.NET]. تقدم هذه الدورة تطبيقًا مبسطًا لشراء المنتجات عبر الويب. وتطبق بنيته ثلاثية الطبقات نمط MVC.
يتم أحيانًا تقديم توصيات للقراءة في بداية الفقرات في هذا المستند. وهي تشير إلى المستندات السابقة.
الأدوات
الأدوات المستخدمة في هذه الدراسة الإفرادية متاحة مجانًا على شبكة الإنترنت. وهي كما يلي:
- Visual C# 2008، Visual Web Developer Express 2008، SQL Server Express 2005 متوفرة على الرابط [http://www.microsoft.com/express/downloads/].
- Spring IoC لإنشاء مثيلات للخدمات التي يتطلبها التطبيق، متوفرة على [http://www.springframework.net/]—انظر أيضًا [3]
- NHibernate لطبقة الوصول إلى بيانات نظام إدارة قواعد البيانات [http://sourceforge.net/projects/nhibernate/]
- NUnit: [http://www.nunit.org] لاختبار الوحدات.
