2016-06-27 10 views
5

के साथ डायनामिक कोड/असेंबली को अलग करने के लिए .NET 4.5 के साथ मैंने एक एक्स्टेंसिबल वेब एप्लिकेशन बनाया है। तृतीय पक्षों से रन-टाइम प्रमाणित कोड पर निष्पादन के साथ।बेस्ट प्रैक्टिस .NET CORE

इसके लिए, मैं ऐप डोमेन और इंटर-प्रोसेस संचार का उपयोग करता हूं।

अब मुझे लगता है कि मैं इस प्रौद्योगिकियों के लिए इस्तेमाल का एक बहुत किसी भी अधिक नेट कोर

तरह का समर्थन नहीं करते देखा:

  • AppDomains
  • दूरस्थ
  • BinarySerzializers

उनमें से ज्यादातर के लिए, स्पष्ट समाधान हैं। लेकिन ऐपडोमेन्स को हटा देना एक कठिन बात है।

यदि मैं इसे सही समझता हूं तो मुझे प्रक्रियाओं का उपयोग करना चाहिए। लेकिन अगर मेरे आवेदन में लगभग 100 एक्सटेंशन हैं (एकाधिक ग्राहक)? इसका मतलब यह होगा कि मुझे सूक्ष्मदर्शी में 100 प्रक्रियाओं (सूक्ष्मजीव) या कम से कम समूह बनाना होगा।

लेकिन मुझे किसी के साथ बहुत सहज महसूस नहीं होता है। एक तरफ, मैं सैकड़ों प्रक्रियाओं के साथ खत्म हो जाएगा। और यदि मैं समूह करता हूं तो भी मैं उनके बीच प्रभाव प्राप्त कर सकता हूं।

तो चुनने का सही तरीका क्या होगा?

उत्तर

2

ऐपडोमेन्स के स्थान पर AssemblyLoadContext का उपयोग करने का एक संभावित समाधान हो सकता है।

यह और AppDomains के लिए एक सीधा प्रतिस्थापन है कि आप देता है अलगाव के स्तर नहीं है, लेकिन यह आपकी आवश्यकताओं के लिए काफी अच्छा हो सकता है - यह आप AppDomain.LoadFile और AppDomain.ResolveEvent के बराबर उपयोग करने के लिए आप विधानसभा अलगाव लोड हो रहा है देने के लिए अनुमति देता है।

इस समय इस के आसपास किसी भी वास्तविक प्रलेखन नहीं है, लेकिन वहाँ सिर्फ इतना है कि यहां क्या कर के लिए एक मुद्दा है: https://github.com/dotnet/coreclr/issues/5463

+0

बदतर एक नज़र लेकिन जैसा कि आप ने कहा कि यह एक ही अलगाव स्तर नहीं है। मुझे आश्चर्य है कि क्या डॉटनेट कोर के लोग सिर्फ इन जरूरतों को अनदेखा करते हैं या यदि मैं somethign पर नजर रखता हूं ... –

+1

यह कुछ ऐसा हो सकता है जो पूर्ण ढांचे को 'नेटस्टैंडर्ड' में जोड़ा जाता है - वे स्पष्ट रूप से नहीं हैं 'AppDomain' का उल्लेख करें, लेकिन यदि आपके पास पहले से नहीं है, तो यह आलेख अस्पष्ट रोडमैप के रूप में देखने योग्य है: https://blogs.msdn.microsoft.com/dotnet/2016/05/27/making-it-easier-to -पोर्ट-टू-नेट-कोर/ – Sock

+0

मैं बस अंडरस्कोर करना चाहता हूं जो @ सॉक ने कहा: 'असेंबली लोडकेंटेक्स्ट' सही अलगाव प्रदान नहीं करता है। प्रतिबिंब के माध्यम से अन्य असेंबली में निजी राज्य को बदलने के लिए "पृथक" असेंबली के लिए मुश्किल नहीं है। ऐसा लगता है कि प्रक्रियाओं को अलग करना इसे रोकने के लिए एकमात्र निश्चित-अग्नि तरीका है। –

संबंधित मुद्दे