![]() |
|
OOP N-Tire Example - نسخة قابلة للطباعة +- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb) +-- قسم : قسم قواعد البيانات (http://vb4arb.com/vb/forumdisplay.php?fid=40) +--- قسم : قسم مقالات قواعد البيانات تحت بيئة الـ.NET (http://vb4arb.com/vb/forumdisplay.php?fid=42) +--- الموضوع : OOP N-Tire Example (/showthread.php?tid=8523) الصفحات:
1
2
|
OOP N-Tire Example - Abu Ehab - 18-04-13 بسم الله الرحمن الرحيم سألني أحد الشباب عن كيفية أنشــــاء تطبيق متعدد الطبقات صممت له هذا المثال البسريع والبســــــــيط ورفعته هنـــــــــــــــــا لتــعـــــــــم الفــــــــائدة . بعض الصور التوضيحية : أنشــــــاء الأجراءات : تحيـــــــــاتي للجميع . OOP N-Tire Example - learning.net - 19-04-13 اقل ما يقال مبدع دائماّ OOP N-Tire Example - ربيع - 19-04-13 الله يعطيك العافيه OOP N-Tire Example - Abu Ehab - 20-04-13 الله يزيدك عافية أخي ربيع ... مشتاق لك كثير على فكرة : هذا المثال اللى طلبه مني شريف خالد على سكايب .. وعلى فكرة مستواه في تحسن مستمر .. OOP N-Tire Example - hoob computer - 23-04-13 جزاك الله كل خير يا أبو إيهاب, مبدع بكل مشاركاتك ... OOP N-Tire Example - أبو يعقوب - 23-04-13 وأخيرا تعلمت الـ 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 OOP N-Tire Example - Abu Ehab - 24-04-13 السلام عليكم هذة وجهت نظرك وبحترمها كثير .. . ما دام أنها تجربة 3 سنوات مع هذة التقنية بتقدر تقول أني مازلت في بداية التعامل معها لأني في الغالب بتعامل مع linq طيب : المثال 2012 أذا ممكن تحوله الى أصدار أقدم حتى اتمكن من الأطلاع عليه OOP N-Tire Example - أبو يعقوب - 24-04-13 Abu Ehab كتب :السلام عليكم عليكم السلام تم تغيير الملف المرفق على 2010 OOP N-Tire Example - Abu Ehab - 24-04-13 إقتباس :وأخيرا تعلمت الـ Stored Procedures شو قصدك ..(ماذا تعني).؟؟ إقتباس :ملاحظة: الكود للمطالعة وتم بناؤه بواسطة Code Generator يعني مش أنت اللى كتبت الأكواد .. صح ؟ راح أحـــــــاول أستفيد منه أكيــــــــد ....[SIZE=4] تحياتي.[/SIZE] OOP N-Tire Example - أبو يعقوب - 24-04-13 إقتباس :شو قصدك ..(ماذا تعني).؟؟ اتكلم عن نفسي حط ضمة على التاء وأخيرا أنا تعلمتُها من مثالك يعني إقتباس :يعني مش أنت اللى كتبت الأكواد .. صح ؟ أنا بالأصل، يعني من هندستي وال Generator من برمجتي لأني أتبع طريقة ثابتة فقررت أعمل مولد كود ، بس أعطيه الخصائص واسم الفئة والعلاقات والوراثة وهو يعمل الكود كله وهالشي يسرع بناء البرامج ويبقى Design فقط (الGenerator استغرق مني اسبوع كامل) إقتباس :طيب على كل الاحوال : هالأسلوب هذا كلفني إعادة برمجة "محرك" مشروع تخرجي (قبل 3 سنوات) مرتين كان جداً معقد، إلى أن رسيت على هذا الأسلوب طبعا كان يعاني من ضعف وطورته على مرحلتين انه عالم هندسة البرامج، صديقي المفضل هو برنامج Reflector حيث أتطفل على البرامج الاحترافية المعمولة بالدوت نت واتعلم من هندستها (بقدر ما أفهم) بالتوفيق أخي الكريم، |