المتابعون للمدونة

الثلاثاء، 4 يونيو 2019

النازعات والناشطات



هل تدبرتم هذه الآيات الكريمة من قبل؟
(وَالنَّازِعَاتِ غَرْقًا {1} وَالنَّاشِطَاتِ نَشْطًا {2} وَالسَّابِحَاتِ سَبْحًا {3} فَالسَّابِقَاتِ سَبْقًا {4} فَالْمُدَبِّرَاتِ أَمْرًا {5} يَوْمَ تَرْجُفُ الرَّاجِفَةُ{6} تَتْبَعُهَا الرَّادِفَةُ {7} قُلُوبٌ يَوْمَئِذٍ وَاجِفَةٌ {8} أَبْصَارُهَا خَاشِعَةٌ {9} يَقُولُونَ أَئِنَّا لَمَرْدُودُونَ فِي الْحَافِرَةِ {10} أَئِذَا كُنَّا عِظَامًا نَّخِرَةً {11} قَالُوا تِلْكَ إِذًا كَرَّةٌ خَاسِرَةٌ {12} فَإِنَّمَا هِيَ زَجْرَةٌ وَاحِدَةٌ {13} فَإِذَا هُم بِالسَّاهِرَةِ {14})

هناك تفسيرات مختلفة لمعاني هذه الكلمات التي يقسم بها الله سبحانه وتعالى، وأغلب الظن أن المقصود بها الملائكة، فهي النازعات غرقا أي تنزع أرواح الكفار بشدة، وهي الناشطات نشطا أي تجذب أرواح المؤمنين برفق كحل أنشوطة الحبل، وهي السابحات والسابقات والمدبرات.. وهنا يأتي جواب القسم على أن الساعة حق والبعث حق: (يوم ترجف الراجفة .... قلوب يومئذ واجفة).

لاحظوا أن القسم ليس شرطا أن يكون في نفس زمن جواب القسمة.. بمعنى أن الله سبحانه يقسم بأشياء في الدنيا على وقوع أحداث الآخرة.. وهناك تفسيرات أخرى للنازعات والناشطات بأنها الكواكب والنجوم التي تغيب وتشرق وتبطئ وتسرع، وتسبح في الفضاء وتنتقل ظاهريا من بروج إلى بروج، وأنا أميل إلى هذا الرأي، لأن الله سبحانه في معظم آيات القرآن يقسم بأشياء يعرفها المؤمن والكافر ولا خلاف عليها كالليل والنهار والشمس والسماء والطارق... إلخ.. ليلفت النظر إلى ما في هذه الظواهر والأجرام من إعجاز في الخلق يثبت قدرته، ويوجب للعقل التيقن من صحة ما أقسم بها سبحانه عليه.

