الرئيسية > ado.net entity framework > الباب الاول: مقدمة عن اطار عمل كتل البيانات Entity Framework

الباب الاول: مقدمة عن اطار عمل كتل البيانات Entity Framework

نوفمبر 28, 2009 أضف تعليقاً Go to comments

1 – ما هو اطار عمل كتل البيانات Entity Framework ؟

اطار عمل كتل البيانات Entity Framework هو اطار عمل لتمثيل البيانات على شكل كائنات مرتبطة في .Net Framework . يتمتع اطار العمل هذا بكونه جزءا لا يتجزأ من ADO.NET كتقنية من التقنيات المضمنة بها انطلاقا من الاصدار 3.5 SP1 . وبالتالي فهذه التقنية تعتبر اختا لباقي التقنيات كال Dataset,LINQ to SQL وغيرها ، والآن اصبح لدينا مرونة كافيه للقيام في بناء التطبيقات المعتمدة على قواعد البيانات .

تقنية الـ Entity Framework تقوم بتغليف جداول قاعدة البيانات بفئات تتضمن طرق وخصائص تمثل كائنات قاعدة البيانات ، بمعنى لو كان لديك جدول بالإسم Persons وبه حقول كـ PersonID,FirstName,LastName,…etc فإن هذه التقنية ستقوم بتوليد فئة Class بالإسم Persons به حقول بنفس اسم حقول الجدول Persons في قاعدة البيانات ، بإختصار ، تقوم هذه التقنية بإنشاء نموذج Model لكائنات قاعدة البيانات ، موفرة عليك بذلك الكثير من الجهد خصوصا عندما نتكلم عن تطبيقات متعددة الطبقات N-Tier Applications .

من ميزات هذه التقنية ، هو ان نموذج البيانات Data Model الموجود لديك ، لا يشترط ان يكون مطابقاَ لما هو موجود في قاعدة البيانات ، بمعنى اخر ، بإمكانك تخصيص شكل نموذج البيانات ليكون مختلفا عما هو في قاعدة البيانات ، يتحدد هذا على الطريقة التي استخدمتها في تخطيط قاعدة بياناتك وتوزيع الجداول والحقول فيها ، ستتضح الصورة من هذا لاحقا إن شاء الله .

وبالنسبة للعلاقات بين الجداول ، فهناك ما يدعى بالـ NavigationProperties ، وهي تمثيل للجدول المرتبط بالجدول الحالي ، فلو كان لدينا جدول اب به حقل مرتبط بالجدول الابن ، فإن الحقل الموجود في الجدول الاب لن يظهر بل سيظهر بدل عنه مباشرة خاصية ابحار NavigationProperty للوصول إلى البيانات المرتبطه ، هذا الامر سيتضح اكثر باخذ مثال فلا تقلق نفسك كثيرا .

ميزة اخرى في هذه التقنية ، لو أنك قد استخدمت LINQtoSQL لكنت قد اعجبت بالـ O/R Designer وكيف يحول الجداول والـ Stored Procedures الخاصة بقاعدة بيانات من نوع SQL Server مباشرة إلى كائنات برمجية : فئات وطرق Classes,Methods … الخ ويصبح بإمكانك استخدام LINQ مباشرة في الاستعلام عن البيانات وتعديلها واضافتها وحذفها ،، فإنني متأكد من اغرامك بها ولحسن الحظ فيوجد لدينا ايضا ما يدعى بالـ ADO.NET Entity Model ليحاكي الجداول ويقوم بتوليد كل شيء نيابه عنك .

