2014-12-08 12 views
11

एएसपी.NET 4.5 के साथ मॉड्यूलर कार्यक्षमता रनटाइम पर एक असेंबली को गतिशील रूप से लोड करने के लिए Assembly.Load() या AppDomain.CurrentDomain.Load() का उपयोग करना संभव है। इसका उपयोग किसी भी वेब अनुप्रयोग को पुनर्निर्माण या ऐप को पुनरारंभ किए बिना मॉड्यूल के रूप में चल रहे वेब एप्लिकेशन में जोड़ने के लिए किया जा सकता है।ASP.NET vNext कोर CLR

मैं जानना चाहता हूं कि कोर फ्रेमवर्क को लक्षित करने वाले नए एएसपी.NET vNext (5.0?) के साथ यह कैसे किया जा सकता है। मुझे पता है कि यह पूर्ण ढांचे के साथ किया जा सकता है क्योंकि System.AppDomain एक ओवरलोडेड Assembly.Load() के साथ उपलब्ध है। जब मैं कोर फ्रेमवर्क को लक्षित करने के लिए बदलता हूं, तो मेरे पास System.AppDomain उपलब्ध नहीं है और Assembly.Load() सीमित हो जाता है।

क्या एएसपी.NET 5.0 कोर फ्रेमवर्क में इस गतिशील मॉड्यूलर कार्यक्षमता को पाने का कोई तरीका है?

+0

vNext के बावजूद, आप (MEF पर एक नज़र http://msdn.microsoft.com/en-us/library/ लेने के लिए चाहते हो सकता है dd460648% 28v = vs.110% 29.aspx)। – haim770

+0

धन्यवाद। मैंने पहले से ही एमईएफ माना है और यह कोर ढांचे में उपलब्ध नहीं प्रतीत होता है। न तो 'System.ComponentModel.Composition' या' System.Compostion' उपलब्ध प्रतीत होता है। – Tom

+0

मेरे पास अब एक ही कार्य है। क्या आपके पास ऐसा करने के लिए कोई विचार है? आप कैसे सोचते हैं, शायद हम एमईएफ जैसी सुविधाओं के बजाय गतिशील संकलन का उपयोग कर सकते हैं? –

उत्तर

3

मुझे यकीन नहीं है कि एक अच्छा जवाब क्या होगा, क्योंकि Asp.Net 5 इतना नया है, और इसमें बहुत सारे पूर्ण दस्तावेज नहीं हैं।

सैद्धांतिक रूप से संभव होना चाहिए, यह आपके द्वारा उपयोग किए जाने वाले कार्यों से अलग होगा।

स्रोत को देखते हुए एक इंटरफ़ेस IAssemblyLoadContext है जो आपको असेंबली प्राप्त करने की अनुमति देगा। IAssemblyLoader भी है।

इन्हें "क्रे" होस्ट द्वारा उपयोग किया जाता है, जो Asp.Net 5 का अंतर्निहित टुकड़ा है जो मूल रूप से आपके एप्लिकेशन को बढ़ावा देता है। इसलिए आपको अंतर्निहित मेजबान में अपना IAssemblyLoader जोड़ना होगा, ताकि वह कर सके।

दुर्भाग्य से मुझे अभी तक कोड में बहुत से एक्सटेंशन पॉइंट नहीं दिख रहे हैं। क्या हम उन विस्तार बिंदु प्राप्त करेंगे? मुझे नहीं पता। आप github पृष्ठ पर किसी समस्या को लॉग कर सकते हैं। यह भी संभव है कि एक विस्तार बिंदु है जिसे मैं वर्तमान में नहीं देख रहा हूं।

प्रश्न पर वापस आने के लिए, क्या आप इस तरह की विस्तारशीलता को Asp.Net 5 Core में जोड़ सकते हैं? हां, आप डिफॉल्ट होस्ट के समान अपना स्वयं का होस्ट बना सकते हैं, जिसमें उसके कस्टम लोडर को शामिल किया जाएगा, और उसके बाद अपना एप्लिकेशन शुरू करें।

+0

धन्यवाद डेविड, यह एक बहुत ही अलग दृष्टिकोण है!मेरे पास स्रोत में खुदाई होगी और देखें कि मुझे क्या मिल सकता है। – Tom

+0

मुझे लगता है कि पहले से ही [इस के लिए लॉग इन किया गया है] (https://github.com/aspnet/KRuntime/issues/500), तो मुझे लगता है कि यह अभी भी आना बाकी है – Tom

1

आप ExtCore ढांचे

यह मॉड्यूलर और बढ़ाई ASP.NET 5 बॉक्स से बाहर अनुप्रयोगों की अनुमति देता है की कोशिश कर सकते हैं।

कम

  1. में यह एक ही समय में DLLs से और nuget संकुल से दोनों मॉड्यूल का उपयोग करने की अनुमति देता है।
  2. यह सभी मॉड्यूल को एकल संदर्भ में भंडारण के साथ काम करने और अपने मॉडल और भंडार रखने के लिए अनुमति देता है।
  3. हर विस्तार नियंत्रकों, दृश्य हो सकते हैं, स्थिर सामग्री आदि