فيجوال بيزيك دوت نت: لغة
الحلول الجاهزة!
أكبر مشكلة واجهتني في 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
ليست هناك تعليقات:
إرسال تعليق
ملحوظة: يمكن لأعضاء المدونة فقط إرسال تعليق.