وفي الحقيقة يعتبر اطار عمل كتل البيانات Entity Framework احد التقنيات التي تبنيها مايكروسوفت في سبيل جعل تطوير وبناء انظمة الأعمال business Systems بشكل سهل وميسر . فبدلا من الاعتماد على كائنات DataReaders مباشرة في جلب البيانات وقراءتها والتعقيدات الناتجة عن هذا الامر ، فلماذا لا يكون هذا الكائن هو البنية التحتية فقط ، بمعنى ان نقوم ببناء فئات يستخدمها المبرمجون بطريقة محاكية للجداول ، فالجدول Customers يكون هناك قائمة List(Of Customer) من الفئة Customer وبالتالي سيكون الامر عليك ايها المبرمج امرا اسهل ؟

من ناحية السهولة ، سيكون افضل بكثير من الاعتماد على الـ DataReader مباشرة ، ولكننا نتكلم عن المزيد من السهولة ، فانت ستحتاج إلى التعرف على التعديلات التي طرات على البيانات ، وحفظها ، والتعرف على السجلات المحذوفة ، وغيرها من هذه الاجراءات المعتادة في هكذا نوع من التطبيقات ، وبالتالي فستحتاج إلى كتابة المزيد من الاكواد والابتعاد عن المهمة الاساسية في تطوير وبناء تطبيقك !

من هنا ستنسى شيء اسمه عمود او حقل Column او سجل Row وسيكون عليك الاهتمام فقط بـفئات Classes و خصائص Properties . لذلك كله ، يأتي لنا اطار العمل Entity Framework ليسهل لنا كل هذا الامر ، فهو يسهل علينا تمثيل البيانات على شكل فئات وكائنات برمجية مباشرة ، نتحكم بها من خلال الفاضلة لغة البرمجة المحببة إلى قلوبنا ، ويقدم لنا سهوله شديدة في الاستعلام باستخدام ثلاث طرق مختلفة سنتعرف عليها لاحقا، كما يسهل لنا التعرف على التغييرات Changes Tracking ، ويدعم التسلسل Serialization ، الامر الذي يساعدنا كثيرا في تطوير التطبيقات مهما كبر حجمها ، مع استهلاك اقل وقت في التطوير .

ويستخدم اطار كتل البيانات ، ما يعرف بكيان نموذج البيانات Entity Data Model ، وهو نموذج مطور من ما يعرف بالـ Entity Relationship Modeling, ERM وهو مفهوم ظهر في تطوير قواعد البيانات منذ سبعينيات القرن الماضي .

2- نظرة تاريخية في تقنيات الاتصال :

قبل حوالي احد عشر عاما من الان ، أي في حوالي 1998 م ، كان صدور الاصدار السادس والاخير من لغة فيجوال بيسك 6 متضمنا ثلاث تقنيات اساسية وهي DAO,RDO,ADO – وللأسف فهناك من يستخدم DAO اليوم ! – كانت تقنية ADO هي الاحدث يومها وكانت تضم اداءا افضل وكائنات اذكى وافضل من DAO,RDO ، وكعادة مايكروسوفت ، جاءت تقنيات الدوت نت لتحمل معها مكتبة وحيدة وهي ADO.NET للتعامل مع قواعد البيانات وتضمنت وضعي اتصال : الوضع المتصل Connected Mode والوضع المنفصل Disconnected Mode ، وكان المبرمجون اما خيارين فقط : اما استخدام تقنيات الوضع المتصل المتمثلة في كائنات مثل DataReader و Command ، او استخدام الوضع المنفصل والمتمثل في كائني الـ Dataset والـ TableAdapter . الخيارات محدودة في الاتصال ، والتقنيات قليلة ، فإذا كنت ترغب بعمل استعلام ، فكنت ستحتاج إلى كتابة جمل استعلام SQL تقليدية سواء في باني الاستعلامات Query Builder او في كائن Command وغيرها من الاماكن المعروفة لدى المبرمجين المخضرمين ، ومن المشاكل التي واجهت المبرمجين حينها ، كثرة الاقواس وعبارات الدمج النصي عبارات الاستعلام حيث انها تعتبر متغيرات من النوع String يتم ارسالها إلى مزود قاعدة البيانات لا اكثر ولا اقل ، وكذلك كان لزاما علينا استخدام الباراميترات Parameters لتمرير البيانات بشكل آمن وللهروب من حقن البيانات SQL Injection .

