2010-05-21 17 views
5

मैं एक ऐसा एप्लिकेशन बनाए रख रहा हूं जो वर्तमान में केवल एक वेब सेवा (डब्ल्यूसीएफ के साथ बनाया गया) और डेटाबेस बैकएंड है। वेब सेवा एक लिनक्स-टू-एसक्यूएल डेटा एक्सेस पार्ट के साथ परतों में बनाई गई है जिसमें एक स्वयं की असेंबली में कोर कार्यक्षमता है और उस पर वेब सेवा असेंबली है जिसमें डब्ल्यूसीएफ कोड शामिल है। मूल असेंबली सभी व्यावसायिक तर्क नियमों को भी संभालती है (वास्तव में बहुत कम)।नए एएसपी.नेट वेब अनुप्रयोग के लिए आर्किटेक्चर

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

कुछ अवधारणाओं के बारे में मैं सोचा है कर रहे हैं:

  • ASP.NET MVC (या MVC-2)
  • वेबफ़ॉर्म
  • AJAX को नियंत्रित करता है - संभवतः AJAX के नियंत्रण के माध्यम से मौजूदा वेब सेवा का उपयोग Leting JSON।

क्या कोई और अवधारणाएं मुझे देखना चाहिए? ताजा परियोजना के लिए कौन सा सबसे अच्छा है?

विकास उपकरण डेवलपर्स को लक्षित करने वाले डेवलपर्स के लिए विजुअल स्टूडियो 2008 टीम संस्करण हैं .NET 3.5। विजुअल स्टूडियो 2010 प्रीमियम (या शायद यहां तक ​​कि अल्टीमेट) में अपग्रेड करना संभव है यदि यह कोई लाभ देता है।

+0

मैं नेट 4 का उपयोग करता है, तो यह सब एक विकल्प पर है सुझाव है। WinForms और डब्ल्यूसीएफ में बहुत सारे सुधार हुए हैं। – R0MANARMY

+0

@ R0MANARMY क्या आप डब्ल्यूसीएफ/विनफॉर्म के लिए सुधार सूचीबद्ध स्रोत प्रदान करेंगे? –

उत्तर

11

अंदर WebForms पर MVC उपयोग करने के लिए निश्चित रूप से ASP.NET MVC2 में खुदाई।

हमारी सभी परियोजनाएं अब एएसपी.नेट एमवीसी 2 का उपयोग करके विकसित की जा रही हैं। यह सिर्फ स्केलेबल नहीं है। यह परीक्षण योग्य भी है। जो लंबी अवधि में बेहतर रखरखाव योग्य तरीके से आगे बढ़ता है।

WebForms MVC2 अंक बनाम - (अनुभव से बोल रहा है):

अनुमापकता:

हमारी कंपनी में हम WebForms फिर अपडेट की गई और बदल रहे थे जो हमारे द्वारा उपयोग करते हुए आवेदनों की एक बहुत था की जरूरत के रूप में हमारे ग्राहकों द्वारा।

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

और आने वाले Cloud Computing और Windows Azure मंच के साथ आपको शायद अपने कोड को जारी रखने की आवश्यकता होगी।

एएसपी.नेट एमवीसी पूरी तरह से आपके आवेदन को स्केल करने में सक्षम होने की अवधारणा का समर्थन करता है।

मुझे याद है कि हमारे एक ग्राहक ने मुझे अपने ऐप के विस्तार के लिए पूछने के लिए कहा है (उनके पास सदस्य प्रबंधन प्रणाली है) और इस सुविधा में वर्तमान दृश्य को csv फ़ाइल के रूप में निर्यात करने के लिए एक लिंक की तरह कुछ होगा। इसके साथ कार्यालय सामान कर सकते हैं (ज्यादातर धारावाहिक पत्र)।

यह वास्तव में उस सुविधा को स्थापित करने में एक बड़ी समस्या नहीं थी। (परीक्षण लेखन सहित लगभग 2 घंटे लगे) - का परीक्षण करने के लिए चलते हैं:


Testability:

WebForms का उपयोग करते हुए हम वास्तव में बहुत रुचि लेखन परीक्षण नहीं था क्योंकि यह करने के लिए एक शुद्ध दर्द था इसलिए। मुझे कम से कम कुछ सबूत रखने के लिए कुछ परीक्षण लिखना याद है लेकिन चलो उस विषय को छोड़ दें .. (: पी)

हमने अपने कस्टम वर्गों के लिए परीक्षण किए थे लेकिन हम वास्तव में वेबफॉर्म के भीतर सभी ईवेंट हैंडलर का परीक्षण नहीं कर सके।

हमारे कोडबेस इस टेस्टेबल वातावरण के लिए धन्यवाद का उपयोग करने के लिए क्लीनर और सेवर है। मैं बस कुछ कोड देखता हूं, इसे संशोधित करता हूं, सभी परीक्षण चलाता हूं और: ओह, यह अजीब व्यवहार पर टूट गया! चलो इसे फिर से ठीक करें। इससे पहले, मुझे अपने सह-कार्यकर्ता डीबगिंग के साथ बैठना और उन बगों को घंटों तक ढूंढने की कोशिश करना याद है।

