क्या प्रत्येक सी # प्रोग्राम के लिए कोई ऐपडोमेन है भले ही हम विशेष रूप से ऐपडोमेन नहीं बनाते? इसकी आवश्यकता क्यों है? मैंने पूरे आवेदन को दुर्घटनाग्रस्त करने के बारे में तीसरे पक्ष के असेंबली के बारे में पढ़ा है यदि हम उन्हें अलग-अलग ऐपडोमेन में लोड नहीं करते हैं। मुझे वह बिंदु ठीक से नहीं मिला। क्या कोई इसे भी समझा सकता है।क्या प्रत्येक सी # प्रोग्राम के लिए कोई ऐपडोमेन है?
उत्तर
AppDomain
एक प्रक्रिया की तरह बहुत अधिक है, यह एक बुनियादी ढांचा है जिसमें आपका एप्लिकेशन चलता है। एक .NET असेंबली को AppDomain
में चलाने के लिए लोड करने की आवश्यकता है। तीसरे पक्ष के असेंबली को अलग-अलग AppDomains
में लोड करने की आवश्यकता नहीं है, लेकिन यदि आप ऐसा करते हैं, तो यह उनके बीच अलगाव प्रदान करता है (दो अलग प्रक्रियाओं की तरह) और एक में खराब होने से दूसरे को प्रभावित नहीं होगा। एप्लिकेशन डोमेन स्वतंत्र रूप से अनलोड किया जा सकता है।
उदाहरण के तौर पर, SQL सर्वर AppDomain
एस का उपयोग सीएलआर असेंबली को अपनी प्रक्रिया में सुरक्षित रूप से लोड करने के लिए करता है।
प्रत्येक एप्लिकेशन में कम से कम एक एप्लिकेशन डोमेन है, हां।
मुझे नहीं पता कि तृतीय पक्ष असेंबली के बारे में क्या नोट है।
प्रत्येक कार्यक्रम के लिए कम से कम एक ऐपडोमेन है जिसे आप जितना चाहें उतना बना सकते हैं लेकिन आपको शायद ही कभी एक से अधिक की आवश्यकता होगी।
मूल रूप से एक कंटेनर जहां एक विशेष ट्रस्ट के साथ चल रहा कोड चल रहा है।
एक डिफ़ॉल्ट ऐप डोमेन है जहां आपका एप्लिकेशन लोड हो जाता है (प्रत्येक उदाहरण अपना स्वयं का हो जाता है)।
क्रैश चीज का अर्थ है कि एक तृतीय पक्ष असेंबली (यानी एक प्लगइन) क्रैश होने पर आपके पूरे एप्लिकेशन को क्रैश कर देगा यदि आप इसे एक अलग ऐप डोमेन में लोड नहीं करते हैं। इसलिए प्लगइन को एक अलग ऐप डोमेन में लोड करना अच्छा अभ्यास है, क्योंकि ऐप डोमेन में एक क्रैश केवल उस ऐप डोमेन को क्रैश करेगा, न कि अन्य डोमेन। CLR Add-In blog के बारे में कुछ पोस्ट हैं।
ध्यान देने योग्य एक महत्वपूर्ण बात यह है कि एक ऐप डोमेन को एक ही प्रक्रिया में या उसी सिस्टम पर होने की आवश्यकता नहीं है, इसलिए आपको इसे मूल रूप से रीमोट करने के लिए आवश्यकता है।
मैं दुर्घटना के कारण 3 पार्टी विधानसभाओं के बारे में पढ़ा है कि अगर हम AppDomain
का उपयोग नहीं करते हैं मुझे लगता है कि आप अलग एप्लिकेशन डोमेन के लिए में अन्य विधानसभाओं लोड हो रहा है के बारे में बात कर रहे हैं। इस तरह उन्हें आपके कोड को प्रभावित करने वाले क्रैश को रोकने के लिए आपके पता स्थान से अलग किया जा सकता है। लागत यह है कि एक अलग ऐप डोमेन में एक असेंबली के साथ संवाद करना अधिक कठिन होता है और इसमें एक पेफ पेनल्टी होती है क्योंकि ऐप डोमेन सीमा में सभी कॉलों को मार्शल किया जाना चाहिए।
यह एक काफी अग्रिम विषय है, मैं Richter (अन्य पुस्तकें उपलब्ध नहीं हैं) में पढ़ने की अनुशंसा करता हूं।
- 1. ऐपडोमेन
- 2. सी ++ डीएलएल ऐपडोमेन
- 3. क्या डेल्फी को डिकंपाइल करने के लिए कोई प्रोग्राम है?
- 4. असेंबली को सी ++ में बदलने के लिए कोई प्रोग्राम है?
- 5. क्या जावा के लिए LINQPad जैसे कोई प्रोग्राम है?
- 6. ऐपडोमेन
- 7. क्या प्रत्येक अनुरोध के लिए कोई नया नियंत्रक उदाहरण है?
- 8. क्या सी # के लिए कोई libtorrent है?
- 9. क्या सी के लिए कोई दुभाषिया है?
- 10. क्या सी # के लिए कोई make_tuple है?
- 11. सी ++ प्रोग्राम को चलाने के लिए क्या आवश्यक है?
- 12. वर्तमान ऐपडोमेन
- 13. एक नए ऐपडोमेन
- 14. क्या कोई सी ++ डिकंपेलर है?
- 15. क्या प्रत्येक उद्देश्य सी प्रोग्राम सी कोड में परिवर्तित हो जाता है?
- 16. क्या कोई उपलब्ध प्रोसेसिंग प्रोग्राम प्रोफाइलर है?
- 17. कोई प्रोग्राम के साथ सी प्रोग्राम में जेवीएम एम्बेड करने के लिए अनुशंसित तरीका?
- 18. क्या सी ++ के लिए कोई टीएक्स एपीआई है?
- 19. .NET 2.0 एसडीके प्रोग्राम - प्रत्येक उपकरण क्या करता है?
- 20. क्या एसबीसीएल के रन-प्रोग्राम के बराबर कोई योजना है?
- 21. कोई प्रो * सी/सी ++ प्रोग्राम कैसे डिस्सेबल करता है?
- 22. इंटर-ऐपडोमेन संचार समस्या
- 23. सी प्रोग्राम के लिए प्रोग्राम निर्भरता ग्राफ कैसे उत्पन्न करें?
- 24. अलग-अलग ऐपडोमेन
- 25. क्या गुवा टेबल के लिए प्रत्येक निर्माण के लिए उपयोग करने का कोई तरीका है?
- 26. क्या विंडोज़ में सी ++ के लिए एक सरल प्रोग्राम फ़ाइलें/प्रोग्राम फ़ाइलें (x86) निर्देश है?
- 27. क्या सी प्रोग्राम प्रोग्राम C++ अपवादों को संभाल सकता है?
- 28. क्या सी/सी ++ में "int main" के अनुरूप एंड्रॉइड में कोई फ़ंक्शन है जिसमें प्रोग्राम का मुख्य लूप शामिल है?
- 29. सी # प्रोग्राम ठीक है,
- 30. कोई प्रोग्राम व्यवस्थापक विशेषाधिकारों के लिए कैसे पूछता है?