2012-04-18 3 views
5

वर्तमान में हमारे पास एक .NET 4 एप्लिकेशन है जिसमें पृष्ठभूमि और स्थानीय या दूरस्थ क्लाइंट (केवल सामान्य रूप से केवल 1-3) में चल रहे विंडोज सेवा शामिल हैं।मजबूत स्व होस्टिंग सर्वर के लिए सर्वश्रेष्ठ विकल्प: डब्ल्यूसीएफ बनाम एएसपी.नेट वेब एपी

ग्राहकों के पास एक WPF GUI है और विंडोज सेवा से कुछ डेटा चाहिए। इसलिए, हम दूरस्थ क्लाइंट के लिए स्थानीय क्लाइंट और नेटटीसीपी बाध्यकारी के लिए नामांकित पाइप बाध्यकारी के साथ डब्ल्यूसीएफ का उपयोग करते हैं। यह काम करता है, लेकिन हमें अक्सर अंतराल के साथ समस्याएं होती हैं जो पहुंच योग्य नहीं होती हैं (चैनल दोषपूर्ण या नहीं मिला आदि)। हम पहले से ही दोषपूर्ण कनेक्शन पुनर्निर्माण करने का प्रयास करते हैं लेकिन यह बहुत नाजुक लगता है ...

अब वेब एपी दर्ज करें: ऐसा लगता है कि एक HTTP आधारित स्टैक अधिक मजबूत हो सकता है (कोई चैनल नहीं, कोई अंत बिंदु नहीं, स्वयं-होस्ट किया जा सकता है विंडोज़ सेवा भी)। टूटे चैनलों के साथ कोई समस्या नहीं है क्योंकि प्रत्येक अनुरोध को व्यक्तिगत रूप से संभाला जाता है। तो अगर कुछ विफल रहता है, तो आप अनुरोध को दोहराएं। (और हमारे पास अन्य ऐप्स से एएसपी.नेट एमवीसी के साथ अनुभव है, इसलिए यह हमारे लिए नया नहीं है)।

अब हम सोच रहे हैं कि हमारी सर्वश्रेष्ठ शर्त क्या हो सकती है। क्या हमारी मौजूदा डब्ल्यूसीएफ सेवा (लगभग 15 संचालन के साथ एक सेवा इंटरफ़ेस) को "कठोर" करना या इंटरफ़ेस को वेब एपीआई में ले जाना और इसे HTTP अनुरोध (JSON डेटा के साथ) के रूप में चलाने के लिए बेहतर है? प्रदर्शन यहां हमारा मुख्य मुद्दा नहीं है ...

कोई विचार? हार्टमूट

उत्तर

4

मैं आपको वेब एपीआई में जाने के बजाए अपने डब्ल्यूपीएफ एप्लिकेशन के लिए डब्ल्यूसीएफ (एसओएपी) सेवाओं के साथ चिपकने की सलाह देता हूं। इसके कई कारण हैं। सबसे पहले मुझे लगता है कि हमें यह समझने की जरूरत है कि नया वेब एपीआई क्या पता लगाने की कोशिश कर रहा है - अर्थात् रीस्टफुल/एचटीटीपी/हाइपरमीडिया सेवाओं का समर्थन करने के लिए एक ढांचा प्रदान करना। यह उन अनुप्रयोगों के निर्माण के लिए एक अच्छा फिट होने की संभावना है जो वेब, मोबाइल और जावास्क्रिप्ट अनुप्रयोगों जैसे HTTP का भारी उपयोग करते हैं, जहां आप अपनी पहुंच के "पहुंच" या इंटरऑपैबिलिटी को अधिकतम करना चाहते हैं (प्लेटफ़ॉर्म के बावजूद)। यह कहना नहीं है कि आप इसे WPF क्लाइंट्स के लिए उपयोग नहीं कर सकते हैं, लेकिन आपके मामले में, जहां सभी ट्रैफ़िक आपके डोमेन के लिए स्थानीय हैं, यह आपके वर्तमान कार्यान्वयन से चिपकने के लिए और अधिक समझ में आता है।

आपके सेवाओं/ग्राहकों के लिए आपके द्वारा बनाए गए बाध्यकारी विकल्प मुझे ठीक लगता है। मैं इस बात पर ध्यान केंद्रित करूंगा कि आपके चैनल क्यों गलती कर रहे हैं और इन मुद्दों का समाधान क्यों करते हैं। आप आईआईएस के माध्यम से अपनी सेवाओं को होस्ट करने पर विचार करना चाहेंगे और अपने गैर-HTTP एंडपॉइंट्स का पर्दाफाश करने के लिए WAS का उपयोग कर सकते हैं। मुझे अतीत में इसके साथ बहुत सफलता मिली है और अधिकांश भाग काफी स्थिर रहा है। यह आपके स्वयं के मेजबान के प्रबंधन के साथ कुछ सिरदर्द भी ले जाता है। यदि आप टीसीपी बाइंडिंग दोषों के बारे में चिंतित हैं, तो बस एक नया HTTP या wsHTTP एंडपॉइंट बनाएं और इसके बजाए इसका उपयोग करें। यह आपको अपने प्रोग्रामिंग मॉडल को बदलने के बिना वेब एपीआई का उपयोग उसी परिवहन को प्रदान करेगा।

+0

क्या आप हमें अपडेट करना चाहते हैं यदि अभी भी स्वयं होस्टेड वेबएपीआई स्वयं-होस्टेड डब्ल्यूसीएफ पर बेहतर विकल्प है। –

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