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

الصفحات

الثلاثاء، 24 سبتمبر 2019

سنظل أوفياء


أنا أهواكِ إخلاصا = كجمهورِ الزمالكْ

أذوق هزائما تتري = وأبقى في حبالِكْ

محمد حمدي غانم

 

NET Core 3.0


الإصدار الثالث من نواة دوت نت .NET Core 3.0:

يمكنكم الآن تحديث VS .NET 2019 إلى الإصدار 16.3 فهو يتضمن:

.NET Core 3.0

C# 8.0

ASP .NET Core 3.0

Entity Framework .Core 3.0

ويمكنك نقل مشاريع WPF إلى دوت نت كور، لكن ميكروسوفت لا تنصح بنقل مشاريع Win Forms الآن لأن مصمم النموذج ما زال تجريبيا، وسيكتمل في تحديثات لاحقة.

لم تصدر VB .NET 16 ولا Blazor حتى الآن، وننتظر صدورهما مع .NET Core 3.1 في شهر نوفمبر القادم بإذن الله.

سأبدأ العمل في كتاب ASP .NET Core 3.0 بإذن الله، ولكني لا أضمن أن أكمله قريبا بسبب الأحداث الساخنة على الساحة في مصر.. هناك دائما أشياء عجيبة تحدث تمنعني من إنهاء هذا الكتاب.. دعواتكم.

تونس تقع في فخ مصر


تونس تقع في فخ مصر

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

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

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

وقبل ان يقول لي احد هذه هي قواعد الديمقراطية، اجيب: القاعدة الوحيدة في الديمقراطية هي الاقرار باختيار الاغلبية والخضوع لها، وليس تقديس اختيارات مستوردة من شعوب أخرى.

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

الخميس، 12 سبتمبر 2019

تسالي


يا ريتني ألف لبة = تكليها حبة حبة

 عشان أدوق شفايفك = وتدوقي م المحبة

 يا ريتني فول سوداني = عشان فِ ايديك اعاني

 ولما تقشريني = أبوح لك بالمعاني

محمد حمدي غانم

21/7/2019

 

عرض سخي جدا!


منذ أسبوعين كنت أجلس على شاطئ البحر، وأردت أن ألعب الشطرنج على هاتفي المحمول، وكما ذكرت سابقا، لا أعتمد على وجود باقة على هاتفي لأنني قليل الاتصالات ومعظم مصالحي وتواصلي الاجتماعي أقوم به عبر الإنترنت الأرضي.. لهذا طلبت *365# لأخذ أحد عروض فودافون، فوجدت عرضا غريبا يقدم لي 150 دقيقة و 50 ميجا لمدة أسبوعين (وأطول مدة رأيتها للعروض كانت أسبوعا فقط)، فأخذته لأني لم أعجب بباقي العروض رغم أن 50 ميجا قليلة جدا، لكن تطبيق الشطرنج لا يستهلك شيئا يذكر.. ولسبب لا أذكره قررت تحديث تطبيق أنا فودافون، ويبدو أنه أعطاني 400 ميجا هدية أضيفت إلى هدايا سابقة، لأنني بعد أن انتهيت من لعب الشطرنج وعرضت المتبقي من العرض، وجدت معي 150 دقيقة و 1200 ميجا :D

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

وهذا عدت راضيا عن هذا العرض السخي الممتع، لكن الأمر لم يتوقف عن هذا، ففي اليوم التالي جاءتني رسالة تخبرني أن عروض الصيف قد عادت من جديد، وأنني أستطيع استعادة كل ما استهلكته بالأمس هدية مجانية لنهاية اليوم، فقط بالاتصال ب *18# !.. وهكذا ظللت كل يوم أجري بعض الاتصالات وأستهلك الإنترنت، وفي اليوم التالي أستعيد ما استهلكته مجانا :D

