Lernen Sie .NET für ArcGIS (hauptsächlich Desktop)?


12

Ich habe grundlegende Programmierkenntnisse (ich programmiere einfache VBA-Python- und LISP-Skripte und habe vor langer Zeit einen Java-Kurs durchlaufen), aber es scheint mir (nach ESRI-Veröffentlichungen) nicht zu entgehen, .NET zu erlernen Zukunftsrelevanz auf dem GIS-Arbeitsmarkt (auch als Analyst).

Ich habe einen grundlegenden C # -Kurs durchlaufen und kann (bedauerlicherweise) ziemlich schlechte Programme programmieren, aber ich habe keine Ahnung, wie ich das C # -Wissen mit dem eigentlichen Programmieren für Arcgis verknüpfen kann, um Fortschritte zu erzielen.

1) Ich weiß, dass die Unterschiede nicht groß sind, aber verwendet ArcGIS .NET oder C #?

2) Ich weiß, dass es der beste Weg ist, meine Erfahrung in .NET zu verbessern, wenn ich mehr und mehr programmiere. Gibt es jedoch gute .NET-Programmierbücher oder -Kurse, aus denen ich Techniken lernen kann?

3) Wie lernt man Ihrer Meinung nach am besten, in .NET für ArcGIS zu programmieren? Gibt es nützliche Bücher oder Websites?

Ich freue mich über Ihre Kommentare zu ArcGIS 10 (und werde sie für später speichern), aber wenn Sie mir ein paar Hinweise zu ArcGIS 9.3.1 geben könnten, wäre das großartig (ich befinde mich in einer sehr schwierigen Position, während Esri und Die ganze Welt konzentriert sich auf ArcGIS 10.0 (einschließlich lokaler Esri-Vertreter), fast niemand im Land hat ein Upgrade von 9.3.1 durchgeführt oder plant dies und hat persönlich Probleme, nach geeigneten Antworten für 9.3.1 zu suchen.

Antworten:



7

4

Wenn Sie Dinge schreiben möchten, die die Verachtung und den Spott von Programmierern vermeiden, Dinge, auf die Sie in einem Portfolio stolz sein können, möchten Sie ein wirklich sicheres Verständnis für objektorientiertes Design und Entwicklung erlangen (sofern Sie dies nicht bereits getan haben). . Das Beherrschen bestimmter Sprachen und Frameworks kann später erfolgen.

Verwenden Sie in jedem Fall .NET und ArcObjects als Zielsprache / API, wenn Sie Programmierübungen in einigen guten Softwareentwicklungsbüchern durchführen. Hier sind ein paar zu beginnen:

  • Der Pragmatic Programmer : Best Practices beim Schreiben von Code und einige nützliche Informationen zum Lebenszyklus von Softwareprojekten.
  • Code Complete : Ähnlich wie oben, aber mit viel mehr Details und Beispielen.
  • Testgetriebene Entwicklung : TDD zwingt Sie, einige der in den beiden oben genannten Büchern empfohlenen Vorgehensweisen einzuhalten.
  • Head First Design Patterns : Wenn Sie sich mit ArcObjects beschäftigen müssen, sollten Sie sich mit Design Patterns vertraut machen. Die API ist krank mit ihnen.

Code Complete ist ziemlich groß, aber der Rest kann schnell gelesen werden. Tatsächlich würde ich die ersten beiden Bücher für GIS-Leute empfehlen, die niemals eine Codezeile schreiben werden. Es gibt einige großartige Dinge in Bezug auf Quellcodeverwaltung, Projektmanagement, Kommunikation und gute Designprinzipien.


Ich konnte nicht mehr zustimmen. Nehmen Sie einen Graswurzelansatz und es zahlt sich aus.
Kelso

4

Ich wollte nur ein bisschen aus meiner persönlichen Erfahrung hinzufügen. Ich habe hauptsächlich als Nebenprodukt der Bedürfnisse des Arbeitgebers gelernt. Zuerst mit ArcGIS Desktop-Skripts, dann mit Erweiterungen und dann mit der Programmierung von ArcGIS Server (SOE, Web ADF und Web-API). Die beste Ressource war meiner Meinung nach die API und die Hilfedokumentation. Wenn ich zum ersten Mal in einen unbekannten Bereich vordrang, las ich ein wenig der konzeptionellen Hilfe, vertiefte mich dann in die Codierung und verwies nach Bedarf auf das API-Dokument. Wenn ich dann hängen bleiben würde, würde ich die Esri-Foren benutzen. Bestehende Codebeispiele waren gelegentlich hilfreich, aber ich konnte in der Regel nicht viel finden, das auf das zutraf, woran ich arbeitete - das mag jetzt nicht so sehr der Fall sein. Die Esri-Videos und diese großartige Website waren ebenfalls noch nicht verfügbar, das sind also sicherlich zusätzliche Ressourcen.

Ich füge hinzu, dass ich Geografie, GIS und einige Computerwissenschaften an einer Universität studiert habe, und ich denke, dass es schwierig ist, einen wirklich guten Einblick in GIS-Entwickler durch "Klassenarbeiten" oder durch eine sehr allgemeine Herangehensweise an Dinge zu bekommen. Wenn Sie bei einem Arbeitgeber arbeiten, der mit GIS zusammenarbeitet, würde ich vorschlagen, mit den GIS-Mitarbeitern vor Ort zu sprechen, um herauszufinden, welche Anforderungen ein guter Test für Sie sind - selbst wenn Sie in Ihrer Freizeit daran arbeiten müssen. Ansonsten würde ich versuchen, eine bestimmte Funktionalität zu entwickeln, die Sie gerne hätten oder die Sie für interessant halten, und dann herausfinden, was Sie wissen müssen, um dies zu erreichen.


Ich habe eine ähnliche Erfahrung. Es hat gut funktioniert für mich!
George Silva

3

Bestehender Code ( zusätzlich zu den anderen Antworten ... nicht anstelle von ).

Es gibt eine Menge davon online in Orten wie Google Projects , Codeplex und Github .

Es ist interessant, aus Code für Projekte zu lernen, die ziemlich aktiv sind und eine anständige Benutzergemeinschaft haben. (Nicht, dass Sie nichts aus alten Code-Repositories lernen können.)


2

1) ArcGIS oder ArcObjects ist ein COM-Modell mit einem .Net-, Java- und C ++ - Wrapper. So kann jede .Net-Sprache oder Java oder C ++ verwendet werden. Weitere Informationen finden Sie in der ArcObjects-Hilfe .Net , Java , C ++

