Force.com प्लेटफॉर्म का नुकसान [बंद]


89

वर्तमान में हम Force.com प्लेटफॉर्म का उपयोग हमारे विकास प्लेटफॉर्म और सेल्स के दोस्तों के रूप में देख रहे हैं और force.com वेबसाइट उन कारणों से भरी हुई है, जो दुनिया में सबसे अच्छा प्लेटफॉर्म है। हालांकि, मैं इस तरह के प्लेटफॉर्म का उपयोग करने के लिए कुछ वास्तविक नुकसान देख रहा हूं।


यह पोस्ट बहुत पुरानी है, लेकिन सेल्सफोर्स अभी भी विकसित करने के लिए पूरी तरह से भयानक है। 8 साल बाद भी, मुझे अभी भी यह आश्चर्यजनक लगता है कि इसकी कई कमियों को पूरा करने में कितना समय और प्रयास लगना चाहिए।
निकजे

जवाबों:


142

आपको शुरू करने के लिए यहां 10 हैं।

  1. एपेक्स एक मालिकाना भाषा है। Force.com ग्रहण प्लगइन के अलावा, कोई भी टूलिंग उपलब्ध नहीं है जैसे कि रिफैक्टरिंग, कोड विश्लेषण, आदि।
  2. एपेक्स को जावा 5 पर मॉडल किया गया था, जिसे अन्य भाषाओं के पीछे माना जाता है, और टूलिंग के बिना (# 1 देखें) काफी बोझिल हो सकता है।
  3. तैनाती अभी भी बहुत सारे मैनुअल और मैनुअल चरणों के साथ काफी मैनुअल है। समय के साथ यह स्थिति धीरे-धीरे सुधर रही है, लेकिन यदि आप स्वचालित तैनाती के लिए अभ्यस्त हैं तो आप निराश होंगे।
  4. एपेक्स में संकुल / नेमस्पेस की कमी है। आपकी सभी कक्षाएं, इंटरफेस आदि सर्वर पर एक फ़ोल्डर में रहते हैं। यह कोड को बहुत कम संगठित और वर्ग / इंटरफ़ेस नाम बनाता है, जो नाम की गड़बड़ी से बचने और संदर्भ प्रदान करने के लिए आवश्यक है। यह मेरी सबसे बड़ी शिकायतों में से एक है, और मैं स्वतंत्र रूप से अकेले इस कारण से force.com पर निर्माण करने का विकल्प नहीं चुनूंगा।
  5. "Force.com IDE", aka force.com ग्रहण प्लगइन, अविश्वसनीय रूप से धीमा है। किसी भी फाइल को सेव करना, चाहे वह क्लास फाइल हो, टेक्स्ट फाइल आदि, आमतौर पर कम से कम 5 सेकंड और कभी-कभी 30 सेकंड तक यह निर्भर करता है कि आपके ऑर्गन में कितने ऑब्जेक्ट्स, डेटा टाइप्स, क्लास फाइल्स आदि हैं। बचत भी एक अवरुद्ध कार्रवाई है, जिसके लिए न केवल संकलन की आवश्यकता होती है, बल्कि सर्वर के साथ आपकी स्थानीय परियोजना का एक पूर्ण सिंक। जावा या .NET की तुलना में कम परिमाण का आदेश।
  6. ऑनलाइन डेवलपर समुदाय बहुत स्वस्थ नहीं लगता है। मैंने देखा है कि बहुत से फ़ोरम पोस्ट अनुत्तरित या अनसुलझी हो जाती हैं। मुझे लगता है कि यह फोरम सॉफ्टवेयर salesforce.com का उपयोग करने के लिए कुछ कर सकता है, जो बहुत मुश्किल से चूसना लगता है।
  7. एपेक्स में डेटा एक्सेस डीएसएल वांछित होने के लिए बहुत कुछ छोड़ देता है। यह (एन) हाइबरनेट, जेपीए, आदि की पसंद के साथ दूर से प्रतिस्पर्धी नहीं है।
  8. एपेक्स / विजुअलफेयर पर एक ऐप विकसित करना गवर्नर लिमिटे इंजीनियरिंग में एक अभ्यास है। प्रोग्रामर का आधा समय आसानी से कई गवर्नर सीमा और विज़ुअलफोर्स व्यू स्टेट लिमिट्स जैसे अन्य गोचरों से बचने के लिए ऑप्टिमाइज़ करने की कोशिश में बिताया जाता है। यह तर्क दिया जा सकता है कि यदि आप अपने साथ शुरू करने के लिए कुशल कोड लिखते हैं तो आपको यह समस्या नहीं होगी, जो एक हद तक सही है। हालाँकि कई बार ऐसा होता है कि आपके पास सत्र में x से अधिक प्रश्न करने के लिए वैध कारण होते हैं, या x रिकॉर्ड से अधिक के माध्यम से लूप आदि होते हैं।
  9. सहेजें-> संकलित-> चलाने का चक्र अत्यंत धीमा, जासूसी है। जब इसमें एक मामूली सीएसएस या जावास्क्रिप्ट परिवर्तन का परीक्षण करने जैसे कुछ करने के लिए पूरे स्थिर संसाधन बंडल को ज़िप करना और अपलोड करना शामिल है।
  10. सामान्य तौर पर, एक युवा का दर्द, बिना लाभ के प्लेटफ़ॉर्म इसके खुले स्रोत होने के कारण। आपके पास प्लेटफ़ॉर्म में बग्स को मान्य और / या ठीक करने का कोई तरीका नहीं है। वे इसे अपने IdeaExchange को पोस्ट करने के लिए कहते हैं। हाँ, उस के लिए गुड लक।

डिस्क्लेमर / डिस्क्लोजर: एक होस्टेड प्लेटफॉर्म जैसे कि फोर्स.कॉम के बहुत सारे लाभ हैं। Force.com नियमित रूप से प्लेटफ़ॉर्म को बढ़ाता है। मुझे इसके बारे में बहुत सारी चीजें पसंद हैं। मैं बल डॉट कॉम पर पैसे कमाता हूं


4
यह एक बढ़िया सूची है जो आपको वहां मिल गई है
lomaxx

1
अगर वे साइट होस्टिंग प्रबंधित करते हैं, तो मुझे force.com पसंद आएगा और मैं अपना डेटा, न केवल एक्स्ट्रा, या कुछ एपीआई के माध्यम से प्राप्त कर सकता हूं, बल्कि एक रात में इंक। मेरे ओरेकल डेटासेट का बैकअप। क्या सेल्सफोर्स के लोग इसे ऑफर करते हैं? मैं कभी भी उनकी बिक्री के लोगों से सीधे जवाब नहीं पा सका हूं, जिसे मैं हमेशा एक नहीं के रूप में लेता हूं।
क्रिस के

3
वे आपको अपने डेटा तक ऐसी "कच्ची" पहुंच नहीं देते हैं। एक बैकअप सेवा है जो आपको नियमित रूप से अपने ओआरजी का सीएसवी ज़िपित करती है। वहाँ भी एक प्रतिकृति एपीआई है जो आपको छद्म वास्तविक समय में साइड बैकअप द्वारा अपना पक्ष रखने की अनुमति देता है।
जेरेमी रॉस

@ जेरेमी जिज्ञासा से बाहर ... कितना समय आप ग्रहण विचार प्लगइन में खर्च करते हैं? बस "सेटअप" मेनू में एक सेल्सफोर्स एप्लिकेशन के भीतर चीजों को सेट कर रहे हैं?
23

1
मैं व्यक्तिगत रूप से अपना 90% समय या तो ग्रहण या एक पाठ संपादक (TextMate, मेरे मामले में) में बिताता हूं। लेकिन ऐसा इसलिए है क्योंकि आमतौर पर कोई अन्य व्यक्ति बहुत अधिक बुनियादी डेटा कॉन्फ़िगरेशन करता है। कस्टम ऑब्जेक्ट्स और फ़ील्ड्स का कॉन्फ़िगरेशन सेल्सफोर्स डॉट कॉम में किया जाता है, न कि कोड के कारण, क्योंकि फोर्स.कॉम की दुनिया में कोई DDL नहीं है। मेटाडेटा एपी है, लेकिन मैं डेटा डिजाइन के दौरान इसका इस्तेमाल कभी नहीं करता।
जेरेमी रॉस

38

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

एक स्थिर प्लेटफ़ॉर्म होने और बड़े प्रदर्शन और स्थिरता की समस्याओं से बचने की दक्षता आसानी से उन सीमाओं के आसपास कोड करने की कोशिश में बर्बाद हो जाती है जिन्हें लोग संदर्भित करते हैं। प्लेटफॉर्म के लिए बहुत सारी सीमाएं हैं, यह पूरी तरह से पागल हो जाता है। ये सीमाएँ उच्च-अंत की सीमाएँ नहीं हैं, जिन्हें आप एक बार हिट करने के बाद बहुत से उपयोगकर्ताओं को मार देंगे, आप उन्हें लगभग तुरंत ही मार देंगे।

हालांकि आमतौर पर उनके चारों ओर पाने के लिए तकनीकें होती हैं, लेकिन उनसे बचने के लिए रणनीतियों का पता लगाना बहुत कठिन होता है, जबकि आप अपने वास्तविक एप्लिकेशन के व्यावसायिक तर्क को विकसित करने की कोशिश कर रहे होते हैं।

आपको यह समझने का एक सरल तरीका है कि डेवलपर कैसे पर्यावरण के अनुकूल है, ऊपर वर्णित "डिबगिंग वातावरण की कमी" को लें। यह उससे भी बुरा है। आप डिबग लॉग में सर्वर के हाल के अनुरोधों में से केवल 20 तक देख सकते हैं। इसलिए, जैसा कि आप अनुप्रयोग के अंदर विकसित कर रहे हैं, आपको "नया" डिबग अनुरोध बनाना है, अपना नाम चुनें, "सहेजें" पर क्लिक करें, अपने ऐप पर वापस जाएं, पृष्ठ को ताज़ा करें, अपने डीबग टैब पर वापस क्लिक करें, खोजने का प्रयास करें वह अनुरोध जो आपके डिबग लॉग को घर देगा, उस "खोज" को हिट करें जिसे आप खोज रहे हैं। यह डिबग आउटपुट को देखने के लिए दस क्लिक की तरह है। हालांकि यह तुच्छ लग सकता है, यह सिर्फ इस बात का एक उदाहरण है कि डेवलपर के अनुभव को कितना कम देखभाल और विचार दिया गया है।

विकास मंच के बारे में सब कुछ एक ग्राफ्टेड-ऑन है। यह क्या है के लिए उल्लेखनीय है, लेकिन अधिकांश भाग के लिए कुल पीटीए। यदि आपको ठीक से पता नहीं है कि आप क्या कर रहे हैं (जैसा कि आप प्रमाणित हैं और एपेक्स की बहुत अंतरंग समझ है), तो यह आपको आसानी से 10-20x से ऊपर ले जाएगा, जो कि किसी अन्य वातावरण में करने के लिए कितना समय लगेगा ऐसा कुछ लगता है कि यह हास्यास्पद रूप से सरल होगा, अगर आप भी बिल्कुल सफल हो सकते हैं।

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

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

यह अन्य मुद्दों की एक पूरी मेजबान का उल्लेख नहीं है। पैकेजिंग वह नहीं है जिसकी आप अपेक्षा करते हैं। आप अपने ऐप को पैकेज नहीं कर सकते हैं और यह महत्वपूर्ण उपयोगकर्ता के हस्तक्षेप और कॉन्फ़िगरेशन के बिना उपयोगकर्ताओं को वितरित कर सकते हैं जो कि ऑर्गन के व्यवस्थापक की ओर से है। AppExchange एक कुल मज़ाक है, और वे भी 5K केवल अपने ऐप को सूचीबद्ध करने के लिए चार्ज करना शुरू कर चुके हैं। डेटा लोडर के साथ आयात करना बेकार है, खासकर यदि आपके पास कोई ट्रिगर है। आप अपने सभी डेटा को एक चरण में निर्यात नहीं कर सकते हैं, जिसमें आपके रिश्तों को इस तरह से शामिल किया गया है कि यह आसानी से एक एकल चरण में दूसरे ऑर्गन में आयात किया जा सकता है (उदाहरण के लिए एक देव ऑर्गन)। आप उत्पादन से महीने में एक बार केवल सैंडबॉक्स को रिफ्रेश कर सकते हैं, कोई अपवाद नहीं, और आप अपने डेटा को तब तक डिफ़ॉल्ट रूप से रिफ्रेश नहीं कर सकते जब तक कि आपने उस सुविधा को अनलॉक करने के लिए अपने खाते के कार्यकारी को नहीं बुलाया। आप ऐसा कर सकते हैं' कस्टम ऑब्जेक्ट्स में t मास डिलीट डेटा। आप अपने पैकेज के नाम नहीं बदल सकते। कुछ चीजें कई ले सकती हैंआपके द्वारा अनुरोध किए जाने के बाद के दिनों को पूरा करने के लिए दिन , जैसे कि डेटा बैकअप के रूप में, इससे पहले कि आप एक ऐप को तैनात करना चाहते हैं, जिस तरह से कोई प्रगति रिपोर्ट नहीं है और वास्तव में निर्यात नहीं होने पर बहुत अधिक समझ में आता है। यह देखते हुए कि डेटा के समकालिकता मुद्दे हैं यदि डेटा के बीच संबंध हैं, तो गंभीर डेटा अखंडता के मुद्दे हैं कि "लेनदेन" जैसी कोई चीज नहीं है जो एक ही चरण में कई वस्तुओं को निर्यात कर सकते हैं। इसमें से कुछ को सुविधाजनक बनाने के लिए शायद कुछ वाणिज्यिक उपकरण हैं, लेकिन ये सामान्य डेवलपर्स तक पहुंच के भीतर नहीं हैं जिनके पास बहुत बड़ा बजट नहीं हो सकता है।

बाकी लोगों ने जो कुछ यहां कहा है वह सब सच है। किसी फ़ाइल को सहेजने में कभी-कभी पाँच सेकंड से लेकर एक मिनट तक का समय लग सकता है।

मेरा मतलब इतना नकारात्मक नहीं है क्योंकि मंच कुछ मायनों में बहुत अच्छा है और वे बहु-किरायेदार वातावरण में ऐसी चीजें करने की कोशिश कर रहे हैं जो कोई और नहीं कर रहा है। यह कुछ स्तरों पर एक बहुत ही अभिनव वातावरण और शक्तिशाली है (मैं वास्तव में विजुअलफ़ोर्स को बहुत पसंद करता हूं), लेकिन इसे एक या दो साल और दें। वे VMware के साथ साझेदारी कर रहे हैं, हो सकता है कि डेवलपर्स को काम करने के लिए जेल सेल के बजाय प्लेपेन के थोड़ा अधिक देने की ओर ले जाए।


इस उत्तर के 2 साल बाद, इन दिनों मंच के बारे में क्या? क्या इसमें सुधार हुआ है, इस बोझिल मुद्दों में से कुछ हल किए गए हैं या कम से कम अलग किए गए हैं?
यारोस्लाव

टक्कर, im भी जानना चाहते हैं कि क्या चीजें उन 2 वर्षों के दौरान बदल जाती हैं।
मैगलन

5
मैं AppExchange पर टिप्पणी नहीं कर सकता, लेकिन मुझे यह पता चला कि ट्रिगर और गवर्नर सीमा के साथ हताशा में "सेल्सफोर्स डॉट कॉम बेकार" के बाद गूगल पर आ गया और बहुत ही सरल डेटा से निपटने के लिए हुप्स के माध्यम से कूद गया .... बहुत सारे। जो जैसा
चाहोगे वैसा

1
@ यारोस्लाव मैं आपके दो साल देखूंगा और एक और तीन जोड़ूंगा और बदलूंगा। इसने कुछ टोकन सुधार किए हैं लेकिन बड़े और अभी भी यह उत्तर सही है।

25

यहाँ कुछ चीजें हैं जो मैं आपको पिछले पखवाड़े में प्लेटफ़ॉर्म पर विकसित करने में थोड़ा समय बिताने के बाद दे सकता हूं:

  1. कोई RESTful API नहीं है। उनके पास एक साबुन आधारित एपीआई है जिसे आप कॉल कर सकते हैं, लेकिन सच्ची आरामदायक कॉल करने का कोई तरीका नहीं है

  2. उनके SObjects लेने और JSON ऑब्जेक्ट्स में कनवर्ट करने का कोई सरल तरीका नहीं है।

  3. दृश्य बल पृष्ठ ठीक हैं जब तक आप उन्हें अनुकूलित नहीं करना चाहते हैं और तब यह दर्द की पूरी दुनिया है।

  4. दृश्य बल पृष्ठों को SObjects के लिए बाध्य करने की आवश्यकता होती है अन्यथा मानक इनपुट फ़ील्ड जैसे डेटपिकर या काम करने के लिए चयन करने के लिए सूची प्राप्त करने का कोई तरीका नहीं है।

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

  6. वहाँ कोई बुरा नहीं है! यदि आप डीबग करना चाहते हैं, तो यह सचमुच system.debug स्टेटमेंट्स द्वारा डिबग किया गया है। यह शायद मुझे मिली सबसे बड़ी समस्या है

  7. उनका "MVC" मॉडल वास्तव में MVC नहीं है। यह ASP.NET वेबफॉर्म के बहुत करीब है। न केवल मॉडलों बल्कि नियंत्रकों के लिए भी आपके विचार कसकर युग्मित हैं।

  8. बड़ी संख्या में दस्तावेज़ संग्रहीत करना संभव नहीं है। हमें 100gb से अधिक दस्तावेजों को संग्रहीत करने की आवश्यकता है और हमें कुछ हास्यास्पद आंकड़े उद्धृत किए गए थे। हमने अपने दस्तावेज़ संग्रहण को अमेजन S3 के बुनियादी ढांचे पर लागू करने का निर्णय लिया है

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

  10. आप बाहरी SOAP या REST आधारित सेवाओं को कॉल कर सकते हैं, लेकिन संदेश निकाय 100kb तक सीमित है, इसलिए आप जिसे कॉल कर सकते हैं, उसमें बहुत प्रतिबंध है।

सभी ईमानदारी में, जब तक कि मुझे फ़ोर्स.कॉम प्लेटफॉर्म जैसी किसी चीज़ पर विकसित करने के संभावित लाभ नहीं हैं, मेरे लिए, आप सच्चे एंटरप्राइज़ स्तर ऐप के लिए force.com प्लेटफ़ॉर्म का उपयोग नहीं कर सकते। सबसे अच्छी तरह से आप कुछ बुनियादी crud शैली अनुप्रयोगों को लिख सकते हैं, लेकिन एक बार जब आप दूर से जटिल किसी भी चीज़ में चले जाते हैं, तो मैं प्लेग की तरह इसे टालूंगा।


16
RESTful API अब बल के लिए उपलब्ध है
mirezus

3
JSON Serialization और De-Serialization नॉन सोब्जेक्ट के लिए उपलब्ध है।
kadalamittai

आपने Salesforce के साथ अपने अमेज़ॅन दस्तावेज़ भंडारण को कैसे एकीकृत किया (यह मानते हुए कि आपने किया था)?
माइकल पॉलुकोनिस

अब डिबगर है, लेकिन यह अतिरिक्त खर्च करता है। विंटर '16 रिलीज़ नोट्स
मार्टिन

14

वाह- यहाँ बहुत कुछ है जो मुझे पता भी नहीं था कि सीमाएँ थीं - कुछ वर्षों के लिए मंच पर काम करने के बाद।

लेकिन सिर्फ कुछ अन्य चीजों को जोड़ने के लिए ...

आपके पास लाइन-बाय-लाइन डीबगर होने का कारण ठीक नहीं है क्योंकि यह एक बहु-किरायेदार प्लेटफ़ॉर्म है। कम से कम यही है कि एसएफडीसी कहता है - ऐसा लगता है कि थ्रेड-समृद्ध प्रोग्रामिंग के इस युग में, यह एक बहाना नहीं है, लेकिन यह स्पष्ट रूप से इसका कारण है। यदि आपको कोड लिखना है, तो आपके पास आपके डीबगर के रूप में "System.debug (स्ट्रिंग)" है - मुझे याद है कि लगभग 12 साल पहले जावा 1.2 में अधिक परिष्कृत सर्वर डीबगिंग उपकरण थे।

एक और चीज जो मुझे वास्तव में सिस्टम से नफरत है, वह है संस्करण नियंत्रण। स्प्रिंग फ्रेमवर्क का उपयोग उस चीज के लिए नहीं किया जाता है, जिसका उपयोग आमतौर पर स्प्रिंग के लिए किया जाता है - यह वास्तव में संस्करण नियंत्रण के बजाय SFDC में एक कॉन्फ़िगरेशन टूल से अधिक है। SFDC ZERO संस्करण-नियंत्रण प्रदान करता है।

आप खुद को कुछ ऐसा करते हुए दिनों के लिए अटक सकते हैं जो इतनी हास्यास्पद रूप से आसान लगना चाहिए, जैसे, कहना, एक SFV रिपोर्ट को CSV फ़ाइल और ईमेल को प्राप्तकर्ताओं को निर्यात करने के लिए शेड्यूल करना शेड्यूल करना ... खैर, ऐसा करने का सबसे आसान तरीका है। वर्कफ़्लो नियम और विज़ुअलफोर्स ईमेल टेम्प्लेट के साथ एक कस्टम फ़ील्ड के साथ एक कस्टम ऑब्जेक्ट बनाएं ... और फिर कोड के लिए आपको विज़ुअलफोर्स घटक लिखने की ज़रूरत है जो रिपोर्ट डेटा को विज़ुअलफोर्स ईमेल टेम्प्लेट में अनुलग्नक के रूप में स्ट्रीम करता है और आप अनाम APEX लिखते हैं। कस्टम ऑब्जेक्ट का कोड शेड्यूल फ़ील्ड-अपडेट ... SFDC डेवलपर्स के लिए, यह लगभग एक दैनिक कार्य है ... लगभग पांच अलग-अलग तकनीकों को एक साथ रखने की कोशिश कर रहा है जो कि कार्यों को इतना सरल लगता है .... और यह प्रबंधन सिरदर्द का कारण बन सकता है। और तनाव भी - आमतौर पर, आपको कुछ ऐसा करने का सुझाव मिलने के बाद पता चलेगाउपयोगकर्ता-समुदाय में t काम (जैसे कि किसी ने पहले ही कहा था), और फिर कई चीजों की कोशिश कर रहा है, जिन्हें आप विकसित करने के बाद आप पाएंगे कि वे बस कुछ विषम-बॉल कारण के लिए काम नहीं करते हैं - जैसे "आप शेड्यूल नहीं कर सकते हैं एक" VisualForce पृष्ठ ", या" आप किसी शेड्यूल किए गए संदर्भ से getContent नहीं कह सकते हैं "या कुछ अन्य रहस्यमय कारण।

एसएफडीसी प्लेटफॉर्म पर बहुत सारे, बहुत सारे छोटे-छोटे गेटे हैं, जो एक बार आप जानते हैं कि वे वहां क्यों हैं, यह समझ में आता है ... लेकिन वे अभी भी बहुत खराब सीमाएं हैं जो आपको वह करने से रोकते हैं जो आपको करने की आवश्यकता है। यहाँ मेरा कुछ है;

  1. आप किसी भी तरह के रिकॉर्ड पर रिकॉर्ड मालिक की जानकारी "बॉक्स से बाहर" प्राप्त नहीं कर सकते हैं - आपको एक ट्रिगर लिखना होगा जो रिकॉर्ड बनाने के रिकॉर्ड के मालिक को आपके द्वारा सम्मिलित कर रहा है। क्यों? संक्षिप्त उत्तर क्योंकि एक मालिक या तो एक "व्यक्ति" या "कतार" हो सकता है, और दोनों काफी अलग-अलग संस्थाएं हैं ... समझ में आता है, लेकिन यह एक परियोजना को उल्टा कर सकता है।

  2. मैडनिंग सुरक्षा मॉडल। उदाहरण: "सार्वजनिक रिपोर्ट प्रबंधित करें" की अनुमति "रिपोर्ट बनाएं और कस्टमाइज़ करें" से बहुत भिन्न है और यह मूल रूप से मंच पर सब कुछ के लिए जाता है ... विशेष रूप से किसी भी प्रकार के फ़ोल्डर।

  3. जैसा कि उल्लेख किया गया है, समर्थन मूल रूप से अस्तित्वहीन है। यदि आप एक बहुत ही आत्मनिर्भर व्यक्ति हैं, या आपके पास बहुत सारे SFDC संसाधन हैं, या आपके पास बहुत समय और / या बहुत क्षमा करने वाला प्रबंधक है, या एक SFDC प्रणाली के प्रभारी हैं जो ठीक काम कर रहे हैं, तो आप बहुत अच्छे हैं आकार। यदि आप इनमें से किसी भी स्थिति में नहीं हैं, तो आप खुद को गहरी परेशानी में पा सकते हैं।

SFDC एक बहुत ही आकर्षक व्यवसाय प्रस्ताव है ... कोई उपकरण पदचिह्न, बहुत अच्छी सुरक्षा, निश्चित मूल्य, कोई बुनियादी ढांचा नहीं है, और आपको वेब-आधारित CRM बैटमैप, और शेड्यूलबल प्रोसेसिंग के साथ मिलता है ... लेकिन जैसा कि अन्य पोस्टरों ने कहा है, यह वास्तव में है। विकास सीखने में काफी रैंप-अप, और यदि आप परामर्श के साथ जाते हैं, तो मुझे लगता है कि मैंने जो सबसे कम कीमत देखी है वह $ 200 / घंटा थी।

कुछ तकनीकों के सामान्य होने के बाद Salesforce अन्य चीजों के साथ एकीकृत हो जाता है - JSON और jquery दिमाग में आते हैं ... और यदि आपके पास अन्य सामान्य अवसंरचनाएं हैं, जिनके साथ आप एकीकरण करना चाहते हैं, जैसे JIRA, बहुत अतिरिक्त भुगतान करने की उम्मीद करते हैं। और वे काफी छोटी हो सकती हैं।

और जैसा कि उल्लेख किए गए अन्य पोस्टरों में से एक है, आप लगातार राज्यपाल की सीमाओं से लड़ रहे हैं जो आपको केवल पागल कर सकते हैं ... एक अटैचमेंट> 5 एमबी नहीं हो सकता है। अवधि। और कभी-कभी <3MB (यदि base64 एन्कोडेड)। एक कक्षा में दस HTTP कॉलआउट। अवधि। दर्जनों प्रकाशित गवर्नर सीमाएं हैं, और कई ऐसे हैं जो आप निस्संदेह नहीं पाएंगे और बस चिल्लाते हुए अपने कार्यालय से बाहर भागना चाहते हैं।

मैं वास्तव में, वास्तव में मंच की तरह, लेकिन मुझ पर विश्वास करो - यह वास्तव में एक क्रूर मालकिन हो सकती है।

लेकिन SFDC के लिए निष्पक्षता में, मैं यह कहूँगा: सबसे बड़ी समस्या जो मुझे प्लेटफ़ॉर्म के साथ मिल रही है वह प्लेटफ़ॉर्म ही नहीं है, बल्कि यह उम्मीद है कि लगभग कोई भी व्यक्ति जो प्लेटफ़ॉर्म देखता है, लेकिन उस पर विकसित नहीं हुआ है ...। और वे लोग व्यापारिक संगठनों में महान अधिकार के पदों पर आसीन होते हैं; विपणन, बिक्री, प्रबंधन, आदि बड़े डिस्कनेक्ट होते हैं और सिर को रोल करने की धमकी दी जाती है, या दैनिक रूप से रोल करने की धमकी दी जाती है - यह सब इसलिए क्योंकि अजीब गेटवे के साथ यह महान मंच है और रोज़ाना संघर्ष करने वाले हजारों लोग अपने सिर को पाने के लिए क्यों चीजों को बस तब काम करना चाहिए जब काम करना चाहिए वे बस नहीं करते और नहीं करेंगे।

EDIT:
MVC के बारे में lomaxx की टिप्पणियों में जोड़ने के लिए; एसएफडीसी शब्दावली में, यह "व्यूस्टेट" के रूप में जाना जाता है के साथ निकटता से संबंधित है - और यह वास्तव में छोटी गाड़ी हो सकती है, इसमें वीएफ पृष्ठ पर जो है वह पृष्ठ के लिए नियंत्रक-वर्ग में नहीं है। तो, आपको अजीब gyrations के माध्यम से जाना होगा कि पेज पर व्हाट्स को सिंक्रोनाइज़ करें कि कंट्रोलर SF को क्या लिखने जा रहा है जब आप अपने "सेव" बटन पर क्लिक करते हैं (या अपना HTTP कॉलआउट या जो भी बनाते हैं) .... आदमी, यह कष्टप्रद है ।


संस्करण नियंत्रण का उल्लेख करने के लिए +1।
लिंडन फॉक्स

7

मुझे लगता है कि अन्य लोगों ने नुकसान को अधिक गहराई से कवर किया है, लेकिन मेरे लिए, यह एमवीसी प्रतिमान का उपयोग नहीं करता है या कोड के पुन: उपयोग के तरीके में बहुत समर्थन करता है। सरल अनुप्रयोगों से परे कुछ भी करने के लिए ASP.Net MVC जैसी किसी चीज़ का उपयोग करके अनुप्रयोग विकसित करने की तुलना में निराशा में एक अभ्यास है।

इसके अलावा, उपकरण, डेटा लेयर और विकास प्रक्रिया के दौरान रीफैक्टर कोड या नाम बदलने की कोशिश करने की हताशा मदद नहीं करती है।

मुझे लगता है कि सीएमएस के रूप में यह बहुत अच्छा है लेकिन गैर सीएमएस अनुप्रयोगों के लिए एक मंच के रूप में, यह मेरे लिए कोई मतलब नहीं है।


6

सुरक्षा मॉडल भी बहुत प्रतिबंधक है ... लेकिन यह सबसे खराब हिस्सा नहीं है। आप वर्तमान में यह दावा नहीं कर सकते हैं कि किसी उपयोगकर्ता में किसी विशेष कार्य को करने की क्षमता है या नहीं।

आप यह देखने के लिए जाँच कर सकते हैं कि उनकी भूमिका क्या है, लेकिन आप जाँच नहीं कर सकते कि उस भूमिका के पास वर्तमान क्रिया करने की अनुमति है या नहीं।

इससे भी बदतर तकनीकी समर्थन से प्रतिक्रिया है "कार्रवाई का प्रयास करें और यदि कोई अपवाद है, तो इसे पकड़ लें"


6

Force.com को ध्यान में रखते हुए एक "क्लाउड" प्लेटफ़ॉर्म है, बाहरी WSDL- परिभाषित सेवा के लिए एक क्लाइंट के रूप में कार्य करने की इसकी क्षमता बहुत अधिक है। Http://force201.wordpress.com/2010/05/20/when-generate-from-wsdl-fails-hand-coding-web-service-calls/ देखें कि आपके लिए क्या करना है।


3

उपरोक्त सभी के लिए, मैं उत्सुक हूं कि वीएमफोर्स की रिहाई, जावा प्रोग्रामर को Force.com के लिए कोड लिखने की अनुमति कैसे देता है, ऊपर के नुकसान को बदलता है?

http://www.zdnet.com/blog/saas/vmforcecom-redefines-the-paas-landscape/1071


यह कुछ मुद्दों को दूर करेगा, लेकिन आप अभी भी Force.com डेटाबेस से बंधे रहेंगे, जो कि भयानक है और आपको वास्तव में अपनी तैनाती पर सही नियंत्रण नहीं मिलेगा। अभी शुरुआती दिन हैं और यह आगे बढ़ने में बदलाव हो सकता है, लेकिन अभी यह अत्यधिक आकर्षक विकल्प नहीं दिखता है।
लोमैक्सएक्स


3

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

मुझे लगता है कि वे इसे यथासंभव अज्ञेय बनाने की कोशिश कर रहे हैं। लेकिन अभी के बारे में ये सभी घोषणाएं और शुरुआती पहुंच हैं, जैसे कि उनके सुरक्षित हार्बर बयानों को वे जो कहते हैं, उस पर खरीद नहीं करते हैं, केवल उनके पास जो वर्तमान में है।


7 साल और उन्होंने ऊपर की सूची में एक भी बात को संबोधित नहीं किया है।
el n00b
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.