مع ذلك ، كل تلك التقنيات لم تكن ترتقي إلى المستوى المطلوب في التطبيقات التجارية ، فعملية كتابة تطبيقات متعددة الطبقات n-tier applications كانت تحتاج إلى جهود كبيرة ووقت كبير نسبيا – مقارنة باليوم ! – وعمليات الاستعلام في البيانات كانت معقدة شيئا ما ، ظهر بعدها امكانية تقسيم ملفات الـ Dataset لتصبح منفصلة عن بعضها في مشاريع مختلفة الامر الذي رفع مستوى الانتاجية في تطوير التطبيقات متعددة الطبقات ، الا ان صدور النسخه الثالثة من اطار العمل .net framework والنسخة التاسعة من فيجوال بيسك والثالثة من سي شارب ، كانت هي المطور الاساسي لهذه العملية ، فظهور الاستعلامات المتكاملة باللغة Language Integrated Query ادى إلى ثورة حقيقية في مجال الاستعلام عن البيانات من داخل التطبيق ، كما ان المزودات الاخرى كـ LINQtoSQL و LINQtoDataset و LINQtoXML ادى إلى تسهيل التعامل بشكل بالغ مع قواعد البيانات وخصوصا الجزء الاستعلامي منها ، فاصبح بإمكاننا التخلي عن استخدام حلقات For Each التكرارية المملة ، وصار الاستعلام ممتعا ولم تصبح عملية تذكر اسماء الحقول او الاخطاء الاملائية فيها عملية شاقة ابدا بعد اليوم بفضل خاصية IntelliSence في Visual Studio .

تقنيات كـ LINQtoSQL اخذت تشق طريقها بقوة في التطبيقات التجارية والتطبيقات المتوسطة والكبيرة ، واخذت تسهل الامور كثيرا ، خصوصا انها كانت مدعومة بشكل فعال من تقنية LINQ فالاستعلام كما قلنا صار جزءا من اللغة .

وعلى الرغم من كل هذه التغييرات والتطورات التقنية ، الا ان الامر لم يقف عند هذا الحد ، فصدور اطار عمل كتل البيانات Entity Framework لاحقا كجزء من تقنية ADO.NET اثار جدلا واسعا ، فقد امكن العمل بشكل مدمج اكثر ، ولم يصبح تركيز المبرمج الا على اكواده وبرامجه فقط ، فهو لا يرى قاعدة البيانات على الاطلاق ، والاستعلام لم يعد حكرا لا على جمل T-SQL و لا على تقنية LINQ بل ظهرت طرق اخرى ايضا يتناولها هذا الكتاب بالتفصيل ان شاء الله .

وفي لحظة كتابة هذه السطور ، لا يزال الاصدار الرابع من Entity Framework تحت التجريب ، الا انه يحل مشاكل كثيرة تتعلق بالاداء ، وتحسين العمل ، فضلا عن تغيير في المفهوم ، فأصبح توليد قاعدة البيانات من خلال الكائنات امرا سهلا !

ولكن هل هذا هو نهاية المطاف ؟

لا يا اعزائي ، فعملية تطوير التقنيات امر انفردت به مايكروسوفت ، ويجب عليك اللهث ورائها جيدا ، فصحيح انها تطلق كل يوم – مجازا – تقنية جديدة ، الا ان هذه التقنيات ، تحل مشاكل كثيرة وتسهل العمل بشكل فعال ويصبح عمل التطبيقات مهما كبر حجمها في زمن قياسي امرا ايسر شيئا فشيئا.

3- تعددت التقنيات ، فأيها اختار ؟

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

