تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
نظرة على جديد الفيجوال بيسك 9 - الجزء الأول
#1
كاتب الموضوع : crazy-man

بسم الله الرحمن الرحيم



مشروع LINQ

مشروع ال LINQ او ما يعرف بال Language Integrated Query و هو تقنية جديدة في الفيجوال بيسك 9 و السي شارب 3 و هدفها هو تمكين مبرمجي الدوت نت من أن يستعملوا لغات البرمجة التي يستعملونها دائما مثل الفيجوال بيسك و السي شارب من أجل عمل Query على معلومات او بيانات كيفما كان نوعها. يمكن عمل Query على بقواعد بيانات (Project DLinq) أو حتى على بيانات من نوع XML بما يسمى Project XLinq لكن أعود و أقول انه يمكن عمل Query على أي نوع من البيانات و سيتضح كلامي في باقي المقالة.



الآن من أجل تقريب الفكرة الى جميع دعونا نرى مثال بال Visual Basic 9 و سيمكنك تجربة المثال حالما يظهر الفيجوال بيسك 9، لنفرض أن لدينا كلاس اسمه Personne و متغير اسمه Personnes يحتوي على Collection من الأشخاص ، لنرى اذا هذا الكود الذي أظن أنه جديد بالنسبة لك لكن رغم ذلك أضمن لك أنه جد شهل و سيمكنك فهمه باذن الله من النظرة الأولى.



Dim OurResults = Select Personne From Personne In Personnes_

Where Personne.Age > 50_

AndAlso Personne.Country = "Morocco"_

Order By Personne.Nom ASC



الآن المتغير OurResults عبارة عن collection (IEnumarable) للأشخاص و قد قمنا بأخذ هذه المجموعة من المتغير Personnes الذي سبقو ذكرنا أنه يحتوي على Collection من الأشخاص و طبعا كما ترون فقد اخترنا فقط بعض الأشخاص طبقا لمواصفات محددة يعني الأشخاص ذوو العمر أكبر من 50 سنة و أيضا من المغرب ثم رتبنا النتائج حسب الأسماء، كما ترون فهذه جملة SQL واضحة لكنها استعملت بواسطة الفيجوال بيسك 9 دون الحاجة الى ال SQL و أيضا اذا لم تلاحظة فقد عملنا Query ليس على قاعدة بينات و انما على متغير، أليس هذا رائعا .

استعمال متغيرات دون تحديد النوع :

هل لاحظتم شيئا في الكود السابق ؟؟؟ المتغير OurResults ... نعم صحيح أحسنت هذا هو، اننا لم نحدد له نوع يعني عرفنا المتغير دون ان نحدد نوعه هل هو String ام Array ام ماذا !!! اذا فلتفرح لم يعد هناك حاجة لتحديد نوع المتغير لأن الكومبايلر الخاص بالفيجوال بيسك 9 أصبح يستطيع أن يتعرف على نوع المتغير مباشرة عندما تسند اليه قيمة ما فيقوم بمعرفة النوع على حسب القيمة حتى لو كنت عامل الخاصية Option Strict التي تلزمك بتعرف المتغيرات قبل استعمالها.

في المثال السابق يعرف الكومبايلر أنني سأستعمل IEnumarable اذا فلا حاجة لتحديد النوع مسبقا.

طبعا هناك استثناءات فمثلا لنأخد المثال التالي :



Dim x = Nothing



هنا سينتج خطأ كون الكومبايلر سيجهل نوع المتغير لكن من جهة أخرى لنرى التعبيرات التي يمكننا استعمالها بكل بساطة :



Dim x = "coucou"

Dim y = 2.5

Dim z As Integer = 4

Dim i = z

عموما الكومبايلر قد يقوم بانشاء أنواع جديدة تلائم متغيراتك فمثلا في المثال أعلاه نحن نستعمل أنواع متغيرات موجودة مسبقا في الفرييم وورك لكن يمكن للكومبايلر عمل انواع تلائم تعاملك مع ملفات ال XML مثلا.

تعريف الكائنات

تعرفون بدون شك الجملة With التي تمكننا من الوصول الى عناصر كائن معين دون اعادة كتابته و التي يكون شكلها كالتالي :



Dim p As New Personne
With p
.Nom = "Clark"
.Prenom = "Richard"
End With


رائع، الآن و مع مشروع LINQ يمكن استعمال نفس الطريقة لكن دون اللجوء الى كلمة With من أجل تعريف كائن و لتقريب الفكرة أكثر دعونا نرى مثال لذلك :



