Layered design in software engineering

0-LINQ: The Big Picture

ال Language Integrated Query واختصاراً LINQ وهى عبارة عن Query Feature  بنستخدمها فى ال #C.

عبارة عن API  بنستخدمها  مع Data Sources مختلفة مثل XML documents و Collection of Objects in Ram و SQL databases وهكذا.


لو الداتا موجوده فى ال RAM وعباره عن Collection Of Objects  هنستخدم ال methods اللى بتوفرها لينا ال Generic Collection Class فى الـ NET.

لو محتاجين object معين  هنعمل iterate على الـ collection ونشوف ال object بيحقق الشرط اللي احنا عاوزينه  وهكذا.

لو الداتا متخزنه فى ال Database هنستخدم Ado.net علشان نبعت SQL  Command لل Database ونستقبل ال Result .

لو الداتا متخزنه فى XML Documents هنستخدم XML API وهكذا.

أنت علشان تتعامل مع Data Sources مختلفة استخدمت tools مختلفة  وتكتب كود مختلف على حسب الـ API , لكن LINQ بتوفر ليك consistent API علشان تتعامل مع Data Sources المختلفة.

الملخص هو أن LINQ عبارة عن API تقدم لنا مجموعة من ال methods  من اجل  الاستعلام عن البيانات وعمل مجموعة من العمليات عليها  اياً كان نوع الـ Data Source المستخدم فى حفظ البيانات.


LINQ بتوفر لينا method اسمها where وبتستخدم where علشان نعمل Filter لـ Data بناءاً على شرط معين .

ازاى  الـ LINQ هتعمل implementation ل where

ازاى where تنفذ لو انا بشتغل على data موجود فى ال Database.

ازاى where تنفذ لو انا بشتغل على data موجود فى ال Ram.

ازاى where  تنفذ  لو انا بشتغل على داتا موجوده فى XML Documents

ودا السؤال الطبيعى اللى ممكن تفكر فيه , ازاى انا بستخدم نفس ال method  اياً كان نوع الـ Data Source. والمفروض ان ال implementation  يختلف على حسب نوع ال Data Source.


وهنا يجي دور الـ LINQ PROVIDER.

وال LINQ Provide بالمختصر المفيد هو عارف ازاى هيتم تنفيذ الكود اللى كتبينه على data source معين.

يبقى احنا عندنا API أو methods بستخدمها اياً كان ال Data Source وعندنا Providers  عارف ازاى هيتم تنفيذ ال Query  على data source معين.



بالطبع عندنا اكتر من Provider على حسب Data Source.

1-LINQ to Objects

ال  Query  بتتنفذ على Collection Of Objects 

2-LINQ to XML

ال  Query  بتتنفذ على collection of XElement objects باستخدام linq to xml provider  نقدر 

 create, read and edit XML files

3-LINQ to SQL

هو mapping Framework بيستخدم مع Sql Server Database بس.

ونقدر نكتب LINQ Query  عادى , اما طريقة تنفيذ الـ Linq Query تختلف ودا هنعرفه  بعد كدا.

4-LINQ to Datasets

لو انت ساتخدمت ال ADO .NET هتكون عارف ال Dataset وال Dataset عبارة عن object بنخزن فيها الداتا.

باستخدام ال Link To Dataset Provide هنقدر نكتب Query وتتنفذ على الداتا المخزنة فى ال Dataset.

5- LINQ to Entities

يتم استخدامه فى ال Entity Framework .
ونقدر نكتب LINQ Query  عادى , اما طريقة تنفيذ الـ LINQ Query تختلف ودا هنعرفه  بعد كدا.

تعليقات