تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
N-Tier_LINQ_To_SQL_SP
#11
إقتباس :2- طبقة الاعمال (Business Layer ):
طبقة تكتب فيها الدوال أو الوظائف أو أي عمليات أخرى تعمل كوسيط بين طبقة العرض وطبقة البيانات, وظيفتها نقل البيانات بين طبقتي العرض والبيانات.
وهي عبارة عن فئة تحتوي على دوال تقوم بجلب البيانات المدخلة من طبقة العرض وتقوم بارسالها الى طبقة البيانات.

من الممكن أن تكون هذه الطبقة مجزئة لطبقات عديدة حسب حجم البرنامج

إقتباس :أ‌- طبقة الخصائص: طبقة جزئية من طبقة الاعمال تكتب فيها المتغيرات المقابلة للحقول في الجدول في قاعدة البيانات. حيث تستخدم هذه الطبقة كحاوية للبيانات وذلك لتمرير البيانات المدخلة أو المعالجة بين الطبقات.
*المدخلة من قبل المستخدم والمعالجة من قبل طبقة البيانات.

إذا كان الأسلوب oop فإن هذه الطبقة تمثل البيانات بأسلوب كائني ويسمونها Strongly Typed Classesإذا كانت مصممة بإحكام بحيث تحاكي البيانات مع أسلوب كائني التوجه بشكل تاام

ويًنصح دائماً بتصميم هذه الفئات وافتراض انها لا تقابل قاعدة بيانات أي فقط خصائص ووظيفتها كما تفضلت يا أخي هي حمل البيانات فقط وفقط

كيفية حفزها؟ هذه مهمة طبقة أخرى تسمى ORM = Oject Relational Mapper

هذه الطبقة تقوم بتحويل البيانات من بنية كائنية إلى بنية قاعدة البيانات

ومن أمثلة ORM :
Entity Framework - NHibernate(Open Source) ...0
الرد }}}
تم الشكر بواسطة:
#12
إقتباس :3- طبقة البيانات (Data Access Layer):
طبقة تقوم بتمرير البيانات من والى قاعدة البيانات وتتعامل فقط مع الطبقة الوسطى (طبقة الاعمال), وهي الجزء الوحيد التي تكون في تماس مباشر مع قاعدة البيانات حيث تشمل كل ما يتعلق من عمليات على قاعدة البيانات من كتابة الاستعلامات او استخدام الدوال او الاجراءات المخزنة.
وهي عبارة عن فئة تقوم بجلب البيانات من الطبقة الوسطى وتمريرها الى قاعدة البيانات أو تقوم بجلب البيانات من قاعدة البيانات وتمريرها الى الطبقة الوسطى.

لا اتفق مع تعبير أنها تتعامل مع الطبقة الوسطى، دائما الطبقى الأعلى هي التي تعتمد على الطبقة الأدنى وليس العكس

طبقة "الوصول للبيانات" مسئولة عن توفير التواصل مع قاعدة البيانات في مستوى أرفع، ولزيادة قوة هذه الطبقة، فإننا نستطيع تصميمها بحيث لا نعطيها فقط نص الاتصال ونوع قاعدة البيانات وهي تتكفل بالباقي فبالتالي تعزلنا عن خصوصيات أنواع قواعد البيانات


=============================


هناك ما يسمى Dependency Injection ، وهو ازالة الاعتمادية بين الطبقات

مثلا طبقة الأعمال لكي نزيل اعتماديتها على طبقة محددة فإننا نتعامل مع طبقة البيانات من خلال Interface ، نقوم بتحقيق هذه الواجهة في فئة مخصصة لطبقة البيانات التي سنستخدمها ونحصل على نسخة من هذه الفئة من كلاس آخر يسمى دائماً Factory

وفيه إجراء CreateXXXXX

XXXX تشير إلى اسم الواجهة

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

هكذا تكون الطبقات مستقلة عن بعضها، وهذه هي فائدة الواجهات ، انه التجريد
الرد }}}
تم الشكر بواسطة: ابراهيم ايبو
#13
وعليكم السلام

اخي العزيز هي نفسها طبقة Data Access Layer لكني اختصرتها بData Layer وفيها ما ذكرت من فئات الاتصال وبما أنني استخدم تقنية LINQ فتكون مختصرة كما تعرف أي لا تحتاج الى عدة خطوات فقط خطوة واحدة وسهلة وأكوادها قصيرة ليست مثل الADO.NET ات وأنا استخدمت الاجراءات المخزنة لعمليات الاضافة والحذف والبحث و.......الخ

أما بالنسبة لل(خصائص) فهي فعلا طبقة جزئية تحتوي ما يوجد في الجداول من حقول وهذه الحقول تتمثل بال(خصائص) لذا أسميتها بالخصائص لكي يفهمها القارئ

أرجو أن تكون الفكرة واضحة

بانتظار باقي الملاحظات
الرد }}}
تم الشكر بواسطة: ابراهيم ايبو , ابراهيم ايبو
#14
إقتباس :لا اتفق مع تعبير أنها تتعامل مع الطبقة الوسطى

يعني كيف لا تتفق مع هذا التعبير؟ لم أفهم؟ يعني قصدك اغير التعبير الى (الطبقة الوسطى تعتمد على طبقة البيانات)؟

إقتباس :ولزيادة قوة هذه الطبقة، فإننا نستطيع تصميمها بحيث لا نعطيها فقط نص الاتصال ونوع قاعدة البيانات وهي تتكفل بالباقي فبالتالي تعزلنا عن خصوصيات أنواع قواعد البيانات

مثل ماذا؟ غير نص الاتصال و نوع قاعدة البيانات؟

اخي العزيز مشكرو جدا على ملاحظاتك القيمة لكن ماذا رأيت من سلبيات في هذا المثال بالذات؟

او باالاحرى ما هي ملاحظاتك على طرح الموضوع بهذا الشكل؟ بالاخص استخدام تقنية LINQ مع الاجراءات المخزنة؟ ألا ترى أن الاكواد سهلة التعامل معها؟ ألا تتفق معي في هذه الجزئية؟

ويا حبذا توضح بمثال لما طرحته بخصوص ازالة الاعتمادية Dependency Injection و الواجهات

يعطيك العافية

الرد }}}
تم الشكر بواسطة: ابراهيم ايبو
#15
ما شاء الله عليك اخ سجاد كم انته رائع

لك كل التحيه
الرد }}}
تم الشكر بواسطة:
#16
إقتباس :ما شاء الله عليك اخ سجاد كم انته رائع

لك كل التحيه

يعطيك العافية اخي العزيز شكرا على التعليق الجميل
الرد }}}
تم الشكر بواسطة:
#17
إقتباس :بارك الله فيك ,, موضوع مميز

بالتوفيق

الله يبارك فيك اخي العزيز شكرا على المرور

يعطيك العافية
الرد }}}
تم الشكر بواسطة:


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


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