ASP.NET वेब एपीआई समाधान में कोणीय एप्लिकेशन को कहां रखा जाए?


16

मैं एक ग्रीनफ़ील्ड ऐप शुरू कर रहा हूं और मैं ASP.NET (4.6) और कोणीय 2. का उपयोग करना चाहता हूं। बैकएंड के लिए मैंने विजुअल स्टूडियो में एक प्रोजेक्ट बनाया है, और अब मैं सोच रहा हूं कि कोणीय ऐप कहां डालूं। मैं वास्तव में फ्रंट-एंड के लिए एनपीएम और नोड-टूल्स का उपयोग करना चाहता हूं, लेकिन अंत में इसे एंगुलर ऐप सर्विस उदाहरण में कोणीय ऐप domain.com/और इसके तहत domain.com/api/या इस तरह एपीआई के साथ होस्ट किया जाएगा ।

मुझे विज़ुअल स्टूडियो में ऐप्स को कैसे अलग करना चाहिए? क्या एंगुलर ऐप का अपना प्रोजेक्ट होना चाहिए? क्या मुझे एपीआई के समान प्रोजेक्ट में कोणीय ऐप होना चाहिए? यहां तक ​​कि अगर मैं इसके लिए nuget और अन्य VS-टूल का उपयोग नहीं करना चाहता हूं? (सामने के छोर के लिए, वीएस कमोबेश एक महिमा कोड संपादक होगा)। मुझे इस संयोजन के लिए कोई सर्वोत्तम अभ्यास नहीं मिला है।


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

मैं VS2015u2 पर हूं, लेकिन यहां तक ​​कि अच्छी टूलींग और सभी के साथ, मुझे अभी भी यकीन नहीं है कि अगर एसपीए और एपीआई को एक ही प्रोजेक्ट में रखा जाए तो यह "मेरी चिंताओं को अलग कर" है। क्या होगा अगर, भविष्य में, मुझे प्रोजेक्ट के साथ मेरी मदद करने के लिए कोई मिले, और उन्हें केवल फ्रंट-एंड पर काम करने की आवश्यकता हो। उन्हें पूरे स्कैमंगल को डाउनलोड करने की आवश्यकता नहीं होनी चाहिए, क्या उन्हें?
क्रिश्चियन Wattengård

जवाबों:


13

आपके पास दो विकल्प हैं।

अपने समाधान में अलग mywebsite.api और एक mywebsite.app प्रोजेक्ट बनाएं।

लाभ

  • चिंताओं का उचित पृथक्करण।
  • आप अपने एपीआई और अपने सामने के छोर को स्वतंत्र रूप से अपडेट तैनात कर सकते हैं।
  • साइटों की वास्तुकला को स्वतंत्र रूप से बदला जा सकता है (यानी आप वेबसाइट को प्रभावित किए बिना asp.net 5 पर चलने के लिए अपने एपीआई को अपडेट कर सकते हैं)
  • सफाई वाला

क्लाइंट ऐप और एपीआई दोनों के साथ एक ही प्रोजेक्ट बनाएं

लाभ

  • अद्यतन तैनात करने के लिए आसान है
  • कोर्स के साथ काम करने के लिए कॉन्फ़िगर करने की आवश्यकता नहीं है

स्थानीय रूप से एप्लिकेशन को होस्ट और विकसित कैसे करें।

विकास के लिए एक प्रभावी समाधान अपने वेब एप कोड को होस्ट करने के लिए अपने क्लाइंट (कोणीय 2) एप्लिकेशन और IIS / Casini को चलाने के लिए लाइट-सर्वर का उपयोग करना है। इसका उपयोग कैसे करें का एक अच्छा उदाहरण कोणीय 2 क्विकस्टार्ट ट्यूटोरियल (नीचे लिंक) में दिया गया है। मेरी विकास प्रक्रिया विजुअल स्टूडियो के माध्यम से एपीआई को चलाने और विज़ुअल स्टूडियो कोड और लाइट-सर्वर (एटम एक और अच्छा विकल्प है) का उपयोग करके क्लाइंट साइट कोडिंग के साथ काम करना है।

