إقتباس :2- طبقة الاعمال (Business Layer ):
طبقة تكتب فيها الدوال أو الوظائف أو أي عمليات أخرى تعمل كوسيط بين طبقة العرض وطبقة البيانات, وظيفتها نقل البيانات بين طبقتي العرض والبيانات.
وهي عبارة عن فئة تحتوي على دوال تقوم بجلب البيانات المدخلة من طبقة العرض وتقوم بارسالها الى طبقة البيانات.
من الممكن أن تكون هذه الطبقة مجزئة لطبقات عديدة حسب حجم البرنامج
إقتباس :أ- طبقة الخصائص: طبقة جزئية من طبقة الاعمال تكتب فيها المتغيرات المقابلة للحقول في الجدول في قاعدة البيانات. حيث تستخدم هذه الطبقة كحاوية للبيانات وذلك لتمرير البيانات المدخلة أو المعالجة بين الطبقات.
*المدخلة من قبل المستخدم والمعالجة من قبل طبقة البيانات.
إذا كان الأسلوب oop فإن هذه الطبقة تمثل البيانات بأسلوب كائني ويسمونها Strongly Typed Classesإذا كانت مصممة بإحكام بحيث تحاكي البيانات مع أسلوب كائني التوجه بشكل تاام
ويًنصح دائماً بتصميم هذه الفئات وافتراض انها لا تقابل قاعدة بيانات أي فقط خصائص ووظيفتها كما تفضلت يا أخي هي حمل البيانات فقط وفقط
كيفية حفزها؟ هذه مهمة طبقة أخرى تسمى ORM = Oject Relational Mapper
هذه الطبقة تقوم بتحويل البيانات من بنية كائنية إلى بنية قاعدة البيانات
ومن أمثلة ORM :
Entity Framework - NHibernate(Open Source) ...0
إقتباس :3- طبقة البيانات (Data Access Layer):
طبقة تقوم بتمرير البيانات من والى قاعدة البيانات وتتعامل فقط مع الطبقة الوسطى (طبقة الاعمال), وهي الجزء الوحيد التي تكون في تماس مباشر مع قاعدة البيانات حيث تشمل كل ما يتعلق من عمليات على قاعدة البيانات من كتابة الاستعلامات او استخدام الدوال او الاجراءات المخزنة.
وهي عبارة عن فئة تقوم بجلب البيانات من الطبقة الوسطى وتمريرها الى قاعدة البيانات أو تقوم بجلب البيانات من قاعدة البيانات وتمريرها الى الطبقة الوسطى.
لا اتفق مع تعبير أنها تتعامل مع الطبقة الوسطى، دائما الطبقى الأعلى هي التي تعتمد على الطبقة الأدنى وليس العكس
طبقة "الوصول للبيانات" مسئولة عن توفير التواصل مع قاعدة البيانات في مستوى أرفع، ولزيادة قوة هذه الطبقة، فإننا نستطيع تصميمها بحيث لا نعطيها فقط نص الاتصال ونوع قاعدة البيانات وهي تتكفل بالباقي فبالتالي تعزلنا عن خصوصيات أنواع قواعد البيانات
=============================
هناك ما يسمى Dependency Injection ، وهو ازالة الاعتمادية بين الطبقات
مثلا طبقة الأعمال لكي نزيل اعتماديتها على طبقة محددة فإننا نتعامل مع طبقة البيانات من خلال Interface ، نقوم بتحقيق هذه الواجهة في فئة مخصصة لطبقة البيانات التي سنستخدمها ونحصل على نسخة من هذه الفئة من كلاس آخر يسمى دائماً Factory
وفيه إجراء CreateXXXXX
XXXX تشير إلى اسم الواجهة
فإذا ما أردنا تغيير طبقة البيانات ، نقوم بإنشاء فئة جديدة تحقق الواجهة ونغير الكود داخل الطريقة CreateXXXX وباقي طبقة الأعمال لا نحتاج إلى تغيير حرف واحد فيها
هكذا تكون الطبقات مستقلة عن بعضها، وهذه هي فائدة الواجهات ، انه التجريد
وعليكم السلام
اخي العزيز هي نفسها طبقة Data Access Layer لكني اختصرتها بData Layer وفيها ما ذكرت من فئات الاتصال وبما أنني استخدم تقنية LINQ فتكون مختصرة كما تعرف أي لا تحتاج الى عدة خطوات فقط خطوة واحدة وسهلة وأكوادها قصيرة ليست مثل الADO.NET ات وأنا استخدمت الاجراءات المخزنة لعمليات الاضافة والحذف والبحث و.......الخ
أما بالنسبة لل(خصائص) فهي فعلا طبقة جزئية تحتوي ما يوجد في الجداول من حقول وهذه الحقول تتمثل بال(خصائص) لذا أسميتها بالخصائص لكي يفهمها القارئ
أرجو أن تكون الفكرة واضحة
بانتظار باقي الملاحظات
ما شاء الله عليك اخ سجاد كم انته رائع
لك كل التحيه