2009-08-05 22 views
6

ठीक है, मुझे पता है कि जावा एक भाषा है लेकिन किसी ने मुझसे पूछा है कि क्या वे एएसपी.NET में लिखे गए वेब ऐप के साथ इंटरफेस के लिए एक वेब एप्लिकेशन लिख सकते हैं। मैं एक एक्सएमएल की सेवा के लिए एक वेब सेवा लागू कर रहा हूं, इसलिए यह सुंदर भाषा अज्ञेयवादी है।जावा को वेब ऐप के रूप में चलाना

हालांकि, मुझे 100% यकीन नहीं है कि जावा रूट पर जाने से बहुत सारी समझ हो जाती है। मैं कुछ एजेक्स/जावास्क्रिप्ट या शायद जेस्क्रिप्ट का उपयोग कर एक भारी क्लाइंट जावास्क्रिप्ट प्रोग्राम के साथ PHP या ASP.NET सर्वर साइड कोड की अपेक्षा कर रहा था।

क्या कोई वेबपैप्स के साथ आता है तो मूल जावा पर्यावरण को समझा सकता है? मैंने निम्नलिखित अनुमान लगाए हैं - क्या मैं सही पेड़ को भड़क रहा हूं?

  • जावा जब ASP.NET की तरह चलाने JSP
  • JavaBeans कहा जाता है, नेट ढांचे की तरह एक सा है यानी यह फिर से प्रयोग करने योग्य घटकों की लाइब्रेरी है
  • जावा ईई ASP.NET की तरह एक सा है कि यह एक सर्वर
  • जावा भी ग्राहक पर चला सकते हैं पर वेब पेज का निर्माण के लिए एक रूपरेखा है, लेकिन यह जावा वी एम स्थापित करने

जब क्लाइंट पर जावा चल रहा है, आप JavaBeans का उपयोग करें और है कर सकते हैं कि वहाँ एक की जरूरत है ढांचा? क्या यह जेस्क्रिप्ट का भी उपयोग कर सकता है? मुझे ऐसा नहीं लगता क्योंकि जेस्क्रिप्ट जावास्क्रिप्ट लाइब्रेरी है।

सर्वर पर जावा चलाने के दौरान ठीक है, यह अपेक्षाकृत छोटा एप्लीकेशन है और इसलिए जावा थोड़ी अधिक ओवरकिल की तरह लगता है। PHP या एएसपी.नेट एक बेहतर फिट महसूस करता है।

लेकिन मुझे नहीं लगता कि उन्हें ब्राउज़र में जावा एप्लेट नीचे जाना चाहिए और यह जटिलता को जोड़ता है जिसकी आवश्यकता नहीं है।

उत्तर

11

के कुछ शब्दों को परिभाषित करने की कोशिश करते हैं (जरूरी नहीं 100% सही है, लेकिन समझ में आता है)

  • जावा: बहुत कुछ किया जा सकता है: भाषा, JVM, मंच, विचार, ...
  • जावा एसई: जावा मानक संस्करण: "सामान्य" जावा के रूप में इसका उपयोग डेस्कटॉप अनुप्रयोगों को चलाने के लिए किया जाता है। इसे पहले "जावा 2 एसई" और "जे 2 एसई" के रूप में जाना जाता है।
  • जावा ईई: जावा एंटरप्राइज़ संस्करण। वेब अनुप्रयोगों और अन्य जटिल जानवरों के विकास के लिए एंटरप्राइज़-स्तरीय ढेर (घटकों के टन शामिल हैं)। इसे पहले "जावा 2 ईई" और "जे 2 ईई" के रूप में जाना जाता है।
  • जेएसपी: जावा सर्वर पेजेस। एक ऐसी भाषा जो जावा स्क्रिप्टलेट के साथ HTML/XML सामग्री को मिश्रित करने की अनुमति देती है। एएसपी.नेट के बराबर काफी बराबर है।
  • जावा बीन्स (नोट: "जावाबीन्स" नहीं): बल्कि हल्के वजन विनिर्देश जो कि वर्णन करता है कि कक्षाएं कैसे लिखी जानी चाहिए ताकि उनकी गुणधर्म और विधियों को स्वचालित रूप से खोजा जा सके। एंटरप्राइज़ जावा बीन्स (ईजेबी)
  • एंटरप्राइज़ जावा बीन्स/ईजेबी: जावा बीन्स के बहुत अधिक जटिल बड़े भाई के साथ भ्रमित नहीं होना चाहिए। आपको अपने आवेदन के कुछ हिस्सों को समाहित करने की अनुमति देता है। उपयोग करने के लिए बहुत जटिल और बोझिल (हाल के संस्करणों में थोड़ा बेहतर हो गया है, लेकिन यह परिवर्तन देर से आ गया है)।

जेस्क्रिप्ट जावास्क्रिप्ट की माइक्रोसॉफ्ट बोली है और इसमें जावा के साथ कुछ भी नहीं है।

वैसे, जावास्क्रिप्ट जावा के साथ कुछ भी करने के लिए नहीं है। एकमात्र समानताएं उनके नाम के पहले 4 वर्ण हैं और वाक्यविन्यास में सतही समानता हैं।

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

संपादित करें: ध्यान दें कि पूरे जावा ईई स्टैक (छोटे-आईएसएच) वेब अनुप्रयोगों का उपयोग न करने के लिए यह एक आम बात है। विशेष रूप से Apache Tomcat, जो व्यापक रूप से उपयोग किया जाता है, पूर्ण जावा ईई सर्वर नहीं है (जैसा कि जावा ईई विनिर्देशन द्वारा आवश्यक है), बल्कि जेएसपी और सर्वलेट मानकों (जावा ईई के दो मुख्य भाग) के कार्यान्वयन के लिए। यह अभी भी कई उपयोगी जावा वेब अनुप्रयोगों को ठीक करता है, क्योंकि वे जावा ईई की अधिक जटिल विशेषताओं का उपयोग नहीं करते हैं।

+0

स्पष्टीकरण –

+0

के लिए धन्यवाद, जावास्क्रिप्ट ब्राउज़र में चलता है, जबकि जावा स्क्रिप्टलेट सर्वर पर चलते हैं (क्योंकि वे जावा सर्वर पेजों का हिस्सा हैं)। – Liam

0

लगता है जैसे आपको चीजों पर अच्छा संभाल मिला है।

आप छोटे वेब एप्लिकेशन के लिए जे 2 ईई का उपयोग करके संकोच करने में सही हैं। मैंने यह .NET/J2EE feature comparison सहायक पाया। माइक्रोसॉफ्ट और सन द्वारा विकसित एक परीक्षण परियोजना पर लागत और जटिलता की दूसरी चार्ट की तुलना विशेष रूप से ध्यान दें।

जावा जबरदस्त शक्ति प्रदान करता है, लेकिन बड़े वेब अनुप्रयोगों के लिए बेहतर है। इस मामले में मैं एएसपी/.NET के लिए आपकी वरीयता से सहमत हूं।

+2

उस (या वास्तव में कोई भी) बेंचमार्क से सावधान रहें। परिणाम कुछ हद तक विवादास्पद हैं। जावा दुनिया वास्तव में सरल आईओसी ढांचे, जेपीए प्राप्त कर रहा है ... जेईई अब बहुत कम हेवीवेट है। विकास प्रयास में तुलना की तरह किसी भी सच को सच करना मुश्किल है। मुझे यह भी यकीन नहीं है कि मेरा अपना प्रदर्शन दिन-प्रतिदिन कैसे भिन्न होता है। बहुत हल्के और मुफ्त जावा वेब ऐप क्षमताओं हैं। यह जावा में त्वरित (और गंदे?) वेब ऐप्स करने के लिए वास्तव में बहुत व्यवहार्य है - आपको सभी परिष्कृत नाइट-एंड सुविधाओं का उपयोग करने की आवश्यकता नहीं है। – djna

+0

क्षमा करें - ".NET/J2EE सुविधा तुलना" लिंक को कई पक्षपातपूर्ण/त्रुटिपूर्ण रूप से दिखाया गया है - http://onjava.com/pub/a/onjava/2001/11/28/catfight.html या बस एक टन खोजने के लिए "जेपीस्टस्टोर .NET तुलना" जैसे कुछ Google। इसके अलावा, जावा में "शुद्ध जे 2 ईई" समाधान से बंधे हुए कोई कारण नहीं है - स्प्रिंग एमवीसी/हाइबरनेट के बारे में क्या? Grails? – Nate

+0

मैं मानता हूं कि वसंत एक अच्छा विकल्प है, लेकिन सवाल जे 2 ईई का संदर्भ रखता है, इसलिए मुझे लगता है कि वह जावा विकल्प था जिस पर वे विचार कर रहे थे। –

1

यह परिदृश्य का एक बहुत अच्छा अवलोकन है।

मैं एप्लेट दृष्टिकोण के आपके मूल्यांकन के साथ सहमत हूं, अगर आपको क्लाइंट में वास्तव में जटिल प्रसंस्करण की आवश्यकता है तो अच्छा होगा। अन्यथा जावास्क्रिप्ट के साथ बढ़ाए गए एचटीएमएल ठीक है, हालांकि कुछ ब्राउज़रों को पोर्टेबल बनाने के लिए कुछ काम करते हैं।

सर्वर पक्ष पहलू मो इंटरस्टिंग हैं। यदि आपकी वेब सेवा का उपभोग करने वाला व्यक्ति पहले से ही जावा-धाराप्रवाह है और शायद पहले से ही वेब ऐप आधारभूत संरचना है तो जावा के उपयोग के बारे में चिंतित होने का कोई कारण नहीं है।

तो वे लिख रहे हैं, बस उन्हें ऐसा करने दें।

दूसरी ओर आप एक नेट प्रोग्रामर जावा में कौशल अप करने के लिए कहा जा रहा है मुझे लगता है कि गैर स्पष्ट है (और मैं अपने ब्लू कोर जावा हूँ) अगर मैं करने के लिए एक त्वरित और आसान दृष्टिकोण चाहता था एक हरे रंग की स्थिति की स्थिति में एक वेबसाइट मैं PHP या Smash

किसी जेई भावना में जावा का लाभ या, मुझे लगता है, एक पूर्ण उड़ा हुआ .NET दृष्टिकोण यह है कि आपको एक स्केलेबल, क्लोजर, प्रशासक (क्या वह एक शब्द है?) समाधान। सिर्फ इसलिए कि समारोह छोटा और आसान है मान लीजिए कि इसका भारी उपयोग नहीं किया जाएगा।

+0

मुझे जावा को इस तरह के कौशल के लिए नहीं कहा गया है, लेकिन जैसा कि मुझे एक्सएमएल इंटरफ़ेस के मालिक के रूप में देखा जाएगा, किसी भी समस्या का वे उपभोग कर रहे हैं इसे वर्गीकृत किया जा सकता है (अनुचित लेकिन बिल्ली, जीवन उचित नहीं है) मेरे मुसीबत। वे निश्चित रूप से "इसे कार्यान्वित करने में सलाह दें" चाहते हैं ... –

4

जब ASP.NET की तरह चलाने के जावा JSP

कहा जाता है इस तरह का सच है - एक पारंपरिक JSP पेज एक क्लासिक एएसपी पेज की तरह एक बहुत कुछ है। आपके पास एएसपीएक्स के साथ कोई "codebehind" नहीं है।

जावा में बड़ा अंतर यह है कि वेब ढांचा सर्वलेट नामक चीजों के आधार पर आधारित है। एक सर्वलेट एएसपी.NET "axd" जैसा थोड़ा सा है जिसमें यह कच्चे HTTP अनुरोध (प्राप्त, पोस्ट, आदि) को संभालता है और प्रतिक्रिया देता है।

उस सर्वलेट "बेस" के शीर्ष पर कई अन्य ढांचे हैं - जेएसपी उनमें से एक है (जेएसपी अंततः सर्वलेट में सर्वर द्वारा संकलित) हैं। जेएसएफ, स्ट्रूट्स, टेपेस्ट्री, और कई अन्य इस आधार पर भी बनाए गए हैं। .NET दुनिया में आपके पास वास्तव में दो विकल्प हैं - एएसपी।नेट (codebehind के साथ .aspx पेज) या .NET एमवीसी। जावा वेब चौखटे से अधिकांश, अधिक नेट MVC की तरह होते हैं, हालांकि (मैं यह समझ के रूप में) JSF अधिक ASP.NET तरह

JavaBeans, .NET ढांचे की तरह एक सा है यानी यह का एक पुस्तकालय है पुनः उपयोग करने योग्य घटक

वास्तव में नहीं। आप जे 2 एसई के बारे में क्या सोच रहे हैं, जो मूल रूपरेखा है जिस पर सभी जावा ऐप्स बनाए जाते हैं - संग्रह कक्षाएं, सॉकेट, सुरक्षा इत्यादि हैं। जावाबीन्स डीटीओ प्रकार की वस्तुओं को लिखने के लिए सिर्फ एक विनिर्देश है (मानक नामकरण getters और setters, आदि)

