تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
OOP N-Tire Example
#6
وأخيرا تعلمت الـ Stored Procedures

اعلم يا أخي أن أسلوب تعدد الطبقات هدفه التبسيط والهروب من التعقيد

المثال المطروح فيه فئة تمثل بيانات Products وهي مجرد حامل للبيانات، في حين أنه من الجميل ان تحتوي على هذه الإجراءات الأساسية Save,Delete,GetAllProducts,Create

وينبغي وجود دالتين أساسيستين للتحويل من DataRow إلى Product أو PData كما في المثال والأخرى للتحويل من جدول إلى لستة DataTable To List(Of PData)

مع ملاحظة أنه يجب منع مستخدم الفئة من إنشاء نسخة كائن منها مباشرة وذلك لأمور تقنية كالتحقق من القيم، وخصوصا موضوع الAutoNumber بالنسبة للID لذلك لا يتم إنشاء نسخة من الفئة إلا إذا كانت موجودة في قاعدة البيانات بالفعل - من وجهة نظري وتجربتي

شخصيا لا أحب التعامل مع DataTable وأخواتها عندما أتعامل بنظام الطبقات ولكن ليس هناك مانع فهي تبقى فئة تعزلني عن فئات الاتصال مع قاعدة البيانات وتبقى فائدتها أنها صديقة لأدوات Forms

لذلك كل العمليات في البرنامج تتعامل بالفئات التي عرفتها أنا وهي تحاكي بيانات الجدول

من خلال تجربتي أيضاً من المهم جدا أن يسمح مصمم الفئة لمستخدمها(يعني اسمح لنفسك في طبقة أعلى) بتنفيذ جمل SQL من نوع Select يعني تكون عبارة عن Function SelectProducts(Sql As String) As DataTable

طبعا لأني لا أحب الـ DataTable فأنا أُلغيها من فئاتي والبديل هو List(Of Products)


أنا أحب ترفيه مستخدم الفئة لذلك أضيف أحداث لذيذة مثل Saved,Deleted,Created طبعا كلها Shared وأبالغ في تدليله فأضيف الأحداث بالماضي والمضارع لكي أعطيه تحكم كامل

الأحداث مفيدة لإضافة نظام متعدد المستخدمين وفيه صلاحيات مثلا الحدث Saving يلتقطه نظام الصلاحيات قبل عملية الحفظ وبإمكانه السماح أو إلغاء العملية


سأضع مثال لأسلوبي(أسلوب تم تطويره على مدى 3 سنوات) على نفس الفئة طبعا فقط فئات من دون نوافذ ، وسيلاحظ من يراجع المثال أنه يمكن تغيير نوع قاعدة البيانات بكل مرونة

ملاحظة: الكود للمطالعة وتم بناؤه بواسطة Code Generator


الملفات المرفقة
.rar   OOP NTier Ex2010.rar (الحجم : 31.17 ك ب / التحميلات : 65)
}}}
تم الشكر بواسطة:


الردود في هذا الموضوع
OOP N-Tire Example - بواسطة Abu Ehab - 18-04-13, 01:23 PM
OOP N-Tire Example - بواسطة learning.net - 19-04-13, 08:39 AM
OOP N-Tire Example - بواسطة DreamsDotNet - 19-04-13, 03:50 PM
OOP N-Tire Example - بواسطة Abu Ehab - 20-04-13, 12:12 AM
OOP N-Tire Example - بواسطة hoob computer - 23-04-13, 03:34 PM
OOP N-Tire Example - بواسطة أبو يعقوب - 23-04-13, 11:00 PM
OOP N-Tire Example - بواسطة Abu Ehab - 24-04-13, 10:53 AM
OOP N-Tire Example - بواسطة أبو يعقوب - 24-04-13, 11:25 AM
OOP N-Tire Example - بواسطة Abu Ehab - 24-04-13, 12:20 PM
OOP N-Tire Example - بواسطة أبو يعقوب - 24-04-13, 12:42 PM
OOP N-Tire Example - بواسطة rinawi - 02-05-13, 01:55 PM
OOP N-Tire Example - بواسطة hoob computer - 08-05-13, 05:20 PM

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم