الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

مناقشة حول أمرين مهمين

مغلق
بدأه فيصل الردادي في 27 مارس 2006 · 10 رد · 1,166 مشاهدة · في قسم تكنولوجيا Microsoft .NET العام
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله وبركاته

هناك نقطتين وددت ان اذكرها بخصوص Frameworks والتي اعتقد انها مهمة مقارنة بالجافا:

1- نلاحظ انه عندما تقوم بعمل برنامج ياستخدام framework 2 ؛ ثم تقوم بنقله الى جهاز اخر يحتوي على framework1 ؛ يطلب منك تحميل framework2 حتى ولو كنت لم تستخدم اي امكانيات جديدة داخل framework2 مثل ال Generics .

2- وهو الادهى والأمر؛ عندما يكون جهازك يحتوي على framework2 فانه لايقوم بتشغيل البرامج التي تعمل على framework1 ؛؛ مالهدف من هذا الشئ؟ لماذا لم تقوم مايكروسوفت بدعم ال framework1 داخل framework2 ؟؟ أم ان على المستخدم تحميل framework1 و framework2 و framework3 ووووو.

اخيرا؛ المشكلتين السابقتين محلولة تماما في JVM ؛ وكما قال احد الموظفين في Sun : يمكنك تشغيل البرنامج الذي يعمل على JVM 1.0 على JVM 1000 .

كما انك تستطيع تشغيل اي برنامج معمول على JVM 5.0 على JVM 1.0 ولكن بشرط ان لاتستخدم اي امكانيات غير تلك التي في JVM 1.0.

اظن ان هاتين المشكلتين تحتاج الى النقاش؛ وماهي العقبات التي جعلت مايروسوف لاتدعم هاتين الخاصيتين؟؟

اسف سوف اقطعك من كتابة الكود، ادخل هنا لدقيقتين فقط

http://www.shbab1.com/2minutes.htm

#2

من أين تأتي بهذا الكلام

الDot Net Framework يعتبر 100% Backword Compatible يعني أي برنامج تمت كتابته و ترجمته على DotNet 1.x سيعمل بدون اي مشاكل على DotNet X.XX و هذا شئ أكيد و لا جدال في هذا

و من المنطقي أن العكس مستحيل أي أنه لا يمكن لبرنامج مكتوب على DotNet 2.0 أن يعمل على DotNet 1.x حتى و لو لم تستخدم أي شئ جديد و هذا لأنك شئت ام أبيت استخدمت MSIL 2.0 لمجرد أنك ترجمت البرنامج على DotNet 2.0

Sr. Software Development Engineer
Hulu, LLC
My Blogs

#3

تجربتى العملية تؤكد على كلام محمد حسام

Technical Lead Developer

My LinkedIn Profile

اللهم قنى شر الجهل و الجهلاء

( اقْتَرَبَ لِلنَّاسِ حِسَابُهُمْ وَهُمْ فِي غَفْلَةٍ مَّعْرِضُونَ ) {الأنبياء:1}

#4
اقتباس
و من المنطقي أن العكس مستحيل أي أنه لا يمكن لبرنامج مكتوب على DotNet 2.0 أن يعمل على DotNet 1.x حتى و لو لم تستخدم أي شئ جديد و هذا لأنك شئت ام أبيت استخدمت MSIL 2.0 لمجرد أنك ترجمت البرنامج على DotNet 2.0

وهذا ما أقوله انا؛؛ بالجافا( --شئت ام اأبيت--) تعمل برنامج ب java 5 وتأخذ ال class وتشغله على java1.0 ؛؛

فيمكن توضح لماذا مايكروسوفت لم تدعم ذلك؟؟

اسف سوف اقطعك من كتابة الكود، ادخل هنا لدقيقتين فقط

http://www.shbab1.com/2minutes.htm

#5

هل يتحدث الاجداد لغة الاحفاد لا اعتقد و لكنه من الممكن ان يتحدث الاحفاد لغة الاجداد

Technical Lead Developer

My LinkedIn Profile

اللهم قنى شر الجهل و الجهلاء

( اقْتَرَبَ لِلنَّاسِ حِسَابُهُمْ وَهُمْ فِي غَفْلَةٍ مَّعْرِضُونَ ) {الأنبياء:1}

