बहुत अधिक समय लगा के बाद मेरे सुझाव इस 'बातें' के साथ काम:
BindingModels बाध्यकारी डेटा के लिए (MVC या एपीआई)
ViewModels MVC पर विचारों के लिए (आप कुछ MVC हो सकता है आपके एपीआई के अंदर के पेज, इसलिए इसके लिए जगह रखना अच्छा है, यह प्रलेखन, परिचय पृष्ठ, जो कुछ भी हो सकता है। यदि कोई दृश्य नहीं है, तो आपके पास शून्य व्यूमोडल्स हो सकते हैं) इसका एक लाभ यह है कि आप अपने विचारों में कर सकते हैं /web.config में ViewModels नामस्थान संदर्भ है और यह आपके एपीआई संसाधनों के साथ प्रदूषित नहीं होगा।
वेब एपीआई संसाधनों के लिए संसाधन मॉडल। वेबपी में, नेस्टेड संसाधन भी ऐसे संसाधन होते हैं जो पेड़ में कहीं भी जाते हैं जो एमवीसी पर आम नहीं है, इसलिए उन्हें संसाधनों का नामकरण बहुत समझ में आता है।
यदि आप संसाधन प्राप्त करना चाहते हैं, तो आप अपने संसाधन मॉडल का उपयोग कर सकते हैं। याद रखें कि आप वही प्राप्त कर रहे हैं जो आप वापस भेज रहे हैं।
यदि आप इनपुट के लिए कस्टम बाइंडिंग चाहते हैं (यह आपका डिफ़ॉल्ट परिदृश्य होना चाहिए) तो आपके बाध्यकारी मॉडल हैं।
यदि आपके पास कोई भी एमवीसी दृश्य है, तो व्यवस्थापक उद्देश्यों, दस्तावेज़ीकरण, जो भी हो, अपने व्यूमोडल्स का उपयोग करें।
यदि आपके पास एमवीसी पर एक फॉर्म पेज है, तो आप पोस्ट बाइंडर पर भी अपने बाइंडिंग मॉडल का उपयोग कर सकते हैं। एमवीसी या वेबपैपी पर एक पोस्ट के लिए एक अलग मॉडल रखने की जरूरत नहीं है। विशेष रूप से जब मॉडल बाइंडर या फॉर्मेटर दोनों एक ही डेटा एनोटेशन का उपयोग कर एक ही बाध्यकारी मॉडल को समझ और मानचित्र कर सकते हैं।
कभी-कभी, आप संसाधन और कुछ अतिरिक्त फ़ील्ड के साथ बाध्यकारी मॉडल बनाना चाहते हैं। विरासत आपका मित्र है।
कभी-कभी आप एक से अधिक संसाधनों के साथ बाध्यकारी मॉडल बनाना चाहते हैं और (वैकल्पिक रूप से, अतिरिक्त फ़ील्ड) संसाधनों के रूप में संसाधन आपके मित्र हैं।
एमवीसी दुनिया में, आप 'संसाधन' की अवधारणा का भी उपयोग कर सकते हैं लेकिन यह बहुत कम आम है। यह तब उपयोगी होता है जब आपके पास एक ही प्रोजेक्ट पर एमवीसी और वेब एपीआई होती है।
यदि आपको किसी भी आइटम (जैसे फ़ोल्डर संरचना, नामस्थान, आदि) पर और टिप्पणियों की आवश्यकता है, तो बस मुझे बताएं। मैं अपने विपक्ष के पेशेवर अनुभव साझा करने के लिए खुश हूं।
ओह, और मैं भूल गया, एक मानचित्रण रणनीति अनुसंधान के लायक है। मैं व्यक्तिगत रूप से अपनी खुद की मैपिंग करता हूं, लेकिन यह तर्क एक स्थान पर अनमोल है।
संपादित करें: बहुत भोली उदाहरण
ContactViewModel{
string Name {get;}
string LastName {get;}
List<Country> AvailableCountries {get;}
Country Country {get;}
bool IsAdmin {get;}
}
ContactBindingModel{
string Name {get;set;}
string LastName {get;set;}
int Country {get;set;}
}
ContactResourceModel{
string Name { get;set;}
string LastName {get;set;}
Country Country {get;set;}
string IsAdmin {get;}
}
हां कि कारणों क्यों मैं एफई पर ही मेरी एनोटेशन डाल पसंद नहीं है में से एक है। मुझे लगता है कि मुझे एक दृश्य मॉडल का उपयोग करना चाहिए, लेकिन बस इसे कुछ और डेटामोडेल कहें? मैं अभी भी स्पष्ट नहीं हूं कि पूरी वेबसाइट कैसे काम करेगी। उदाहरण के लिए मेरे पास एक ऐड विधि होगी। मोबाइल डिवाइस और वेबसाइट दोनों जोड़ सकते हैं। क्या एमवीसी साइट वेबपै विधि को भी कॉल करनी चाहिए? इस मामले में यह समझ में आता है। लेकिन मोबाइल में एक एडिट केस के बारे में फिर से वेबपी को कॉल करने के लिए समझ में आता है, लेकिन साइट पर ऐसा लगता है कि आप एमवीसी का उपयोग करने के बजाय बाध्य किए गए दृश्य को वापस पाने के लिए उपयोग करेंगे और फिर उस दृश्य पर वापस पोस्ट करेंगे। – chobo2
मैं एक ही समस्या में भाग गया और जिस निर्णय में आया था वह यह है कि मेरे कुछ साइट एमवीसी का उपयोग डेटा भेजने/पुनर्प्राप्त करने और दूसरों के लिए वेबएपीआई (एमवीसी साइट से भेजे गए) के लिए उपयोग करने के लिए समझ में नहीं आया। वेबएपी का मुख्य लाभ बाहरी संपत्तियों को सीधे आपके एपीआई के माध्यम से अपने डेटा/व्यवसाय नियमों का उपयोग करने की अनुमति देना है। यदि आपके पास पहले से ही एक ही प्रोजेक्ट में एक एमवीसी साइट है, तो यदि आप सीधे एमवीसी का उपयोग कर सकते हैं तो अपने डोमेन से बातचीत करने के लिए वेबएपी से गुजरने के लिए मजबूर क्यों करें? और मैं सहमत हूं कि थोड़ा अलग नाम परिवर्तन इसे स्पष्ट कर देगा। InputModel? RequestModel? यह सिर्फ शब्दावली है, और वास्तव में वही बात है –
मुझे लगता है कि आप अपनी एमवीसी साइट के लिए एक अलग परियोजना बनाते हैं और इसे वेबपी के समान समाधान में रखते हैं। मुझे पता है कि वेबपी में एमवीसी नियंत्रक हो सकते हैं लेकिन मुझे लगता है कि दस्तावेज प्रदर्शित करने और उपयोगकर्ता के लिए आपके जैसे एपीआई के लिए यह और अधिक है। – chobo2