लाइट-सर्वर डॉक्स से। लाइटवेट डेवलपमेंट केवल नोड सर्वर जो एक वेब ऐप परोसता है, ब्राउज़र में इसे खोलता है, जब html या जावास्क्रिप्ट में बदलाव होता है, तो सॉकेट्स का उपयोग करके सीएसएस परिवर्तनों को इंजेक्ट करता है, और जब रूट नहीं मिलता है तो एक फॉलबैक पेज होता है।

https://code.visualstudio.com/

https://angular.io/docs/js/latest/quickstart.html

https://www.youtube.com/watch?v=e_FVeYWUF3s

https://github.com/johnpapa/lite-server

मेरे विचार

Nuget / NPM दोनों को एक ही समाधान में उपयोग करने में कोई समस्या नहीं है और यह आपकी परियोजना संरचना की पसंद को सूचित नहीं करना चाहिए।

मैं केवल अवधारणा अनुप्रयोगों के डेमो / सबूत के लिए एकल परियोजना दृष्टिकोण का उपयोग करता हूं। उत्पादन रिलीज के लिए, मैं हमेशा अपनी चिंताओं को ठीक से अलग करूंगा और एक समर्पित एपीआई परियोजना रखूंगा।


मैं वास्तव में इस समाधान के साथ वेब-पार्ट की मेजबानी कैसे हल कर सकता हूं? मैं वास्तव में उन्हें एक ही सर्वर पर समाप्त करना चाहता हूं, केवल वेबएप /और एपी पर /api। IIS पर मैं इसे आसानी से साइट के "बढ़ते" द्वारा आसानी से हल कर सकता हूं /api, लेकिन मुझे यकीन नहीं है कि वीएस / IISExpress के साथ इसे कैसे हल किया जाए।
क्रिश्चियन Wattengård

थोड़ा अलग सवाल। मैं इस जानकारी के साथ अपना जवाब भी अपडेट करूंगा।
काउंटजेरो

मेरे awer नवीनीकृत। अगर कुछ स्पष्ट नहीं है तो कृपया मुझे बताएं।
काउंटजेरो

यह वह उपाय है जिसके लिए मैं गया था। हालाँकि Iis Express एक सबफ़ोल्डर के तहत एक प्रोजेक्ट के साथ ठीक काम करता है और दूसरा रूट में। तो मैं उसके लिए चला गया।
क्रिश्चियन Wattengård

मैं IIS एक्सप्रेस का भी उपयोग करता हूं। क्लाइंट साइड डेवलपमेंट के लिए लाइट-सर्वर का उपयोग करने के लायक है क्योंकि क्लाइंट साइड कोड में किए गए किसी भी chnages स्वचालित रूप से अपडेट हो जाते हैं। इस विधि के साथ मिलकर में IIS का उपयोग कर सकते हैं।
काउंटजेरो

2

मुझे यह बीजक परियोजना https://github.com/damienbod/AngularWebpackVisualStudio/ मिली है, जो आपको एक ही Visual Studio (2017) प्रोजेक्ट में क्लाइंट और सर्वर को विकसित और होस्ट करने की अनुमति देती है।

मैं होस्ट करने के लिए दो साइटों के उपयोग के लाभों के बारे में @CountZero टिप्पणियों से सहमत हूं (esp। चिंताओं का पृथक्करण) लेकिन मेरे लिए बड़ा नुकसान आपके API में CORS समर्थन को सक्षम करने में हो रहा है जब ज्यादातर मामलों में आपके API का एकमात्र उपभोक्ता आपका है खुद के ग्राहक सामने अंत। मैं कोर पर कोई विशेषज्ञ नहीं हूं, लेकिन यह सिर्फ एक अनावश्यक ओवरहेड की तरह लगता है और अतिरिक्त सुरक्षा खतरों के साथ आता है।


