Odpowiedź na to pytanie brzmi „tak” i „nie”. Możliwe jest przy pewnym wysiłku zrobienie wszystkiego w Pythonie, co można zrobić w .Net, ale łatwe i możliwe to dwie bardzo różne rzeczy. Po tym, najprostsza interpretacja brzmi: nie , Dodatki Python nie mogą zrobić tyle, co Dodatki .Net. Jednak zadania, które można wykonać w Dodatkach Python, są znacznie łatwiejsze i szybsze do wdrożenia i przetestowania.
Z czysto technicznego punktu widzenia program ArcGIS Desktop Add-In Framework oferuje następujące funkcje:
- Dobrze zdefiniowany, oparty na XML schemat do opisywania szeregu typowych punktów i komponentów integracji pulpitu: Przyciski, paski narzędzi, menu, narzędzia, menu i rozszerzenia wielu elementów, a także sposób łatwego połączenia ich w deklaratywny sposób z kod do pulpitu ArcGIS
- Format pliku i struktura pliku (
.esriaddin
) do dystrybucji kodu dostosowywania pulpitu.
- Zainstalowany mechanizm instalacji, weryfikacji i buforowania
.esriaddins
, więc jeśli zmieni się plik źródłowy uszkodzonego dodatku, przeładuje on zmieniony plik do lokalnej pamięci podręcznej dodatków na pulpicie.
- Zestaw mechanizmów bezpieczeństwa i uwierzytelniania dla kodu w dodatkach: cyfrowe podpisywanie
.esriaddin
plików, kontrola administracyjna nad poziomem uwierzytelnienia niezbędnym do instalacji dodatku.
Brakuje tutaj ramy dodatków, czyli jakiejkolwiek formalnej umowy dotyczącej zachowania lub funkcji za przyciskami itp. Po zainstalowaniu zestawu .Net SDK dla ArcGIS, integracja programu Visual Studio w formie kreatorów dodatków w oknach dialogowych zarządzania projektem , dokumentacja, fragmenty kodu, powiązania ArcObjects itp. Więc po przejściu przez punkty wejścia zapewnia szkielet Add-In, dodatek .Net pozwala przejść całą resztę dzięki interfejsom API ArcObjects, który również jest dostarczany w pakiecie z , a także zawiera bibliotekę fragmentów kodu typowych zadań, które już są w użyciu. W ArcGIS nie ma takiego zestawu SDK dla deweloperów Python: cała funkcjonalność Pythona jest ujawniona poprzez arcgisscripting / arcpy i jest już dołączona do produktu. Jeśli więc .NET SDK jest pobierany jako duży plik do pobrania, najbliższą rzeczą w Pythonie jest stosunkowo niewielki plik do pobrania Kreatora dodatków.
Z drugiej strony, Python jest w stanie wykorzystywać / implementować interfejsy COM , ale używanie COM z Pythona nie jest dołączane do żadnego zestawu ArcGIS SDK ani dokumentowane w systemie pomocy ArcGIS. Jeśli dopiero zaczynasz rozwijać się w ArcGIS, powinno to być wystarczającą barierą dla wejścia, aby cię odepchnąć, chyba że naprawdę wiesz, co robisz. Możesz zrobić COM w Pythonie tutaj, ale jest on wystarczająco blisko Turinga Tarpita , że trudno jest uzasadnić spędzony czas, chyba że jesteś użytkownikiem na poziomie eksperckim, który już zna się na szczegółach COM i ArcObjects.
Polecam przyjrzeć się, co możesz zrobić z Arcpy . Możesz zautomatyzować wiele zadań, takich jak wywoływanie narzędzi do geoprzetwarzania i wykonywanie wsadowej manipulacji dokumentami map , a Dodatki do Pythona pozwalają korzystać z pewnych dobrze zdefiniowanych ujść zdarzeń i niektórych kontrolek dialogowych oprócz podstawowych możliwości Arcpy. Jeśli nie możesz wymyślić sposobu na wykonanie zadania w Pythonie w oparciu o to, co mówi dokumentacja (potrzebujesz złożonej interakcji interfejsu użytkownika lub zaczepisz się o zdarzenia niewidoczne w Kreatorze dodatków Python lub użyj czegoś dostępnego tylko w ArcObjects) , a następnie wykonaj prace rozwojowe w dodatku .Net.
Przepraszamy, jest to bardziej niuansowe niż trudne i szybkie odpowiedź tak lub nie, ale powinno dać ci pewne wskazówki, czy powinieneś wybrać trasę w Pythonie czy .Net w swoim dodatku.
Przypuszczam, że powinienem dodać to ujawnienie: zaprojektowałem i opracowałem wiele funkcji specyficznych dla Pythona dla dodatków w ArcGIS.