2012-02-09 11 views
5

मेरे पास तीन मुख्य अनुप्रयोग हैं जिनके पास अपने स्वयं के व्यावसायिक कार्य हैं (नेटवर्क, सक्रिय निर्देशिका और हेल्पडेस्क)। प्रत्येक ASP.NET v2 या v3 चला रहे हैं और उनके अपने संबंधित डेटाबेस हैं। हालांकि, एप्लिकेशन फ़ंक्शंस थोड़ा विलय हो गया है ताकि प्रत्येक एप्लिकेशन में मॉडलों को फिर से बनाया जा सके और इसके साथ ऐप लॉजिक भी बनाया जा सके। तो अब मुझे कोड बनाए रखने में कुछ मुश्किल है। तो यहां मेरा प्रश्न है:डिज़ाइन चॉइस: डब्ल्यूसीएफ या सर्विस स्टैक?

  1. डब्ल्यूसीएफ पर मेरे मॉडल और भंडारों को इस प्रकार के आर्किटेक्चर के लिए उचित विकल्प पर पोर्ट करना है?

  2. एक सर्विस स्टैक का उपयोग कर रहा है जैसे धारावाहिक जेसन कॉल बेहतर विकल्प है? मुझे लगता है कि यह केंद्रीय डब्ल्यूसीएफ ऐप स्थापित करने से तेज़ होगा।

मैं asp.net MVC के वेब Apps तो मेरे सही दिशा में बात कृपया के बीच संचार के साथ भी परिचित नहीं हूँ।

उत्तर

1

मैं service layer per the design pattern described by Fowler विकसित करने की अनुशंसा करता हूं। यह सेवा परत विभिन्न डोमेन मॉडल और रिपोजिटरी को समाहित करती है और विभिन्न डोमेन/मॉडल के बीच इंटरैक्शन को संभालती है। यह एक असेंबली होगी, न कि डब्ल्यूसीएफ या किसी अन्य प्रकार की वेब सेवा। यदि आपको डब्ल्यूसीएफ वेब सेवा की आवश्यकता है तो यह एक बहुत पतली परत होगी जो मूल रूप से एक अनुबंध है जो सेवा परत की नकल करता है और केवल एक उद्देश्य वेब सेवा इंटरफ़ेस या API प्रदान करना है।

एमवीसी एप्लिकेशन आपकी सेवा परत से दो तरीकों से बातचीत कर सकता है। यदि आप अपने नियंत्रकों में दृश्य मॉडल बना रहे हैं तो यह सीधे सेवा परत असेंबली तक पहुंच सकता है। इस वेब मामले में इसे कॉल करने के लिए अतिरिक्त ओवरहेड जोड़ा गया है जो इस मामले में सबसे अधिक आवश्यक नहीं है। इस दृष्टिकोण का उपयोग करते हुए सेवा परत एमवीसी तीनों में आपका मॉडल काफी अधिक है।

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

इस वास्तुकला के साथ नोट करें कि आप दोनों दृष्टिकोणों के संयोजन का उपयोग कर सकते हैं। आप कुछ प्रारंभिक पृष्ठों को प्रस्तुत करने के लिए सीधे नियंत्रक से सेवा परत तक पहुंच सकते हैं और फिर उपयोगकर्ता इंटरैक्शन के दौरान AJAX कॉल के लिए वेब सेवा REST इंटरफ़ेस का उपयोग कर सकते हैं।

+0

मुझे समझ में नहीं आता कि सेवा परत तक सीधे पहुंचने का क्या मतलब है। एक एमवीसी ऐप के दूसरे की सेवा परत से संपर्क करने का तरीका क्या होगा? Webclient? .NET Remoting? मैं सीधे डेटा संदर्भ या किसी अन्य ऐप के भंडार तक पहुंचने में सक्षम होना चाहता हूं। – Jiminy

+0

सेवा परत जिसका मैं जिक्र कर रहा हूं वह एक .NET असेंबली या डीएलएल है। तो यह सिर्फ एक पुस्तकालय है जिसे किसी भी एप्लिकेशन में संदर्भित किया जाता है जिसे इसका उपयोग करने की आवश्यकता होती है। आप इसे एक अलग भौतिक स्तर के रूप में नहीं रखना चाहते हैं जब तक कि इसके साथ जुड़े लागतों के कारण वास्तविक लाभ न हों। यदि आपको इसे किसी अन्य स्तर पर रखने की आवश्यकता है तो इस असेंबली/लाइब्रेरी के आस-पास एक डब्ल्यूसीएफ सेवा रैपर बनाएं। वेब सेवा इंटरफ़ेस का प्रकार क्लाइंट पर इसका उपयोग कर निर्भर करता है (उदा: वेब क्लाइंट के लिए JSON का उपयोग करके REST)। और जैसा कि पहले उल्लेख किया गया है, आप डब्ल्यूसीएफ और पुस्तकालय का उपयोग करके मिश्रण और मिलान कर सकते हैं। –

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