15

माइक्रोसॉफ्ट कोणीय ASP.NET कोर में (नहीं AngularJS) के विकास के रूप में अपने लेख "Building Single Page Applications on ASP.NET Core with JavaScriptServices" में उल्लिखित के लिए एक शानदार टेम्पलेट प्रदान करता है।ASP.NET कोर कोणीय टेम्पलेट: app.module.client बनाम app.module.server

हालांकि यह बहुत सीधा है, वहाँ टेम्पलेट है कि मुझे गार्ड बंद पकड़ा में से एक भाग है: वहाँ सिर्फ एक app.module.ts फ़ाइल होने के बजाय, वहाँ दोनों एक app.module.client.ts और एक app.module.server.ts हैं।

screenshot of <code>app.module.client.ts</code> and <code>app.module.server.ts</code>

मैं कुछ भी है कि वेब पर इस बताते हैं खोजने में असफल रहा। क्या किसी के पास कोई विचार है कि ऐप मॉड्यूल के लिए इन दो अलग-अलग फाइलें क्यों हैं, उनके विशिष्ट उपयोग क्या हैं, उनका उपयोग कैसे करें, आदि?

यह बिल्कुल में मदद करता है, तो यहां पूर्ण टेम्पलेट दिखता है की तरह है:

full ASP.NET Core Angular template

मैं नोट करना चाहिए कि ClientApp/app/models और ClientApp/app/services दो फ़ोल्डर्स मैं अपने खुद के प्रयोजनों के लिए जोड़ा जाता है; वे टेम्पलेट का हिस्सा नहीं हैं। इसके अलावा, app.module.shared.ts वास्तव में बहुत सीधी-आगे है और केवल दो कोड लिखने से रोकता है, इसलिए इसके बारे में चिंता न करें।

यहाँ है क्या दो फ़ाइलों की तरह लग रहे:

<code>app.module.client.ts</code> and <code>app.module.server.ts</code> code side-by-side

उत्तर

4

मुझे prefacing है कि मैं 100% इस बयान की सटीकता पर नहीं कर रहा हूँ से शुरू है, लेकिन और कोई नहीं जवाब है लगता है के बाद से दो, मैं इसे एक शॉट दूंगा।

कोणीय एसपीए कोणीय 2 के साथ एओटी प्रतिपादन करने के लिए कोणीय सार्वभौमिक का उपयोग किया। इसे अब कोणीय 4 का उपयोग करने के लिए अपग्रेड किया गया है, जो कोणीय सार्वभौमिक का उपयोग नहीं करता है। मेरा विचार यह है कि एओटी प्रतिपादन में मदद के लिए यह क्लाइंट और सर्वर फ़ाइल में app.module.ts को तोड़ दिया।

app.module.shared.ts फ़ाइल वास्तव में केवल एक वैश्विक स्थिर है जिसका उपयोग app.module.client.ts और app.module.server.ts द्वारा किया जाता है। चूंकि यह सब प्रकाशन के दौरान कुछ जेएस फाइलों में प्रस्तुत किया जाता है, यह वास्तव में कोई फर्क नहीं पड़ता कि वे app.module फ़ाइल को विभाजित करते हैं।

+2

आह, ठीक है। उपयोग के बारे में क्या? जब आप उदाहरण के लिए एक घटक घोषित करते हैं, तो क्या यह क्लाइंट, सर्वर या साझा में जाना चाहिए? प्रदाताओं के बारे में क्या? आयात? अंगूठे का एक अच्छा नियम सिर्फ सब कुछ साझा करने के लिए होगा? क्या कोई ऐसा मामला है जिसमें किसी को विशेष रूप से एक फ़ाइल में कुछ डालना चाहिए, न कि दूसरे में? – NetherGranite

+1

मुझे पता चला है कि यदि मैं घटकों द्वारा उपयोग की जाने वाली किसी सेवा के संदर्भ को जोड़ने का प्रयास करता हूं, तो उन्हें app.module.server और app.module.client दोनों में प्रदाताओं में ऐसे संदर्भ जोड़ना होगा। मैं https://channel9.msdn.com/Events/Visual-Studio/Visual-Studio-2017-Launch/WEB-103 (नीचे मेरी टिप्पणी देखें) का पालन करने का प्रयास कर रहा था और इसमें नमूना सेवाओं के संदर्भ जोड़ना पड़ा उपरोक्त फाइलें – danfer

+1

मैं जो कर रहा हूं वह app.module.shared.ts पर सेवाओं के आयात पर सेट करना है और उन्हें app.module.server और app.module.client पर साझा किए गए प्रदाता में जोड़ना है, बस ShareConfig.providers पर संदर्भ जोड़ें सर्वर और क्लाइंट फ़ाइलों में से प्रत्येक के @NgModule के प्रदाता अनुभाग। इस तरह, अगर नई सेवा जोड़ने की ज़रूरत है तो फाइलों में से प्रत्येक में साझा नहीं किया जाना चाहिए। 2 अलग-अलग सेवाओं के साथ परीक्षण किया और ठीक काम किया – danfer