2012-08-03 9 views
5

मेरे पास एक वेब और मोबाइल प्लेटफ़ॉर्म दोनों पर चल रहा एक एप्लिकेशन है और इसके उपयोगकर्ता ऐप का उपयोग करके फ़ोटो अपलोड कर सकते हैं। मुझे वेब और मोबाइल एप्लिकेशन दोनों पर अपलोड करने और छवियों को प्रदर्शित करने के लिए एक वेब सेवा की आवश्यकता है।छवि सेवा के रूप में एएसपी.नेट वेब एपीआई का उपयोग

क्या एएसपी.NET वेब एपीआई का उपयोग छवि सेवा के रूप में करना और फ़ोटो अपलोड करने के लिए POST अनुरोध करना अच्छा विचार है? इस दृष्टिकोण के कुछ पेशेवर और विपक्ष क्या हैं? इस तरह की सेवा के लिए एएसपी.नेट वेब एपीआई ओवरहेड का उपयोग कर रहा है?

उत्तर

2

यह इस बात पर निर्भर करता है कि आपके आवेदन में कितनी सहमति है और कितने उपयोगकर्ता हो सकते हैं।

इस तरह के आवेदन की प्रकृति I/O केंद्रित है, जिसका अर्थ है कि आपका एएसपी.नेट सर्वर अधिकांश समय तक I/O संचालन को पूरा करने का इंतजार कर रहा है। उच्च समवर्तीता वाले परिदृश्यों में, यह आपके एएसपी.NET प्रबंधित थ्रेड पूल को थ्रेड भुखमरी से दुर्घटनाग्रस्त कर देगा।

मैं सिफारिश करेंगे:

1) आप ASP.NET पहल रखने, तो कृपया, IAsync प्रोग्रामिंग मॉडल को लागू। यह आपके वेब एप्लिकेशन को स्केल करने में सक्षम बनाता है।

2) यदि आप IAsyncResult से निपटना नहीं चाहते हैं, तो मध्य में कुछ लोड बैलेंसर डालें और क्षैतिज रूप से स्केल करें, आपको जितनी अधिक आवश्यकता हो उतनी सर्वर जोड़ना। इसमें आपके एएसपी.NET एप्लिकेशन को वेब फार्म के रूप में फिर से डिज़ाइन करने की आवश्यकता हो सकती है, जिसमें कुछ जटिलता शामिल है (सत्र स्थिति प्रबंधन, प्रमाणीकरण, प्रमाणीकरण आदि)।

3) एक अलग तकनीक का प्रयास करें, Node.js I/O उच्च विलंबता, प्रोग्रामिंग मॉडल के साथ महान व्यवहार करने के लिए अच्छी तरह से जानता है।

12

एएसपी.नेट वेब एपीआई एसिंक I/O के साथ बहुत अच्छा काम करता है - यह .NET 4 (और विशेष .NET 4.5) में नए कार्य-आधारित एसिंक मॉडल का उपयोग करता है जो इसे एसिंक नियंत्रकों को बनाने और एकाधिक समन्वय बनाने के लिए सीधे आगे बनाता है असीमित परिचालन। यदि यह मॉडल आपके लिए नया है तो मैं this presentation on channel9 की अनुशंसा करता हूं।

अपलोड के लिए, एएसपी.नेट वेब एपीआई एक फॉर्म से सामान्य HTML फ़ाइल अपलोड मॉडल के आधार पर पूरी तरह से async MIME multipart फ़ाइल अपलोड का समर्थन करता है। आप FileUploadSample available as source में इसका एक उदाहरण देख सकते हैं।

यह स्ट्रीमकंटेंट का उपयोग करके फ़ाइलों को असीमित रूप से सेवा करने के लिए भी आगे है। यहां आप (नियंत्रक में) एक फ़ाइल खोलते हैं, एक HttpResponseMessage बनाएं और फ़ाइल को लपेटने वाले स्ट्रीमकंटेंट के रूप में एक HttpContent संलग्न करें और यही वह है।

यह सब I/O पर किसी भी थ्रेड को अवरुद्ध किए बिना होता है।

आशा इस मदद करता है,

हेनरिक

+0

धन्यवाद, बहुत उपयोगी! तो, आपको लगता है कि नया एएसपी.नेट वेब एपीआई सभी छवि प्रसंस्करण के लिए सेवा के रूप में सेवा के लिए पर्याप्त होना चाहिए? –

+0

HttpResponseMessage अब वेब एपीआई में उपलब्ध नहीं है – Markive