यहां मैं जो हासिल करना चाहता हूं, मैं एएसपी.नेट एमवीसी के एरिया को शुद्ध एकल डीएलएल के रूप में अलग करना चाहता हूं।प्लगइन डीएलएल के रूप में एएसपी.नेट एमवीसी क्षेत्र कैसे बनाएं?
- Blog.DLL
- Forums.DLL
- FAQ.DLL
उनमें से प्रत्येक हैं अपनी ही डिफ़ॉल्ट CSHTML या ASPX पृष्ठों के साथ अलग-अलग ASP.NET MVC क्षेत्र,। संसाधनों, जावास्क्रिप्ट आदि जैसे कई पृष्ठों को स्थापित करना, माइग्रेट करना और बनाए रखना लंबे समय तक वास्तविक दर्द है। चूंकि इनमें से अधिकतर शायद ही कभी बदल जाएंगे।
मेरी अंतिम वेबसाइट इस तरह होगी।
\MvcApplication
\bin
\MvcApplication.bin
\Blog.dll
\Forums.dll
\Controllers
\..
\Models
\..
\Views
\..
\Global.asax
\Web.config
किसी भी बात के लिए, बस Blog.dll छोड़ने जोड़ने के बिना, अपने आवेदन/ब्लॉग और उसके सभी पृष्ठों का समर्थन करना चाहिए। मैं कुछ अनुकूलित करने के लिए, की तुलना में मैं क्षेत्र में जोड़ सकते हैं, और केवल cshtml पृष्ठों को जोड़ने .. चाहते हैं
\MvcApplication
\bin
\MvcApplication.bin
\Blog.dll
\Forums.dll
\Areas
\Blog
\Views
\Shared
\BlogLayout.cshtml <-- this will override the look
\Controllers
\..
\Models
\..
\Views
\..
\Global.asax
\Web.config
यह ASP.NET क्षेत्र प्लगइन्स पुन: उपयोग के लिए, बस बिन फ़ोल्डर में dll छोड़ने के द्वारा में मदद मिलेगी। हालांकि web.config को कुछ बदलावों की आवश्यकता हो सकती है, लेकिन अधिकतर हम डेटाबेस में कॉन्फ़िगरेशन मानों को सहेज लेंगे और केवल आवश्यक चीज web.config में "इकाई फ्रेमवर्क कनेक्शन स्ट्रिंग" होगी।
मेरे चुनौतियों (प्रश्न)
- क्या यह संभव है? यह निश्चित रूप से मुझे देखता है, लेकिन क्या कोई प्रतिबिंब/अनुमति समस्या होगी?
- मैं एक डीएलएल के भीतर cshtml/aspx विचारों को कैसे शामिल करूं? शायद संकलित संस्करण? मैंने कोडप्लेक्स पर कुछ टेक्स्ट टेम्पलेट आधारित व्यू इंजन देखा है, लेकिन मैं वास्तव में उनका उपयोग करने के तरीके पर थोड़ा उलझन में हूं।
- और मैं पहली बार यह देखने के लिए व्यूइंजिन कैसे प्राप्त करूं कि भौतिक निर्देशिका फ़ाइल मौजूद है या नहीं और फिर dll के भीतर cshtml/aspx को संसाधन फ़ाइल के रूप में देखें?
एएसपीएक्स फ़ाइल के बारे में क्या? अधिकांशतः हम केवल cshtml का उपयोग करते हैं, लेकिन पीडीएफ प्रिंट करने के लिए, cshtml अज्ञात HTML टैग के साथ काम नहीं करता है, इसलिए हम कभी-कभी एएसपीएक्स का उपयोग करते हैं। –
मुझे एएसपीएक्स के बारे में पता नहीं है। यह लंबे समय से रहा है क्योंकि मैंने इसका इस्तेमाल बंद कर दिया है। शायद आभासी पथ प्रदाता अनुकूलित किया जा सकता है। –
आप एंबेडेड रीसोर्सवर्टुअलपाथप्रोवाइडर का उपयोग कर सकते हैं जिसे सीधे नॉगेट से स्थापित किया जा सकता है। यह संपत्ति फ़ाइलों के साथ काम करता है। https://github.com/mcintyre321/EmbeddedResourceVirtualPathProvider#readme – mcintyre321