1. مقدمة
يتوفر ملف PDF لهذا المستند |HERE|.
أمثلة هذا المستند متاحة |HERE|.
نرغب في كتابة تطبيق .NET يسمح للمستخدم بإجراء محاكاة لحساب رواتب المربيات في جمعية "Maison de la petite enfance" في إحدى البلديات. سنركز على تنظيم كود DotNet للتطبيق بقدر ما سنركز على الكود نفسه.
سيكون للتطبيق النهائي، الذي سنسميه [SimuPaie]، الهيكل الثلاثي الطبقات التالي:
![]() |
- ستتولى الطبقة [1-dao] (dao=Data Access Object) الوصول إلى البيانات. وسيتم وضع هذه البيانات في قاعدة بيانات.
- الطبقة [2-métier] ستتولى الجانب الوظيفي للتطبيق، أي حساب الرواتب.
- ستتولى الطبقة [3-ui] (ui=User Interface) عرض البيانات للمستخدم وتنفيذ طلباته. نسمي [Application] مجموعة الوحدات التي تضمن هذه الوظيفة. وهي واجهة التواصل مع المستخدم.
- ستصبح الطبقات الثلاث مستقلة بفضل استخدام واجهات .NET
- سيتم تحقيق تكامل الطبقات المختلفة بواسطة Spring IoC
تتم معالجة طلب العميل وفقًا للخطوات التالية:
- يقدم العميل طلبًا إلى التطبيق.
- يقوم التطبيق بمعالجة هذا الطلب. وللقيام بذلك، قد تحتاج إلى مساعدة الطبقة [métier] التي قد تحتاج بدورها إلى الطبقة [dao] إذا كان من الضروري تبادل البيانات مع قاعدة البيانات. يتلقى التطبيق ردًا من الطبقة [métier].
- وبناءً على ذلك، يرسل التطبيق العرض (= الرد) المناسب إلى العميل.
قد تتخذ الواجهة المعروضة للمستخدم أشكالاً متنوعة:
- تطبيق وحدة التحكم: في هذه الحالة، تكون العرض عبارة عن سلسلة من أسطر النص.
- تطبيق رسومي يعمل بنظام ويندوز: في هذه الحالة، تكون العرض عبارة عن نافذة ويندوز
- تطبيق ويب: في هذه الحالة، تكون العرض عبارة عن صفحة HTML
- ...
سنكتب إصدارات مختلفة من هذا التطبيق:
- نسخة ASPNET تتضمن نموذجًا واحدًا ومبنية بهيكل أحادي الطبقة.
- نسخة مطابقة للسابقة ولكن مع امتدادات Ajax
- نسخة ASP.NET تعتمد على بنية ثلاثية الطبقات حيث يتم تنفيذ طبقة الوصول إلى البيانات باستخدام إطار العمل NHibernate. وستحتوي دائمًا على النموذج الوحيد الموجود في النسخة 1.
- إصدار 4 ASP.NET متعدد العروض وذو صفحة واحدة مع بنية ثلاثية الطبقات من الإصدار 3.
- جزء الخادم من تطبيق عميل/خادم حيث يتم تنفيذ الخادم بواسطة خدمة ويب تعتمد على بنية الطبقات الخاصة بالإصدار 3.
- الجزء الخاص بالعميل من تطبيق العميل/الخادم السابق، الذي يتم تنفيذه بواسطة طبقة ASP.NET.
- إصدار 7 ASP.NET متعدد العروض ومتعدد الصفحات مع بنية ثلاثية الطبقات من الإصدار 3.
- إصدار 8 ASP.NET متعدد العروض والصفحات للعميل لخدمة الويب من الإصدار 5.
- إصدار 9 ASP.NET متعدد العروض والصفحات مع بنية ثلاثية الطبقات من الإصدار 3 حيث يتم تنفيذ طبقة الوصول إلى البيانات بواسطة فئات Spring التي تسهل استخدام إطار العمل NHibernate.
- إصدار 10 تم تنفيذه في FLEX وعميل خدمة الويب للإصدار 5.
المتطلبات الأساسية
في نطاق [débutant-intermédiaire-avancé]، يقع هذا المستند في الجزء [intermédiaire]. يتطلب فهمه متطلبات مسبقة متنوعة يمكن العثور عليها في بعض المستندات التي كتبتها:
- البرمجة ASP.NET [تطوير الويب باستخدام ASP.NET 1.1 (2004)]؛
- لغة C# 2008: [تعلم لغة C# الإصدار 3.0 باستخدام Framework .NET 3.5 (2008)]: الفئات، الواجهات، التوريث، تعدد الأشكال
- [Spring IoC]، متوفر في URL و[Spring IoC لـ .NET (2005)]. يعرض أساسيات عكس التحكم (Inversion of Control) أو حقن التبعيات (Dependency Injection) في إطار العمل Spring.Net [http://www.springframework.net].
- [إنشاء تطبيق ويب ثلاثي الطبقات باستخدام Spring.NET وVB.NET (2005)]، المتوفرة في URL [Création d'une application web à trois couches avec Spring.NET et VB.NET]. تقدم هذه الدورة تطبيقًا مبسطًا لشراء المنتجات عبر الويب. وتطبق بنيتها المكونة من 3 طبقات نموذج MVC.
يتم أحيانًا تقديم نصائح للقراءة في بداية فقرات هذا المستند. وهي تشير إلى المستندات السابقة.
الأدوات
الأدوات المستخدمة في دراسة الحالة هذه متاحة مجانًا على الويب. وهي كما يلي:
- Visual C# 2008، Visual Web Developer Express 2008، SQL Server Express 2005 المتوفرة على URL [http://www.microsoft.com/express/downloads/].
- Spring IoC لإنشاء مثيلات الخدمات اللازمة للتطبيق، متوفر على URL [http://www.springframework.net/] - انظر أيضًا [3]
- NHibernate لطبقة الوصول إلى البيانات في SGBD [http://sourceforge.net/projects/nhibernate/]
- NUnit: [http://www.nunit.org] للاختبارات الفردية.