في الحقيقة ، يوجد حاليا ثلاث تقنيات رئيسية للاتصال بالبيانات والتعامل معها وهي : Dataset,LINQtoSQL,Entity Framework وسنحاول هنا التعرف على زيد وعبيد ، وهل خلفان هو الانسب لمشروعي ام سليمان ؟

سنسهل القضية يا جماعة بمقارنة Dataset و LINQtoSQL اولا ، حسنا العملية تعتمد على السيناريوهات الموجودة لديك :

بالنسبة للـ Dataset :

– الـ Dataset سهل التعريف ، والتسلسل Serialize ، ويسهل فصل الكود فيها عن تصميمه في المشاريع المتعددة الطبقات خصوصا بما يتعلق بالـ TableAdapter المضمنه فيه .

– الـ Dataset يحتوي على متتبع للتغيرات التي تطرأ على البيانات المضمنه فيه، ويدعم التغيير دفعه واحده Batch Editing وكذا بالنسبة للتصفيه والعرض ، كما انه يتعامل بشكل تلقائي مع العلاقات المركبة Complex Relationships .

– يسهل استخدام Dataset عندما نرغب في عمل ربط بيانات DataBinding بشكل متقدم ومعقد .

– يصعب استخدام Dataset عندما نرغب بعمل بعمل عمليات تحقق متقدمة على البيانات .

– يجب تجنب استخدام Dataset عندما تقوم ببناء تطبيق موزع ليس كل العملاء Clients فيه مبنية على net.

بالنسبة لـ LINQtoSQL :

– يقدم لك LINQtoSQL دعم تحكم كامل بالتحقق Validation, السلوك Behavior ، منطق الأعمال BusinessLogic ، كما انها سهله التوريث للفئات الاخرى ، هذا يعني امكانيه عمل طبقات ام وطبقات مشتقة للاعمال بكل سهولة .

– يمكن عمل تسلسل Serialization لفئات LINQtoSQL على شكل مصفوفات Arrays لغير عملاء net.

– بمجرد ايقاف الاتصال بين LINQtoSQL والـ DataContext ، تكون عملية ال Databinding وتعقب التغييرات على البيانات عملية صعبة ويجب عليك القيام بكل ذلك بنفسك !

وعلينا ايضا ملاحظة ان تقنية LINQtoSQL محصورة على SQL Server فقط .

وبالنسبة لـ Entity Framework فتتميز عن LINQtoSQL بالأمور التالية :

– ليس واجبا عليك مطابقة نفس النموذج في قاعدة البيانات ، مثلا يمكنك ان تدمج الجداول المرتبطة بعلاقة واحد لواحد One-to-One في فئة واحدة بكل سهولة فلا حاجه لأن تكون لديك فئتين واحدة لكل جدول ، بعكس LINQtoSQL حيث يجب انشاء فئة منفصلة لكل جدول .

– بإمكانك التعامل مع والتحكم بـأنواع مختلفة من وراثة البيانات .

– التعامل المباشر مع العلاقات من نوع متعدد لمتعدد Many-to-Many .

– قابلية استخدام مصادر بيانات دون قواعد البيانات كـ Reporting Services وغيرها.

– قابلية التعامل مع انواع قواعد بيانات دون الاكتفاء بـ SQL Server.

ومثل كل تلك الايجابيات فهناك السلبيات ، فلا يوجد شيء او احد كامل هنا ابدا ؛ فهناك بطء نسبي في التعامل مع البيانات مقارنة بـ LinqToSQL ، فضلا عن التعقيد النسبي والذي سيتلاشى مستقبلا كما تخطط مايكروسوفت ، حيث ان من المخطط ان يوقف تطوير LINQtoSQL في الاصدارات القادمة وتكون Entity Framework هي السبيل الأمثل والأساسي والافتراضي – اذا عندك كلمة اخرى مناسبة اضفها مع الكلمات الثلاثة السابقة ! – لبرمجة تطبيقات تعتمد على قواعد البيانات .