एएसपी.नेट एमवीसी 2 के साथ हम अब परीक्षणों की कमी कर रहे हैं! हम परीक्षण के मामले प्रदान करने के लिए सभी प्रकार के लोगों (यहां तक ​​कि गैर-वेब) से पूछते हैं कि हम अपने TestSuite में फ़ीड कर सकते हैं।

और हाँ, वहाँ कुछ AJAX-नियंत्रण भी कर रहे हैं:


AJAXability:

आप AJAX के नियंत्रण के बारे में पूछा और ASP.NET MVC के साथ संयोजन के रूप में मैं अत्यधिक की जाँच करने के लिए आप की सिफारिश Telerik ASP.NET MVC UI Controls

हैं कि आप के लिए कुछ नहीं है, हम भी jQuery और jQuery UI

ASP.NET MVC और HTML दृश्य के साथ के व्यापक उपयोग करते हैं, उन पुस्तकालयों सिर्फ एक खुशी का उपयोग नहीं कर रहे हैं, वे सिर्फ देखने के लिए अद्भुत रूप से सुंदर।

अब random-html-tag-id-value ऑटोजननरेशन नहीं है!

लेकिन मुझे सबसे ज्यादा पसंद है: आप वास्तव में फिर से अपना कोड दोबारा उपयोग कर सकते हैं।


टी 4 टेम्पलेटिंग सिस्टम की तुलना में उन ढांचे के लिए बहुत कुछ है। अपने ViewModels के लिए ऑटो-मचान/DomainModels Html.EditorFor() विधि के साथ और निश्चित रूप से वहाँ एक महान और आसान तरीका IoC और DI मानदंड का उपयोग करने के लिए है।

मान लीजिए कि आपने ज्यादातर .NET Framework संबंधित टैग के साथ प्रश्न पूछा है, तो आप शायद इसके साथ चिपके रहेंगे।

बस पोस्ट पूरा रखने के लिए, वहाँ भी अन्य चौखटे कि बस के रूप में अच्छा (या और भी बेहतर कर रहे हैं) कर रहे हैं:

And many many more!

+0

+1। –

1

DynamicData भी है जो उचित हो सकता है यदि आपको अपने डेटा पर सरल सीआरयूडी पहुंच की आवश्यकता हो।

+0

डायनामिकडाटा दिलचस्प लग रहा है, लेकिन दुर्भाग्य से इस परियोजना में मेरी ज़रूरतें डीबी में सटीक इकाइयों के आधार पर सरल सीआरयूडी की तुलना में थोड़ा अधिक उन्नत हैं। –

-1

बस मेरी राय ग्राहक साइटों और प्रशासन पृष्ठों (साइट)

+0

यदि आपके पास कोई इनपुट/एचटीएमएल सम्मेलन है तो आप उन्हें अपने व्यवस्थापक अनुभाग में उपयोग करने में सक्षम नहीं होंगे। इसके अलावा आपको अपने सीएसएस को दोनों वर्गों में काम करने में कठिनाई हो सकती है। क्या होगा यदि आप प्रमाणीकरण फ़िल्टर के साथ सुरक्षा कर रहे थे? आप WebForms अनुभाग में उन लोगों का उपयोग कैसे करेंगे? (निश्चित रूप से यह संभव है, लेकिन एमवीसी के साथ यह "बस काम करता है"।) एक तकनीक चुनना और इसके साथ चिपकना सबसे अच्छा है जब तक कि आपके पास एक बहुत ही विशिष्ट उपयोग केस नहीं है जिसके लिए कुछ अलग होना आवश्यक है। स्पष्टीकरण और प्रेरणा के साथ एक महान अवलोकन के लिए – Ryan

0

Web Service Software Factory (WSSF) आपकी स्थिति में आसान हो सकता है।

यह डब्ल्यूसीएफ (या मानक वेब सेवा संचार प्रोटोकॉल) का उपयोग कर सर्वर/क्लाइंट संचार को डिजाइन करते समय आपको अपने अनुबंध (एक्सएमएल इकाई लौटाया गया है (यदि आप चुनते हैं एक्सएमएल) इत्यादि को परिभाषित करने की अनुमति देंगे)।

WSSF एहसान या तो ASP.NET MVC या ASP.NET MVPMVP आर्किटेक्चर का एक साधारण उदाहरण दिखाया गया है here, प्लस this article

मेरे लिए, मैं अक्सर MVC और MVP दोनों का एक बिट का उपयोग कर एक संकर की तरह वास्तुकला के साथ आते हैं, के रूप में दोनों अलग मजबूत अंक है जो एक साथ एक-दूसरे के सुधार अंक भरने संयुक्त है।

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