وعندي يقين أن هذه الآيات البديعة ما زالت تخفي أسرارا وإعجازا لم يتجل لنا بعد، فتدبروها:
((وَالنَّازِعَاتِ غَرْقًا {1} وَالنَّاشِطَاتِ نَشْطًا {2} وَالسَّابِحَاتِ سَبْحًا {3} فَالسَّابِقَاتِ سَبْقًا {4} فَالْمُدَبِّرَاتِ أَمْرًا {5})


السبت، 25 مايو 2019

امتحان التابلت بعقلية لمبة الجاز



امتحان التابلت بعقلية لمبة الجاز

أمر مؤسف ان يتحول شيء جميل مثل إدخال الحاسوب اللوحي (التابلت) لنظام التعليم المصري إلى ثورة طلابية في معظم محافظات مصر .. شيء لم يحدث في أي دولة في العالم اعتمدت هذه التقنية.. مثال سيخلد في كل كتب الإدارة والتنمية البشرية على سوء التخطيط والفوضى والاستعجال والفساد..... واللهم إني صائم!

كان من الواجب ان يتم تأجيل النظام الجديد بعد ان تأخر استيراد التابلت (وهنا سؤال جوهري: لماذا يستوردونه أصلا بعد ان جعل د. مرسي مصانع الهيئة العربية تصنع تابلت اينار وتم توزيعه على الطلبة بالفعل بعدها بعام، واكتشفنا أن الهيئة العربية للتصنيع عندها خطوط إنتاج متقدمة لطباعة اللوحة الأم وبعدة طبقات!!)

وكان من الواجب أيضا عمل امتحان تجريبي للتابلت لا يضاف للمجموع قبل أسبوعين من امتحان نصف السنة واخر السنة الورقي التقليدي حتى يفهم الطلبة النظام اولا قبل ان يتم تطبيقه عمليا في الصف الثاتي الثانوي.

لقد وصل بهم الفشل لافاق اسطورية، لدرجة ان اللقطة التي كانوا يريدون اخذها بجوار نظام تعليم جديد وتقنية حديثة، انقلبت 180 درجة حتى خرج طلبة وطالبات اولى ثانوي للشوارع في مشهد غير مسبوق ينادون بعودة النظام القديم والامتحان الورقي وكأن مصر تسير عكس مسار التاريخ!

ومن رايي ان شركة تي اي داتا او جهاز تنظيم الاتصالات او وزازة الاتصالات او الجهة المسيطرة على كل هؤلاء لها يد في فشل التجربة بسبب عدم كفاءة الشبكة التي تحمل فوق طاقتها في كل مصر ولا يمكنها احتمال امتحان موحد على مستوى الجمهورية، وكان من المنطقي ان تطلب الشركة من الوزارة تقسيم مواعيد الامتحان لتخفيف الضغط، ما دام الامتحان مختلفا لكل طالب. هذا ما كان متوقعا بعد فشل اول تجربة، لكن لا شيء يتغير في هذا البلد الا بعد الكارثة!

ومن المهم هنا ان اربط بين هذا الأمر وإطلاق شركة سبيس اكس لشبكة أقمار صناعية لتوفير الانترنت الفضائي في كل مكان في العالم بسعر زهيد وسرعات تبدأ من واحد جيجا بايت في الثانية!.. ولعل بعضكم رأي المنشور الهزلي الذي ردت فيه شركة تي اي داتا على هذا الخبر بان مصر لن تسمح بتقديم هذه الخدمة!.. هذا الاحتكار الخانق للانترنت في مصر قتل الاقتصاد المعلوماتي بسبب استحالة تشغيل خوادم المواقع web servers هنا لانها لن تستطيع تلبية طلبات ملايين المستخدمين من كل مكان في للعالم.. وقد رايتم ما حدث لنظام التابلت الجديد!.. لكن الأسوأ انها أيضا ضيعت 20 سنة كان يمكن ان يختلف شكل التعليم فيها جذريا في مصر حتى قبل ظهور التابلت، بتحويل المدارس والجامعات إلى مواقع تفاعلية قي الوقت الحقيقي، وتزويدها بمعامل افتراضية ثلاثية الأبعاد، وربطها بالجامعات والمؤسسات البحثية العالمية والمراصد الفلكية والمختبرات وناسا وغير ذلك.. لكن كل هذا كان يستلزم منح المشتركين سرعات هائلة بأثمان بخسة، كانت ميزانيات التعليم المهدرة بلا جدوى تكفي لدعمها! لكن شركات المحمول والانترنت همها الاول ان تكبش المليارات من مستقبل الوطن.. كان من الممكن حتى الا تحدث ثورة يناير لو كان الشباب قد أحسوا ان هناك تعليما حقيقيا يفتح امامهم ابواب المستقبل وفرص عمل جديدة في مجال المعلوماتية تتيح لاصحاب العقول منهم ان يصيروا مليارديرات لو ابتكروا تطبيقات جديدة ووفروا خوادم لتشغيلها في مصر بدلا من ابتزاز مزودي الخدمة في الخارج.. اي شيء ذي قيمة بدلا من ان يفتح كل شاب سايبر انترنت او محلا لبيع وصيانة المحمول!

لكن كل شيء في مصر يظل على وضعه إلى ان تحدث الكارثة!


وطني غطاء زجاجة



ارتجالا من وحي هذا المنشور:
"فوضعت غيرترود بيـل غطاء زجاجة خمر على الخريطة الضخمة التي كانوا يخططون عليها وعندما أرادت رفعها بعد انتهاء وقت الشراب طلب منها أحد الحضور الإلتفاف بحدود الخريطة حول غطاء زجاجة الخمر وسخر الجميع من العرب وحكامهم وضحكوا لتدخل غطاء الزجاجة في اقتطاع جزء من دولة وذهابه لدولة أخرى!!"

بغض النظر عن صحة هذه الرواية، فمن المؤكد أن غيرترود بيـل ولورانس العرب هم من وضعوا حدود دول المنطقة التي تم الاتفاق عليها في معاهدة يايكس بيكو، وأن هذه الحدود تسببت في حروب وثورات وصراعات عرقية لم تنته إلى اليوم، والأسوأ أنها ستتصاعد مع ما يسمى بصفقة القرن التي يبدو أنها ستكون سايكس بيكو القرن الحادي والعشرين!!


الجمعة، 17 مايو 2019

تنسيق النص متعدد الأسطر في الكود



تنسيق النص متعدد الأسطر في الكود:

عند كتابة نص مكون من أكثر من نص في الكود، تظهر أي مسافات تضيفها في بداية كل سطر في محرر الكود في النص الذي يوضع في المتغير، ولهذا تضطر إلى إزالة أي مسافات غير مرغوب فيها، وهذا يؤدي إلى ظهور النص بدون الهوامش البادئة التي تناسب التنسيق العام للكود، كما في الصورة.



لحل هذه المشكلة، يمكنك استخدام حيلة بسيطة، وهي تجميع السطور باستخدام الوسيلة String.Join مع استخدام رمز السطر الجديد كفاصل، كما في الصورة.


الاثنين، 6 مايو 2019

Halo



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

هل تذكرُ تلك الجدرانَ التي أَقمتُها بينَنا؟
حسنٌ، حبيبي، إنها تتهاوى بلا أي مقاومة!
وبدون حتى أن تُصدر صوتًا!
Remember those walls I built?
Well, baby, they're tumbling down
And they didn't even put up a fight
They didn't even make a sound
لقد وجدتُ طريقةً لأجعلكَ تنتصر عليّ
لكن لم يُساورني أيُّ شكّ قَطّ
وبينما أقفُ في ضوءِ هالتِك
أُدرك الآن أن ملاكي معي
 
I found a way to let you win
But I never really had a doubt
Standing in the light of your halo
I got my angel now
يبدو كأنني قد استيقظتُ للتو
لقد كسرتَ كلَّ قواعدي
هذه هي المخاطرةُ التي أجازفها
أنا لن أُقصيَكَ عني أبدًا
 
It's like I've been awakened
Every rule I had you break it
It's the risk that I'm taking
I ain't never gonna shut you out
والآن حيثما نظرتُ، أجدني محاطةً بعناقِك
حبيبي إنني أشعر بهالتِك
أنتَ تعرفُ أنك نعمتي المُنقِذَة
Everywhere I'm looking now
I'm surrounded by your embrace
Baby, I can see your halo
You know you're my saving grace
أنتَ كل ما أحتاجُ إليه وأكثر
هذا مكتوب في كل قسمات وجهك
حبيبي، أستطيع أن أشعر بهالتك
وأصلّي كي لا تتلاشى
 
You're everything I need and more
It's written all over your face
Baby, I can feel your halo
Pray it won't fade away
باغتْـني مثلَ شعاعٍ من الشمس
يتوهّجُ في أحلكِ ليلاتي
أنت الشخصُ الوحيدُ الذي أريده
أظنني مدمنة لضيائك
 
Hit me like a ray of sun
Burning through my darkest night
You're the only one that I want
Think I'm addicted to your light
لقد أقسمتُ إنني لن أسقطَ مرة أخرى
ولكن هذا لا يبدو حتى كالسقوط
فهل يمكن أن تنسى الجاذبيةُ
أن تشدَّني إلى الأرضِ مرة أخرى؟
 
I swore I'd never fall again
But this don't even feel like falling
Gravity can't forget
to pull me back to the ground again

 

 

 

 


طرد إلى عمان




أرسلت طردا فيه كتب فيجوال بيزيك، إلى سلطنة عمان وهو أول طرد أرسله إليها، وتم استلامه اليوم بحمد الله.. يمكن تتبع رحلة الطرد عبر موقع البريد المصري أو موقع البريد العماني.
لمزيد من التفاصيل انظر كتب سي شارب وفيجوال بيزيك وأسعارها.

 



أراك



هذا البيتان الركيكان متداولان على الفيسبوك:
مـالي أراكَ يا أراكُ بـثغـرِها = أفما خشيتَ يـا أراكُ أراكَ
لو كنتَ من أهل الـقـتالِ قتلتكَ = لكنّ ما لي يا سواكُ سواكَ 

فعقبت عليهما على سبيل الدعابة:
مـا لـي أراكَ مُقـــــبّلا فـي نَشــــوةٍ عــــودَ الأراكْ؟
وأنا الذي في شوقِه في غربةٍ، ما لي أراكْ؟(1)
وأراكَ (مالي) يَشــتري مالي لعـلّي قـد أراكْ؟(2)
 
(1) أي ليس لي عود أراك
(2) مالي الأولى اسم دولة


فاتورة المياه



تحذير هام جدا جدا، بخصوص فاتورة المياه

لم ينتبه الكثيرون أن شرائح الاستهلاك طبقت على فاتورة المياه منذ العام الماضي، وأن أسعار المياه زادت أيضا، ومن المتوقع أن تزيد مرة أخرى في الشهرين القادمين!

لفهم تأثير ذلك، ادخلوا موقع حساب فاتورة المياه، واحسبوا تكلفة استهلاك 100 متر مكعب (تكتب في الفاتورة 100 ك) في الحالات التالية (وضعت لك النتائج في الجدول): 

عدد الوحدات (الشقق)
الصرف الصحي غير مخدوم
الصرف الصحي مخدوم
بدون الضريبة
بالضريبة
بدون الضريبة
بالضريبة
1
319 جنيها
364 جنيها
555 جنيها
633 جنيها
3
285 جنيها
325 جنيها
492 جنيها
560 جنيها
5
130 جنيها
148 جنيها
214 جنيها
244 جنيها


الاستنتاج:
أولا: يحسب الصرف الصحي بـ 75% من قيمة استهلاك المياه!!.. لهذا لو لم تكن منطقتك مخدومة بالصرف الصحي، فانظر في الفاتورة، وإذا وجدت أنهم يحاسبونك على الصرف الصحي، فاذهب إلى شركة المياه فورا واطلب منهم تصحيح ذلك. 

ثانيا: يتم قسمة الاستهلاك الشهري على عدد الوحدات (الشقق) لحساب متوسط استهلاك الوحدة، وحساب شرائح الاستهلاك بناء عليه، ثم ضرب تكلفة استهلاك الوحدة في عدد الوحدات لحساب الإجمالي. في الشريحة الأولى سعر الكيلو حوالي 85 قرشا، الثانية 1.5 جنيها، الثالثة 2.25 جنيها، الرابعة 2.75 جنيها، الخامسة والأخيرة (50 كيلو فأكثر) 3.15 قرشا.
لهذا عليك أن تنظر في الفاتورة، فإن وجدت عدد الوحدات المسجلة فيها أقل من عدد الشقق التي تعمل على عداد المياه، فاذهب إلى شركة المياه واطلب تصحيح ذلك فورا، فسيوفر لك الكثير.. لكن لاحظ أن كل شقة يضاف عليها مبلغ 3.15 قرشا قيمة استدامة الخدمة.. يعني لو لديك 5 شقق فيضاف للفاتورة 15.75 جنيها. 

ثالثا وأخيرا والخطوة الأهم: اذهب إلى العداد وانظر إلى قراءته الحالية، وقارنها بآخر فاتورة لديك:
1. لو وجدت أن الفاتورة تسبق قراءة العداد فاذهب إلى شركة المياه واطلب تقليل عد الوحدات التي يضيفوها إلى الفاتورة شهريا مثلا: 20 ك بدلا من 40.. المهم أن تنزل إلى شريحة استهلاك أقل.

2. لو وجدت أن الفاتورة متأخرة عن قراءة العداد ومتراكم عليك مئات الكيلوات فاذهب إلى شركة المياه واتخذ تصرفا مما يلي:
أ- اطلب منهم حساب المتأخرات عليك بمتوسط سعر استهلاكك (في حدود 1.25 جنيها للكيلو) وادفع المبلغ كاملا في الخزنة بدون تقسيط.. تأكد جيدا أنهم لا يضيفون كل المتراكم عليك في فاتورة شهر واحد، بل يحاسبونك عليها كمتأخرات تدفع في الخزنة.

ب- اطلب منهم زيادة استهلاك الفاتورة شهريا، ولكن لا تتجاوز الشريحة الثالثة لو كان المتأخر عليك كثيرا.. لفعل هذا اضرب عدد الوحدات في 30 (يعني لو لديك 3 شقق مثلا، اطلب أن يحاسبوك شهريا على 90 كيلو)..  لو كان المتأخر أقل من 200 ك، فيمكنك أن تضرب عدد الوحدات في 20 لتحاسب على الشريحة الثانية... وهكذا. 

خذوا الأمر بجدية، وابدأوا في التنفيذ، قبل أن تجدوا أنفسكم مطالبين بسداد آلاف الجنيهات على المتأخرات!

أخبروا جميع معارفكم، وشاركوا المنشور ليستفيد الجميع.

بالتوفيق.

 


كوب شاي للمبرمجين



كيف يشرب كل من مبرمج فيجوال بيزيك ومبرمج سي شارب كوب الشاي؟
 

 

 


الجمعة، 26 أبريل 2019

دروس وعبر



دروس وعبر!

 
الإخوة السودانيون:
قوة العسكر لا تقتصر على السلاح فقط، لهذا لن تردعها المظاهرات في الشوارع مهما كانت بالملايين، إلا في حالة واحدة فقط: إذا تمردت مؤسسات الدولة المدنية على العسكر وأعلنت العصيان المدني، ففي هذه الحالة يصير العسكر عاجزين عن فعل أي شيء بسلاحهم إلا حماية الحدود فقط!

لكن المعضلة في هذا الأمر، أن أجهزة الأمن هي التي أفرزت رؤساء ومديري مؤسسات الدولة عبر عقود، والموظفين القدامى تربوا على أنهم ملكية خاصة للدولة، هي التي تطعمهم وهي التي تقيلهم لو شاءت أو تزج بهم في السجون.. لهذا فإن أقوى أسلحة الثورة المضادة هم هؤلاء الموظفون، ولا أعني فقط من كان منهم في القضاء والإعلام، بل في كل إدارات الدولة المختلفة حتى أبسط عامل نظافة!

ولو كانت هناك حالة سخط حاليا بين الموظفين بسبب سوء أحوال المعيشة، فسيتم التركيز (بدعم خليجي) على تحسين أوضاعهم وزيادة رواتبهم، حتى يتم إخراجهم من دائرة الثورة، ويرجعوا إلى الاتكاء على الكنبة، وتحسس كروشهم مطالبين بالاستقرار للاستمتاع بمكاسبهم الوقتية المزيفة، ومحرضين الجيش على قمع الثوار وفرض هيبة الدولة!

لهذا عليكم التركيز في معركة الوعي مع هؤلاء، لأن نزعهم من يد العسكر أشد وطأة من نزع سلاح العسكر!.. لو دان الموظفون للثورة، فسيدير الدولة حاكم مدني يتبعه كل جهاز الدولة.. أما الحالمون الذين يتفاوضون مع العسكر لتسليمهم إدارة الدولة فواضح أنهم لم يتعلموا من تجارب الربيع العربي شيئا، فحتى لو جاء رئيس مدني، فلن تكون له أي سلطة ما دام الجيش يسيطر على القضاء والإعلام والبنك المركزي والمطارات والموانئ والسفارات والعلاقات الخارجية..إلخ.. يسيطر عليها بسبب ولاء موظفيها للقوة القادرة على فرض القانون داخليا، وتسيير العلاقات الخارجية.. ما لم يتحول هذا الولاء للثورة وللحاكم المدني المنتخب أيا كان، واحترام الدستور والقانون كمبدأ وليس كقوة مهينمة فقط، فلا قيمة للمظاهرات ولا حتى لتسلم الإدارة الشكلية، فالمظاهرات يقمعها السلاح في الوقت المناسب، والإدارة تسترد بمجرد قرار عسكري ما لم تتمرد عليه مؤسسات الدولة وتعلن جميعا ولاءها للشعب ومن انتخبه!
هذا أهم دروس الربيع العربي فتعلموه مبكرا.

وبالمناسبة: لا تثقوا بأي جهة تتحدث باسم الثورة، فقد تكون عميلة للعسكر ولكن تؤدي دورا مسرحيا بارعا.. مثلا: المطالبة بمد الفترة الانتقالية إلى أربع سنوات ووضع دستور جديد وكوتة 40% للمرأة هي مطالب مفخخة ستقسم القوى السياسية ما بين مؤيد ومعارض، وسيركب العسكر الجميع بينما يقوم بتهدئة مطالب الموظفين تدريجيا لإخراجهم من المعادلة.. كوتة المرأة طبقتها كل النظم العميلة في المنطقة العربية، فاذكروا لي اسم دولة عربية واحدة محترمة ومستقرة ولا أقول متقدمة!.. هل نزل الشعب السوداني للشوارع لتطبيق تغييرات اجتماعية، أم لإزاحة نظام مستبد ومعالجة مشاكل الاقتصاد؟.. الزج بمطالب اجتماعية فخ مدمر، سيستقطب جزءا من النساء المتحررات، وسيثير غضب معظم الرجال إضافة إلى النساء المحافظات، وحتى إن مر بهدوء، فإن تعيين 40% من النساء بلا خبرة معناه مهازل وفضائح وقصور في الأداء سيستغله إعلام العسكر لتشويه المجلس النيابي والأحزاب السياسية، إلى أن يخرج قرار حله من الدرج!!

كل هذه المهازل حدثت من قبل فلا تقعوا فيها.. وأي شخص أو جهة تطرح مثل هذه الأفكار لا تثقوا بها، فلا فارق في خدمة أهداف الثورة المضادة بين عميل أو غبي!

ركزوا في معركة الوعي مع حزب الكنبة وموظفي الدولة، حتى تسقط سلطة العسكر عمليا على الأرض، ويدين جهاز الدولة بالولاء للثورة والثوار ومن ينتخبونه حاكما، حتى لا تفشل التجربة بسبب موظف يقطع الكهرباء أو يبيع البنزين في السوق السوداء أو عامل نظافة يلقي القمامة في الشوارع بدلا من تنظيفها، لمجرد أنهم تلقوا أوامر من العسكر بخلق أزمات في الوقود والكهرباء والنظافة لعرقلة عمل الرئيس المدني المنتخب!

وفقكم الله.


السبت، 20 أبريل 2019

منع الظهور التلقائي لنافذة المخرجات



إذا كنت مثلي ممن يستفزهم ظهور نافذة المخرجات Output Window تلقائيا كلما قمت بتشغيل المشروع في فيجوال ستديو دوت نت ويعاني كل مرة لإغلاقها، فيمكنك تعطيل هذا الفعل بضغط Options من القائمة الرئيسية Tools، واختيار العنصر Projects and Solutions من الجانب الأيسر من النافذة، وإزالة علامة الاختيار من:
Show output window when build starts!
وستنتهي معاناتك بضغط الزر OK.

 


الاثنين، 15 أبريل 2019

صفحات ZML في مشروع عملي



صفحات ZML في مشروع عملي 

هذا مشروع تعليمي مفيد كتبته ميكروسوفت بلغة سي شارب C# كمثال عملي على استخدام ASP.NET MVC Core 2.2، وهو يتكون من ثلاثة مشاريع فرعية، اثنان منها مجرد مكتبة كود تنتج ملفين من النوع dll لاستخدامهما في أداء وظيفة المشروع الثالث (المسمى web) وهو مشروع ASP.NET المسئول عن إنشاء موقع الويب.. ستجد في الموقع رابطا لتنزيل كتاب pdf بالإنجليزية يتكون من 79 صفحة يشرح المشروع!
 

وقد قررت أن أستخدم هذا المشروع لتجربة صفحات ZML الجديدة الخاصة بي، فحولت المشروع Web إلى كود فيجوال بيزيك واسميته eShopOnWeb.zml، وتركت المشروعين الآخرين بسي شارب لأني لا أملك وقتا لتحويلهما حاليا، ولا مشكلة في هذا، فمن الممكن أن تحتوي مجموعة المشاريع Solution على مشاريع فرعية بلغات مختلفة، فملفات dll الناتجة عن مشاريع سي شارب تصلح للعمل في مشاريع فيجوال بيزيك بشكل طبيعي.. هذه هي نسختي من المشروع.
 
ملحوظة:
يمكن استخدام صفحات zml في مشاريع سي شارب بنفس الطريقة التي سأشرحها هنا.. فكما قلت: هذه الصفحات لا تعتمد على لغة برمجة معينة. 

بعد هذا، كان عليّ أن أحول تصميم الصفحات من كود cshtml إلى كود zml.. هذه مهمة ستحتاج وقتا، لهذا لم أحول حتى الآن سوى أربع صفحات، ثلاث منها موجودة في المجلد Pages وهي:
1- Index.zml
2- Privacy.zml
3- Error.zml
والرابعة موجودة في المجلد:
Pages\Shared\Components\BasketComponent
وهي:
4- Default.zml
لكي تفتح هذه الصفحات في فيجوال ستديو، حددها في متصفح المشاريع، واضغط زر الفأرة الأيمن، ومن القائمة الموضعية اضغط OpenWith.. في النافذة التي ستظهر حدد HTML Editor واضغط الزر "Set as default" ثم اضغط OK.

لو نظرت إلى الصفحة Index.zml فلن تجد فيها أي كود فيجوال بيزك أو كود سي شارب، بل تحتوي فقط على تيجان HTML وبعض تيجان XML الجديدة التي تمثل عناصر Razor.
وستجد أن جملة الشرط مكتوبة باستخدام التاج if وحلقة الدوران مكتوبة بالتاج foreach وكل ما يفعله Vazor هو ترجمة صفحات zml إلى صفحات cshtml في بداية تشغيل البرنامج، لهذا لو فتحت الصفحة Index.cshtml فستجد فيها تعليقا يخبرك أن هذه الصفحة منتجة آليا وينصحك بألا تعدل أي شيء فيها.

 
ولكي تتم ترجمة الصفحات، كل ما عليك فعله هو إضافة السطر التالي في الوسيلة Startup.Configure في الملف Startup.vb:
Vazor.ZmlPages.Compile( )
حيث تقوم الوسيلة Compile بالبحث في كل مجلدات المشروع عن الملفات من النوع zml وتترجمها إلى ملفات cshtml.. وإن كانت ملفات chtml موجودة من قبل، يتم فحص تاريخ آخر تحديث لها، فإن كان أقدم من آخر تحديث للملف.zml الأصلي فهذا معناه أنك أجريت تعديلات فيه، ومن ثم تعاد ترجمته لتحديث صفحة cshtml.
بعد هذا ليس مطلوبا منك أي شيء.. باقي الكود يسير على نفس قواعد مشاريع Razor العادية، فهي تتعامل بشكل طبيعي مع ملفات cshtml التي أنتجناها لها.. كل ما عليك هو كتابة الكود في صفحات zml وستعمل بشكل سحري!
ويمكنك التعرف على أهم التيجان الخاصة بكود zml من هنا، مع ملاحظة أنك تستطيع استخدام @ بنفس القواعد المعمول بها في Razor.
ما زلت أطور هذه التقنية، لهذا لن أنشئ قالبا لمشاريع zml حاليا.. ويمكن لمبرمج سي شارب إنشاء مشروع MVC او Razor Pages بشكل عادي، ثم إضافة ملف جديد (وليكن من النوع txt) ثم تغيير امتداده إلى .zml واختيار Open With بالطريقة التي وضحتها.
أما مبرمج فيجوال بيزيك، فيمكنه إنشاء مشروع جديد باستخدام أحد قوالب Vazor التي أنشأتها من قبل، لكن عليه أن يحذف الجزء الخاص بتشغيل محرك الملفات الافتراضية.. احذف هذا الكود من نهاية كود الوسيلة ConfigureServices في الملف Startup.vb:

services.Configure(Of RazorViewEngineOptions)(

                 Sub(options) options.FileProviders.Add(New Vazor.VazorViewProvider( ))

           )

ثم احذف ملفا vbxm.vb و vazor.vb من المشروع وكذلك الكود الذي يسجل الصفحات في الخريطة (ستصل إليه بمجرد محاولة تشغيل البرنامج، لأنه سيسبب خطأ بعد حذف ملفات vazor).
أخيرا، أضف ملفا نصيا جديدا وغير امتداده إلى zml واكتب فيه كود تصميم الصفحة.
سأوفر بإذن الله قوالب zml لكن بعد أن إكمال مترجم zml واختباره جيدا.

 


صفحة الشاعر