خلاصة الامر ، اذا كان تطبيقك من النوع الصغير نسبيا ومعتمدا على SQL Server وحدة دون غيره ، ولا تحتاج إلى أي من مواصفات المرونة Flexibility التي يتمتع بها Entity Framework فيكفيك LINQtoSQL وحده .

 

4- سمات اطار عمل كيان البيانات Entity Framework :

يتمتع اطار العمل entity Framework بدعم واسع من الادوات والكائنات معا ، فهو يتسم بدعمه بالمميزات التالية :

– نموذج كتل البيانات Entity Data Model

– ادوات تصميم كتل البيانات entity Data Model Design Tools

– ادارة الكائنات بواسطة خدمات الكائنات Objects Services

– تتبع التغييرات Change Tracking

– ادارة العلاقات Relationship Management

– ربط البيانات Data Binding

– عميل الكيان Entity Client

وسنتحدث عنها واحدا واحدا ، فهي تقف في صف واحد بإحترام – هذه مزحة ! :

نموذج كتل البيانات Entity Data Model :

ما هو نموذج كتل البيانات Entity Data Model ؟ هو عبارة عن توصيف لتعريف البيانات المبنية في entity framework . وبدون الـ EDM ، لا توجد علاقات Relationships ولا حتى كتل بيانية entities في مخطط التصميم لديك Design Schema ، اما ما هو مخطط التصميم Design Schema فهو يستخدم لبناء الفئات Classes التي تجدها امامك بدلا من مناداة الجداول مباشرة في قاعدة البيانات . هناك المزيد من الامور لكن افضل التعرف عليها لاحقا في حينها .

وبالرغم من ان اطار العمل مصمم لكي يسمح للمبرمج بالعمل مباشرة بالفئات الموجود في نموذج كتل البيانات Entity Data Model ، الا ان نموذج كتل البيانات EDM لا يتمثل شيء ذا قيمة بدون التعامل مع قاعدة البيانات الحقيقية . وفي الحقيقة ان النموذج الذي تراه في EDM ما هو الا تعليمات XML تصف مكونات الـنموذج Model وخصائصه ( الجداول وحقولها المضمنه ، والطرق وغيرها ) . ملف أخر يقوم بعملية التوجيه Mapping ليربط الكائنات بمقابلاتها في قاعدة البيانات .

وخلال عملية تنفيذ استعلام Query او امر Command ، سيقوم اطار العمل entity Framework بترجمة الاستعلامات المنفذة على كائنات وفئات Objects and Classes إلى استعلامات واوامر مناسبة لقاعدة البيانات.

– ادوات تصميم كتل البيانات entity Data Model Design Tools

وكعادة التقنيات القادمة من مايكروسوفت ، فلكل واحدة منها مائة اداة وأداة تجعل العمل يسيرا ، فلن تقوم بكتابة كود لا يخصك بل سيقوم الجماعة – واقصد الادوات ! – بكتابة الاكواد اللازمة لتوصيف الجداول على شكل entities وغيرها من الكائنات. يقدم لنا Visual Studio مجموعة ادوات مرئية Visual Tools تمكنك من العمل بشكل مرئي مريح وسهل ، فلا اعتقد انك ترغب بكتابة نموذج Model لعشرة جداول بينها علاقات وبكل واحد ما متوسطه 5 او 6 حقول فتخيل ان تكتب كل ذلك بهيئة XML بنفسك ! لا اعتقد ان هناك من يحب ان يقوم بكل ذلك بنفسه !

لسوء الحظ ، فإن المصمم Designer يحتوي على قصور ، يتمثل في كونه لا يدعم كل ميزات وخصائص الـ EDM "كبن" ، ولكن لا تقلق فتلك المميزات هي نادرة الاستخدام ، وستتعرف عليها مستقبلا ان شاء الله ، لكن حينها لا تنفع لومة لائم ، حيث انه سيتوجب عليك فتح الـ Model كملف XML والاضافة والتعديل عليه بنفسك ، لذلك فأحسب حسابك من الآن ، لو أردت التعمق كثيرا فعليك الالمام بـ XML .