2) Ich würde ein Auffrischungsbuch mit viel Inhalt vorschlagen, wie Begining C # oder VB.Net von Wrox.

3) Ich beginne damit, mir die Beispiele in den Dokumentationen anzuschauen. Speziell das Add-In-Zeug .


2

Ich würde vorschlagen, sich nicht auf die ESRI-Beispiele zu verlassen, um Programmierkenntnisse im Allgemeinen oder .NET im Besonderen zu erlernen. Das ist kein Slam auf die Proben oder die Leute, die sie vorbereitet haben; Beispiele sollen zeigen, wie eine bestimmte Sache funktionieren könnte oder sollte. Der Kürze halber werden viele Dinge aus Stichproben herausgelassen. Außerdem sind die meisten ESRI-Beispiele, die ich gesehen habe, nicht objektorientiert, sondern Spaghetti-Code.

Es klingt albern, aber ich bin von Visual Basic 6 auf VB.NET und C # umgestiegen, um die Zertifizierungsbücher zu studieren. Zu dieser Zeit wurde viel Wert darauf gelegt, was sich zwischen COM und .NET unterscheidet, da es neu ist. Eine gute Grundlage in der von Ihnen gewählten Entwicklungssprache hilft Ihnen, durch das Minenfeld der Beispiele und Dokumentationen von Softwareunternehmen zu navigieren.

Lernen Sie auch COM Interop kennen; ESRI hat einige gute Informationen, ist aber ESRI-spezifisch. In ArcGIS ist COM Interop möglicherweise nicht Ihr Freund, aber Sie werden eine Menge Debugging-Probleme haben, wenn Sie es nicht verwenden.


