بالنسبة لدولتي فإن أكثر المواقع الألكترونية الخاصة بالوزارات تستخدم ASP.NET اكثر من PHP ....
الان أتسأل ما السبب ؟ وهل كل الحكومات تتبع نفس النهج ؟؟
الحكومات في الغالب تتعامل برسمية، ASP.NET تابعة لمايكرسوفت وهذه الشركة لها اسمها الكبير ولها عدة شهادات تثبت خبرة الشخص المتعامل مع تقنياتها، هذا غير انظمتها الكثيرة، بمعنى انت عندما تتعامل مع مايكرسوفت فانت تستطيع ان تبني منظومة متكاملة ومتوافقة مع بعضها وليس مجرد موقع اما PHP لغة حرة تابعة لشركة Zend بشكل نسبي ولو قارنت Zend بمايكرسوفت فأكيد مايكرسوفت ستتطغى، هنا لا اتحدث عن الافضلية وليس عن الجودة الحكومات تنظر للهيكلة والموثوقية اكثر من التقنية.
السبب أيضاً هو عدم الثقة في النفس، هم لا يثقون في قدراتهم لذلك يميلون إلى شراء المُكلف. الشركات في كل اﻷحوال لا تكون أكبر من مواقع كبيرة في اﻹنترنت مثل ويكيبيديا التي تستخدم PHP ,MySQL لكن ويكيبيديا لدينا مبرمجين واثقون من أنفسهم وقدراتهم، لذلك هم لا يحتاجون لأسماء كبيرة كميكروسوفت أو أوراكل لزيادة الثقة.
في إحدى المرات قُمت بعمل برنامج به بيانات كثيرة لكن بسيطة وكان حجم قاعدة البيانات لايتجاوز الستين ميغابايت، واخترت قاعدة البيانات فيربيرد لسهولتها ومناسبتها للحل، لكن بعد أن عملوا سنتين بدون أي مشاكل اصروا على شراء نُسخة أوراكل ومخدمات صن المُكلفة. بعد فترة ظهرت لهم مشاكل في قاعدة البيانات أوراكل وكانوا مضطرين إلى أن يتم إصلاحها من خارج البلد. في النهاية العمل فشل لأسباب إدارة مباشرة بعد شراء المخدمات ونُسخة أوراكل التي لم يكن لها داعي أصلاً، كانت هُناك ميزانية موضوعة للمخدمات وتم صرفها لأجل الصرف.
اغلب اللجان العلمية في الجهات الحكومية لا تعرف الفروقات اذكر في مرة كانت هناك ندوة عن الحكومة الالكترونية من قبل الوزارة وقالوا "يجب" استخدام قواعد بيانات أوراكل وعندما سئلوا ولماذا لا يمكن استخدام MSSQL او MySQL كانت الاجابة "النظام هكذا"، الامر بالنسبة لهم بريستيج فقط.
"الحكومات تنظر للهيكلة والموثوقية اكثر من التقنية" موقع البيت الابيض تمت برمجته بالبي اتش بي، دروبال او ووردبرس لا اذكر
السلام عليكم ورحمة الله
أظن ان السبب يتمحور حول منحيين، الأول أنه فيما مضى كان "الاعتقاد" السائد ان PHP تحتوي على ثغرات امنية تعتبر كثيرة مقارنة بالـ ASP.NET، لكن هذا ليس صحيحا ففي أي لغة يعتمد وجود الثغرات من عدمها على طريقة البرمجة، كل اللغات بها ثغرات XSS أو SQL Injection وكذلك CSFRG ما لم يتم البرمجة بصورة صحيحة، ولو اعتبرنا انا الأمر صحيح فلماذا ASP.NET بالذات وليست JSP او CFM او Python او Ruby؟
السبب الثاني برجوازي، ASP من شركة مايكروسوفت ولذلك تدعمها الحكومة الامريكية في امريكا، بريطانيا تتبعها وهكذا دواليك اصبح استعمال ASP.NET مع MSSQL نوع من الموضة - وفي بعض الاحيان يحددون قواعد بيانات أوراكل ايضا - مع انه لا يوجد فرق بينها وبين اي لغة اخرى من ناحية الأداء.
يضاف الى ذلك ان الدول لا يهمها فرق الكلفة في اسعار الاستضافة وفي Licenses.
ما توفره لينك هو استخدام المعاملات (parameters) بشكل افتراضي عند التعامل مع الـ SQL والتي عند استخدامها تقي من حقن قواعد البيانات ولكن اذا لم يتم استخدام طريقة المعاملات هذه عند البرمجة فإن قاعدة البيانات ستكون عرضة للإختراق عن طريق الحقن مع ملاحظة ان تقنية استخدام المعاملات ليست فقط في لينك، في الـ PHP هنالك (PDO (PHP Data Objects والتي ايضا تستخدم المعاملات لتغليف القيم المدخلة الى قاعدة البيانات وكذلك يمكن استخدام mysqli:prepare كبديل عن PDO.. واظن هناك شي مشابه في الروبي.
ومن هنا نرى مدى أهمية استخدام هذه التقنية (الاستعلامات المعلّمة) عند التعامل مع قاعدة البيانات لغرض الحماية من الحقن
معذرة لكل مطوري ASP.NET وPHP... مواقع الحكومات دومًا تكون متخلفة وضعيفة من ناحية تصميم وبنية الخادم (backend)، وكذلك من ناحية الواجهة (frontend)، واللغات المستخدمة لبناء هذه المواقع تحقق هذا التخلف بامتياز!
لن تجد مبرمجين جيدين يبنون مواقع لخدمات حكومية (إلا من رحم ربي)، وعندما تجد، فإنهم غالبًا يكونون مقيدين بقيود تفرضها طبيعة الاستضافة والبنية التحتية والكلفة المادية التي توفرها الجهة المسؤولة لهم، والنتيجة دومًا مواقع كمواقع التسعينيات وأداء بطيء ومنظر مؤذ للعين!
لو كان الأمر لي، لبنيت كل المواقع الحكومية التي تستخدم قواعد بيانات وخادمًا بـ Node.js وExpress وMongoDB، لكن أعرف أن هذه الأفكار تبدو مثالية جدًا!
"مواقع الحكومات دومًا تكون متخلفة وضعيفة من ناحية تصميم وبنية الخادم (backend)، وكذلك من ناحية الواجهة (frontend).. لن تجد مبرمجين جيدين يبنون مواقع لخدمات حكومية (إلا من رحم ربي)، وعندما تجد، فإنهم غالبًا يكونون مقيدين بقيود تفرضها طبيعة الاستضافة والبنية التحتية والكلفة المادية التي توفرها الجهة المسؤولة لهم، والنتيجة دومًا مواقع كمواقع التسعينيات وأداء بطيء ومنظر مؤذ للعين"
كلام سليم معظمهم لم يتزحزحوا منذ التسعينات.
نقطة القوة في Node.js قدرتها على التوسع بشكل ممتاز (scalability) واتباع نمط غير مُعيق في الدخل والخرج (Non-blocking I/O) الأمر الذي يجعلها قادرة على تلقي ملايين الطلبات نظريًا على الرغم من كونها أحادية الخيط (single-threaded) وهو الأمر الذي يُعفي الخادم من إنشاء عدة خيوط تستهلك حجمًا أكبر من الذاكرة. نقطة ضعف Node.js أنها لا تستطيع تحمل طلبات تتطلب عمليات حسابية كبيرة وتلبيتها في وقت معقول كاللغات الأخرى، لأن العمليات الحسابية تُعيق المعالج (CPU-blocking) وNode.js أحادية الخيط كما ذكرنا. باختصار عند الحاجة لخادم يتلقى طلبات كثيرة في وقت واحد، ولا تتطلب الكثير من العمليات الحسابية التي قد تعيق المعالج، فإن Node.js خيار ممتاز، خصوصًا إذا كانت قاعدة البيانات تتبع نفس الفلسفة (Non-blocking, asynchronous) وهو ما تلبيه MongoDB. أضف إلى ذلك أن التعامل مع لغة واحدة على كل من الخادم والواجهة يُسهل العمل ويتيح بتعديلات بسيطة نقل أجزاء من الخدمة من الخادم للواجهة والعكس، وكذلك تتعامل JavaScript مع نقل البيانات بشكل طبيعي بصيغة JSON دون الحاجة للتحويلات الزائدة كما في لغات أخرى. أما Express فهو ببساطة الخادم الأكثر شهرة على Node.js، وهو يتبنى فكرة الوسائط (middleware) التي تجعل تطوير الخادم في غاية السهولة.
يمكن بسبب موضوع المصدر المفتوح ورخصة المنتج وموضوع الحماية ايضا
فبإعتقادهم استخداهم لغة php فهي مفتوحة االمصدر و بسبب شعبيتها واستخدامها بنسبة كبيرة جدا حول العالم فكان هذا السبب فى دراسة اللغة ومعرفة ثغراتها
بهذا فضلت الحكومات استعمال لغة asp.net اعتقادهم بان هذه اللغة حمايتها قوية جدا باعتبارها مغلقة المصدر
والله اعلم
التعليقات