ArcGIS प्लेटफॉर्म के साथ डेवलपर उत्पादकता बढ़ाना?


20

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

Esri की तकनीक - मुख्य रूप से ArcGIS सर्वर, ArcSDE और ArcObjects - हमारे द्वारा विकसित किए गए सभी सॉफ़्टवेयर में एक छोटी लेकिन आवश्यक भूमिका निभाती है। हमारी प्रौद्योगिकी स्टैक में ईएसआरआई की अल्पसंख्यक स्थिति के बावजूद, हम समय की एक बड़ी राशि को मायावी बग्स की समस्या निवारण में खर्च करते हैं, वर्कअराउंड को क्राफ्ट करते हैं, इसके अस्पष्ट त्रुटि संदेशों को कम करते हैं, प्रदर्शन की समस्याओं को ट्रैक करते हैं, और रीसाइक्लिंग प्रक्रियाओं को ट्रैक करते हैं।

आमतौर पर हमारी समस्याएं वास्तविक कीड़े, खराब अपवाद से निपटने, डिजाइन / वास्तु संबंधी निर्णयों को सीमित करने, प्रलेखन की कमी, अस्थिरता, या कुछ संयोजन के दोष से उत्पन्न होती हैं। (मैं यहां ESRI स्टैक की बात कर रहा हूं।)

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

मिक्स में ESRI के साथ डेवलपर उत्पादकता बढ़ाने के लिए आपके पास क्या व्यावहारिक सुझाव हैं?

मैं वैकल्पिक प्रौद्योगिकी स्टैक के सुझावों की तलाश नहीं कर रहा हूं।


2
क्या आप अपने सॉफ्टवेयर में ईएसआरआई उत्पादों का उपयोग करने के पीछे का कारण पूछ रहे हैं?
OptimizePrime

डेवलपर्स अच्छी तरह से जवाब देते हैं यदि आप उन्हें ढूंढने की धमकी देते हैं जो आपको हर बग के लिए है। अधिक गंभीर नोट पर: ESRI उत्पादों का उपयोग करते समय आपकी निम्न टिप्पणी सामान्य है। <blockquote> हम समय की एक बड़ी राशि खर्च करते हैं मायावी बग्स का निवारण करते हैं, वर्कअराउंड का
प्रारूपण करते हैं

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

1
@geographika - मुख्य शब्द "inordinate" है - हमारे साथ काम करने वाली अन्य सभी तकनीकों के सापेक्ष।
nw1

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

जवाबों:


10

प्रदर्शन के लिए ऐसा लगता है कि इस लेख में बताए अनुसार ArcObjects को C ++ प्रॉक्सी कोड लिखना सबसे अच्छा उपाय है । उदाहरण में, ईएसआरआई COM इंटरॉप के भारी उपयोग को हटाने से 6x प्रदर्शन में वृद्धि होती है।

ईएसआरआई क्रिप्टिक कॉम त्रुटि संदेशों से निपटने के सुझाव / सर्वोत्तम अभ्यास भी देते हैं - और एचआरईएसल्ट त्रुटि कोड की व्याख्या ।

इन बहुत सारे विन्यास मुद्दों से परे विंडोज से संबंधित हैं, और इसलिए विंडोज सर्वर प्रबंधन, आईआईएस, विंडोज सेवाओं, विंडोज ईवेंट लॉग्स, रजिस्ट्री, पंजीकृत COM ऑब्जेक्ट्स आदि की अच्छी जानकारी है।

इन लेखों के अलावा, कई और अधिक सामान्य विकास दृष्टिकोण हैं जो आपको उपयोगी लग सकते हैं।

सॉफ्टवेयर विकास दृष्टिकोण

  • भौगोलिक डेटा (WMS, WFS, ArcGIS REST सेवाओं) के लिए यथासंभव वेब सेवाओं का उपयोग करें। यह अलगाव चीजों को डिबग और बनाए रखने में आसान बनाता है।
  • जहां विंडोज इंस्टॉलेशन को साफ करने के लिए सिस्टम इंस्टॉल करना संभव है। स्क्रिप्ट स्थापित करें ताकि आप मेमोरी और मैन्युअल प्रक्रियाओं पर भरोसा किए बिना पूरे सिस्टम को खरोंच से फिर से बना सकें। वर्चुअल मशीनें इसके लिए एकदम सही हैं।
  • जितना संभव हो उतना शुद्ध .NET और DLL को ESRI विशिष्ट कोड के साथ अलग रखें
  • आप डेटाबेस में और अधिक "भारी उठाने / प्रसंस्करण" करने की कोशिश करना शुरू कर सकते हैं जैसे कि सीधे SQL Server 2008 में नई ज्यामिति और भूगोल कक्षाओं के साथ

