2010-07-18 31 views
11

नोट: वर्कफ़्लो द्वारा मैं वर्कफ़्लो तकनीक जैसे वर्कफ़्लो तकनीक का जिक्र नहीं कर रहा हूं।वेब अनुप्रयोग वर्कफ़्लो के लिए सर्वोत्तम अभ्यास?

सब भी अक्सर मुझे लगता है अपने आप को उन पृष्ठों को चरणों की एक श्रृंखला के माध्यम से प्रवाह डिजाइन करने के लिए आवश्यक जा रहा है।

1) विकल्पों में से एक सेट से चुनें। जमा करें। 2) परिणामों के साथ एक पृष्ठ पॉप्युलेट करें। परिवर्तन करें। जमा करें। 3) पिछले परिणामों के आधार पर कुछ करें। जमा करें। 4) पिछले कार्यों की पुष्टि करें। जमा करें। 5) गोटो 1.

खरीदारी की टोकरी के साथ एक ई-कॉमर्स साइट इस का एक पाठ्यपुस्तक उदाहरण होगा।

अब, वहाँ तरीके इस से निपटने के लिए के किसी भी संख्या रहे हैं। मेरा सवाल है, एएसपीनेट में इसे करने का अनुशंसित तरीका क्या है? PHP या ISAPI में मैं मानक HTML नियंत्रणों का उपयोग करता हूं, पोस्ट डेटा प्राप्त करता हूं और इसके साथ सामान करता हूं, प्रत्येक एक अलग पृष्ठ पर।

ASP.NET एक पृष्ठ समाधान की दिशा में अधिक उन्मुख किया जा रहा है। अपना काम करें, अपने आप को पोस्टबैक करें, फिर अपने परिणामों को एक ही पृष्ठ में प्रदर्शित करें .. नौकरी करने के लिए मल्टीव्यू या अपडेटपैनल्स जैसे कुछ का उपयोग करके अंत तक आगे बढ़ें। लेकिन कुंजी है, आप किसी अन्य पृष्ठ पर पोस्टबैक नहीं करते हैं।

अब मैं समझता हूँ कि माइक्रोसॉफ्ट हाल के संस्करणों में नेट के पार पेज Postbacks जोड़ा गया है, लेकिन यह कम पके हुए और एक तरह से बोझिल seemss। डेटा के साथ काम करना मुश्किल है जिसे तब तक पोस्ट किया गया जब तक कि आप इसे अपने पिछले पृष्ठ से गुणों या किसी चीज़ के माध्यम से बेनकाब न करें।

आप परिदृश्य मैं ऊपर से बाहर रखी कैसे निपटेंगे? क्या आप एक बहु-दृश्य या अद्यतन पैनेल का उपयोग करते हैं और इसे सभी एक पृष्ठ में करते हैं? या आप इसे कई पृष्ठों में करते हैं? इस संबंध में आपके सर्वोत्तम अभ्यास क्या हैं? क्या आपके पास उपयोग करने के लिए कोई विशिष्ट डिज़ाइन है? साइट वर्कफ़्लो को संरचित करने के बारे में आप कैसे जाते हैं?

उत्तर

1

वहाँ (बहु दृश्य के अलावा) यह करने के तरीके के एक नंबर रहे हैं:

1, asp.net खुराक समर्थन कार्रवाई के बाद, आंख मारना Page.Request.Form[item]http://msdn.microsoft.com/en-us/magazine/cc164151.aspx#S3

2, आप अपने अस्थायी डेटा को बचा सकता है डेटाबेस अस्थायी तालिका, तब जब उपयोगकर्ता प्रत्येक पृष्ठ के माध्यम से जाते हैं तो उन्हें डेटाबेस में अस्थायी डेटा आईडी का संदर्भ देना होता है। (क्वेरी स्ट्रिंग)

3, आप भी अपने सत्र में एक वस्तु के रूप में अपने अस्थायी डेटा को बचाने के लिए है, तो "काम प्रवाह" में आपके सभी पृष्ठों सत्र संदर्भित कर सकते हैं, तो यह के आधार पर जोड़-तोड़ बनाने में सक्षम हो जाएगा।

सब के बाद, वे सभी पक्ष-विपक्ष है, यह मुख्य रूप से कैसे जटिल अपनी परियोजना आवश्यकताओं पर निर्भर करता है।