तथास्तु। हमेशा दो प्रोजेक्ट करते हैं कार्गो खेती
स्टिंगजैक

0

ठीक है, जाहिर है कि आप उन्हें दो समाधानों में विभाजित कर सकते हैं, समाधान में एक और परियोजना जोड़ सकते हैं, या उन्हें एक ही परियोजना में रख सकते हैं। मैं बताऊंगा कि मैं क्या करूंगा।

IMHO, यदि आप IIS में सत्रों का लाभ उठाना चाहते हैं और / या एपीआई के भीतर प्रमाणीकरण प्रक्रिया को छुपाना चाहते हैं, तो Visual Studio में कोणीय भी लिखें। यदि आप वेब डेवलपमेंट एक्सटेंशन स्थापित करते हैं तो VS2015 को कोणीय के साथ एक बहुत अच्छा एकीकरण (इंटेलीसेन्स) है। मुझे कहना होगा कि यह तरीका अधिक कॉम्पैक्ट और पोर्टेबल होगा।

यदि आप बैकएंड प्रोजेक्ट पर प्रलेखन पृष्ठ जोड़ने जा रहे हैं, तो उन्हें अपने स्वयं के प्रोजेक्ट (समान समाधान) में अलग करें और उपडोमेन या सबफ़ोल्डर से एपी की सेवा करें।

यदि आप उपरोक्त में से किसी में भी रुचि नहीं रखते हैं और जिस तरह से आप इसके लिए उपयोग किए जाते हैं, उससे अधिक सहज महसूस करते हैं, तो इसके लिए जाएं। यदि आप एक टोकन-आधारित प्रमाणीकरण करने जा रहे हैं, तो आप बिना शक के परियोजनाओं को अलग कर सकते हैं।


0

वीएस 2015 में आपके पास अपने समाधान में एक से अधिक प्रोजेक्ट शुरू करने का विकल्प होता है, जब तक आप प्रत्येक के लिए अलग-अलग प्रोजेक्ट URL सेट करते हैं।

एक उदाहरण के रूप में आप अपने कोणीय ऐप प्रोजेक्ट को चलाने के लिए सेट करेंगे http://localhost:55000/और एपीआई प्रोजेक्ट को चलाने के लिए सेट किया जा सकता है http://localhost:55000/api। आप वेब टैब पर प्रोजेक्ट गुण संवाद में प्रोजेक्ट URL गुण सेट करते हैं।

फिर कॉमन प्रॉपर्टीज़ के तहत सॉल्यूशन प्रॉपर्टीज़ डायलॉग में कई स्टार्टअप प्रोजेक्ट सेट करने के लिए स्टार्टअप प्रोजेक्ट नोड चुनें। दाईं ओर आपको Single startup projectऔर विकल्प मिलेंगे Multiple startup projects। कई स्टार्टअप प्रोजेक्ट रेडियो बटन चुनें। फिर अपने कोणीय प्रोजेक्ट के आगे उपयुक्त एक्शन चुनें (शुरुआत डिबगिंग के बिना करें क्योंकि यह कोणीय है और आप संभवतः ब्राउज़र में डिबगिंग करेंगे), फिर अपने एपीआई प्रोजेक्ट के आगे स्टार्ट चुनें।

अब जब आप रन करेंगे तो आपका एंगुलर ऐप ब्राउज़र में खुल जाएगा और वेब एपीआई भी चलने लगेगा। आप अपने वेब एपीआई तरीकों में ब्रेक पॉइंट सेट कर सकते हैं और उन्हें एंगुलर ऐप से हिट कर सकते हैं।


मैंने इसे गोल करने की कोशिश की (यह मानते हुए कि पाठ की दीवार से बेहतर आकार होगा) लेकिन कुछ असफल प्रयासों के बाद मैं पैराग्राफ के साथ गया।
माइक डेवेनी
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.