Waseem Alshamiri نشر منذ 5 ساعة أرسل تقرير نشر منذ 5 ساعة مافائدة oop مع وجود قواعد البيانات اقصد هل يجب انا افهمها بشكل اعمق عند استخدم لغه مثل c# كيف يكون oop مفيد في اضافة البيانات او جلبها من قواعد البيانات او تعديلها او حذفها 2 اقتباس
0 ياسر مسكين نشر منذ 5 ساعة أرسل تقرير نشر منذ 5 ساعة السلام عليكم ورحمة الله تعالى وبركاته، ال OOP في C# لا يلغي دور قواعد البيانات بل يكملها فقاعدة البيانات تهتم بتخزين البيانات وتنظيمها، بينما ال OOP يوفر لنا نموذج برمجي كائني للتعامل مع هذه البيانات داخل التطبيق فعلى سبيل المثال بدلا من التعامل مع جداول وأعمدة بشكل مباشر يمكنك تمثيل كل جدول ك class مثل User أو Product وكل صف ك object مما يسهل ربط منطق الأعمال (Business Logic) بالبيانات. وعبر ال OOP يمكنك استخدام Encapsulation لإخفاء تفاصيل الوصول للبيانات مثلا عبر Repository أو ORM مثل Entity Framework وInheritance/Polymorphism لتمثيل كيانات مترابطة مثلا Employee يرث من Person وهذا سيقلل التكرار ويجعل الكود أكثر وضوحا وقابلا للصيانة. عند الإضافة والتعديل أو الحذف من قاعدة البيانات. فالOOP يوفر الواجهات (Interfaces) والخدمات (Services) التي تفصل بين منطق التخزين ومنطق العمل، بحيث إذا غيرت قاعدة البيانات من SQL إلى NoSQL مثلا فلن تضطر لإعادة كتابة التطبيق بالكامل بل فقط تعدل طبقة الوصول للبيانات. اقتباس
0 Mustafa Suleiman نشر منذ 5 ساعة أرسل تقرير نشر منذ 5 ساعة مفهوم البرمجة الكائنية عام وليس خاص بقواعد البيانات فقط، فهو أحد أهم المفاهيم في البرمجة، بمعنى الـ OOP وقواعد البيانات ليستا بديلين لبعضهما البعض، بل أداتان تعملان معاً لحل مشكلتين مختلفتين، فالأخيرة وظيفتها الأساسية هي تخزين البيانات بشكل دائم، وضمان سلامتها، وتنظيمها، وتوفير طرق فعالة للاستعلام عنها، بالتالي تتعامل مع البيانات الخام وفقط دونّ أية إجراءات. بينما البرمجة الكائنية OOP تقوم بتنظيم وهيكلة منطق التطبيق، بمعنى تتعامل مع البيانات الحية داخل البرنامج، حيث لا تمثل البيانات مجرد قيم، بل كائنات لها خصائص Properties وسلوك Methods، وتسهيل التعامل مع قواعد البيانات من خلال النمذجة والتمثيل، فالكود أصبح لا يتعامل مع جداول و صفوف، بل يتعامل مع مفاهيم من العالم الحقيقي مثل طالب، منتج، فاتورة. وبدون OOP ستجلب البيانات من قاعدة البيانات كمجموعة من الصفوف والأعمدة، وللتعامل مع طالب، ستحتاج للوصول إلى row[0] للاسم، row[1] للعمر، وهكذا، لاحظ الكود صعب القراءة والتعديل. ومن خلال OOP ستقوم بإنشاء كلاس اسمه Student يمثل الطالب: public class Student { public int Id { get; set; } public string FirstName { get; set; } public string LastName { get; set; } public DateTime DateOfBirth { get; set; } public int GetAge() { return DateTime.Today.Year - DateOfBirth.Year; } } وعند جلب بيانات طالب من قاعدة البيانات، ستحولها إلى كائن من نوع Student، وبعدها بإمكانك التعامل مع student.FirstName و student.GetAge(). أيضًا الـ OOP يسمح لك بفصل منطق التعامل مع البيانات عن بقية التطبيق. هذا يتم غالباً باستخدام نمط يسمى طبقة الوصول للبيانات Data Access Layer - DAL وذلك بالإعتماد على مباديء البرمجة الكائنية Encapsulation و Abstraction، فبدلاً من كتابة استعلامات SQL في كل مكان في الكود، تقوم بإنشاء كلاس متخصص مثلاً StudentRepository وظيفته الوحيدة هي التحدث مع قاعدة البيانات. لكن ما سبق لا يحدث في الواقع العملي، فنادراً ما نكتب استعلامات SQL بشكل يدوي، بل نستخدم أداة تسمى Object-Relational Mapper (ORM) وأشهرها في C# هو Entity Framework Core (EF Core)، فهو ما يقوم بكل العمل الشاق لتحويل الكائنات إلى صفوف في الجداول والعكس. اقتباس
السؤال
Waseem Alshamiri
مافائدة oop مع وجود قواعد البيانات
اقصد هل يجب انا افهمها بشكل اعمق
عند استخدم لغه مثل c#
كيف يكون oop مفيد في اضافة البيانات او جلبها من قواعد البيانات او تعديلها او حذفها
2 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.