منذ أن بدأت الدوت نيت وطرحت كبرامج فى الاسواق وانا معجب بما تقدمه من سهولة للمبرمجين وخصوصا المبرمجين اللذين لا يودوون قضاء وقت طويل فى كتابة أكواد تكون متشابهة فى جميع البرمجيات فقامت دوت نت بعمل ذلك .
ولكن بعملى المتواصل مع هذه البرمجية تراءى لى أن هناك الكثير الكثير من الثغرات الخطيرة جدا جدا بالعمل على هذه البرمجية لأنها قد تقلب يومك رأسا على عقب عندما تقوم بعمل ما وتجد ان الدوت نت قد يوجد بها خطأ برمجى وتراسل هذه الشركة المبرمجة"مايكروزفت" ويقولون لك " نعم نعلم بهذه المشكلة ولم نجد لها حلا "
حسنا هذا ما حصل معنا فى عدة فترات معينة وبفترات متفاوتة . وسأسرد ما هى الاخطاء القاتلة التى وقعت بها مايكروسوفت "وهى صدقونى ما لا تريدوا ان تعرفوه طبعا" .
أول هذه المشاكل الخطيرة ,,,,,
البرنامج به ثغرة فى ال if-else statement حيث أنه فى كثير من الاحيان وهى ما تعرف ب compiler bug حيث ان الاوامر لا تتخطى البلوك else بل تقفز الى داخل هذه الاوامر . وهى للمبرمجين قنبله قد تفجر كل ما تقوم به.
اقرأ هنا
http://groups.google.com/groups?hl=e...p13%26rnum%3D1
ثانيا :
خذوا هذه المفاجأة :::
.NET Runtime يقوم بتسريب كبير للذاكرة , أوليس هم من ادعى بقلة استخدام الذاكرة والجواب اللذى تقدر ان تجاوب به مايكروسوفت عن هذه المعضلة والتى لم يجدوا لها حجة هى انه هذه المعضله أو الثغرة لتعارض بين الدوت نت وال fragmentation والتى لا اعرف معناها بالعربى
.... وهاكم المثال
وما اصعب ان تقوم بعمل برنامج معين وتشغل البرنامج وتأتيك هذه الرسالة
Fatal out of memory error.
نعم عزيزى القارىء تعود على هذه الجملة وانت تعمل مع الدوت نت .
فكمبيوترى مثلا
Windows 2K server SP2
512MB RAM
1,404,180 KB Virtual Memory
Dual Processor
وعندما تقوم بعمل برنامج يأخذ داتا ليست صغيرة وليست كبيرة بنفس الوقت فيقوم السيد دوت نت بالتوقف ويصدر لك الجملة الشهيرة ...
مثال
int[] largeArray = new int[1000000];
for (int i=0;i<=100;i++){
int[] saveArray = largeArray;
largeArray = new int[largeArray.Length + 100000];
saveArray = null;
المصفوفة كبداية يجب أن تتحمل ال 4 ميجا تمام ..ويجب ان ينتهى استيعاب الذاكرة عند 40 ميجا (كل البرنامج غير كامل بأعلى الجملة) ولكن السيد دوت نت يعطي الجملة الشهيرة Fatal out of memory error. عند الميجا 33 أى ان هناك مشكلة بمعنى الكلمة . أين تذهب الذاكرة ؟ عملا بأنك لو قمت بعمل نفس الشىء مع VB 6 باستخدام مصفوفات شبيهة مثل SafeArrays فان هذه المشكلة لن تظهر .
عجبا , اذا هناك مشكلة .
يجب ذكر الثغرة التى قلبت طاقية شركة سيمنز على شركة مايكروسوفت وامتنعت عن استخدام الدوت نت فى أجهزة sematic5 , sematicPLC وهى أوامر الدوتنت
FileStream تصبح غير قابلة للأستعمال وتخرج من قالب الدوت نت اذا ما قمت نسخ البرامج على ديسكات مرنة . حتى انك لا تستطيع النظر أو حتى تنفيذ اوامر الدوت نت الشهيرة لها مثل FLUSH OR DISPOSE
وتعترف مايكروسوفت بهذه الثغرة الخطيرة وتقول
Confirmed was a bug by Gang Peng of MS:
"This is a known bug and will be fixed in Whidbey."
(Ref: microsoft.beta.dotnet.framework)
وهنا يعترفوا ويقولوا انها ثغرة وسيقوموا بحلها فقريبا ... وهذا وجه الضيف .
أخوانى الاعزاء
قد لا يروق لبعض الاخوان وألاخوات ولكن صدقونى . كمستوى تكنلوجى قوى فأن الدوت نت قد أظهرت فشلا ذريعا ليس لأنها تقنية سيئة ...بالعكس فهى رائعة حقا ولكن لسبب بسيط جدا ...انها استعجلت بالنزول الى الاسواق ونسيت ان هناك من يتربص لها وسيقوم بتفنيد كل شىء.
ولننتظر الى شهر ابريل القادم ولنرى ما بجعبتهم من النسخة الجديدة للدوت نت على حسب وعودهم . الا ذلك الحين انا بعيد كل البعد عن استخدامها .
وهناك أيضا 18 (ثمانية عشرة) ثغرة خطيرة جدا جدا وسأقوم بسردها لكم واحدة تلو الاخرى فى ردود اخرى .