من الاشياء الجميلة في الـ Designer هو دعمه للتعرف والتعامل مع الاجراءات المخزنة Stored Procedures ، ولكن ايضا وللأسف – مجددا وكالعادة في كل مرة ! – يوجد حدود وقصور وستحتاج في بعض الاحيان إلى التعديل في ملف الـ XML ايضا !

شيء اجمل من سابقه ودون قصور هذه المرة ! هو دعم تحديث النموذج Model من قاعدة البيانات ، ففي حالة نسيانك اضافة أي جدول ، حقل ، اجراء مخزن .. الخ ، يمكنك استخدام وظيفة التحديث لإعادة اضافة الكائنات مجددا .

واحدة من اقوى الميزات المنتظره في الاصدار الرابع القادم مع فيجوال ستوديو 2010 هي امكانية تحويل النموذج الغير مربوط بقاعدة بيانات إلى قاعدة بيانات جديدة ، فيمكنك استخدامه لانشاء قاعدة بيانات بكائناتها المختلفة .

– ادارة الكائنات بواسطة خدمات الكائنات Objects Services

هل رأيت كيف يكون الشيخ في مجلس قبيلته متوسطا وظاهرا ومتقدما عليهم جميعا ؟ فتلك هي ادارة الكائنات بواسطة خدمات الكائنات Objects Services ميزة اساسية تحتل مرتبة متقدمة جدا في قلب Entity Framework ، وتعرف كثيرا باسم خدمات الكائنات Objects Services . في السطور الماضية قد يظن البعض انني بالغت قليلا في كلامي ووصفي لمكانة خدمات الكائنات Objects Services ولكن الحقيقة فيما اقول تظهر في الشكل التالي والذي يمثل بنية Entity Framework :

 

فهو يتقدم الجميع في اطار العمل من حيث الاستخدام ، وهو المسؤول عن توفير كل الوظائف المطلوبة للعمل بالكائنات Objects المبنية على الكيانات الموجودة entities . تقدم خدمات الكائنات فئة تدعى EntityObject ، اهمية هذا الامر هي في ان خدمات الكائنات تدير مجموعة كائنات من ترث الفئة EntityObject ، المزيد من المعلومات في الطريق ! فعملية الادارة ليست بتلك الهينة ، حيث يتم تكوين الكائنات Materializing Objects بناءا على نتائج الاستعلامات ، ويبقي على تتبع للتغيرات التي تطرأ على البيانات – عفوا قصدي الكائنات ! ، كما يقوم بإدارة العلاقات Relationships بين الكائنات ويقوم اخيرا بحفظ التغييرات وارسالها إلى قاعدة البيانات .

وبين عملية الاستعلام عن البيانات وتحديث تلك الموجودة ، تقدم خدمات الكائنات استضافة لمجموعة من القدرات الخاصة بالتعامل مع كائنات الكتل Entity Objects كالنزول إلى ادنى المستويات في اطار العمل نيابة عنك يا سيدي العقيد ، والتي تتمثل في التعامل مع قاعدة الجنود – عفوا قصدي البيانات ! وتتعامل مع نتائج الاستعلامات بنفسها ، كل هذا بدلا عنك . بقي ان نذكر ان خدمات الكائنات تقدم شيئا آخر وهو دعم التسلسل Serialization للكائنات بنسقين ثنائي Binary و XML الامر الذي يجعلك تأخذ بالمثل القائل : حط في كرشك جحه !

افلا نقول لها كلمة : شكرا على كل هذه الجهود ؟

– تتبع التغييرات Change Tracking

