سؤال

عند تطوير تطبيق سطح المكتب في .NET، هل من الممكن عدم الحاجة إلى .NET Framework؟هل يعد تطوير البرامج في .NET طريقة مفضلة لتطوير تطبيقات سطح المكتب؟ما هي لغة البرمجة الأكثر استخداما التي تستخدمها شركات البرمجيات لتطوير تطبيقات سطح المكتب؟

هل تم افتراض متطلبات .NET Framework بناءً على نظام التشغيل Windows الذي قمت بتثبيته، ولهذا السبب قاموا بإدراج متطلبات إصدار نظام التشغيل Windows؟

هل كانت مفيدة؟

المحلول

لا يزال بإمكانك تطوير تطبيقات لسطح مكتب Windows باستخدام C/C++، مما يلغي الحاجة إلى إطار عمل .NET، ولكن ستحتاج إلى التأكد من أن المكتبات الضرورية موجودة بالفعل على النظام أو مثبتة.

والشيء الجميل في إطار عمل .NET هو أن Windows XP SP2 وVista يحتويان على وقت تشغيل إطار العمل 3.0 المثبت افتراضيًا.

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

أما بالنسبة لكلمة "مفضل"، فإن ذلك يميل دائمًا إلى إثارة الريش في بعض الأحيان، ولكن هناك المزيد والمزيد من مطوري .NET المطلوبين للويب وسطح المكتب في مواقع البحث عن الوظائف التي أميل إلى زيارتها.8 ^ د

يحرر:شكرًا جزيلاً لأوريون على الإشارة إلى حيرتي بشأن الأطر.يمكنك الحصول على 3.0 بوصة خارج البوابة إذا كنت تستخدم نظام التشغيل XP SP2 أو Vista.سيتطلب كل شيء آخر تنزيلًا بسيطًا أو تشغيل Windows Update.

نصائح أخرى

لا يمكنك تشغيل تطبيق .Net بدون إطار عمل .Net.يعتني إطار العمل ببعض المهام الخلفية الأكثر مملة، لذا لا يمكنك تشغيل التطبيق بدون إطار العمل.

على نظام التشغيل Windows، يعد استخدام .NET هو الطريقة المفضلة لتطوير تطبيقات سطح المكتب.يعد نموذج WinForms الخاص بـ .NET إحدى الطرق لتطوير تطبيقات العميل التقليدية أو الكثيفة، مع كون Windows Presentation Foundation لـ .NET هو أحدث اتجاه تكنولوجي من MS.

أعتقد أن ما أحاول قوله هو أنه عندما أنظر إلى متطلبات النظام لبرامج معينة، نادرًا ما أرى أن .NET Framework هو أحد المتطلبات.لذلك، أتساءل دائمًا كيف يمكنهم تدبر الأمر دون أن يكون ذلك متطلبًا (إذا قاموا بتطوير البرنامج في .NET).لذا، أفترض أن معظم البرامج التجارية ليست مكتوبة بلغة .NET، ولهذا السبب أطرح هذا السؤال.نأمل أن أوضح بعض الأشياء.

كثرة الوحيدات لديه إصدار Windows، إذا كان عليك تجنب الاعتماد على .NET.

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

أفضل ممارسة لتوزيع تطبيقات .NET هي أن المثبت يتم تشغيله بطريقة ما مع مثبت .NET Redistributable لإطار العمل المطلوب، بحيث إذا لم يتم تثبيت إطار العمل المطلوب بعد (على سبيل المثال، تحتاج إلى 3.5 في نظام التشغيل Windows XP)، فسيقوم المثبت بذلك فقط ضعه فيه.

يعد .NET Runtime صغيرًا بما يكفي لعملية التثبيت (يبلغ حجمه حوالي 24 ميجابايت لـ .NET 2.0، ولم يتم التحقق من حجم .NET 3.5).

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

ليس لدي أي أرقام، ولكنني سأخمن أنه نظرًا لأن غالبية الأشخاص يستخدمون XP وVista على أجهزة الكمبيوتر المكتبية الخاصة بهم، فإن إدراج إطار عمل .NET أمر مثير للجدل، خاصة إذا كانوا يستهدفون إطار عمل 2.0 في التطبيق نفسه.في الماضي، كم عدد التطبيقات التي رأيتها والتي تقول "يتطلب vbrun50.dll" أو شيء من هذا القبيل حيث تم وضعها في عمليات تثبيت Windows افتراضيًا؟

بالإضافة إلى أنه أقل "مخيفًا" بالنسبة لأولئك الذين لا يتمتعون بخبرة كبيرة في استخدام الكمبيوتر.كل ما يريدون فعله هو تنزيل التطبيق وتثبيته وتشغيله.يتطلب بعض التطبيقات الموجودة لدي إطار العمل 2.0 وقد سألني بعض الأشخاص ما هذا وكيف يمكنني الحصول عليه وهل يكلفني ذلك شيئًا؟الإجابة النموذجية التي أقدمها لهم هي "إذا كنت تستخدم نظام التشغيل XP أو Vista، فلا يوجد ما يدعو للقلق" ويبدو أنهم يحبون ذلك.

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