+0

मुझे लगता है कि डेटा संग्रह करना शायद सबसे अच्छा तरीका है। थोड़ा और काम, लेकिन फिर आपको क्रॉस पेज स्टफ के साथ बेवकूफ़ बनाने की ज़रूरत नहीं है और डेटा की प्राथमिक कुंजी रखने के लिए बस एक सत्र चर पर भरोसा कर सकते हैं। –

1

स्थितियों के इन प्रकार के लिए, मैं प्रक्रिया के विभिन्न चरणों धारण करने के लिए एक से अधिक पैनल नियंत्रण का इस्तेमाल किया है। उस यूज को प्रदर्शित करने के लिए दृश्यमान प्रॉपर्टी सेट करें जिसे आप उपयोगकर्ता को देखना चाहते हैं।

तुम भी Wizard Web Server Control जो प्रक्रिया के चरणों के बीच नेविगेट करने के लिए पाइपलाइन हैंडल को देखने के लिए चाहते हो सकता है। नियंत्रण कैसे काम करता है इस बारे में कुछ विचार प्राप्त करने के लिए, The ASP.NET 2.0 Wizard Control पर एक नज़र डालें।

0

गुप्त यार, मैं हम इसे कैसे करते हैं पूछ के रूप में अपने प्रश्न पढ़ें। मेरे लिए, मेरे पास एक शब्द है: संदर्भ। इसे संदर्भ में रखें। मैं समझाऊंगा।

आप एक पृष्ठ से एक पूरे वेब अनुप्रयोग का निर्माण करता है, तो आप की तरह कर सकते हैं।तकनीकी रूप से यह संभव है भले ही यह भ्रमित हो जाएगा क्योंकि सभी बाहर निकलते हैं। मैं अपनी कार्यक्षमता को एक साथ उत्पाद "चुनने" जैसे तार्किक टुकड़ों में समूहित करता हूं। मैं "चेकिंग आउट" प्रक्रिया को समूहीकृत करने वाला एक एकल पृष्ठ बनाना चाहता था, लेकिन उच्च हतोत्साहित करता था कि अब मेरी टीम को एक विशेष बिंदु पर प्रक्रिया में कूदना पड़ा है जैसे शॉपिंग कार्ट में उत्पादों को स्वचालित रूप से जोड़ना और फिर अंतिम पृष्ठ प्रदर्शित करना चेक-आउट प्रक्रिया। (मुफ्त डाउनलोड प्राप्त करने के बारे में सोचें: आपको शिपिंग जानकारी, बिलिंग निर्माण या उनके नाम की आवश्यकता नहीं है)। उपर्युक्त आपकी क्रमांकित सूची के साथ, यदि यह सुविधा पर है, तो मैं इसे एक भौतिक पृष्ठ बनाउंगा, लेकिन अगर मैं यह कहता हूं कि मुझे प्रवाह में "कूदना है" तो मैं इसे बहुपक्ष में तोड़ दूंगा। यदि आप इसे एक पृष्ठ बनाते हैं, तो आपको स्पष्ट सीमाएं चाहिए।

मैं क्रॉस-पोस्टिंग का उपयोग नहीं करता हूं। मैं multiview नियंत्रकों का उपयोग करना पसंद है। मेरे लिए, यह स्पष्ट करना महत्वपूर्ण है कि प्रत्येक दृश्य को सक्रिय होने के लिए क्या आवश्यक है। मेरे पेज लोड इवेंट में, मेरे पास एक विधि कॉल है जो क्वेरीस्ट्रिंग या सत्र चर या कुकीज़ (ये मेरे राज्य होल्डिंग कंटेनर हैं) को देखती है और, जो सेट है, उसके आधार पर, मैं सक्रिय एक दृश्य बनाता हूं। पेज लोड में कोई और कोड नहीं है, इसके बजाय, मैं दृश्य के लोड इवेंट का उपयोग अपने छद्म पेज लोड होने के लिए करता हूं। मैं कोड जो भी विशिष्ट दृश्य करना है।

उस दृष्टिकोण के साथ, मुझे लगता है कि एएसपी.नेट का एमवीसी पैटर्न है जहां मुझे जाना चाहिए।

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

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