Dim p as New Personne{.Nom = "Clark", .Prenom = "Richard"}

و لنستغل ما رأيناه سابقا حول تعر المتغيرات دون تحديد نوعها لنكتب شيئا من هذا القبيل :


Dim p = New {.Nom = "Clark", .Prenom = "Richard"}


طبعا هنا الكومبايلر سيعرف ان المتغير p من نوع Personne بالاعتماد على القيمة المدخلة اليه.

بل و أكثر من ذلك يمكننا عمل Collection من الأشخاص بكل بساطة على الشكل التالي :



Dim Personnes = {_

New Personne{.Nom = "Clark", .Prenom = "Richard"}_

New Personne{.Nom = "Clark", .Prenom = "Sabine"}_

}



أليس هذا رائعا، و طبعا يمكنك عمل Query على هذه ال Collection مثل التي عملنا في المثال الأول.



الأنواع المجهولة (Anonymous Types)

هنا سنرى شئ رائع و جميل و قوي في نفس الوقت، يعني الروعة الى ما لا حدود، المهم ماذا نريد أن نعرف الآن سوف نرى كيف يمكننا اختيار قيم من داخل كائن.كيف ذلك ؟؟ اذا انظر الى الكود أسفله و ستفهم :



Dim Personnes = {_

New Personne{.Name = "Clark", .Prenom = "Richard", Age = 40}_

New Personne{.Name = "Clark", .Prenom = "Sabine", Age = 41}_

}

Dim OurPersonnes = Select New{.Nom = Personne.Name, .Age = Personne.Age }_

From Personne In Personnes_

Where(Personne.Age < 40)



يبدو ان المثال غامض لكن لا مشكل دعوني أشرح :

أولا قمنا بانشاء Collection اسمها Personnes طبعا تحتوي على أشخاص و بالتحديد شخصين.

ثم بعد ذلك قمنا بتعريف متغير OurPersonnes طبعا لم نحدد له النوع، الى هنا كل الأمور واضحة لكن على ماذا يحتوي هذا المتغير ؟؟؟ كما ترون عملنا Query ثم أنشأنا كائن جديد بواسطة الكلمة New لكن لم نعطه اسم!!! ثم حددنا له فقط خاصيتين و هما Name و ال Age و بهذا أصبح المتغير OurPersonnes عبارة عن Collection تحتوي على خاصيتين هما Name و Age.

الى هنا أنتهى الجزء الأول و في انتظار الجزء الثاني أتمنى ان تتمتعوا بامكانيات الفيجوال بيسك 9 و لو حلما لأنه لم يصدر بعد
}}}}
تم الشكر بواسطة:


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  تحميل برنامج مايروسوفت فيجوال بيسك Download Microsoft Visual Basic mohamed atef2018 2 168 09-07-16, 10:58 PM
آخر رد: عمور2016
  اضافة تمكنك من برمجة php باستخدام الفيجوال ستوديو RaggiTech 0 551 27-10-12, 04:48 PM
آخر رد: RaggiTech
  درس-التشفير - الجزء الثانى(Deep in) RaggiTech 2 949 09-10-12, 06:44 PM
آخر رد: RaggiTech
  دعنا نتعرف قليلا على لغة #f جديد لغات vs 2010 RaggiTech 4 641 09-10-12, 06:39 PM
آخر رد: RaggiTech
  طريق تحزيم البرنامج بوسطة الفيجوال RaggiTech 0 446 09-10-12, 06:17 PM
آخر رد: RaggiTech
  كيفية استخدام نظام ال Subversion من الفيجوال ستوديو مباشرة لتنسيق العمل الجماعي RaggiTech 3 739 09-10-12, 05:38 PM
آخر رد: RaggiTech
  كيفيه اداره الاحداث فى بيئه الدوت نت الجزء الثالث how To Handle Events in.net Part 3 RaggiTech 0 360 09-10-12, 05:22 PM
آخر رد: RaggiTech
  كيفيه اداره الاحداث فى بيئه الدوت نت الجزء الثانى how To Handle Events in .net Part 2 RaggiTech 0 391 09-10-12, 05:21 PM
آخر رد: RaggiTech
  كيفيه اداره الاحداث فى بيئه الدوت نت الجزء الاول part 1 how to Handle Events in .net RaggiTech 0 326 09-10-12, 05:20 PM
آخر رد: RaggiTech
  نظرة سريعة في الجديد في Visual Studio 2008 فيما يتعلق ببيئة التطوير RaggiTech 0 281 08-10-12, 05:45 PM
آخر رد: RaggiTech

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم