2011-10-04 15 views
64

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

मैं एएसपीनेट एमवीसी जैसी चीजों का शोध कर रहा हूं और पसंद बहुत अच्छी लग रही है लेकिन मुझे आश्चर्य है कि Google AngularJS Framework जैसे कुछ का उपयोग करने के लिए कुछ भी कहा जा रहा है।

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

क्या किसी को एंगुलरजेएस का उपयोग करके ऐप विकसित करने का कोई अनुभव है और यदि हां, तो यह कैसे था और क्या आप मुझे कुछ ट्यूटोरियल्स के लिए सही दिशा में इंगित कर सकते हैं?

+0

इसकी घोषणात्मक बाइंडिंग के साथ [Knockout.js] (http://knockoutjs.com/) जैसा दिखता है। – greenimpala

+4

एंगुलरजेएस और एएसपी.नेट एमवीसी 4 के साथ एकल-पेज वेब ऐप्स बनाना: http://tarkus.me/post/32121691785/angularjs-with-asp-net-mvc-4 –

+2

आप एंगुलरजेएस स्टार्टर किट भी देखना चाहेंगे विजुअल स्टूडियो: http://github.com/kriasoft/angular-vs –

उत्तर

103

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

अच्छी चीजें:

  • महान testability
  • दो-तरफा डेटा बाध्यकारी है एक बहुत शक्तिशाली सुविधा है, और यह बहुत उपयोगी हो सकता है एक बार आप "मिल यह"
  • IMO AngularJS टेम्पलेट्स
  • कुछ तत्वों को चिह्नित करने के लिए डेटा-विशेषताओं या "विशेष" सीएसएस कक्षाओं का उपयोग करने से बहुत कम भंगुर हैं, यह jQuery प्लगइन का उपयोग करने की आवश्यकता को बहुत कम करता है, क्योंकि AngularJS में उस कार्यक्षमता को लागू करना बहुत आसान है (पेड़, टैब, accordions, आदि)

बुरा सामान:

  • सीखने की अवस्था बहुत खड़ी लगता है (मैं एक समस्या का ज्यादा नहीं था, लेकिन मैंने देखा है कुछ लोगों को इसके साथ संघर्ष) AngularJS में
  • सत्यापन समय के लिए चूसना (एक नया कार्यान्वयन रास्ते पर है)
  • सभी लाइब्रेरी/jquery प्लगइन्स कोणीय के साथ अच्छी तरह से खेलते हैं और आमतौर पर आपको उन्हें
  • एपीआई अभी भी पॉलिश किया जा रहा है, तो ब्रेकिंग परिवर्तन की उम्मीद है (नहीं एक बड़ी समस्या अक्सर रिलीज और बहुत अच्छा चेंजलॉग के साथ)
  • प्रदर्शन पृष्ठ पर कई हज़ार बाइंडिंग तक ठीक है - अधिकांश समय यह एक सीमा नहीं है, लेकिन ऐसे मामले हैं जब यह एक समस्या हो सकती है।

कुछ संकेत दिए गए (क्या तुमने कभी AngularJS सीखने का फैसला करता है, तो):

  • कुछ लोगों को वास्तव में अति प्रयोग विगेट्स। मेरे अनुभव में, एचटीएमएल "आंशिक" सेवाओं का उपयोग करना बेहतर है, और केवल स्पॉटैडिक रूप से विजेट का उपयोग करें।
  • पुस्तकालय के स्रोत कोड को पढ़ने के लिए - यह सबसे अच्छी जगह
  • यदि आप सीएसएस वर्गों का उपयोग घटनाओं के लिए बाध्य करने के लिए, आप गलत कर रहे हैं सेवाओं/नियंत्रकों में कोई डोम हेरफेर के बारे में कोणीय
  • सामान जानने के लिए है
+4

क्या आप किसी भी मौके से, "सीखने की अवस्था" के संदर्भ में "खड़ी" (तेजी से बढ़ रहे) कहते हैं, "फ्लैट" (धीरे-धीरे बढ़ते हुए) का मतलब है? –

+12

कोणीय एक बड़ा ढांचा है और शुरुआत में सीखने के लिए बहुत कुछ है (निर्भरता इंजेक्शन जैसी अवधारणाओं सहित), इसलिए मुझे लगता है कि उपयुक्त शब्द "खड़ी" है। – psyho

+0

धन्यवाद, "कुछ पॉइंटर्स" अनुभाग के लिए esp, यह बहुत मदद करेगा। मैं शुद्ध व्यापार लाइन एप्लिकेशन पर बहुत सारे सत्यापन के साथ इनपुट नियंत्रण के साथ कोशिश कर रहा हूं। मुझे शुभकामनाएँ दें। –

26

+1 @ साइको का जवाब

कोणीयजेएस क्लाइंट-साइड फ्रेमवर्क है, इसलिए आप सर्वर पर किसी भी भाषा का उपयोग कर सकते हैं। यह परीक्षण पर बड़ा जोर देने के साथ jQuery के साथ एक साथ अच्छी तरह से काम करने के लिए, डिज़ाइन किया गया है ...

यहां कुछ संसाधन हैं जो आपके लिए उपयोगी हो सकता है:

कुछ उदाहरण क्षुधा:

0,123,

SenchaTouch के लिए एडाप्टर: https://github.com/tigbro/sencha-touch-angular-adapter

jQ मोबाइल के लिए एडाप्टर: https://github.com/tigbro/jquery-mobile-angular-adapter

mailing list पर कोई प्रश्न पूछने के लिए स्वतंत्र महसूस करें!

हम अभी भी बीटा में हैं, लेकिन Google पर पहले से ही कई आंतरिक ऐप्स हैं, AngularJS द्वारा संचालित।


अद्यतन (26 वें जुलाई 2012):

AngularJS v1.0 जारी की गई है।

कुछ सार्वजनिक AngularJS द्वारा संचालित अनुप्रयोगों के लिए, अब तक मुझे लगता है कि गूगल की कोणीय महान है http://builtwith.angularjs.org

+0

उन ऐप्स वोजा क्या हैं? अगर हम Google को अपने स्वयं के डॉगफूड खाने के लिए इंगित कर सकते हैं तो इससे यह एक आसान बिक्री होगी। –

+0

@StevenP Google पर अधिकांश ऐप्स दुर्भाग्य से आंतरिक हैं। हालांकि, मैंने एक लिंक के साथ जवाब अपडेट किया, जहां आप कुछ सार्वजनिक ऐप्स देख सकते हैं। सबसे बड़ा AngularJS संचालित सार्वजनिक ऐप डीएफए है। – Vojta

+0

v1 के साथ निर्मित उदाहरण ऐप्स कहां हैं? यह एक सहायक सूची होगी। – noogrub

20

IMHO एक ग्राहक जो वे कठिनाई समर्थन हो सकता है के लिए कुछ विकासशील अव्यवसायिक है:

अन्य js ढांचे के लिए, वहाँ knockout.js, backbone.js आदि यहाँ हैं कुछ पोस्ट कर रहे हैं। आपको यह ध्यान में रखना होगा कि आपके ग्राहक के लिए अनुभवी कोणीय पेशेवरों को किराए पर लेना मुश्किल होगा, या "खड़ी सीखने की वक्र" पर चढ़ने के लिए अपने लोगों को प्रशिक्षित करना मुश्किल होगा। इसके अलावा, अब तक दस्तावेज इतना अच्छा नहीं है।क्या आप आसानी से कुछ क्षणों में सवाल का जवाब दे सकते हैं, "मैं अपने चमकदार कोणीय ऐप को अपने क्लाइंट के डेटाबेस से कैसे जोड़ सकता हूं?" क्या भविष्य में कभी भी आपका ग्राहक कुछ मौजूदा कोड ले सकता है और इसे अपनी संभावित भविष्य की जरूरतों के अनुरूप अनुकूलित कर सकता है? ईमानदार हो।

कोणीय को सादे पुराने विश्वसनीय लैंप विकास की तुलना करें। "छोटे वेब एप्लिकेशन" के लिए मैं वास्तव में विश्वास करता हूं कि एक पेशेवर को अपने ग्राहक को कुछ बनाए रखने योग्य और सरल देना चाहिए।

यह कहना नहीं है कि कोणीय ठंडा और सेक्सी इत्यादि नहीं है। लेकिन आपके पास अपने क्लाइंट की भविष्य की रखरखाव नवीनतम फ्रेमवर्क फ़ैड के अतिरिक्त सोचने के लिए है। हल्की से मेरी सिफारिश होगी। पहले कोणीय के साथ अपनी वेबसाइट बनाएं और देखें कि आप कुछ भरोसेमंद ग्राहक पर अपने शानदार नए कौशल प्रदान करने से पहले क्या सोचते हैं।

+2

प्वाइंट लिया गया। मैंने अंत में कोणीय का उपयोग करके आवेदन नहीं बनाया। – TGuimond

+2

यह मजाकिया है। जब jQuery अभी निकला, तो मुझे यकीन है कि आपने jQuery को अस्वीकार करने के लिए उसी कारण का उपयोग किया था। – maxisam

+9

@ मैक्सिसम - हाँ, मैंने किया। जब jQuery कोड परिपक्व हो गया, तो मैंने इसे वाणिज्यिक ग्राहकों को बढ़ावा देना शुरू किया।मुझे लगता है कि प्रारंभिक गोद लेने के खतरे हैं कि किसी को ग्राहक के लिए निर्णय लेने पर जिम्मेदारी से विचार करना चाहिए, बस इतना ही। मैं अभी उत्पादन कोड के लिए एक परीक्षण के रूप में एक ऐप का निर्माण कर रहा हूँ; अगर यह अच्छा प्रदर्शन करता है और हमें लगता है कि AngularJS कोड बेस स्थिर और भरोसेमंद है, तो हम इसे कंपनी मानक के रूप में दबाएंगे। मैं बस इतना कहने की कोशिश कर रहा था। – noogrub

11

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

हम AngularJS + ASP.NET MVC4 REST WebAPI का उपयोग कर रहे हैं।

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

आप कोणीय-यूआई अच्छा ऐड-ऑन (खासकर एनजी ग्रिड) मिलेगा

इसके तुरंत बाद हमारे परियोजना पूर्ण होने पर, हम अपने निर्देश में से कुछ हम खुला स्रोत दुनिया के लिए लिखा था डाल सकता है।

+0

मुझे पता है कि यह आपके उत्तर के बाद से लंबा नहीं रहा है, लेकिन ... क्या आपको आज के रूप में साझा करने के लिए कुछ मिला है? – superjos

+0

@SutikshanDubey क्या आप कृपया जवाब देने में मदद कर सकते हैं कि कोणीय के साथ एक पृष्ठ ऐप में क्या करना है यदि मुझे कस्टम नियंत्रण करने की आवश्यकता है - स्क्रीन पर चौड़ाई, ऊंचाई, x/y स्थिति जैसे गुण जेसन प्रारूप में सर्वर से आता है? –

11

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

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

एजेएस में JQuery पर एक बड़ा प्रदर्शन लाभ है।

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

टेम्पलेट्स आपके एप्लिकेशन में बनाया और पुन: उपयोग किया जा सकता है जिसमें 0 या अधिक कस्टम निर्देश हो सकते हैं।

मैं पीआरआईएसएम और एमईएफ जैसे ढांचे का उपयोग कर रहा हूं लेकिन मुझे लगता है कि एजेएस में इनमें से अधिकतर विशेषताएं हैं जो इन .NET ढांचे में मौजूद हैं लेकिन 2 9 के पदचिह्न में हैं। अफवाहें हैं कि वे आलसी लोडिंग पर काम कर रहे हैं जो प्रदान की जाती है तो कुछ बहुत ही रोचक LOB प्रकार क्षमताओं के लिए प्रदान की जाएगी।

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

यदि आप वीएस 2012 के भीतर एमएस टाइपस्क्रिप्ट के साथ एजेएस को गठबंधन करते हैं, तो यह कुछ बहुत ही प्रभावशाली परियोजनाओं का प्रबंधन और निर्माण करने की क्षमता प्रदान करता है जो वीएस के भीतर परियोजनाओं के साथ अधिक आरामदायक हैं।

एजेएस को देखने के अन्य कारणों में से एक टन हैं, लेकिन यदि आप नॉकऑट जैसे ढांचे पर विचार कर रहे हैं तो मैं इसके बजाय एजेएस की अत्यधिक अनुशंसा करता हूं, भले ही यह सीखने की वक्र माना जाता है। नॉकआउट एक पुस्तकालय है, एजेएस एक ढांचा है।

+0

मैं पूरी तरह से सहमत हूं – Spock

+0

@ user1333524 क्या आप कृपया जवाब देने में मदद कर सकते हैं कि कोणीय के साथ एक पृष्ठ ऐप में क्या करना है यदि मुझे कस्टम नियंत्रण करने की आवश्यकता है - जिसमें से स्क्रीन पर चौड़ाई, ऊंचाई, x/y स्थिति स्क्रीन पर सर्वर से आता है प्रारूप? –

0

मैं इसे हाँ कहूंगा और इसे करने के तरीके के रूप में John Papa's hottowel कार्यान्वयन की जांच करूंगा।

+0

कृपया इसे लिंक के साथ वापस करें ... –

+1

http://www.johnpapa.net/hottowel/ –

7

मुझे एहसास है कि यह पोस्ट पुराना है और आप कोणीय के साथ नहीं गए हैं, लेकिन मेरे पास आपके समान पृष्ठभूमि है, और मैं सवाल पूछते समय उसी बिंदु पर हूं।

तो भविष्य आगंतुकों के लाभ के लिए, "जोखिम" और संसाधनों के लिए लिंक के कुछ जो मुझे उपयोगी ...

  • के रूप में कई पहले से ही उल्लेख किया है, कोणीय एक बहुत खड़ी सीखने की अवस्था हो सकता है "न केवल मुझे, बल्कि सह-श्रमिक जिन्हें मैं अत्यधिक स्मार्ट डेवलपर्स मानता हूं, ने कुछ बुनियादी अवधारणाओं के साथ संघर्ष किया है" AngularJS is amazing... and hard as hell (लिंक में कुछ अच्छे ट्यूटोरियल लिंक भी हैं जिन्हें आपने पूछा), और संस्करण 2 सामान looking more like java है, जो आपकी सी # पृष्ठभूमि में कोई समस्या नहीं आई है, मेरी राय में निर्देशों को वर्बोज एनोटेशन के बिना समझने में काफी मुश्किल है और इसी तरह।
  • कुछ मामलों में कोणीय प्रदर्शन खराब हो सकता है, खासकर जब Considering Speed and Slowness in AngularJS और Scaylr's experience तत्वों की बड़ी संख्या पर एनजी-दोहराव का उपयोग करते हैं। अन्य ने उल्लेख किया है कि प्रदर्शन वास्तव में ~ 2000 बाध्य तत्वों से कम हो जाता है, लेकिन आमतौर पर यह तर्क के साथ मिलता है कि कितने ऐप से अधिक तत्वों के साथ कोई ऐप शायद एक अच्छा ऐप नहीं है। इसे ध्यान में रखें हालांकि यदि आपके पास वैध उपयोग के मामले हैं जो कई बाध्य वस्तुओं के लिए कॉल करते हैं।
  • कोणीय in terms of contributors लोकप्रिय है, लेकिन production usage के संदर्भ में jQuery के पीछे रास्ता तय करता है। कोणीय डेवलपर्स ढूँढना कठिन हो सकता है, और jQuery या अन्य डेवलपर्स कनवर्ट करने के साथ "सौदा सीखने की वक्र" का सामना करना पड़ता है।
  • क्योंकि कोणीय युवा है, इसलिए आपको कोई गारंटी नहीं है कि यह आपके नए कोणीय कौशल के लिए नियोक्ता होने के लिए पर्याप्त कर्षण प्राप्त करेगा, और आपका नया एप्लिकेशन जल्दी से विरासत कोड
  • v1.2 में कोणीय समर्थन नहीं करता है आईई 7 और नीचे और v1.3 will drop IE8। > = IE9 के लिए, आपको some special coding practices का पालन करना होगा।
  • कई जावास्क्रिप्ट विजेट, प्लगइन्स और लाइब्रेरी जिनका उपयोग आप करने के लिए किया जा सकता है, बिना भारी संशोधन के कोणीय के साथ ठीक से उपयोग नहीं किया जा सकता है और लोग अक्सर re-write your component in Angular anyway का सुझाव देते हैं।
  • अद्यतन मार्च 2014: एक गैर-तुच्छ घनत्वपूर्ण एक पृष्ठ ऐप बनाने का प्रयास करने के 2 महीने बाद: कोणीय के कई संस्करण हैं, और यह कहना मुश्किल है कि कौन सा सबसे अच्छा या सबसे स्थिर है। यह इस बात पर निर्भर करेगा कि आप इसके साथ क्या कोड कर रहे हैं। मुझे कुछ बग्स एंगुलर मिल रहा है जो बाद के संस्करण में अपग्रेड करके तय किए गए हैं और अन्य पहले के लिए regressing द्वारा तय किया गया है। मुझे jQuery के साथ इस तरह की संस्करण खरीदारी कभी नहीं करना पड़ा।
  • अद्यतन मई 2014: युवा, टूटे हुए टूल्स। बटरंग doesn't work तक बढ़िया है। मैं इसे तब तक भरोसा नहीं कर सकता जब तक कि वे इसे ठीक न करें।

और अंत में, तीन सबसे अच्छा संसाधन मैं इस चीज

  • Todd Motto's ultimate guide सीखने के लिए मिल गया है, और
  • अद्यतन अप्रैल 2014: this eBook chapter काफी आश्चर्यजनक है। मैंने अभी तक बाकी पुस्तक नहीं खरीदी है, लेकिन अवधारणा शानदार है
  • full non-trivial app written in Angular (the accompanying book ठीक है, लेकिन वास्तव में गैर-तुच्छ ऐप के बारे में बात नहीं करता है, क्योंकि वे on their site विज्ञापन कह रहे हैं)