जावा ईई कि में ASP.NET की तरह एक सा है कि यह एक सर्वर पर वेब पृष्ठों के निर्माण के लिए एक रूपरेखा

यह और अधिक या कम सही है है । J2EE वेब विकास करने के लिए J2SE का ही विस्तार (और साथ ही EJB के जो कि वास्तव में .NET में एक सीधा बराबर नहीं है मोम की एक पूरी nother गेंद कर रहे हैं) है

जावा भी ग्राहक पर चला सकते हैं लेकिन यह को जावा वीएम की स्थापना

हां, यह सच है। जैसे आप डेस्कटॉप या वेब अनुप्रयोगों को विकसित करने के लिए .NET का उपयोग कर सकते हैं, आप उसी तरह जावा का उपयोग कर सकते हैं। और दोनों मामलों में, रनटाइम आवश्यक है (चाहे वह जावा वीएम या .NET फ्रेमवर्क है)

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

+0

अंतिम अनुच्छेद के लिए धन्यवाद। यह www.whatpub.org का एक वैकल्पिक फ्रंट-एंड है, इसलिए न तो मिशन महत्वपूर्ण है या इसका उपयोग भारी रूप से किया जा सकता है। चूंकि मैं एएसपी.नेट हूं, तो यह प्राकृतिक मार्ग है, लेकिन यदि वे PHP का उपयोग करना चाहते हैं, तो ठीक है, मुझे बस से बहुत सारी गलती की उम्मीद नहीं है। –

0

यह पूरी तरह से मेरे लिए स्पष्ट है अगर आप वेब सेवा लिख ​​रहे हैं या यह पहले से ही लिखा है और किसी को सिर्फ इसका इस्तेमाल करना चाहता है नहीं है?

वे सिर्फ अपने वेब सेवा कॉल करने के लिए चाहते हैं, तो यह नास्तिक भाषा है, इसलिए इसमें कोई फर्क नहीं करना चाहिए/क्या भाषा पुस्तकालयों वे का उपयोग करें।

आप वेब सेवा लिख ​​रहे हैं, तो फिर, यह वास्तव में कोई फर्क नहीं पड़ता कि कौन सी भाषा का उपयोग करें, सिर्फ एक आप के साथ सहज हैं लेने और एक अच्छा पुस्तकालय है।

यदि आप जावा का उपयोग करने का निर्णय लेते हैं तो मुझे Axis2 के साथ अनुभव होता है और यह आपके काम के चारों ओर अपने सिर को प्राप्त करने के बाद शांत हो जाता है। आप एक पीओजेओ (सादा ओल्ड जावा ऑब्जेक्ट) लिख सकते हैं और एक्सिस को बता सकते हैं कि आप जो खुलासा करना चाहते हैं। इसे टॉमकैट या कुछ समान पर लोड करें और आप जाने के लिए अच्छे हैं।

+0

मैं वेब सेवा लिखने जा रहा हूं - फिलहाल हम एक्सएमएल डेटा एक्सचेंज संरचना को परिभाषित कर रहे हैं। यद्यपि यह भाषा अज्ञेयवादी है, मुझे संदेह है कि यह कोड टुकड़े भेजे जाएंगे जब यह –

0

संक्षिप्त उत्तर - सवाल आप से पूछना नहीं था :) करने के लिए - यह है: जावा ठीक काम करना चाहिए। यदि जावा का क्लाइंट/पार्टनर/जो भी सबसे ज्यादा आरामदायक है, तो उसे * इसका उपयोग करने दें।

विशेष रूप से:

  • आप WSDL के साथ एक साधारण साबुन वेब सेवा लिखा गया है, एक जावा एप्लिकेशन को किसी भी मुसीबत यह करने के लिए बात कर नहीं होना चाहिए। मैंने जावा क्लाइंट्स लिखे हैं जो .NET वेब सेवाओं से बात करते हैं और।एनईटी क्लाइंट जो जावा वेब सेवाओं से बात करते हैं और जब हमेशा थोड़ी सी झुकाव होती है, तब तक कोई गंभीर परेशानी नहीं होती है जब तक कि सेवाएं एम्बेडेड बाइनरी ऑब्जेक्ट्स को आसपास या कुछ अन्य मानक न भेज सकें।

  • यदि आपने कुछ ऐसा लिखा है जो HTTP पर कच्चे एक्सएमएल परोसता है, जावा को .NET की तुलना में इसके साथ कोई और परेशानी नहीं होनी चाहिए।

