• 0
googleshokry

الفرق بين Dataset,Entity Framework,LINQtoSQL

سؤال

السلام عليكم ورحمةالله وبركاتة
عاوز اعرف مفهوم وتعربف ل Dataset,Entity Framework,LINQtoSQL
و الفرق بينهم وبين بعض باسلوب عملي وليس نظري 

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

2 إجابة على هذا السؤال .

  • 0

وعليكم السلام ورحمة الله.

أهم نقطة بالموضوع أن جميع هذه التقينات تعتمد بالأساس على مفهوخ ADO.NET، الخاص بتقينات ميكروسوفت

أما الفرق الأساسي في كل تقنية يكاد يكون في السلوك أكثر من الأداء،

1. DataSet: لها نوعان DataSet, TypedDataSet، أي بالإمكان تعريف DataSet خاصة بنوع البيانات المطابق لقاعدة البيانات، وهي تحوي على نمط لتصميمها وتعريف الجداول وربطها بقاعدة البيانات. ( ويتم التحدث مع قاعدة البيانات عن طريق استعلامات SQL المعروفة)

2. LINQtoSQL: لها نمط تصميم أيضا، بالإضافة أنها تعتمد على LINQ للتحدث مع قاعدة البيانات نستخدم (LINQ)، والتي تعطيك مرونة أكثر في طلب البيانات وإنشاء الاستعلامات. يجب أن يكون هناك انعكاس لقاعدة البيانات الفيزيائية (المعرفة ضمن SQL) مع تصميم LINQtoSQL المعرف ضمن مشروعنا، وأي اختلاف بين الاثنين سيعطي خطأ.

3. Entity Framework: تعتبر أفضل تقنية (طبقة تواصل مع قاعدة البيانات). لها مواصفات عمل (LINQtoSQL). ولكن بالنسبة Entity التحدث لن يكون مباشر إلى قاعدة البيانات وانما إلى Conceptual Model وهو انعكاس لقاعدة البيانات + مجموعة من التعريفات الإضافية على هذه الطبقة لتخصيص وتوسيع العمل أكثر. لنأخذ مثال صغير مثلاً.

تخيل لدينا جدول يسمى مستخدم (User) بقاعدة البيانات، ويحوي مجموعة من المستخدمين يقسمون إلى (Admin, Member, User). طبعا يتم التمييز بين كل نوع عن طريق حقل (النوع). ضمن Conceptual Model يمكننا فصل الجدول إلى ثلاث جداول (AdminUser, MemberUser, NormalUser). حيث نقوم بعمل كلاسات ترث من كلاس User ، وضمن الكود نتعامل مع AdminUser بدل User وعن التخزين أو التعديل، يتم إرجاعه ضمنيا إلى الحقل المناسب ضمن جدول User، بالتالي يكون التعامل برمجياً أسهل وأوسع. قس هذا الأمر على نماذج واسعة.

 

ملاحظة: LINQtoSQL قام بتطويرها فريق #C ضمن ميكروسوفت، أما Entity Framework قام بتطويرها فريق ADO.NET  ضمن ميكروسوفت، ورغم أن الطريقتين تعتمدان على LINQ للاستعلامات، إلى أن البنية الداخلة تختلف اختلافا واضحا.

LINQtoSQL تعتمد على SqlClient للتحدث مع قاعدة البيانات.

Entity Framework تعتمد على EntityClient للتحدث مع قاعدة البيانات.

 

بالنهاية هناك درس قيد التطوير إن شاء الله، يوضح طرق إنشاء هذه الطبقات وربطها بالمشروع بالطريقة الصحيحة

http://arabteam2000-forum.com/index.php/topic/282900-%D9%87%D8%A7%D9%85-%D9%81%D9%8A-%D8%AA%D8%B5%D9%85%D9%8A%D9%85-%D8%AA%D8%B7%D8%A8%D9%8A%D9%82%D8%A7%D8%AA-%D9%82%D9%88%D8%A7%D8%B9%D8%AF-%D8%A7%D9%84%D8%A8%D9%8A%D8%A7%D9%86%D8%A7%D8%AA/

2

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

من فضلك سجل دخول لتتمكن من التعليق

ستتمكن من اضافه تعليقات بعد التسجيل



سجل دخولك الان

  • يستعرض القسم حالياً   0 members

    لا يوجد أعضاء مسجلين يشاهدون هذه الصفحة .