مجرد القيام بالاستعلام عن البيانات والتعديل عليها لا يكفي يا حبيبي ، فكيف ستعرف السجلات المضافة والمعدلة والمحذوفة حتى تقوم بتحديث قاعدة البيانات ؟ بدلا من ان تكتب عشرات الاسطر البرمجية في سبيل تعقب تلك التغييرات ، وتظهر لديك مئات الشوائب البرمجية جراء ذلك لكل كائن تقوم باستخدامه ، يقدم لك اطار العمل entity Framework هذه الميزة نيابة عنك فأرح نفسك من كل هذا التعب والتفكير في هذا الموضوع وركز على مشروعك اكرم لك !

فبمجرد انشاء أي كائن كيان entity او الحصول على قيم استعلام ، يتم تتبع كل التغييرات التي تنشأ عليها ، ويتم كذلك تجهيز جمل Insert,Update,Delete خاصة بها في قاعدة البيانات ! فضلا عن هذا كله ، توفر لك دعم محترم للتعامل مع الاجراءات المخزنة التي تقوم بهذه العمليات .

– ادارة العلاقات Relationship Management

فلنكن صريحين ، كل قواعد البيانات اليوم تعتمد على العلاقات ، وقواعد البيانات العلائقية منذ ظهورها في منتصف القرن الماضي وهي تعتبر الوسيلة الجبارة في اختزال كمية كبيرة من البيانات التي لا داعي لها ابدا . وبما اننا نستخدم بناء مفهومي conceptual Building ، ونقوم بعمل كائنات مرتبطة ، هذه الكائنات ما هي في الاساس الا تمثيل لجداول قاعدة البيانات ، فإذا من الطبيعي ان نتعامل مع العلاقات فيما بين الجداول ايضا على شكل علاقات بين الكائنات ، فالعلاقات تعتبر جزء هام وحساس جدا في EDM وحقيقتها هي انها عبارة عن كائنات لا اكثر ولا اقل .

– ربط البيانات Data Binding

تعد خاصية ربط الادوات بالبيانات Data binding من اهم الخصائص التي تميز اطار العمل .Net Framework و Visual Studio ، وبالطبع فإطار العمل Entity Framework يقدم لك دعما محترما بهذا الخصوص ، فيمكنك استخدام الكتل البيانيه Entities كمصدر بيانات في أي مكون كـ BindingSourc eاو حتى مباشرة في الادوات مثله مثل أي مصدر بيانات اخر .

ولا ننسى ان لمطوري ويب دعم كبير ايضا، فهناك اداة كاملة تدعى EntityDataSource والتي تعد مشابهه للاداتين SqlDataSource و LinqDataSource .

– عميل الكيان Entity Client

يعد عميل الكيان من اهم واجهات برمجة التطبيقات API’s المقدمة في اطار العمل Entity Framework ، فهو من اساسات الـ Entity Framework ، فإن كانت خدمات الكائنات Objects Services كشيخ في قبيلته ، فإن عميل الكيان Entitiy Client يعد والي السلطان ، او عامل الخليفة Entity Framework عليهم كلهم ، فهو المسؤول عن التعامل مع استعلامات المخزن Store Quries ، والأوامر commands من اجل الاتصال بقاعدة البيانات ، تنفيذ الأوامر ، احضار النتائج ، وتغليفها بمظهر الكائنات الموافق للـ EDM .

وفي الواقع ، يمكنك التعامل مع الـ EntityClient مباشرة او إدارته من خلال كائن خدمات البيانات Object Services . وبدون لف او دوران ، اخبرك بان عميل الكيان EntityClient يقوم بتنفيذ اوامر السلطان او الخليفة بدعم من الشيخ Object Services فقط ، فبدونه لن يتمكن عميل الكيان من القيام بأي شيء على الاطلاق .