जावा जरूरी नहीं कि पीएचपी या ASP.NET से किसी भी अधिक हैवीवेट, यदि आप Jetty की तरह एक हल्के सर्वर का उपयोग है। कोई ब्राउजर ऐपलेट शामिल नहीं होना चाहिए। और जावा में वेब सेवाओं से बात करने के लिए ठोस, स्थिर पुस्तकालय हैं। (PHP भी करता है, लेकिन मुझे आश्चर्य होगा कि जावा वाले लोगों का अधिक उपयोग नहीं किया गया है।)

आपके अन्य प्रश्नों के लिए, हो सकता है कि आप विकिपीडिया लेख ".NET framework: .NET vs. Java and J2EE" पर नज़र डालें।


* यदि वे आप चाहते वेब सेवा के अपने अंत लिखने के लिए, कि एक पूरी अलग गेंद खेल है। संभवतः उनके पास वास्तव में कुछ मौजूदा जावा इंफ्रास्ट्रक्चर हैं, वास्तव में पुन: उपयोग करने की आवश्यकता है - इस मामले में मैं ओ'रेली के Head First Servlets and JSP जैसी अच्छी मूल पुस्तक चुनने का सुझाव दूंगा - लेकिन अन्यथा, यदि .NET आपकी विशेषज्ञता है, तो यही है कि उन्हें क्या करना चाहिए आपको उपयोग करने दे रहे हैं। अगर उन्हें माइक्रोसॉफ्ट पसंद नहीं है, तो उन्हें बताएं कि आप इसे Mono के तहत चलाएंगे।

+0

काम नहीं करेगा जावा के लिए एक सस्ते होस्टिंग सेवा खोजने की क्या संभावना है? PHP और एएसपी.नेट हर जगह हैं। जावा के बारे में इतना यकीन नहीं है। –

0

क्या यह वास्तव में जावा होना है? शायद आप JRuby या Groovy का उपयोग करके एक छोटा वेब ऐप लिख सकते हैं जो आपकी एएसपी.NET वेब सेवा का उपभोग करता है। जेआरबी, ग्रोवी और सादे पुराने जावा में टूल्स (.ie अपाचे सीएफ़एक्स) हैं जो आपको फ्लाई पर क्लाइंट बनाने के लिए अपने डब्लूएसडीएल का उपभोग करने देते हैं।

ऐसा कहकर, यह जानने के बिना कि यह जावा क्लाइंट का उपयोग करने के लिए वास्तव में एक अच्छा सुझाव देना मुश्किल है। क्या यह वास्तविक उपयोगकर्ताओं के साथ इंटरफेस करने जा रहा है, या यह बैच नौकरी की तरह है?

यदि बाद में है, तो आप इसे जावा या जेआरबी/ग्रोवी के साथ जल्दी से बाहर कर सकते हैं। चूंकि बाद की तकनीकों को जार में संकलित किया जा सकता है, इसलिए वे जेवीएम पर चल सकते हैं।

यदि यह उपयोगकर्ताओं का सामना करने जा रहा है, तो आपको या तो एक वेब क्लाइंट या मोटी क्लाइंट बनाना होगा।

पूर्व के लिए, आप JRuby/Groovy मार्ग पर जा सकते हैं और एक छोटा वेब ऐप बना सकते हैं, जिसे आप एक अलग डाउन जेटी/ग्लासफ़िश/टॉमकैट ऐप सर्वर पर तैनात कर सकते हैं। या आप जावा मार्ग जा सकते हैं और कई ढांचे में से एक का उपयोग कर सकते हैं।

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

मैं वेब कंटेनर का उपयोग करने के ऊपरी हिस्से के बारे में सोचने में बहुत चिंतित नहीं होगा। आप लगभग 500 मिलीग्राम (जो सर्वर के लिए पानी में एक बूंद होनी चाहिए) में एक कंटेनर में दुबला और मतलब वेब ऐप चला सकते हैं।

और यदि आप वास्तव में सादे सर्वलेट्स तक चिपके रहते हैं और कोई जेएसपी (यानी, सर्वलेट एचटीएमएल आउटपुट बनाता है) आप TJWS, LWS या Winstone जैसे वास्तव में माध्य और दुबला और छोटे सर्वलेट कंटेनर का उपयोग कर सकते हैं जो 1 एमबी से कम के साथ चल सकता है।

उम्मीद है कि यह मदद करता है।

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