هذا أغرب عرض استخدمته في حياتي، حتى إن فودافون أرسلت لي رسالة بعد 10 أيام تقول إنني وفرت 28 جنيها باستخدام هذا العرض من 365 ، وأظن أنني وفرت أكثر، لأنني ب 2 جنيه فقط كان متاحا لي 300 دقيقة و 2400 ميجا لمدة أسبوعين، بينما باقة فليكس 90 تعطيك 4400 فليكس في شهر أي نظريا 2200 فليكس في أسبوعين!

لكنني في الحقيقة تبقى معي حوالي 120 دقيقة لم أستخدمها (وهذا يعني أنني تكلمت حوالي 60 دقيقة طوال الأسبوعين، 30 دقيقة من العرض، و 30 دقيقة هدية مستعادة).

يبدو أن فودافون قررت أن تعوضني عن بعض خطاياها السابقة معي.. هذه المرة أنا راض عنكم يا فودافون.. وأرجو ألا تصححوا الخطأ البرمجي السعيد الذي أغدق علي هذا الكرم غير المعتاد :D

وأرجو أن أجد عرضا مشابها في المرة القادمة التي أحتاجه فيها :)

 

 

الاثنين، 9 سبتمبر 2019

لأني أحبك


لأني أحبك 

تَقولينَ لي "لا".. وأدري "نَعمْ" = تَشِي المقلتانِ بما صانَ فَمْ
تَصيحانِ في لهفةٍ: "يا حبيبي" = ولستُ عن المقلتينِ أَصَمّْ 

تَزيدينَ حسنًا لأني أحبُّكْ =  ويَرقصُ من شدّةِ الشوقِ قلبُكْ
 فأجملُ ما فيكِ أبياتُ شِعري =  وأجملُ ما فيَّ يا أنتِ حبُّكْ 

 وليتَكِ في ليلتي حاضرةْ =  لِتُحلِي المواقيتَ يا سُكّرةْ
 وأَقرِضُ في سحرِ عينيكِ شِعرًا =  ونِقرضُ في البحرِ كوزَ ذُرةْ 

محمد حمدي غانم
21/7/2019

 

لماذا ستستمر نماذج الويندوز


س: لماذا تنقل ميكروسوفت نماذج الويندوز إلى دوت نت كور ولم تتخلص منها رغم وجود بدائل لها مثل WPF؟ 

ج: هذه هي الأسباب من وجهة نظري:
1. تقنية win frorms هي الأسهل للمبتدئين بينما wpf أصعب وتحتاج لوقت طويل لتعلمها وهذا ثمن عادل مقابل ما تمنحه من إمكانيات هائلة في تصميم النوافذ.

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

3. هناك أخطاء استراتيجية قاتلة وقعت فيها ميكروسوفت عند تعاملها مع wpf، بسبب لهاثها وراء سوق الأجهزة المحمولة، فقد أوقفت ميكروسوفت تطوير wpf وsilver light وغيرت قلب الويندوز كله في إصدار ويندوز 8 ليعتمد على مكتبات WinFx بدلا من API لتستطيع استخدام نسخة منه في أجهزة ويندوز فون، وشجعت المبرمجين على كتابة مشاريع wim app store لتعمل على سطح المكتب والأجهزة المحمولة لكن بنظام ويندوز 8 فقط، بدلا من wpf الذي يعمل على كل إصدارات الويندوز لكن على سطح المكتب فقط.. وطبعا فشلت أجهزة ويندوز 8 فون وفشل نظام ويندوز 8 نفسه فتم استبدالهما بنظام ويندوز 10 ومشاريع UWP.. وهذا يعني أن المبرمج يحتاج لاستخدام ثلاث تقنيات برمجية مختلفة (ومتشابهة) للبرمجة لنظم ويندوز 7 و 8 و 10!.. هذا بدون ذكر Xamarin لبرمجة تطبيقات الأندرويد و IOS و Xamarin.Forms لبرمجة تطبيقات تعمل على لينوكس وأنظمة التشغيل الأخرى!!.. كل هذه المتاهة دفعت كثيرا من المبرمجين لمطالبة ميكروسوفت بإنشاء تقنية موحدة لتصميم الواجهات على دوت نت كور تعمل على كل الأجهزة وأنظمة التشغيل.. حتى إنني طالبتهم باستخدام XAML بدلا من Html مع تقنية Blazor لتوحيد التصميم حتى على الويب.

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

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

