ما هو الفرق بين برنامج .NET وعنصر تحكم ActiveX المضمن في IE

StackOverflow https://stackoverflow.com/questions/811868

سؤال

لقد صادفت بعض المقالات على الويب حول تطبيقات .Net وكنت أتساءل كيف تختلف عن عنصر تحكم activex (الذي تم إنشاؤه باستخدام لغة .Net)؟(للتوضيح، هذا فيما يتعلق بالتطبيقات الصغيرة التي تعمل داخل متصفح الويب)

(هل الفرق:تسمى عناصر تحكم ActiveX المكتوبة بلغة .Net بتطبيقات .Net؟)

هل هناك أي مزايا في استخدام واحد على الآخر؟

أيضًا، ما الذي تشير إليه Microsoft بهذه التقنية؟(البحث على MSDN لا يظهر أي شيء يسمى .Net Applets!)

ملاحظة:من ما أستطيع أن أرى أن عناصر تحكم ActiveX تحتاج إلى أن تكون مسجلة في COM، في حين أن تطبيقات .Net ليست كذلك.أيضًا، في صفحة الويب، تتم الإشارة إلى عناصر تحكم ActiveX باستخدام CLSID الخاص بها، بينما يبدو أن تطبيقات .NET تتم الإشارة إليها بواسطة اسم كامل (المسار، واسم dll، ومساحة الاسم، والفئة)

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

المحلول

عناصر تحكم ActiveX هي ببساطة كائنات COM التي تقوم، على الأقل، بتطبيق IUnknown.بدأت الإصدارات الأخيرة من IE أيضًا في مطالبة الكائن بتنفيذ IObjectSafety.للقيام بأي شيء مفيد، يحتاج الكائن إلى تنفيذ بعض واجهات Ole الأخرى أيضًا، مثل IDispatch وIOleObject وما إلى ذلك.يجب أن يكون الكائن قابلاً للإنشاء عبر CoCreateInstance() مما يعني أنه يتعين عليك ذلك يسجل بطريقة ما مع التسجيل.ليس عليك استخدام دليل في العلامة، يمكنك أيضًا استخدام معرف التطبيق إذا قمت بتسجيل واحد.

يمكنك أيضًا كتابة بعض التعليمات البرمجية المُدارة وتشغيلها داخل IE أيضًا.الطريقة التي تعمل بها هي تسجيلات CLR أ مرشح MIME عندما يتم تثبيته.ثم عندما يرى IE أنك ترسل شيئًا من نوع mime المناسب، فإنه يقوم بتسليم الكود إلى CLR للتعامل معه.يقوم CLR بوضع الكود في وضع الحماية إلى الحد الذي يتم فيه منحه أذونات الإنترنت فقط، لذلك لا يمكنه فعل كل ما يكشفه إطار العمل.سيتعين عليك التحقق من الوثائق المحددة لمعرفة ما يمكن وما لا يمكن فعله في منطقة الأمان هذه.

بعض الصفقات:

سهولة التركيب:تتطلب عناصر تحكم ActiveX منك حزم كل شيء في ملف .CAB باستخدام ملف .INI الذي يصف متطلبات التثبيت بطريقة غامضة إلى حد ما.إذا كان عليك تثبيت تبعيات إضافية مع الوحدات النمطية الخاصة بك (مثل ATL/MFC dlls أو وحدات أخرى تابعة لجهات خارجية) فسيصبح الأمر صعبًا للغاية.باستخدام وحدة .net، ما عليك سوى إرسالها بنوع MIME الصحيح، ولكن عليك التأكد من أن المستخدمين لديهم الإصدار الصحيح من إطار العمل (والذي يمكنك التحقق منه عبر سلسلة وكيل المستخدم على موقع الويب الخاص بك).

حماية:عناصر تحكم ActiveX هي مجرد تعليمات برمجية أصلية تعمل على نظام المستخدمين، لذلك من الناحية النظرية يمكنهم فعل ما يريدون.من الناحية العملية، يحد LoRIE من ذلك في كثير من الحالات ويتعين عليك القيام بمجموعة من الحالات الخاصة لأشياء مثل الوصول إلى السجل ونظام الملفات (انظر الفهم والعمل في الوضع المحمي).

خيوط:نظرًا لأن عناصر تحكم ActiveX تعمل على مؤشر ترابط واجهة المستخدم للمتصفح، فيجب عليك التأكد من أنك لا تقوم بعمليات حظر طويلة على مؤشر الترابط هذا، لذلك يتعين عليك إجراء الترابط بنفسك.إذا كانت عملية الحظر الطويلة الخاصة بك تتعامل مع DOM، فيجب عليك تنظيم واجهات IHTMLxxx بنفسك، إما باستخدام الجهاز الهضمي أو تنظيم COM المهام.لست متأكدًا مما إذا كانت تطبيقات .net تعمل على مؤشر ترابط واجهة المستخدم للمتصفح أم لا، ولكن من الأسهل التعامل معها في C# أنا متأكد.

كائنات المتصفح:إذا كنت تريد استخدام كائنات IE / Shell في ملحقك المُدار، فيجب عليك كتابة التشغيل المتداخل بنفسك في معظم الأوقات نظرًا لأن Framework لا يقوم بعمل رائع في تغليف تلك الواجهات في كائنات مُدارة.يرى http://pinvoc.net للحصول على القليل من المساعدة للبدء.

التوافق:توجد مشكلات في استضافة إصدارات مختلفة من وقت التشغيل في نفس العملية.حتى وقت قريب لم يكن ذلك ممكنًا على الإطلاق، ولكن أعتقد أنه مع الإصدارات 3.x أصبح الأمر ممكنًا إلى حد ما.والنتيجة هي أنه إذا استهدفت .net 2.0 وقام شخص آخر بالفعل بتحميل .net 1.0 كجزء من ملحق المتصفح الخاص به، فستخسر.بشكل عام، لا يدعم IE وWindows Shell الامتدادات المُدارة.قد تكون عناصر مرشح MIME لتطبيق .net استثناءً ملحوظًا، ولكن انتبه إلى أنه قد تكون هناك مشكلات محتملة.

نصائح أخرى

و"تحكم ActiveX (تم إنشاؤه باستخدام لغة صافي)" و "الصغير. NET" على حد سواء عامية ل "تجميع .NET استضافت في IE".

في الواقع، والجمعيات. NET يمكن استضافتها في مجموعة متنوعة من التطبيقات. انظر:

إنشاء المضيفة لل. NET وقت تشغيل اللغة العامة

وعناصر تحكم ActiveX لم يكن لديك القيود الأمنية نفسها من تطبيقات .NET، التي يمكن أن تكون ميزة أو عيب اعتمادا على ما تريد القيام به. تطبيقات .NET هي بشكل عام أسهل لتطوير وActiveX إنشاء مع VB6 أو C ++.

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