मैंने एक क्लाइंट के लिए ASP.NET WebForms पोर्टल लिखा है। परियोजना शुरू से ही ठीक से योजनाबद्ध और संरचित होने के बजाय विकसित हुई है। नतीजतन, एक ही परियोजना के भीतर और बिना किसी परत के सभी कोड एक साथ मैश हो जाते हैं। क्लाइंट अब कार्यक्षमता से खुश है, इसलिए मैं इस तरह के कोड को फिर से भरना चाहूंगा कि मैं परियोजना को जारी करने के बारे में आश्वस्त रहूंगा। जैसा कि आर्किटेक्चर को डिजाइन करने के कई अलग-अलग तरीके हैं, मुझे लगता है कि सबसे अच्छे दृष्टिकोण के बारे में कुछ राय लेनी चाहिए।
कार्यक्षमता
पोर्टल HTML टेम्पलेट को कॉन्फ़िगर करने के लिए प्रशासकों को अनुमति देता है। अन्य संबद्ध "साझेदार" इन टेम्पलेट्स को अपनी साइट पर IFrame कोड जोड़कर प्रदर्शित कर सकेंगे। इन टेम्प्लेट के भीतर, ग्राहक उत्पादों को पंजीकृत और खरीद सकते हैं। डब्ल्यूसीएफ का उपयोग करके एक एपीआई को लागू किया गया है जिससे बाहरी कंपनियों को भी सिस्टम के साथ इंटरफेस करने की अनुमति मिलती है। एक व्यवस्थापक अनुभाग प्रशासकों को विभिन्न कार्यक्षमता को कॉन्फ़िगर करने और प्रत्येक साथी के लिए रिपोर्ट देखने की अनुमति देता है। सिस्टम ग्राहकों को चालान और ईमेल सूचनाएं भेजता है।
वर्तमान वास्तुकला
यह वर्तमान में डेटाबेस को पढ़ने / लिखने के लिए EF4 का उपयोग कर रहा है। EF ऑब्जेक्ट्स का उपयोग सीधे aspx फ़ाइलों के भीतर किया जाता है। जब मैंने साइट लिखी है तो इसने तेजी से विकास किया है लेकिन संभवतः इसे इस तरह से रखना अस्वीकार्य है क्योंकि यह UI के साथ db को कसकर युग्मित कर रहा है। विशिष्ट व्यावसायिक तर्क को EF ऑब्जेक्ट्स के आंशिक वर्गों में जोड़ा गया है।
प्रशन
रिफैक्टरिंग का लक्ष्य साइट को स्केलेबल, आसानी से बनाए रखने योग्य और सुरक्षित बनाना होगा।
इसके लिए किस तरह की वास्तुकला सबसे अच्छी होगी? कृपया वर्णन करें कि प्रत्येक परत में क्या होना चाहिए, क्या मुझे DTO / POCO / सक्रिय रिकॉर्ड पैटर्न आदि का उपयोग करना चाहिए
क्या डीटीओ / बीओ को ऑटो-जेनरेट करने का एक मजबूत तरीका है ताकि अतिरिक्त परतों के बावजूद भविष्य में किसी भी एन्हांसमेंट को लागू करना आसान हो?
क्या WebForms से MVC में प्रोजेक्ट को बदलना फायदेमंद होगा?