Introduction to LINQ | مقدمة حول LINQ

13006592_465542480315942_1308575803780020483_n

ماهي تقنية الـ LINQ  ؟  

هي تقنية جديدة من مايكروسوفت تهدف الى بناء استعلامات قوية.Language Integrated Query  يمكن التحكم فيها من خلال بيئة فيجوال ستوديو ، اضف إلى ذلك توحيد عبارات الاستعلام مهما تكن نوعية مصدر قواعد البيانات الذي نتعامل معها سواء كانت SQL Server او XML ،هذه التقنية عبارة عن محول من أي لغة برمجة تحت إطار الـ .NET إلى SQL. تساعد في التعامل مع جداول وحقول و اجراءات ودوال  الموجودة في قاعدة البيانات الخاصة بمشروعك على هيئة كائنات Objects ،   تقنية الـ LINQ تقوم بتحويل الجداول  إلى Classes و الحقول إلى Properties و الاجراءات و الدوال الى Methods . 

12963448_465543540315836_4250195069846685757_n

ماهي فكرة تقنية الـ LINQ ؟

الفكرة الأساسية خلف LINQ أنه توجد فجوة كبيرة بين منطق البرنامج المكتوب بلغة برمجة وبين البيانات التي تتعامل معه , فكلما زادت كمية البيانات التي عليك معالجتها , كلما أصبحت أبعد منطقيا وفيزيائيا بالنسبة لبرنامجك .

ظهور تقنية الـ LINQ  ؟

ظهررت هذه التقنية مع Net Freamwork 3 .  كبداية  و اول اصدار لها  في  .Net Fremwork 3.5 مع اصدار الفيجوال ستوديو 2008 .

لـماذا تقنية الـ LINQ    ؟ 

الجميع يستعمل عبارات الاستعلام Structured Query Language ” SQL ” في التعامل مع  انظمة قواعد البيانات وهي مدعومة مع جميع لغات البرمجة الحديثة وباختلاف انواعها فهي تفهم هذه  العبارات  جيداً ، ما يعيب  SQL اثناء البرمجة هو ارسال الاستعلامات على هيئة  Text  لا يمكن تنقيحه داخل محرر لغات البرمجة ويسبب البطيء أحيانا عند استعمالها حيث قد تنسى اسم جدول مثلا , خصوصا عند رغبتك في توفير حماية عالية فستكون اسماء الجداول و الحقول ليست الاسماء الاعتيادية وتكون معرضة للنسيان .. فتجد نفسك تفتح قاعدة البيانات مره اخرى وتكتب اسماء الجداول و الحقول على ورقة ،  مما يسبب التشتيت في المشاريع الكبيرة ،  كما لا توفر الحماية الكافية للمبتدئين  فتجدهم يتجهالون بعض الخطوات في تعاملك مع الـ SQL في تقنية Ado.Net و هي تعريف Parameters عند جمل Insert .. مما يهدد حماية المشروع خصوصا وان كان موقع ويب بحقن شفرات SQL تخريبية أو للوصول الى بيانات ليس له الحق للوصول اليها .. كما يتعرض للخطر عند جمل البحث عندما تكون القيمة مأخودة بالطريقة Get وعند تجاهل تعريف Parameter يحدد نوع الحقل وطوله قد يتعرض مشروعك للعبث .. أو ضهور اخطاء لم تقم بتفاديها بجمل Try Cath ..

جائت تقنية LINQ … Language Integrated Query , لتأخد بايدي المبتدئين و المحترفين باخد الاحتياطات اللازمة للاول نيابة عنه , وتساعد الثاني في انهاء مشاريعه بسرعة وتجعل تركيزه في فكرة المشروع وليس في تفادي الاخطاء و الحماية .
ببساطة SQL رائعة جدا , ولكن توجد فجوة كبيرة بينها وبين منطق برنامجك في العمل , إنها منعزلة وخارج السياق ولا يمكنك أن تدمجها مع البرنامج بالطريقة الكافية للإستفادة من مزايا لغة البرمجة التقليدية كقوة الأنماط او المنقح أو غيرها من مئات التقنيات المعتادة والمهمة في عالم البرمجة اليوم ..