2010-08-11 13 views
31

जेआरबेल जावा के लिए एक उपकरण है जो स्वचालित रूप से कक्षाओं के नए संस्करणों में चल रहे JVM में स्वैप कर सकता है। न केवल विधि कार्यान्वयन बदल सकते हैं, नए जोड़ने या मौजूदा विधियों को हटाने के लिए, और फ़ील्ड को जोड़ने/निकालने के लिए, उनके हस्ताक्षर बदलना भी संभव है। एकमात्र चीज जो ऐसा नहीं कर सकती है, वह वर्ग पदानुक्रम को फ्लाई-ऑन-फ्लाई में बदलने की इजाजत देता है। यह विशेष रूप से वेब ऐप विकास के लिए एक असली वरदान है।क्या .NET के लिए जेआरबेल की तरह कुछ भी है?

क्या मुझे .NET के लिए कुछ भी मिल सकता है?

+1

एप्लिकेशन की फ़ाइलों को अपडेट करते समय Asp.Net की संपूर्ण एप्लिकेशन को हॉट-स्वैप करने की क्षमता क्या है? –

+0

जेआरबेल पूरे एप्लिकेशन को पुन: संकलित किए बिना ऐसा कर सकता है। इसका मतलब है कि उपयोगकर्ता के रूप में आप उदाहरण के लिए सत्र जानकारी खोना नहीं चाहते हैं। मुझे यकीन नहीं है कि एएसपी.नेट पृष्ठ-दर-पृष्ठ आधार पर ऐसा कर सकता है क्योंकि सभी पृष्ठों को एक एकल डीएल में संकलित किया जाता है। क्लासिक एएसपी.नेट में पोस्टबैक की प्रकृति को ध्यान में रखते हुए आप शायद पूरे एप्लिकेशन को पुन: सम्मिलित करने पर भी इसे तोड़ देंगे। – stombeur

+0

किसी को "नो" के बजाय इस प्रश्न का उत्तर देना चाहिए, लेकिन विकास वर्कफ़्लो के साथ जो iisexpress को पुनरारंभ करना या जो भी वेब सर्वर आप उपयोग कर रहे हैं उसे कम करता है। उदाहरण के लिए, इकाई परीक्षण अधिक - जब आप इसे किसी वेब सर्वर में चलाते हैं तो आपका कोड अधिक ठोस होगा। – Jess

उत्तर

0

वैसे वीएस 2005 के बाद से सुविधा में एक निर्माण है जिसे "संपादित करें और जारी रखें" कहा जाता है। आप एक नज़र डाल सकते हैं ... http://msdn.microsoft.com/en-us/library/ms379578(VS.80).aspx

मुझे लगता है कि यह जेरेबेल के रूप में परिष्कृत नहीं है।

+7

वास्तव में संबंधित नहीं है, और ई एंड सी वास्तव में यह सुविधा नहीं है कि यह कितनी बुरी तरह कार्यान्वित किया गया है और यह कितना बेकार है। –

+1

जेआरबेल क्या कर रहा है संपादन और जारी रखने से काफी अलग है। ई एंड सी एक ऐसी सुविधा है जिसे आप केवल एक के लिए डिबगिंग के दौरान उपयोग कर सकते हैं। और सबसे बड़ा अंतर यह है कि आप आईआईएस (या बेकार वेब विकास सर्वर) में होस्ट किए गए वेब एप्लिकेशन के लिए संपादित करें और जारी रखें का उपयोग नहीं कर सकते हैं। मुझे लगता है कि सबसे बड़ा अंतर बाद वाला है। यदि आप एक बड़े वेब अनुप्रयोग का विकास कर रहे हैं बिल्ड/रीडियोजन चक्र समय की सबसे बर्बादी है। – tbaskan

+3

यह बहुत बुरा है यह 64-बिट में काम नहीं करता है। मेरी इच्छा है कि माइक्रोसॉफ्ट उस पर मिलेगा ... –

-1

जो समान है, लेकिन इस binaries के पुनर्निर्माण की आवश्यकता है और निष्पादन के दौरान कोड को बदल नहीं सकते Rebel.NET नहीं है।

0

प्रतिबिंब नेट में बनाया गया है और उन चीजों के सबसे करने के लिए सक्षम होना चाहिए (लेखन/रनटाइम पर बातें फेरबदल)।

यह रूप में पॉलिश हो सकता है और JRebel के रूप में तैयार कार्य करने नहीं जा रहा है, लेकिन फिर दो चौखटे विभिन्न संरचनाओं के साथ शुरू करने के लिए है। समकक्षों के रूप में उनके बारे में सोचना यथार्थवादी नहीं हो सकता है।

IMHO, एक मानक अभ्यास के रूप में क्रम प्रतिस्थापन मेरे लिए भ्रष्ट क्रम एक अच्छा तरीका की तरह लगता है। यदि आपको इस हॉट स्वैपिंग कार्यक्षमता की आवश्यकता है, तो शायद आप एक संकलित की बजाय एक व्याख्या की गई भाषा चुनने से बेहतर हैं।

इसके अलावा, सत्र आमतौर पर बचने के लिए कुछ होता है। यदि आपको इसे एएसपी.नेट के लिए उपयोग करना है, तो आप प्रक्रिया में से एक के बजाय कुछ अलग-अलग बॉक्स प्रदाताओं का उपयोग कर सकते हैं, या इसके बजाय प्रोफाइल का भी उपयोग कर सकते हैं। MSDN page for state manangement

2

नेट दुनिया में ऐसी कोई चीज़ नहीं है .. इतना शक्तिशाली नहीं .. संपादन और जारी रखने जैसी कुछ चीजें हैं लेकिन यह जावा में "हॉट प्रतिस्थापन" की तरह है और कुछ भी नहीं। समस्या .NET में है। आपके पास .dll का पूरा मॉडल है जो उनके संस्करणों और विशिष्ट संस्करणों को इंगित करने वाले डीएलएस के बीच निर्भरता है, इसलिए सभी को बदले बिना डीएल को प्रतिस्थापित करना संभव नहीं है।

एक वैकल्पिक हल वर्गों के संकलन की तरह कुछ हो जाएगा, विधानसभा की टन जोड़ने पुनर्निर्देश, किसी भी तरह अनलोड और पुराने dll लोड करता है, लेकिन यह एक कठिन का नरक है।

ध्यान रखें कि जावा में "मॉड्यूल" JSR के बाद शायद जावा 9 में कार्यान्वित किया जाता हम JRebel रूप में अच्छी तरह नहीं होगा।

2

अभी तक नेट के लिए ऐसी कोई चीज़ नहीं है। इस बीच, आप एनसीआरंच (http://www.ncrunch.net/) का प्रयास कर सकते हैं, जो पृष्ठभूमि में आपके परीक्षण चला रहा है और जिस क्षण आप ब्रेक करते हैं या टेस्ट पास करते हैं, परीक्षण परिणामों में इसकी सूचना दी जाती है, इसलिए आपको पुनर्निर्माण और परीक्षण की प्रतीक्षा करने की आवश्यकता नहीं है निष्पादन के रूप में यह वास्तविक समय में हो रहा है।

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