#6

يا أخي لو استخدمت class عادية جداً مكتوبة على C# 2.0 أو حتى C# 100.0 ووضعتها في C# 1.0 فستعمل بلا مشاكل و لن تحتاج حتى لعمل Conversion لأن أساس اللغة لا يتغير و لكن ما يتم هو اضافة امكانيات جديدة مثل ال Generics أو الAnonymous Types أو Nullable Types و غيرها و هي أشياء حديثة تعمل فقط بداية من النسخة التي ظهرت فيها لأول مرة ....

و كمان نقطة بس

هل تعتقد أن Java 5 هي Java 5.0 أي أنها النسخة الخامسة من الJava ؟؟؟ :lol:

Java 5 هي Java 1.5 و كذلك كانت Java 2 و Java 4 فلم تخرج الJava حتى الان من عباءة Version 1.x برغم مرور أكثر من عشر سنوات من صدورها أما ال#C فنحن نتحدث الان عن الامكانيات التي ستكون في C# 3.0 و التي ستصدر على VS 2007 بالرغم من مرور أقل من 5 سنوات فقط على ظهرها لأول مرة

Sr. Software Development Engineer
Hulu, LLC
My Blogs

#7

نعم جافا هي java 1.5 وذلك لان هناك java 1.2 و java 1.3 وجافا 1.4 و جافا 1.5 ؛؛

لكن اتدري مالمشكلة: المشكلة في اللغة التي تشطح- الى 2 وهي لم تضيف الا الامكانيات القليلة.

يعني الجافا كان بامكانها تصير الان 300 ولكن بميزان مايكروسوفت.

بالرغم اني محايد؛ لكن انا استغرب من اللي يعيب على الجافا انها لم تخرج من نطاق ال 1 ؛

هذا اعتبره قصور في النظر مع احترامي لك يا اخي فوالله اني لا اقصد الاساءة.

اسف سوف اقطعك من كتابة الكود، ادخل هنا لدقيقتين فقط

http://www.shbab1.com/2minutes.htm

#8

ملاحظة انا اقصد بال class ال byte code وليس ال source code.

يعني في الجافا تضع ال byte code المترجم في java 1.5 (علشان ماتزعل) وتضعه في جافا 1.2 ويعمل معاك بدون اي مشاكل.

اسف سوف اقطعك من كتابة الكود، ادخل هنا لدقيقتين فقط

http://www.shbab1.com/2minutes.htm

#9

احلى حاجة في الموضوع جملة لا أقصد الاساءة

على العموم هذا النوع من المقارنات ليس له أي فائدة سوى الجدال و يمكنك أن تبحث عن ما تريد من الجدال السابق في المنتدى و في النهاية اذا كنت تريد أن تستخدم DotNet استخدمه أو تريد أن تستخدم Java استخدمها... تريد أن تستخدمهما سوياً أيضاً تفضل

Sr. Software Development Engineer
Hulu, LLC
My Blogs

#10

بسم الله الرحمن الرحيم

اولا بالنسبه لرقم الاصدار ده شى عادى جدا

المهم المميزات الجديده يعنى مثلا لما يظهرc#2.0المهم المميزات الى فيها يعنى مثلا مش لازم لما يظهر java2.0 تكون لغه خارقه عشان اتغير رقم الاصدار من 1 الى 2

المهم انها تقدم شى جديد وده الى حصل فى C#2.0 وهيحصل فى C#3.0 كمان

#11
bashmohandes كتب:
و من المنطقي أن العكس مستحيل أي أنه لا يمكن لبرنامج مكتوب على DotNet 2.0 أن يعمل على DotNet 1.x حتى و لو لم تستخدم أي شئ جديد و هذا لأنك شئت ام أبيت استخدمت MSIL 2.0 لمجرد أنك ترجمت البرنامج على DotNet 2.0

السلام عليكم

There's an element in the application's configuration file called <SupportedRuntime>. the CLR examines this element.If one or more of the supported runtime versions specified in the <supportedRuntime> element are present, the runtime loads the runtime version specified by the first <supportedRuntime> element. This means that an application built on .NET framework 2.0 can run on .NET framework 1.1 if it didn't use any of the features of.NET framework 2.0>

هذا الموضوع مغلق.

مواضيع مشابهة