संचार

  • मायावी बग को GIS SE / StackOverflow में पोस्ट करें, और यदि आप उन समाधानों को भी पोस्ट करते हैं, तो मैंने पिछले उत्तर पाए हैं जो मैंने खुद को उसी बग की खोज करते हुए लिखा है जिसे मैं लगभग 6 महीने बाद भूल गया हूँ।
  • नोट रखें, और आदर्श रूप से उन्हें टीम में अन्य लोगों द्वारा खोजा जा सकता है। मैंने विकी की कोशिश की है, लेकिन छवियों को चिपकाने की कमी मुझे नियमित रूप से करने से रोकने के लिए पर्याप्त बाधा थी। मैं वर्तमान में Microsoft OneNote का उपयोग करता हूं जो त्रुटियों, URL, स्क्रीनशॉट का ट्रैक रखने के लिए एकदम सही है। इसे साझा भी किया जा सकता है।
  • अधिक विस्तृत तकनीकी दृष्टिकोणों के लिए, उन्हें ब्लॉग पर पोस्ट करें। ईएसआरआई दुनिया में विवरणों का कम साझाकरण प्रतीत होता है, संभवतः दूसरों द्वारा व्यावसायिक लाभ लेने के डर के कारण, हालांकि एक सभ्य ब्लॉग आपकी कंपनी की सेवाओं के लिए एक अच्छा विज्ञापन है

जवाब के लिए -1 था, या ओएसएस जीआईएस को विकसित करने और कॉन्फ़िगर करने की धृष्टता होने पर समान कठिनाइयों के बिना वास्तव में नहीं है ?!
geographika

7

मुझे डर है कि इस सवाल से बहुत अच्छे जवाब नहीं आने वाले हैं। लेकिन यह एक अच्छा है .... ESRI उत्पादों का प्रदर्शन कुछ समय के लिए मेरी चिंता का विषय रहा है।

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

ईएसआरआई में से कुछ कृपया मुझे सही करें अगर मैं गलत हूं तो ज्यादातर ईएसआरआई की .NET लाइब्रेरी COM ऑब्जेक्ट्स के रैपर हैं, जिनमें से सर्वश्रेष्ठ त्रुटि रिपोर्ट और हैंडलिंग पर अस्पष्ट उपयोग करने और प्रदान करने के लिए ओवरहेड्स हैं। अंतर्निहित COM ऑब्जेक्ट्स और आपके कोड बेस में उनकी भागीदारी को समझने से आपको अपने कोड को उनके ऑपरेशन के लिए बेहतर डिज़ाइन करने में मदद मिलेगी। यह एक तथ्य मेरी पायथन लिपियों 10 गुना में प्रदर्शन बढ़ाने में मेरी मदद करता है। क्या एक बार 40 मिनट लग गए अब 4 लगते हैं और थोड़ा ट्विकिंग के साथ अब 2.5 मिनट तक नीचे है!

मैंने आर्कगिस 10 के साथ अच्छी बातें सुनी हैं, लेकिन अपनी सांस को रोककर न रखें।

यदि आप अपने सॉफ्टवेयर के भीतर एक जीआईएस समाधान प्रदान करने के लिए ईएसआरआई उत्पादों का उपयोग कर रहे हैं, तो प्रस्ताव पर कई खुले स्रोत परियोजनाओं में से एक पर कुंडी लगाएं और वहां से निर्माण करें। @capdragon अनुप्रयोगों का एक ऐसा सेट प्रदान करता है जो आपको साथ देने में मदद करने के लिए क्लाउड में माइंडेड डेवलपर्स की सहायता टीम के साथ एक बड़ी मात्रा में लचीलापन और स्केलेबिलिटी प्रदान करेगा।

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

मैं चाहता हूं कि कोई मुझे गलत साबित करे!


आपके प्रश्न का उत्तर देने के लिए, हम बहुत अधिक कारणों से बहुत अधिक अटक गए हैं।
nw1

ArcObjects .NET SDK अंतर्निहित COM के लिए लगभग पूरी तरह से रनटाइम कॉल करने योग्य आवरण हैं। सिल्वरलाइट / WPF SDK COM आधारित नहीं है।
जेम्स स्कैच

@James - अगर मैं गलत हूं तो मुझे सुधारें, लेकिन क्या सिल्वरलाइट SDK सिर्फ REST API क्लाइंट नहीं है? और REST API को ArcObjects पर नहीं बनाया गया है?
nw1

@OptimizePrime - ArcGIS 10 ने आपके द्वारा उल्लिखित कई क्षेत्रों में बहुत बड़ी प्रगति की है और उन्होंने 10.1 से आगे की घोषणा की है। वे 10.1 में DCOM समर्थन पूरी तरह से छोड़ रहे हैं।
विल्बेव

1
@welbev इस जानकारी के लिए आपका बहुत-बहुत धन्यवाद। ईएसआरआई को इसमें मुख्य रूप से आने में कुछ समय लगा है, लेकिन यह सुनकर प्रसन्नता होती है कि वे इन चिंताओं को दूर कर रहे हैं।
OptimizePrime

7

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

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

वहाँ सामान है कि आप इस तरह से नहीं कर सकते हैं, लेकिन मैं पर्याप्त तनाव नहीं कर सकते हैं कि यह कितना अच्छा है कि ESRI स्टैक में लगभग कुछ और के साथ काम करना है। जब आपको ArcObjects (या .net लिपटी ArcObjects) के साथ काम करना होता है, तो आप वास्तव में कर सकते हैं अपने कोड में बहुत अच्छे दस्तावेज बनाते हैं और प्रार्थना करते हैं कि वे अगले पैच में सामान न तोड़ें (जो वे शायद जानते हुए भी करेंगे। )।


6

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

सर्विस पैक और पैच के शीर्ष पर रहें। यदि आप ऐसा करते हैं तो आपको कोई समस्या नहीं है, लेकिन जब आप नवीनतम संस्करण / अद्यतन स्थापित करते हैं, तो आप सुरक्षित रूप से जवाब दे सकते हैं, "हाँ," जब आप समर्थन से पूछ सकते हैं, तो गारंटी नहीं है।

समुदाय (ब्लॉग, यहाँ प्रश्न आदि) के लिए अपने वर्कआर्ड्र्स में योगदान करें। यदि पर्याप्त लोग ऐसा करते हैं, तो मुझे लगता है कि दो चीजें होंगी: एक, अधिक डेवलपर्स मुद्दों के बारे में जानते होंगे और उनके पास अधिक तेज़ी से और दो को बाहर करने के लिए लड़ाई का मौका होगा, समस्याओं को तेजी से ईएसआरआई द्वारा तय किया जाएगा (एक आवर्धन जैसा कुछ नहीं) चींटियों को पाने के लिए ग्लास, वहाँ है?)।


4

मैं भी एक ESRI डेवलपर हूं जो इस उत्पाद के साथ दैनिक आधार पर लगातार लड़ता है। मेरे पास रखरखाव का समर्थन नहीं है, इसलिए मुझे डेवलपर्स से बहुत प्रतिक्रिया नहीं मिलती है।

यह वास्तव में वास्तव में निराशा होती है जब कुछ "बस काम नहीं करता" (IJW के विपरीत - यह बस काम करता है), चाहे कितना भी कठिन प्रयास क्यों न हो।

लड़ाई जीतने के लिए मैं क्या करूँ:

  • प्रश्न पूछें (बहुत)
  • एसडीओ संदर्भ (एक बहुत - बार और अधिक) ArcObjects पढ़ें
  • अलग-अलग सेटअप के साथ प्रयोग

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

प्रलेखन अच्छा है, लेकिन प्रमुख तत्व विवरण और महत्वपूर्ण विवरण का अभाव है - इसलिए, 1 पर वापस जाएं।

प्रयोग भी काम करता है। एक कंसोल प्रोग्राम बनाएं और दूर परीक्षण करें। यूनिट टेस्टिंग फ्रेमवर्क आपको एक आईडीई के अंदर सब कुछ करने में मदद कर सकते हैं, लेकिन विभिन्न परिदृश्यों का परीक्षण करते हैं।

ESRI पुस्तकालयों का बुग्गीस्ट या अजीबोगरीब Geodatabase है और शर्तों के आधार पर विचित्र परिणाम दे सकता है, इसलिए इसे मास्टर करने का प्रयास करें।


1

PostGIS> GeoServer> OpenLayers का उपयोग करके देखें। देखें कि आपकी टीम के लिए यह कैसे काम करता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.