إنه الثمن الذي يتعين علينا أن ندفعه مقابل الحصول على تجربة مطور غنية كهذه!الأمر يستحق ذلك عندما تفكر في صعوبة العودة إلى برمجة MFC!

يقدم Remotesoft رابطًا - 1250 دولارًا لترخيص مطور واحد: http://www.remotesoft.com/linker/index.html

إذا كان تطبيقك سيعمل على Mono (ويعد دعم سطح المكتب Winform الخاص بـ Mono جيدًا جدًا الآن)، فيمكنك حزم تطبيقك كحزمة Mono، وهي حزمة واحدة قابلة للتنفيذ.هناك خياران - يتضمن الخيار الافتراضي وقت التشغيل ولكنه لا يرتبط به بشكل ثابت، بينما يربطك الآخر بشكل ثابت بوقت التشغيل Mono.السبب وراء عدم رغبتك في الارتباط الثابت هو أنه سيضع تطبيقك ضمن LGPL؛الحزم غير المرتبطة بشكل ثابت (لا تزال مجرد ملف exe واحد) لا تحتوي على هذا المطلب.http://www.mono-project.com/Mono:Runtime#Bundles

قد تفكر في استخدام "انقر مرة واحدة للنشر", ، مما يجعل من السهل جدًا إضافة أدوات التثبيت القابلة لإعادة التوزيع .Net 2.0 و3.0 و/أو 3.5 إلى تطبيقك.ما عليك سوى النقر فوق مربع الاختيار في خصائص مشروعك وسيقوم برنامج التثبيت الخاص بك تلقائيًا باكتشاف ما إذا كان قد تم تثبيت إطار العمل المسبق أم لا وسيقوم بتثبيته إذا لم يكن الأمر كذلك.

إنها ليست مناسبة لكل موقف، ولكن إذا كان بإمكانك الاستفادة منها، فيمكن أن تكون رائعة جدًا.

لقد قمت ببعض البرمجة في .NET (باستخدام C#) وأدركت أنه في كثير من الأحيان كنت أرغب في المزيد من التحكم في عدد من عناصر التحكم.تتطلب هذه المعرفة التي امتدت إلى ما هو أبعد من إطار عمل .NET.

على سبيل المثال، عندما كنت أعمل مع عنصر تحكم WebBrowser لإنتاج أداة اختبار تلقائية لتطبيقات الويب، أدركت أن هناك مواقف معينة تتطلب معالجات الأحداث من عنصر تحكم وتوثيق axWebBrowser ActiveX ذي المستوى الأدنى، وكانت عينات التعليمات البرمجية نادرة/دمجت الكثير من مفاهيم COM Interop.لذا ربما يكون الحصول على بعض المعرفة حول COM مفيدًا؟

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

تتطلب العديد من التطبيقات التي تم تطويرها باستخدام C++/MFC لأجهزة سطح المكتب التي تعمل بنظام Windows إصدارًا محددًا من ملفات DLL الخاصة بوقت تشغيل MFC على الرغم من أنه قد لا يتم إدراجها بشكل صريح كمتطلب.أعتقد أن الأمر نفسه أصبح صحيحًا مع التطبيقات التي تتطلب .NET.

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

لا أعتقد أنه من الدقة افتراض أن معظم البرامج التجارية لا تستخدم .NET لمجرد أنها غير مدرجة كأحد المتطلبات.لا أعتقد أنه يمكنك افتراض أي شيء من ذلك بدقة.

والشيء الجميل في إطار عمل .NET هو أن نظام التشغيل Windows XP يحتوي على مكتبة وقت تشغيل إطار العمل 2.0 المثبتة افتراضيًا

منذ متى؟لقد اضطررت إلى إخبار الكثير من مستخدمي Windows XP بتثبيته.نعم، يمكنك سحبه من خلال تحديث Windows، لكنني واثق تمامًا من أنه تثبيت اختياري وليس شيئًا يحدث تلقائيًا.

وفيستا 3.5 مثبتة

لا، لقد تم تثبيت 3.0.يمكنك الحصول على WPF، ولكن أنت لا احصل على لينك

نعم، يمكنك إنشاء تطبيق مدمج في dot NET دون استخدام إطار العمل.يمكنك استخدام برنامج مثل ESS dotNET FuZe لدمج أي ملف dll، بما في ذلك ملف dll الخاص بإطار العمل في التطبيق.لا يحتاج ملف EXE الناتج إلى إطار عمل بعد الآن.

الرجاء الدخول على هذا الرابط: http://essaver.net/fuze.html لإلقاء نظرة على FuZe.

من الممكن عدم الحاجة إلى .NET Framework؛هناك بعض الشركات التي تبيع حلولاً (بآلاف الدولارات) تتيح لك القيام بذلك.ومع ذلك، فهذه عمليات اختراق كاملة ولا تدعمها Microsoft.

تعتمد كيفية تطوير تطبيقات سطح المكتب (أي استخدام .NET أم لا) على متطلباتك.لا توجد طريقة مفضلة.

اللغة الأكثر استخدامًا هي على الأرجح C#.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top