मैंने वास्तव में कार्यान्वित किया है या वर्तमान में सभी 3 पोस्ट विकल्पों का उपयोग कर रहा हूं, इसलिए मैं अपना ले जाऊंगा। अब जब आपने स्पष्ट किया है कि आप थोड़ा सा जवाब देने के लिए क्या चाहते हैं।
- आप दोनों सर्वर और ग्राहक हैं:
OData
OData आंतरिक अनुप्रयोगों के लिए महान है।
- आप इकाई फ्रेमवर्क का उपयोग कर रहे हैं।
- आप अपने मॉडल में विरासत का उपयोग नहीं करते हैं और उप-संग्रह पूछने की अपेक्षा नहीं कर रहे हैं।
ओडाटा अद्भुत है क्योंकि आप क्लाइंट पक्ष पर IQueryable का उपयोग कर सकते हैं। हालांकि कुछ सीमाओं के साथ आता है। मेरे सिर के शीर्ष से दो में शामिल हैं कि आप विरासत वाले मॉडल के साथ काम करना थोड़ा अजीब है और आप can't do nested collections हैं।
वहाँ भी वास्तव में क्या supported LINQ capabilities are नहीं जानते हुए भी साथ एक मुद्दा है।
मैं OData की सलाह देते हैं आप पूरी तरह एक सेवा परत की जरूरत है और केवल उन लोगों के साथ सरल CRUD संचालन करने की उम्मीद है। प्रत्येक ओडाटा समस्या के साथ मुख्य समस्या के परिणामस्वरूप एक कठिन दीवार होती है जिसे आप कभी-कभी नहीं मिल सकते हैं। क्लाइंट उपभोक्ता कोड वास्तव में सबसे अच्छा हिस्सा है और यदि आप इसका उपयोग करने के लिए सी # का उपयोग नहीं कर रहे हैं तो इसका संभवतः इसके लायक नहीं है।
EFS ऑटो मेटाडाटा का उपयोग किए बिना
भी समर्थन आप एक स्कीमा अपने उपभोक्ताओं या के खिलाफ लेखन का आनंद नहीं हो सकता है के अनुरूप कोड का सिर्फ एक ही राशि लिख दिया जाएगा। जबकि ओडाटा के लिए एक रेल रैपर है, यह सब अपेक्षाकृत नया है। मैं वास्तव में बड़े एमएस भागीदारों के अलावा जंगली में ओडाटा नहीं देखता हूं।
ओडाटा प्रमाणीकरण और फ़िल्टरिंग भी बहुत नंगे हड्डियों एटीएम है। यदि आपको डेटा सीमित करने की आवश्यकता है तो आप अपने आप से बहुत से अनुमति संबंधित कोड लिखेंगे। यदि आप कभी भी अनुमति से सीमित होने के लिए तालिका से चयन करना चाहते हैं तो कुछ अजीब कोड लिखने के लिए तैयार रहें।
MVC 2
MVC एक RESTful सेवा बनाने के लिए बहुत अच्छा है। आपके पास क्रिया समर्थन है और return JSONResult
जितना आसान हो सकता है। एकमात्र संभावित नकारात्मकता आपके कोडिंग को स्वयं को संभालने में बहुत सारी त्रुटि है और आपके सभी दृश्य मॉडल को बेस क्लास से प्राप्त होना चाहिए जो स्टेटस कोड और त्रुटि संदेश दिखाता है।
तुम भी एक छोटे से आप अपने संदेश होने के लिए उत्तर कैसे फैंसी या सम्मेलन संचालित चाहते हैं पर निर्भर करता है दृश्य इंजन tweak कर सकते हैं। एमवीसी के लिए बड़ा लाभ यह बहुत एक्स्टेंसिबल है और आप जो भी चाहें कर सकते हैं। मैं एक ही नियंत्रक कार्रवाई में रूपों/AJAX कॉल/और बाकी सेवाओं के संयोजन में बड़ा हूँ। एक बार लागू करें, एक ही ऑपरेशन के तीन स्वाद प्राप्त करें। एमवीसी को कम करना मुश्किल होगा क्योंकि आपको लगभग हर चीज करने के लिए मोड़ दिया जा सकता है।
एक MVC सेवा करने के लिए एक बड़ा लाभ यह है कि एक आवेदन है कि सेवा के साथ तैनात किया जाता है में एक छोटे से व्यवस्थापक यूआई चुपके कर सकते हैं। दो साइटों को तैनात करने के लिए बहुत आसान है।
WCF बाकी
तो मैं केवल एक बहुत ही सीमित क्षमता में WCF बाकी उपयोग कर रहा हूँ और ऐसा लगता ... ठीक है ... मैं 3 साल के लिए WCF का उपयोग किया है और मैं हमेशा से संतुष्ट नहीं हूं इसे विस्तारित करना कितना निराशाजनक जटिल है। ओडीएटीए की तरह आप सील किए गए वर्गों और कार्यक्षमता के अवांछित गुफाओं में भाग लेंगे यदि आप पीटा पथ से बाहर निकलते हैं। यह एमवीसी की एक्स्टेंसिबिलिटी की मात्रा के विपरीत है।
दूसरी समस्या डब्लूसीएफ के शीर्ष पर आपकी इमारत है और इसके साथ चलने वाली सभी पागलपन है। मैंने हमेशा कहा है कि इसे प्रभावी ढंग से डब्ल्यूसीएफ का उपयोग करने के लिए पीएचडी की आवश्यकता है। रिक स्ट्राल के पास pain points of WCF REST के बारे में एक अच्छा लेख था। सुनिश्चित नहीं है कि चीजें बदली हैं लेकिन इसके पढ़ने के लायक हैं।
डब्ल्यूसीएफ आरईएसटी वास्तव में आशाजनक दिखता है और मैं अभी इसका उपयोग कर रहा हूं, मुझे इसकी सिफारिश करने के लिए पर्याप्त जानकारी नहीं है।
मुख्य अंक
आप अपने उपभोक्ताओं को नहीं जानते हैं तो मुझे लगता है जिसे आप अपने एपीआई पता नहीं है। एक सेवा का निर्माण न करें जब तक कि आपके पास उपयोग केस न हो और उसके खिलाफ कोड हो।
एमवीसी सबसे अधिक एक्स्टेंसिबल है और यदि आप परिचित हैं कि कवर के तहत चीजें कैसे काम करती हैं तो आप शायद ओडीटा और डब्ल्यूसीएफ जैसी एमएस चीज को बढ़ाने के लिए कड़ी मेहनत करने से बेहतर हो जाएंगे।
फेसबुक, अमेज़ॅन, पेपैल, eBay जैसे सभी "बड़े लड़कों" में ऐसे एपीआई हैं जो वास्तव में किसी भी ज्ञात पैटर्न या स्कीमा के अनुरूप ओडाटा के अनुरूप नहीं हैं। आपकी आरईएसटी सेवा वास्तव में आप इसे बनाते हैं। यह # 1 से संबंधित है। उपभोक्ता के लिए पहले काम करना आसान बनाने पर ध्यान केंद्रित करें।
प्रश्न का उत्तर देने के लिए पर्याप्त जानकारी नहीं है। पहले से ही जवाब देखें। उनके पास कोई पदार्थ नहीं है और सिर्फ "इसका उपयोग करें क्योंकि मेरे पास है"। इन सवालों के जवाब देने का एकमात्र तरीका आपकी सटीक आवश्यकताओं के साथ सुविधाओं की तुलना करना है। चूंकि आपने "कम बैंडविड्थ" के अलावा कुछ भी प्रदान नहीं किया है, जिसमें अंतर्निहित ढांचे और "कई क्लाइंट" के साथ कुछ भी नहीं है, जो आरईएसटी की बहुत परिभाषा है, आपको कोई ठोस सलाह देने के लिए लगभग असंभव है। – jfar
@Alex:/प्रश्न के अजीब व्याख्या पर विचार करते हुए कि वह "सर्वश्रेष्ठ" और उद्धरण "डब्ल्यूसीएफ 4, एएसपी.नेट एमवीसी 2 और डब्ल्यूसीएफ आरईएसटी" – jfar
@ एलेक्स धन्यवाद के लिए पूछ रहा है। @jfar मैंने इसे आपके लिए अधिक विशिष्ट बनाने की कोशिश की है। मैं सिर्फ किसी को यह बताने के लिए चाहता हूं कि क्या उन्होंने किसी भी मार्ग पर लंबे समय से लड़ाई लड़ी है और पाया है कि यह सही है या – BritishDeveloper