का उपयोग कर आवेदन संरचना मेरे पास एक WPF एप्लिकेशन है जो अब तक केवल क्लाइंट रहा है, लेकिन अब मैं इसे क्लाइंट और सर्वर पक्ष में विभाजित करने पर काम कर रहा हूं। इस काम में मैं क्लाइंट-सर्वर संचार के लिए डब्ल्यूसीएफ पेश कर रहा हूं। मेरे आवेदन में कई परियोजनाएं हैं, और इनमें से एक से अधिक से सेवा संदर्भों की आवश्यकता है।डब्ल्यूसीएफ
जुदाई करने में प्रारंभिक प्रयास सब कुछ करने के लिए "सीधे आगे है।" किसी सेवा के साथ संवाद करने की आवश्यकता वाली सभी परियोजनाओं को एक सेवा संदर्भ मिलता है, और इसलिए मुख्य WPF एप्लिकेशन प्रोजेक्ट करें - वहां app.config प्राप्त करने के लिए। मुझे यह एक गड़बड़ में तेजी से बदलने के लिए लगता है, और मैं कल्पना नहीं कर सकता कि यह सामान्य वास्तुकला का उपयोग करने वाले लोग हैं? मैंने इस तथ्य के साथ समस्याएं भी देखी हैं कि प्रत्येक सेवा संदर्भ डेटाकंट्रैक्ट कक्षाओं का एक नया कार्यान्वयन उत्पन्न करता है - इसलिए परियोजनाओं के पार पर डेटाकंट्रैक्ट कक्षाओं की कोई सामान्य समझ नहीं है। मेरे पास एक प्रोजेक्ट में कुछ व्यूमोडेल क्लासेस हैं, और एक अन्य प्रोजेक्ट कुछ व्यूमोडेल को कम करता है। मैं सेवा से प्राप्त ऑब्जेक्ट को पास करना चाहता हूं, लेकिन मैं नहीं कर सकता क्योंकि ऑब्जेक्ट के जेनरेट क्लाइंट-साइड का प्रतिनिधित्व प्रत्येक प्रोजेक्ट में अलग है।
तो - वहाँ WCF का उपयोग कर संरचना इस तरह के ग्राहक/सर्वर विभाजन की सिफारिश की तरीका है? या सिद्धांतों का पालन करने के लिए? मैं क्लाइंट पक्ष पर उपयोग की जाने वाली एक आम प्रॉक्सी प्रोजेक्ट सोच रहा हूं जो सेवाओं के साथ संचार करता है, प्राप्त डेटा को लपेटता है, और क्लाइंट पुस्तकालयों के लिए अच्छी तरह से ज्ञात रूप में डेटा लौटाता है। केवल एक सेवा संदर्भ देना चाहिए, और मुझे लगता है कि मुझे केवल wpfApp-project में App.config की आवश्यकता है? इसका कोई मतलब भी है क्या?
बहुत अच्छे जवाब के लिए धन्यवाद!कुछ प्रश्न वापस: एक सेवा होस्ट होने के बाद आपको अपना ऐप शुरू करते समय मेजबान और क्लाइंट दोनों को शुरू करने की आवश्यकता है? या इस के आसपास पाने के लिए कोई रास्ता है? क्लाइंट प्रॉक्सी के संबंध में - आप कौन सा पसंद करेंगे? के रूप में आप सेवा संदर्भ तिथि से बाहर .. – stiank81
@bambuska जा रहा से निपटने के लिए की जरूरत नहीं है मैनुअल impl अधिक सुसंगत लगता है:, आप दोनों सेवा मेजबान और परीक्षण करने के लिए ग्राहक का शुभारंभ करने के लिए है सुनिश्चित करें; इसे प्राप्त करने के लिए विजुअल स्टूडियो में "एकाधिक परियोजनाएं लॉन्च करें" चुनें - आप F5 दबाते समय सेवा होस्ट और क्लाइंट दोनों लॉन्च कर सकते हैं। –
क्लाइंट प्रॉक्सी: मैं कुल नियंत्रण मैं जब मैं ग्राहक की प्रॉक्सी मैनुअल कार्यान्वयन करना है की तरह है - यह ** की आवश्यकता है ** कि हालांकि मैं सर्वर और ग्राहक (मैनुअल impl के बाद से के बीच अनुबंध साझा कर सकते हैं की ग्राहक प्रॉक्सी पहुँच होनी चाहिए। वास्तविक अनुबंध करने के लिए) –