2010-02-17 20 views
5

मैं वर्तमान में अपने सभी वर्गों के लिए App_Code फ़ोल्डर का उपयोग करता हूं, और मेरे लिए (अभी के लिए) ऐसा लगता है कि यह ठीक काम कर रहा है।कक्षा पुस्तकालय परियोजना वीएस App_Code - पेशेवर/विपक्ष?

हालांकि मैं App_Code फ़ोल्डर के बजाय अपने समाधान के अंदर कक्षा लाइब्रेरी प्रोजेक्ट पर स्विच करने पर विचार कर रहा हूं। क्या कोई मुझे ऐसा करने के पेशेवरों और विपक्ष बता सकता है?

एक विचार मैंने अपने वेब ऐप का परीक्षण करने के संबंध में किया था। यदि मैं कक्षा पुस्तकालय का उपयोग करता हूं, तो क्या मुझे इसे हर बार संकलित करना होगा जब मैं ट्विक/टेस्ट करना चाहता हूं? स्पष्ट रूप से App_Code फ़ोल्डर में मुझे सभी कक्षाओं को रनटाइम पर संकलित करने की आवश्यकता नहीं है।

+0

http://stackoverflow.com/questions/398037/asp-net-web-site-or-web- appplication – womp

उत्तर

6

आपको कक्षा पुस्तकालय का उपयोग करना चाहिए। कारण सरल हैं।

आप यूआई से अपना व्यवसाय या एप्लिकेशन तर्क हटाना चाहते हैं। App_Code फ़ोल्डर उन वर्गों के लिए है जो केवल यूआई से निपटते हैं।

अलगाव का कारण टायर बनाना है। मतलब आज आपके पास एक वेबसाइट है, टॉमोरो आपको विंडोज प्रोग्राम बनाने या एक नई वेबसाइट बनाने के लिए कहा जा सकता है। अगर आपको अपना यूआई बदलना है तो आप कोड कॉपी और पेस्ट करने जा रहे हैं। इसका मतलब है कि कोड को बनाए रखने के लिए अब आपके पास 2 या अधिक स्थान हैं। यह 2 या अधिक स्थानों में एक ही बग को ठीक करने, गरीब कोड गुणवत्ता का कारण बन जाएगा।

यदि आप अपना कोड लाइब्रेरी में रखते हैं। आप एक नया यूआई बनाते हैं और फिर लाइब्रेरी का संदर्भ देते हैं। अब आप केवल कोड के 1 सेट का उपयोग कर रहे हैं।

+0

यह एक अच्छा जवाब है, और एक जो सही समझ में आता है। ऊपर दिए गए मेरे प्रश्न में मैंने कक्षा पुस्तकालय को परीक्षण करते समय संकलित करने का उल्लेख किया है ... क्या इसके आसपास कोई रास्ता है? –

+0

तो जवाब यह है कि जब भी मैं ट्विक या मोड करता हूं तो मुझे इसे संकलित करना पड़ता है? –

+0

यदि आपने इसे नहीं बदला है तो आपको व्यवसाय तर्क को संकलित करने की आवश्यकता नहीं है। संकलन में इतना समय नहीं लगता है और यह आपके यूआई परत में अपना पूरा कोड रखने का एक अच्छा कारण नहीं है। –

0

Jimmy Bogard (ऑटोमैपर के लेखक) ने एक उत्कृष्ट article लिखा है कि वह अपने कोड को कैसे संरचित करता है, जो @ डेविड के उत्तर की पुष्टि करने में सहायता कर सकता है।

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