2008-09-22 15 views
7

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

+0

अच्छा प्रश्न :) – GateKiller

उत्तर

2
  • किसी भी ऐसे पृष्ठ के लिए वेब उपयोगकर्ता नियंत्रण बनाएं जो एक से अधिक पृष्ठों पर दिखाया जाएगा जो मास्टरपृष्ठ प्रकार की सामग्री का हिस्सा नहीं है। उदाहरण: यदि आपका एप्लिकेशन 10 पृष्ठों पर उत्पाद की जानकारी प्रदर्शित करता है, तो उपयोगकर्ता नियंत्रण रखना सर्वोत्तम होता है जिसका उपयोग 10 पृष्ठों पर 10 बार प्रदर्शित होता है, बजाय प्रदर्शन कोड को 10 बार दबाया जाता है।
  • जितना संभव हो सके कोड में छोटे व्यवसाय तर्क के रूप में रखें। पीछे दिए गए कोड को उस व्यवसाय को निष्पादित करने के लिए अपनी व्यावसायिक परत में स्थगित करना चाहिए जो सीधे पृष्ठ पर चीजों को डालने और व्यापार परत से डेटा भेजने से संबंधित नहीं है।
  • पहिया को पुन: पेश न करें। मैंने देखा है कि बहुत सारे गंदे कोडबेंड्स कोड से बने हैं जो ढांचे को पहले से ही प्रदान कर रहे हैं।
  • सामान्य रूप से, HTML में स्क्रिप्ट ब्लॉक से बचें।
  • एक पृष्ठ बहुत अधिक चीज़ें नहीं है। मैंने जो कुछ समय और समय देखा है वह एक ऐसा पृष्ठ है जो कहता है कि मोड जोड़ और संपादित किया गया है। कोई बात नहीं। हालांकि यदि आपके पास जोड़ने और संपादित करने के लिए कई उप मोड हैं, तो आप उपयोगकर्ता नियंत्रण के माध्यम से पुन: उपयोग के साथ प्रत्येक उप मोड के लिए एकाधिक पृष्ठ रखने से बेहतर हैं। आपको वास्तव में नेस्टेड आईएफ का एक गुच्छा जाने से बचने की जरूरत है यह निर्धारित करने के लिए कि आपका उपयोगकर्ता क्या करने का प्रयास कर रहा है और उसके बाद सही चीजों को दिखा रहा है। यदि आपके पृष्ठ में कई संभावित राज्य हैं तो चीजें जल्दी से नियंत्रण से बाहर हो जाती हैं।
  • पृष्ठ जीवन चक्र सीखें/ग्रोक करें और इसे अपने लाभ के लिए उपयोग करें। अगर कोडर पेज लाइफसाइक्ल को बेहतर समझता है तो कई बदसूरत कोडबेंड पेज जो मैंने देखा है वह क्लीनर हो सकता है।
+0

यहाँ सब कुछ अच्छा है, पहला बिंदु के अलावा; मास्टर पेज का उपयोग करके साझा प्रस्तुति के लिए उपयोगकर्ता नियंत्रण की आवश्यकता को पूरी तरह से अस्वीकार कर दिया जाता है, कई पृष्ठों के बीच साझा की जाने वाली कुछ भी मास्टर पेज में होनी चाहिए। – Dexter

+1

मैं शायद पर्याप्त स्पष्ट नहीं था, लेकिन मेरा मतलब व्यापार वस्तुओं को प्रदर्शित करने और संपादित करने जैसी दोहराव वाली चीजों के लिए नियंत्रण का उपयोग करना था। उदाहरण: कहें कि 10 पेज हैं जो मुझे एक उत्पाद देखने की अनुमति देते हैं। 10 पृष्ठों पर कट-ऑनस्टेड एचटीएमएल की तुलना में एक उपयोगकर्ता नियंत्रण रखना सबसे अच्छा है। उत्तर स्पष्टीकरण के लिए अद्यतन किया गया। –

1

दिन # 1 पर मास्टर पेज के साथ शुरू करें - इसका दर्द वापस लेने के लिए वापस आ रहा है।

3

मैं आम तौर पर इसके बारे में स्पष्ट रहने का प्रयास ... लेकिन जब मैं WebForms का उपयोग करते हैं, मैं इन उपदेशों का पालन करें:

  1. जिसके परिणामस्वरूप एचटीएमएल स्वच्छ रखें: सिर्फ इसलिए कि आप हाथ नहीं कर रहे हैं प्रत्येक <div> कोडिंग का मतलब यह नहीं है कि जेनरेट कोड को एक अपठनीय दुःस्वप्न बनना है। बदसूरत कोड उत्पन्न करने वाले नियंत्रण से बचने से समस्याएं आसानी से देखने के बाद, कम डिबगिंग समय में भुगतान कर सकती हैं।
  2. बाहरी निर्भरता को कम करें: आपको अन्य लोगों के कोड को डीबग करने के लिए भुगतान नहीं किया जा रहा है। यदि आप तृतीय-पक्ष घटकों पर भरोसा करना चुनते हैं तो स्रोत प्राप्त करें ताकि आपको असामान्य रूप से बड़ी संख्या में बग को ठीक करने की आवश्यकता न हो।
  3. एक पृष्ठ पर बहुत अधिक करने से बचें: यदि आप किसी दिए गए पृष्ठ के लिए जटिल "मोड" को कार्यान्वित करते हैं, तो इसे कई पहलुओं को अलग करने के लिए मास्टर पृष्ठों का उपयोग करके, एकाधिक, एकल-मोड पृष्ठों में तोड़ने पर विचार करें।
  4. पोस्टबैक से बचें: यह हमेशा एक भयानक विचार था, और इसे कम भयानक नहीं मिला है। पोस्टबैक पर निर्भर नियंत्रणों का उपयोग न करने वाले सिरदर्द एक अच्छा बोनस हैं।
  5. VIEWSTATE से बचें: # 4 के लिए टिप्पणियां देखें।