Ich stimme zu, dass Sie beim Programmieren im Allgemeinen nicht in einer abstrakteren Umgebung als bei GIS-Anwendungen davon profitieren. Außerdem sind die erfolgreichsten GIS-Programmierer, von denen ich weiß, dass sie nicht aus einem GIS- oder geografiespezifischen Hintergrund stammen
WolfOdrade

1

Wenn ich mir die Online-Ressourcen für Esri anschaue, muss ich feststellen, dass ArcObjects im Gegensatz zu anderen ArcGIS-Technologien keinen Anteil an umfangreichen und aktuellen Ressourcen hat.

Aus diesem Grund habe ich den IGeometry- Youtube-Kanal gestartet, um über ArcObjects zu diskutieren. Die Serie, die ich als .NET-Programmierung mit ArcObjects bezeichnet habe, hat ihre 14. Episode erreicht und viele GIS-Benutzer profitieren davon.

Die Serie basiert auf einem fiktiven Projekt namens "Bestaurants", bei dem Sie eine Anwendung auf ArcMap erstellen müssen, um Restaurants zu suchen, zu verwalten, hinzuzufügen und zu löschen. Mit jeder Episode stellen wir eine neue Benutzeroberfläche vor und lernen auf spielerische Weise die feinkörnigen Objekte in ArcObjects kennen!

Ich poste wöchentlich Videos, wenn es die Gelegenheit erlaubt, da dies etwas ist, was ich in meiner Freizeit mache.

Probieren Sie es jetzt aus und teilen Sie es mit jedem GIS-Geek, den Sie vielleicht kennen. Vorschläge zur Verbesserung der Serie sind immer willkommen.

Wer weiß, vielleicht beginne ich eine neue Serie, wenn wir damit fertig sind.

Genießen,

.NET-Programmierung mit ArcObjects (IGeometry) - 01 - Erste Schritte

.NET-Programmierung mit ArcObjects (IGeometry) - 02 - Arbeiten mit Layern

.NET-Programmierung mit ArcObjects (IGeometry) - 03 - Filtern von Layern

... ...

Sehen Sie die gesamte Playlist (14 Folgen bis jetzt)

http://www.youtube.com/watch?v=XrZs1rwmOwg&index=1&list=PLQnljOFTspQXqYsWJG8o-eJpGlvzww9lE


1

Der Einstieg in die ArcGIS for Desktop-Entwicklung mithilfe von .NET , einem Buch von Pouria Amirian, half mir beim Einstieg in die ArcGIS / ArcMap-Anwendungsentwicklung. Ich denke, dies ist eines der besten Nachschlagewerke für Anfänger, um mit grundlegenden .NET-Konzepten zu beginnen und diese mit ArcObjects zu verknüpfen. Es werden Muster-C # -Codes und -Datensätze bereitgestellt.


Enthält dieses Buch ArcGIS und Visual Studio-Software?
Salman

Nein, es wird keine Software bereitgestellt.
EvilInside


0

Web ADF ist das .NET SDK von ESRI. Es wird nach seiner nächsten Veröffentlichung veraltet sein.

Wenn Sie jedoch 9.3.1 verwenden, ist Web ADF Ihr Toolset für .NET. Es gibt viele Ressourcen online, ESRI und andere.

Hören Sie nie auf zu lesen, um die Programmierung im Allgemeinen zu verbessern! Lesen Sie Programmierblogs und Webseiten. Verwenden Sie den Stapelüberlauf . Hab niemals Angst, Fragen zu stellen. Lesen Sie Code Complete und andere angesehene Bücher über Programmierung und Softwareentwicklung. Lesen Sie alles, was Sie in die Hände bekommen können! Viel Glück!


0

Die Migration von VBA nach .NET ist recht schwierig. Ich weiß, dass Python bei v10 der letzte Schrei ist, aber ich hoffe, dass ESRI etwas zusammenstellt, um mit Add-Ins auf .NET umzusteigen . Idealerweise eine Entsprechung zu dem großartigen Buch "Einführung in Arcobjects", das sich speziell mit VBA befasst.

Lesen Sie sich dieses (2008) PDF über die Migration von VBA nach NET durch. Ich würde auch empfehlen, diesen Link in der v10-Webhilfe zu lesen

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.