![]() |
|
N-Tier_LINQ_To_SQL_SP - نسخة قابلة للطباعة +- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb) +-- قسم : قسم لغة السي شارب C#.NET (http://vb4arb.com/vb/forumdisplay.php?fid=175) +--- قسم : قسم تقنية LinQ (http://vb4arb.com/vb/forumdisplay.php?fid=204) +--- الموضوع : N-Tier_LINQ_To_SQL_SP (/showthread.php?tid=9964) الصفحات:
1
2
|
N-Tier_LINQ_To_SQL_SP - أبو يعقوب - 15-08-13 إقتباس :2- طبقة الاعمال (Business Layer ): من الممكن أن تكون هذه الطبقة مجزئة لطبقات عديدة حسب حجم البرنامج إقتباس :أ- طبقة الخصائص: طبقة جزئية من طبقة الاعمال تكتب فيها المتغيرات المقابلة للحقول في الجدول في قاعدة البيانات. حيث تستخدم هذه الطبقة كحاوية للبيانات وذلك لتمرير البيانات المدخلة أو المعالجة بين الطبقات. إذا كان الأسلوب oop فإن هذه الطبقة تمثل البيانات بأسلوب كائني ويسمونها Strongly Typed Classesإذا كانت مصممة بإحكام بحيث تحاكي البيانات مع أسلوب كائني التوجه بشكل تاام ويًنصح دائماً بتصميم هذه الفئات وافتراض انها لا تقابل قاعدة بيانات أي فقط خصائص ووظيفتها كما تفضلت يا أخي هي حمل البيانات فقط وفقط كيفية حفزها؟ هذه مهمة طبقة أخرى تسمى ORM = Oject Relational Mapper هذه الطبقة تقوم بتحويل البيانات من بنية كائنية إلى بنية قاعدة البيانات ومن أمثلة ORM : Entity Framework - NHibernate(Open Source) ...0 N-Tier_LINQ_To_SQL_SP - أبو يعقوب - 15-08-13 إقتباس :3- طبقة البيانات (Data Access Layer): لا اتفق مع تعبير أنها تتعامل مع الطبقة الوسطى، دائما الطبقى الأعلى هي التي تعتمد على الطبقة الأدنى وليس العكس طبقة "الوصول للبيانات" مسئولة عن توفير التواصل مع قاعدة البيانات في مستوى أرفع، ولزيادة قوة هذه الطبقة، فإننا نستطيع تصميمها بحيث لا نعطيها فقط نص الاتصال ونوع قاعدة البيانات وهي تتكفل بالباقي فبالتالي تعزلنا عن خصوصيات أنواع قواعد البيانات ============================= هناك ما يسمى Dependency Injection ، وهو ازالة الاعتمادية بين الطبقات مثلا طبقة الأعمال لكي نزيل اعتماديتها على طبقة محددة فإننا نتعامل مع طبقة البيانات من خلال Interface ، نقوم بتحقيق هذه الواجهة في فئة مخصصة لطبقة البيانات التي سنستخدمها ونحصل على نسخة من هذه الفئة من كلاس آخر يسمى دائماً Factory وفيه إجراء CreateXXXXX XXXX تشير إلى اسم الواجهة فإذا ما أردنا تغيير طبقة البيانات ، نقوم بإنشاء فئة جديدة تحقق الواجهة ونغير الكود داخل الطريقة CreateXXXX وباقي طبقة الأعمال لا نحتاج إلى تغيير حرف واحد فيها هكذا تكون الطبقات مستقلة عن بعضها، وهذه هي فائدة الواجهات ، انه التجريد N-Tier_LINQ_To_SQL_SP - Sajad - 15-08-13 وعليكم السلام اخي العزيز هي نفسها طبقة Data Access Layer لكني اختصرتها بData Layer وفيها ما ذكرت من فئات الاتصال وبما أنني استخدم تقنية LINQ فتكون مختصرة كما تعرف أي لا تحتاج الى عدة خطوات فقط خطوة واحدة وسهلة وأكوادها قصيرة ليست مثل الADO.NET ات وأنا استخدمت الاجراءات المخزنة لعمليات الاضافة والحذف والبحث و.......الخ أما بالنسبة لل(خصائص) فهي فعلا طبقة جزئية تحتوي ما يوجد في الجداول من حقول وهذه الحقول تتمثل بال(خصائص) لذا أسميتها بالخصائص لكي يفهمها القارئ أرجو أن تكون الفكرة واضحة بانتظار باقي الملاحظات N-Tier_LINQ_To_SQL_SP - Sajad - 15-08-13 إقتباس :لا اتفق مع تعبير أنها تتعامل مع الطبقة الوسطى يعني كيف لا تتفق مع هذا التعبير؟ لم أفهم؟ يعني قصدك اغير التعبير الى (الطبقة الوسطى تعتمد على طبقة البيانات)؟ إقتباس :ولزيادة قوة هذه الطبقة، فإننا نستطيع تصميمها بحيث لا نعطيها فقط نص الاتصال ونوع قاعدة البيانات وهي تتكفل بالباقي فبالتالي تعزلنا عن خصوصيات أنواع قواعد البيانات مثل ماذا؟ غير نص الاتصال و نوع قاعدة البيانات؟ اخي العزيز مشكرو جدا على ملاحظاتك القيمة لكن ماذا رأيت من سلبيات في هذا المثال بالذات؟ او باالاحرى ما هي ملاحظاتك على طرح الموضوع بهذا الشكل؟ بالاخص استخدام تقنية LINQ مع الاجراءات المخزنة؟ ألا ترى أن الاكواد سهلة التعامل معها؟ ألا تتفق معي في هذه الجزئية؟ ويا حبذا توضح بمثال لما طرحته بخصوص ازالة الاعتمادية Dependency Injection و الواجهات يعطيك العافية N-Tier_LINQ_To_SQL_SP - alaqsa - 18-08-13 ما شاء الله عليك اخ سجاد كم انته رائع لك كل التحيه N-Tier_LINQ_To_SQL_SP - Sajad - 22-08-13 إقتباس :ما شاء الله عليك اخ سجاد كم انته رائع يعطيك العافية اخي العزيز شكرا على التعليق الجميل N-Tier_LINQ_To_SQL_SP - Sajad - 22-08-13 إقتباس :بارك الله فيك ,, موضوع مميز الله يبارك فيك اخي العزيز شكرا على المرور يعطيك العافية |