+0

आप वेबफॉर्म के साथ पोस्टबैक से कैसे बच सकते हैं? पोस्टबैक वेबफॉर्म मॉडल के बहुत ही कोर पर हैं। क्या इसका मतलब यह है कि आपके कोड में आपके पास एकमात्र कोड पृष्ठ लोड में है? –

+0

हां। यही वही है जिसका मतलब है। अंतिम परिणाम बहुत कम कोड-पीछे * अवधि * वाले पृष्ठ हैं, क्योंकि पृष्ठ के निर्माण से सीधे संबंधित कोई भी चीज़ अपने आप में, उद्देश्य-विशिष्ट वर्ग कहीं नहीं है। यह ... बहुत मुफ़्त है। – Shog9

+0

मुझे उस उपयोग के उदाहरण देखने में दिलचस्पी होगी - जब यह सिद्धांत में महान लगता है, कुछ चीजों को मूल रूप से सर्वर पक्ष, जैसे सत्यापन के रूप में करने की आवश्यकता होती है। – Dexter

-1

एक ही फ़ोल्डर में सभी फ़ाइलों से बहुत अधिक फ़ाइलों को रोकने के लिए संस्करण नियंत्रण और फ़ोल्डर संरचना का उपयोग करें।विंडोज एक्सप्लोरर को कुछ लोड करने की प्रतीक्षा करने से कहीं ज्यादा दर्दनाक नहीं है क्योंकि फ़ोल्डर में 1,000+ फाइलें हैं और फ़ोल्डर खोले जाने पर उन्हें सभी को लोड करना होगा। परिवर्तनीय चर और विधियों पर एक सम्मेलन भी संभव है यदि संभव हो तो आगे बढ़ना अच्छा है ताकि कोड का यह मिश-मैश न हो जहां विभिन्न डेवलपर सभी अपने अद्वितीय स्पर्श डालते हैं और यह दर्दनाक रूप से दिखाता है।

डिज़ाइन पैटर्न का उपयोग कोड व्यवस्थित करने और इसे अच्छी तरह से स्केल करने में सहायक हो सकता है, उदा। एक रणनीति पैटर्न एक आसान समय का कारण बन सकता है जब किसी को एक नया प्रकार का उत्पाद या डिवाइस जोड़ना होता है जिसे समर्थित होना चाहिए। कुछ एडाप्टर या मुखौटा पैटर्न का उपयोग करने के लिए इसी तरह।

आखिरकार, जानें कि आपके फॉर्म किस मानकों को बनाए रखने जा रहे हैं: क्या यह केवल आईई उपयोगकर्ताओं के लिए है या आईई, फ़ायरफ़ॉक्स, या सफारी में से कोई भी आसानी से फॉर्म लोड कर सकता है और अच्छा दिख सकता है?

3

बड़ी परियोजनाओं के साथ सबसे अच्छा सुझाव जो मैं आपको दे सकता हूं वह एक सामान्य डिजाइन पैटर्न का पालन करना है जो आपके सभी डेवलपर्स अच्छी तरह प्रशिक्षित और अच्छी तरह से जानते हैं। यदि आप एएसपी.नेट से काम कर रहे हैं तो मेरे लिए सबसे अच्छे दो विकल्प हैं:

ओ मॉडल व्यू प्रेजेंटर (though this is now Supervisor Controller and Passive View)। यह एक ठोस मॉडल है जो आपके उपयोगकर्ता इंटरफ़ेस और व्यावसायिक मॉडल के बीच पृथक्करण को दबाता है कि आपके सभी डेवलपर बिना किसी परेशानी के अनुसरण कर सकते हैं। परिणामस्वरूप कोड कहीं अधिक टेस्टेबल और रखरखाव योग्य है। समस्या यह है कि इसे लागू नहीं किया गया है और मॉडल को लागू करने के लिए आपको बहुत सारे सहायक कोड लिखने की आवश्यकता है।

ओ एएसपी.नेट एमवीसी इस के साथ समस्या यह है कि यह पूर्वावलोकन में है। मैंने तथम ओडी के साथ बात की और कहा कि यह बहुत स्थिर और प्रयोग योग्य है। मुझे यह पसंद है, यह चिंताओं के पृथक्करण को लागू करता है और डेवलपर के लिए न्यूनतम अतिरिक्त कोड के साथ ऐसा करता है।

मुझे लगता है कि जो भी मॉडल आप चुनते हैं, सबसे महत्वपूर्ण बात यह है कि मॉडल रखना और यह सुनिश्चित करना कि आपके सभी डेवलपर उस मॉडल से चिपकने में सक्षम हैं।

0

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

यहाँ देखें: Presentation Model

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