أهم أقسام المدونة

الصفحات

الأحد، 29 مارس 2020

فيجوال بيزيك: لغة الحلول الجاهزة!


فيجوال بيزيك دوت نت: لغة الحلول الجاهزة!

أكبر مشكلة واجهتني في Vazor و ZML هي عدم وجود إكمال تلقائي عند كتابة عناصر HTML5 داخل XML Literals في فيجوال بيزيك.. والمفروض كما تزعم وثائق اللغة، أنني أستطيع الحصول على إكمال تلقائي باستخدام ملف xsd يحتوي على المخطط Schema الخاص بكود XML.. ولحسن الحظ هناك ملف من هذا النوع يحتوي على مخطط HTML5 تستخدمه ميكروسوفت في محرر كود HTML5 في دوت نت، لكن حينما حاولت استخدامه بالطريقة المشروحة في الوثائق، لم أحصل على أي نتيجة!
وقد اشتكيت بهذا الخصوص لفريق Roslyn المسئول عن لغتي فيجوال بيزيك وسي شارب ودعمها في VS.NET، فاتضح أنهم لم يضيفوا هذه الميزة إلى روزلين عند إنشائه عام 2015!
وقد مر عام منذ قدمت الشكوى ولم يفعلوا شيئا بهذا الخصوص، وبعد إعلان ميكروسوفت عن خطتها لإهمال فيجوال بيزيك، وعودتي لإكمال مشروع Vazor لتصميم صفحات الويب في مشاريع ASP.NET Core بلغة فيجوال بيزيك، قررت أن أحل مشكلة مخططات xsd بنفسي، بكتابة مزود إكمال تلقائي CompletionProvider يؤدي هذه الوظيفة.. ونظرا لأني ما زلت أستكشف طريقي في الكود المصدري لروزلين وفيجوال بيزيك، فقد قررت أن أعتمد على أي مزود إكمال تلقائي سابق لأفهم كيف يعمل، ومن ثم أعدل الكود لأحصل على المزود الجديد الخاص بي.
هنا خطرت في ذهني فكرة، هي أن أنظر في مزود الإكمال التلقائي الخاص بتعليقات الوثيقة XML Document Comments، وهي تعليقات تكتب في فيجوال بيزيك وسي شارب في شكل كود XML لشرح وظائف الخصائص والدوال، ومحرر الكود يدعم الإكمال التلقائي لعناصر XML المستخدمة في هذه التعليقات.
وبالفعل، أخذت نسخة من مزود الإكمال الخاص بهذه التعليقات، وأجريت فيها تعديلات طفيفة سريعة، جعلتني أحصل على إكمال تلقائي في XML Literals، كما ترون في الصورة!
طبعا اقتراحات الإكمال هي نفسها الخاصة بتعليقات وثقية XML، وهذا ليس مفيدا، لكن الخطوة التالية هي أن أعدل المزود ليأخذ اقتراحات الإكمال من مخطط xsd الخاص بـ HTML5، وهذا ما سأشرع فيه غدا بإذن الله.. بعد هذا إن شاء الله سأكتب ملف xsd يحتوي على تعريف عناصر ZML، لأقترحها في الإكمال التلقائي أيضا.
ما يهمني أن أركز عليه هنا، هو كم الظلم والإهمال الذي تعرضت له فيجوال بيزيك.. لقد استطعت في دقائق وبمعرفة سطحية عن روزلين، أن أعرض اقتراحات تكملة لـعناصر XML، لأن معظم الكود مكتوب مسبقا بالفعل، ولو أن هناك من يهتم بفيجوال بيزيك في ميكروسوفت، لكانت هذه المشكلة حلت في يوم واحد منذ شكوت بسببها!
نفس الأمر ينطبق على Vazor.. فيجوال بيزيك تحتوي على XML literals منذ 2008، ولم تكن بحاجة إلى إنشاء Razor لتصميم صفحات ASP.NET Core، فهي بالفعل تحتوي على آلية خاصة بها لمزج كود HTML بكود فيجوال بيزيك، وهذا أسهل بكثير في تعلمه وكتابته من كود Razor، بل أنه أسهل وأرخص بالنسبة لفريق التصميم الذي يعاني صعوبات جمة لترجمة كود سي شارب الممزوج بكود HTML في صفحات Razor!.. كود XML literals هو أسهل وأرخص آلية ممكنة، وكان يجب عليهم إضافتها إلى C# بدلا من إهدار المال والوقت والجهد في كود Razor! (هناك مبرمجون كثر يطالبون منذ سنوات بإضافة XML Literals إلى سي شارب لأنها تسهل تصميم وثائق XML، لكن هذا الطلب دائما يقابل بالرفض من فريق سي شارب!).
فيجوال بيزيك أكبر بكثير من صياغتها السهلة والمريحة للكود، فهذه اللغة تحمل روح بيل جيتس المغامرة، التي جعلت فيجوال بيزيك تفكر دائما في الحلول الأذكى والأكثر إراحة للمستخدم، لدرجة أننا ما زلنا نفاجأ إلى اليوم أن كل الحلول موجودة بها، لكن البعض عصبوا أعينهم عنها!
ليست صدفة أن تزامن رحيل بيل جيتس عن عضوية مجلس إدارة ميكروسوفت مع إعلانها عن تجميد تطوير فيجوال بيزيك، فقد بدآ معا، ورحلا معا.

I_love_VB_NET

ليست هناك تعليقات:

إرسال تعليق

ملحوظة: يمكن لأعضاء المدونة فقط إرسال تعليق.