ملخص الأمر ، ان عميل الكيان EntitiyClient يعود بالبيانات بشكل جدولي Tabular وتكون قابلة للقراءة فقط ، بينما تقوم خدمات الكائنات ObjectServices بتغليف البيانات الجدولية بـكائنات Objects مطابقة للـ EDM ويقدم الدعم لعملية تعقب التغييرات التي تطرأ على البيانات وكذلك يقدم امكانية حفظ تلك التغييرات إلى قاعدة البيانات .

5- الاختلاف في الاصدارات :

هناك اختلافات كثيرة قادمة مع الاصدار الثاني – او الرابع ! – لكن على كل حال تلك النسخه لا تزال تجريبية ، وحتى تصدر ، علينا بالموجود ، لذلك افضل لك ان تتقن Entity Framework v1 وعندما يصدر الاصدار التالي مع النسخه 4 من .Net Framework سيكون معرفة التطورات الجديدة امر اسهل من ذي قبل .

6- أمثلة هذا الكتاب :

اود اخبارك بأنني ساستخدم قاعدة بيانات من نوع SQL Server في الاكواد والامثلة الموجودة ، وهي قاعدة البيانات الشهيرة Northwind ، فأحرص على اقتنائها ان لم تكن لديك نسخه منها من الرابط التالي حتى تستطيع التجريب والتطبيق مع الكتاب :

http://www.microsoft.com/Downloads/details.aspx?FamilyID=06616212-0356-46a0-8da2-eebc53a68034&displaylang=en

التصنيفات :ado.net entity framework الوسوم:
  1. غازي
    نوفمبر 30, 2009 الساعة 4:58 م

    بارك الله فيك ..

  2. مدحت فتوح عبد الوهاب
    ديسمبر 8, 2009 الساعة 4:05 م

    السلام عليكم ورحمة الله وبركاته
    بعد ما يذيد على 10 سنوات فى هذا المجال ووظيفة هى أكثر مما أستحق أجد أننى مازلت تلميذا يتطلع إلى كل جديد من أسماء أحترمها وأحب أصحابها وأدين لهم بالفضل
    استا

  3. مدحت فتوح عبد الوهاب
    ديسمبر 8, 2009 الساعة 4:08 م

    (بعد ضغطه غير مقصودة على Enter)

    استاذى النبهانى
    استاذى تركى العسيرى
    استاذى أحمد جمال
    استاذنا كلنا جمال عماره

    أقصى ما استطيعه أن أقول لكم جميعاً جزاكم الله كل خير

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

  4. عبد المجيد
    مارس 5, 2010 الساعة 11:58 م

    شكرا على الجهد الذي تقدمه لنا …
    ربي لا يحرمك الاجر الجزيل …

  5. أحمد علا
    مايو 1, 2010 الساعة 7:07 م

    ألف شكر ياريس الواحد مش عارف يعمل أية مع شركة ميكروسوفت دي كل يوم فية حاجة جديدة زي منتا قلت
    ربنا يعينك ويعنا عليها
    بالتوفيق إن شاء الله

  6. abdullahkishk
    ديسمبر 9, 2010 الساعة 2:45 م

    مجهود طيب ورائع
    بارك الله فيك

    والى الامام دوماً

  7. Mahmoud Elsafory
    ديسمبر 5, 2014 الساعة 4:09 م

    جزيتم خيرا

  1. No trackbacks yet.

أضف تعليقاً

إملأ الحقول أدناه بالمعلومات المناسبة أو إضغط على إحدى الأيقونات لتسجيل الدخول:

WordPress.com Logo

أنت تعلق بإستخدام حساب WordPress.com. تسجيل خروج   / تغيير )

صورة تويتر

أنت تعلق بإستخدام حساب Twitter. تسجيل خروج   / تغيير )

Facebook photo

أنت تعلق بإستخدام حساب Facebook. تسجيل خروج   / تغيير )

Google+ photo

أنت تعلق بإستخدام حساب Google+. تسجيل خروج   / تغيير )

Connecting to %s

%d مدونون معجبون بهذه: