2010-12-08 16 views
6

मुझे डेटाबेस से कुछ डेटा प्राप्त करने के लिए (स्वयं को) प्रदान करने की आवश्यकता है ताकि मैं आसानी से स्थिर HTML पेज बना सकूं ताकि मैं उन्हें संसाधित करने के सर्वर से छुटकारा पा सकूं (जैसा कि मेरे पास 80 जीबी बैंडविड्थ बर्बाद हो रहा है हर दिन)।वेब सेवा या एक साधारण एमवीसी नियंत्रक?

मेरा प्रश्न सरल

मैं एक WCF सेवा (या ASMX वेब सेवा) इस डेटा (WCF एक ही सर्वर में होगा खींचने के लिए तैयार करना चाहिए है, इसलिए मैं अभी भी इसका इस्तेमाल करते हैं, हालांकि मैं के रूप में बहुत कम

public class ServiceApiController : Controller 
{ 
    public ActionResult GetPrizes(string calendarGuid) 
    { 
     return Json("..."); 
    } 
    public ActionResult GetWinners(string calendarGuid) 
    { 
     return Json("..."); 
    } 
    public ActionResult AddSubscriber(string calendarGuid, string[] args) 
    { 
     return Json("..."); 
    } 
    public ActionResult ReclaimSubscriberEmail(string calendarGuid, string email) 
    { 
     return Json("..."); 
    } 
    public ActionResult RequestContact(string calendarGuid, string[] args) 
    { 
     return Json("..."); 
    } 
} 

और बस इसे कहते: 'क्या मैं वास्तव में जरूरत है और पृष्ठों को संसाधित करने)

बर्बाद नहीं है या मैं की तरह एक साधारण नियंत्रक बनाना चाहिए हो रही हूँ जो कुछ भी जावास्क्रिप्ट फ्रेमवर्क से मैं सीधे उपयोग करूंगा (गलती, निश्चित रूप से मेरी प्यारी jQuery)।

उत्तर

8

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

दूसरी ओर, एमवीसी संभवतः इस तरह सेटअप करने के लिए तेज़ है क्योंकि आपको कभी-कभी डेटाकंट्रैक्ट्स को बदलने के लिए थोड़ा मुश्किल से निपटना नहीं पड़ता है (क्योंकि उन्हें साझा असेंबली की पुन: तैनाती की आवश्यकता होती है)।

WCF = अधिक "ठोस" एक बहुत अधिक प्रोटोकॉल के साथ इसे "स्थिर" बनाने के लिए करने के लिए, वह यह है कि: आप प्रदाता और उपभोक्ता के बीच एक कठिन अनुबंध स्थापित कर सकते हैं।

एमवीसी = अधिक लचीला और संभवतः सेटअप करने में आसान है, लेकिन कोई कठोर अनुबंध नहीं है - यदि आप जेसन के प्रारूप को बदलते हैं, तो आपके क्लाइंट प्रारंभ में इसे ध्यान में रखे बिना तोड़ सकते हैं, इसलिए यह सामान के साथ बहुत अधिक है।

कुल मिलाकर, मैं MVC का उपयोग जब तक कि मैं के रूप में (एक स्थिर/गारंटी/खोज योग्य क्लाइंट और सर्वर, आवश्यकता के बीच अनुबंध के लिए आवश्यकता ऊपर उल्लिखित सोप ​​के लिए, या WCF उपयोग करने के लिए कोई कारण है, जब यह सेटअप एक आईआईएस के लिए असुविधाजनक/अनावश्यक है वेबसाइट, उदाहरण के लिए, क्योंकि अपने सर्वर के रूप में एक Windows सेवा चलाता है)

0

मैं, वेब सेवा पसंद करते हैं अगर आप कुछ डेटा दिखाने के लिए किसी भी यूआई ढांचे की जरूरत नहीं है जाएगा।

0

व्यक्तिगत तौर पर मैं एक WCF वेब सेवा डेटा का पर्दाफाश करने के पैदा करेगा। यह अधिक लचीला होगा और आप विभिन्न डेटा प्रारूप जेएसओएन, एक्सएमएल, को संभालने वाले कई एंडपॉइंट्स का पर्दाफाश कर सकते हैं ... इस तरह आप विभिन्न ग्राहकों (वेब, विंडोज़, मोबाइल, ...) से सेवा का उपभोग कर सकते हैं।

+0

यह मैं सिर्फ 'सामग्री वापस जाने के लिए (myClass.ToXML())' या 'Json (myClass)' की जरूरत है और के रूप में माइकल ने कहा ... WCF विन्यास कभी कभी वास्तव में हो सकता है 'Controller' के माध्यम से भी है कि ऐसा करना आसान है मुश्किल (मैं पहले से ही किया गया है): -/ – balexandre

+0

आप एक कार्रवाई फिल्टर है कि एक प्रारूप अनुरोध पैरामीटर के लिए लग रहा है के साथ एक ही परिणाम प्राप्त कर सकते हैं। उदाहरण के लिए '\ path \ to \ resource? format = xml' या' \ path \ to \ resource.json' – Ryan

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