2009-05-27 4 views
5

हम एक बहुत बड़े लंबवत बाजार वेब अनुप्रयोग विकसित करेंगे, और एमवीसी दृष्टिकोण की तरफ झुक रहे हैं।छोटे वृद्धिशील टुकड़ों में तैनाती के लिए बड़े एमवीसी अनुप्रयोग की संरचना, विभाजन, और निर्माण कैसे करें?

इसमें 1 मास्टर पेज आवेदन के सभी विचारों के लिए आम होगा। मास्टर पूरे एप्लिकेशन के लिए एक नेविगेशन/खोज ढांचा प्रदान करेगा जो उपयोगकर्ताओं को खोजने और इकाइयों का चयन करने और फिर कार्य करने के लिए एक फ़ंक्शन पर नेविगेट करने की अनुमति देगा।

डेटाबेस मॉडल में 700 से 1000 टेबल होंगे। आवेदन में सैकड़ों नियंत्रक होंगे।

नियंत्रकों और उनके विचारों को एप्लिकेशन में कई (20-50) उपप्रणाली में से एक में समूहीकृत किया जा सकता है। (हम संगठन में सहयोगी के लिए एक क्षेत्र के दृष्टिकोण को देख रहे हैं)।

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

हमने एक बड़े विंडोज़ vb ऐप exe को विकसित/समर्थन और वितरित करने में बहुत सालों बिताए। हम एक और दृष्टिकोण लेना चाहते हैं।

प्रबंधन एक बड़ा आवेदन नहीं देना चाहता है। वे आवश्यक होने पर छोटे वृद्धिशील टुकड़े वितरित करने में सक्षम होना चाहते हैं।

हम एक डिलिवरेबल बनाना चाहते हैं जिसमें एक नियंत्रक, और केवल कुछ विचार, और मॉडल का एक हिस्सा शामिल हो।

इसे वितरित करने के लिए, हम एक बिन फ़ोल्डर में एक डीएलएल कॉपी करना चाहते हैं, और एक व्यू फ़ोल्डर बनाएं और नए दृश्य में कॉपी करें। यथासंभव सरल!

मैंने कई बार शोध किया है और आगे बढ़ने के लिए एक स्पष्ट मार्ग के साथ नहीं आया है। (प्रत्येक ट्यूटोरियल और आलेख मैंने पाया एक एकल प्रोजेक्ट।)

हम इसे पूरा करने के लिए एप्लिकेशन को कैसे बना सकते हैं?

हम इसे करने के लिए अलग परियोजनाओं/असेंबली में एप्लिकेशन को कैसे तोड़ सकते हैं?

क्या आप एक मूल परियोजना बना सकते हैं जिसमें मास्टर पेज, प्रमाणीकरण और ग्लोबल रूटिंग, शामिल है और फिर प्रत्येक मॉड्यूल के लिए संभावित रूप से सैकड़ों अन्य परियोजनाओं में से प्रत्येक में इसका संदर्भ लें?

विकास में, क्या प्रत्येक उप-प्रोजेक्ट में संपूर्ण बेस प्रोजेक्ट, या केवल साझा दृश्य फ़ोल्डर, ग्लोबल रूटिंग, और web.config और बेस प्रोजेक्ट डीएल का संदर्भ होना आवश्यक है?

इस दृष्टिकोण को समझाते हुए कोई भी विवरण दस्तावेज़?

कोई भी विकास/परीक्षण समस्याएं?

सभी इनपुट के लिए धन्यवाद, हमें इसे जल्द ही जाना होगा।

अद्यतन:

यहाँ link text

यह एक महान शुरुआती बिंदु है उदाहरण के बाद!

+0

मैं अब कुछ होमवर्क करूँगा। अगर किसी के पास विशिष्ट कागजात, नमूने, ट्यूटोरियल हैं, तो कृपया संकोच न करें। पिछले कुछ हफ्तों में मैंने अपने कीबोर्ड पर एम, वी, और सी पहना है। –

+0

SY - आप क्या कर रहे थे? –

+0

