2012-01-30 14 views
14

एक प्रोजेक्ट समाधान के भीतर क्षेत्र लागू करना जब आपके पास बहुत से नियंत्रक अलग-अलग होते हैं और मॉड्यूल को समाधान में या बाहर आसानी से कॉपी करने की अनुमति देता है। हालांकि एक बड़े उद्यम समाधान में मैं तर्क को अलग-अलग परियोजनाओं में विभाजित करने का पक्ष लेगा।उद्यम के लिए एमवीसी क्षेत्र - अच्छा या बुरा?

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

शायद क्षेत्र मध्यम जटिलता साइटों के लिए अच्छे हैं या जब एक स्थान में मॉड्यूल कोड बेहतर रखा जाता है तो इसे अन्य साइटों पर कॉपी या हटाया जा सकता है।

+1

शायद यह कुछ हित में हो सकता है: http://stackoverflow.com/questions/6656843/how-to-reuse-areas-controllers-views-models-routes-in-multiple-apps-or-websi। यह आपको अपने कोड को कई परियोजनाओं में अलग करने की अनुमति देगा। –

+0

मुझे लगता है कि आप जो खोज रहे हैं वह पोर्टेबल क्षेत्र है, सामान्य क्षेत्रों में नहीं। –

उत्तर

13

मुझे यकीन नहीं है कि यह सही सवाल है या नहीं। क्षेत्र छोटी परियोजनाओं के लिए अधिक हो सकता है, लेकिन कक्षाओं को व्यवस्थित रखने में मदद के लिए क्षेत्रों का उपयोग न करने वाली गैर-छोटी परियोजनाओं की कल्पना करना मुश्किल है।

मैं उद्यम के लिए MVC क्षेत्रों का उपयोग करें और यह के बारे में कई बातें प्यार:

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

आप बिल्कुल सही है कि सेवाओं, ऐसा माहौल कई ग्राहकों सामान्य व्यावसायिक कार्यक्षमता का उपयोग कर सकते में, अलग परियोजनाओं/समाधान पूरी तरह, खजाने के माध्यम से है कि सार डेटा का उपयोग में होना चाहिए रहे हैं।

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

+0

+1, क्षेत्रों का उपयोगी क्यों है इसका उत्कृष्ट अवलोकन। – kprobst

1

सबसे पहले, मुझे जवाब देने से पहले कि यह सिर्फ मेरी राय है और यह मुख्य रूप से मॉडल के बारे में है।

जिस तरह से मैं इसे देखता हूं, क्षेत्र केवल इतना बुरा हो सकता है .. यदि आपके पास कई समाधान हैं तो आपका समाधान एक्सप्लोरर भूलभुलैया बन जाता है, और कुछ ढूंढना मुश्किल हो सकता है।

मैं आपके समाधान के अंदर एक नई लाइब्रेरी प्रोजेक्ट बनाने का सुझाव देता हूं, और वहां तर्क डालता हूं।

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

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