والله أعلم.

آخر أخبار دوت نت:


آخر أخبار دوت نت:

سيتم إطلاق .NET Core 3 يوم 23 سبتمبر القادم بإذن الله، ومعه ASP.NET Core3 و Balzor و EF.Core 3 وسي شارب 8، وربما فيجوال بيزيك 16 أو قد تتعطل قليلا لأن محاولة نقل مكتبة الدوال الخاصة بفيجوال بيزيك إلى دوت نت كور واجهت بعض المشاكل لأن بعضها تعتمد على Win Forms التي يتم نقلها بدورها إلى دوت نت كور.

يمكن القول إن الصدور الحقيقي لفيجوال ستديو 2019 سيكون في هذا التاريخ بإصدار VS.NET 19.3، ولم يكن هناك أي داع للاستعجال في إطلاق فيجوال ستديو 2019 منذ 6 شهور بينما كل المكونات الرئيسية ناقصة!

هذا التأخر هو أحد أسباب تعطلي عن الكتابة عن ASP.NET Core.. خطة الكتاب والمشروع الذي سأشرحه عبره مكتملة بالنسبة لي، لكني لم أفضل كتابته على الإصدارات التجريبية ل ASP.NET Core 3 لأنه كان عرضة للتغييرات عبر 9 نسخ تجريبية متوالية.

إن شاء الله سأنهي الكتاب بسرعة قبل نهاية هذا العام، وسأركز فيه على تقنية ASP.NET Razor Pages لأن ميكروسوفت اكتشفت بعد سنوات من التجربة العملية أن تقنية MVC مليئة بالعيوب في التطبيقات الضخمة، وأن تقنية MVVM التقليدية التي طالما اعتمدتها في Win Forms و WPF و Web Forms هي الأكثر عملية، لهذا صارت Razor Pages هي التقنية المفصلة لدى ميكروسوفت في آخر عامين.. وسأحاول أيضا أن أركز على Blazor أو أعطي نبذة عنه مع تخصيص كتاب مستقل له بإذن الله.

بخصوص مشروع Vazor الخاص بي، فقد نجحت في إثبات المفهوم، واستخدمت Vazor و ZML في تصميم صفحات أحد مشاريع ميكروسوفت، وقد تم ذكر Vazor في أحد فديوهات ASP.NET Community Standup.

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

لكن Vazor ألقى حجرا ضخما في مياه فيجوال بيزيك الراكدة، وألهم أنتوني جرين أحد مطوري اللغة بكثير من الأفكار الواعدة، بناء على فكرة Top Level Code التي تسمح بكتابة كود فيجوال بيزيك مباشرة بدون الحاجة إلى تعريف فئة وداخلها دالة، حيث يتم تعريفهما ضمنيا لك، وهذا يسمح بكتابة كود Vazor مباشرة في ملف مستقل، كما أنه عمل على إضافة أدوات تشبه WPF لتقوم هي إنتاج HTML و CSS، كما جرب (في المنشورات اللاحقة) ترجمة كود فيجوال بيزيك إلى جافا سكربت، وكل هذا يعد بأن تصميم المواقع بفيجوال بيزيك سيكون أسهل كثيرا مما هو عليه الآن!

ملحوظة:

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

ما أنا مهتم به حقا هو ZML وأظن أنه التصميم الأفضل لأنه قابل للاستخدام في C# و VB.NET و F#، بينما Vazor خاص بفيجوال بيزيك فقط، وأرجو أن أنجح في لفت أنظار مطوري ASP.NET  إليه!