लकीलिंडी - हम क्षेत्र का उपयोग कर रहे हैं। यह फिलहाल एमवीसी 2 बीटा में बहुत अच्छी तरह से काम कर रहा है। हमारे पास एक अभिभावक परियोजना है, और प्रत्येक एप्लिकेशन एक बाल परियोजना है। प्रत्येक बच्चे ऐप का डीएल पेरेंट बिन में तैनात किया जाता है, और बच्चे के विचार मैन्युअल रूप से अभिभावक में क्षेत्र फ़ोल्डर संरचना में कॉपी किए जाते हैं। –

उत्तर

0

एमईएफ के साथ एमवीसी के लिए Google पढ़ने से शुरू कर सकते हैं। एमईएफ टीम में से एक का एक उदाहरण है जो आपकी आवश्यकताओं के अनुरूप होगा।

+0

दिलचस्प ... मुझे इसे देखना होगा। यूआरएल है - http://blogs.msdn.com/hammett/archive/2009/04/23/mef-and-asp-net-mvc-sample.aspx – GuyIncognito

+0

एक है। मैं आईफोन पर था या मैं इसे आपके लिए गुगल कर दूंगा। – Burt

+0

यह सच होने के लिए बहुत अच्छा लगता है। मैं निश्चित रूप से इसे देख लूंगा। क्या यह वास्तव में 500 प्लगइन को संभालने का मतलब है? धन्यवाद! –

1

मुझे लगता है कि यह वही मामला है जहां डीएलआर मदद करेगा। आपके नियंत्रक और दृश्य डेटाबेस में स्क्रिप्ट के रूप में संग्रहीत किया जा सकता है। "छोटे कार्यात्मक टुकड़ों" के सेट के रूप में अपने आवेदन को वितरित करना बहुत आसान होगा। आप Haacked - Scripting ASP.NET MVC Views Stored In The Database

+0

धन्यवाद। यह देखने के लिए कुछ हो सकता है, लेकिन मैं शुरुआत में इस परियोजना को तोड़ने के तरीके को देख रहा हूं। –

1

बिल्कुल, अपने नियंत्रकों वाले उप-परियोजनाओं/मॉड्यूल में परियोजना को तोड़ दें। आप बाल परियोजनाओं में अपने उपयुक्त नियंत्रकों का पता लगाने के लिए एक आईओसी कंटेनर जैसे यूनिटी, स्प्रिंग.Net, या कैसल विंडसर का उपयोग कर सकते हैं।

आईओसी कंटेनर में नियंत्रक लुकअप करने के लिए अपने स्वयं के आईसींट्रोलर फैक्टरी को कार्यान्वित करने के लिए इसे नियंत्रित करने वाले नियंत्रक नाम के आधार पर कार्यान्वित करें।

public IController CreateController(RequestContext requestContext, string controllerName) 
{ 
    return (IController)IoCContainer.GetObjectByName(controllerName); 
} 

तो फिर तुम बस के रूप में वे तैनात किया गया है अपने नए नियंत्रकों परिभाषित करने के लिए अपने आईओसी विन्यास फाइल को संशोधित करने में सक्षम होना चाहिए: आप जगह में एक IControllerFactory.CreateController विधि है कि तरह दिखता है डाल करने के लिए देख रहे हैं।

+0

ग्रेट। (मैंने सोचा कि मैं पूरी एमवीसी अवधारणा के साथ थोड़ा अभिभूत था, अब जब मैं गहरी खुदाई करता हूं ...) करने के लिए और अधिक होमवर्क, लेकिन इनपुट के लिए धन्यवाद। –

+0

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

+0

+1 यह स्पष्ट रूप से हमारे समग्र आवेदन के लिए जाने का तरीका है। प्रारंभिक विचार नियंत्रक जोड़ने के लिए एक गतिशील दृष्टिकोण था जो एमईएफ करता है। हम मुख्य आवेदन के लिए आईओसी कंटेनर का मूल्यांकन करेंगे, और एमईएफ से परे कई अन्य लाभ प्रदान करेंगे। इनपुट के लिए धन्यवाद! –

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