2008-10-21 3 views
2

우리 부서에는 2 명의 새로운 GIS 프로그래머/분석가가 있습니다 (프로그래밍 및 ArcObjects는 처음입니다). 나는 충분히 자격이 있다고 느끼지 않거나 가르 칠 시간이 없다고 생각합니다. 그래서 저는 그들을 참조 용으로 사용할 수있는 초보자 용 책자/자습서를 찾고 있습니다.ArcMap 확장 .Net 북 개발?

ArcMap 용 Extensions 개발을 위해 찾을 수있는 유일한 책은 VBA 용입니다.

Redlands의 교육 과정에서 얻은 ESRI 교과서 외에, .NET의 ArcObjects를 코딩하는 법을 배우기에 좋은 자료를 알고있는 사람이 있습니까?

감사

답변

7

프로그래머에게 ArcObjects와 일반적인 소프트웨어 개발을 가르치려는 것은 정말 좋은 생각입니다. 나는 바로 지금 똑같은 문제로 고심하고있다. ArcObjects 나 C#을 잘 프로그래밍하지 않은 두 명의 개발자가 생길 위험이 있습니다.

좋은 개발자가되도록 가르칩니다. 고급 ArcGIS ADF 또는 완전한 비 -GIS 응용 프로그램이 당신에게 달려 있다는 것을 의미하든 비 ArcObjects 코드에서 작업하도록함으로써이를 수행하십시오. 애플리케이션 컨텍스트 (웹, 데스크탑, 중간 등)의 기본 사항을 이해했는지 확인하십시오. 그러면 ArcObjects로 쉽게 전환 할 수 있습니다.

일단 소프트웨어 개발 기본 사항 (특히 상속 및 OOP)을 파악한 후에는 ArcObjects에 소개하십시오. VBA 참조는 적합하지만 C# 및 현대 도구에 추상화하기는 어렵습니다. 밝은 개발자가 할 수는 있지만 평범한 개발자는 나쁜 습관을 많이 배울 것입니다.

가장 좋은 방법은 총알을 물고 개발자 워크샵으로 보내는 것입니다. 때때로 ESRI는 지역 사무소에서보다 지역적인 수업을 제공합니다. 또는 봄과 여름에 Developer Summit 또는 User Conference에 각각 보내십시오. 기술 워크샵은 전체 초보자를 위해 조금 개선되었습니다. 즉, 개발자가 ArcMap 또는 ArcObjects에 대한 기본적인 지식을 가지고 있다면 많은 것을 배울 수 있습니다.

또한 그들은 ArcMap을 사용하는 방법을 배워야합니다. ArcObjects를 배우기 위해 할 수있는 가장 중요한 유용한 것은 ArcMap을 배우는 것입니다.데스크톱 제품에서 API가 어떻게 작동하는지 이해하면 API 사용 방법을 자주 확인할 수 있습니다. 쉬운 예는 데이터 투사입니다. ArcMap에서는 도구를 사용하여 명시 적으로 데이터를 투영해야합니다. 단순히 투영을 "설정"하면 효과가 없습니다. 이것은 "프로젝트"메소드를 호출하거나 프로젝트 GPTool을 사용해야하는 API로 직접 변환됩니다.

+1

틀린 내용입니다. 저는 실제로 ESRI에서 개발자로서 일했으며 당신이 말한 것에 더 동의하지 않습니다. OOP에 익숙해지고 ArcMap에 익숙해지며 COM API를 다루려고 시도하십시오. –

+0

내가 참석 한 ERSI 개발자 워크샵에별로 감명을받지 못했습니다. 순수한 초보자가 프로그래밍을한다고 가정하면, 그것은 아무것도 아닌 것보다 낫습니다. – emptyset

+0

@emptyset 어떤 워크샵이 있습니까? 사용자 컨퍼런스에서 다중 일 수업 중 하나 또는 1 시간 세션? –

1

는 지금까지 내가 ESRI 개발자 네트워크에서 코드의 일부를 기억으로는 적어도 그 날 차 GIS에 대한 C# 코드의 소스,하지만 책이었다, C#으로 지금, 죄송합니다.

아마도 이것은 좋은 입문서가 될 것이다 : http://www.pragprog.com/titles/sdgis/gis-for-web-developers

1

직원들이 프로그래밍 정말 새로운 경우에, 나는 그들이 C 번호의 기본 (또는 다른 닷넷 언어를 배울 수 있지만, C#을 아마 방법 갖는 시작할 것 초보자를위한) 좋은 프로그래밍 연습. 거기에 대한 제안이 기존 stackoverflow 스레드가 상상할 것이다. 저는 객체 지향 프로그래밍에 대한 확실한 이해와 예제가있을 언어의 구문을 아는 것이 ArcObjects의 학습을 용이하게 할 것이라고 생각합니다.

저는 ArcObjects에 관한 비 ESRI 서적에 대해서는 잘 모릅니다. 그러나 나는 그들의 자원이 초보자를 시작하기에 충분하다고 생각한다. ESRI 교과서 외에도 http://resources.esri.com/arcgisdesktop/dotnet/index.cfm

등 온라인 자료실에서 시작하는 것이 좋습니다. 객체 모델 다이어그램을 읽는 방법을 배우고 도움말을 사용하여 ArcObjects의 메소드와 속성을 탐색하는 방법을 배우십시오. 또한 직원들이 ESRI 사용자 포럼을 활용하도록 권장하십시오. 거기에 질문을 도울 용의가 많은 지식이 많은 사람들이 있습니다.

0

사례별로 연습하십시오.

현재지도의 스크린 샷을 찍은 한 번의 클릭으로 MediaWiki 사이트에 게시 한 것과 같은 간단하지만 흥미로운 도구로 처음 시작했을 때 재미있었습니다. API의 대부분은 딥 매직처럼 보이고 Windows 레지스트리를 샅샅이 조사하고 ("데이터보기"컨텍스트 메뉴에서 맞춤 메뉴 항목을 만드는 방법과 같은) 교육용 추측을함으로써 완전히 문서화되지 않은 기능을 우연히 발견했습니다.

나는 지루하고 건조한 책을 읽지 않으면 서 간단하고 달성 가능한 과제를 통해 더 나은 것을 많이 배웠습니다.

많은 힘이 있지만, 나는 그것의 대부분을 알고 이해하는데 점점 느려졌습니다.

재미있는 점이 없으면 개발자는 큰 API로 자살 할 것이라고 생각합니다.

0

ArcObjects에 중점을 둔 비 ESRI 서적에 대해서도 알지 못합니다. ArcGIS Server 소프트웨어와 저에게는 ArcGIS Server Administrator and Developer Guide (AGS 설치 상자에 포함 된 AFAIK) 만 권장 할 수 있습니다. C#과 VB 모두에서 많은 코드 예제가 있습니다. AGS로 프로그래밍하지 않더라도 예제는 ArcObjects 코드의 작동 방식을 교육하는 데 여전히 유용 할 수 있습니다.

0

나는 James에게 완전히 동의합니다.

4 년 전이 보트에 있었던 누군가로 .NET 프로그래밍을 시작한 다음 ESRI 플랫폼으로 이동해야하며 ESRI 문제로 인해 OOP 개념을 배우려고하지 않을 것이라고 생각합니다.

나는 또한 ESRI 개발자 리소스 센터 beginers [http://resources.esri.com/gateway/index.cfm]

는 .NET 및 데스크톱 developemnt로 시작하는 경우에 대한 풍부한 정보를 하바 것을 지적하고 싶습니다, 당신은 아래의 '시작하기 페이지'를 볼 수 있습니다 [http://resources.esri.com/help/9.3/ArcGISDesktop/dotnet/concepts_start.htm]

행운을 빕니다.

2

모든 사람들이 여기에서 표현하는 일반적인 정서에 동의합니다 (프로그래밍 시작, 작게 시작, 특히 예/배우기로 배우기).

GIS 분석가가 프로그래밍을 배우는 것보다 개발자가 ArcObjects를 배우게하는 것이 훨씬 쉽습니다. 귀하의 작업 (둘 다 할)은 꽤 어렵습니다!

어딘가에서 시작해야한다면 C# 또는 VB .NET 기본 사항 (좋은 웹 기반 자습서 또는 유료 코스)을 통해 교육 한 다음 ESRI .NET 관련 교육을 수행하는 것이 좋습니다. . 위의 의견에서 말했듯이 ESRI 교육 과정에 깊은 인상을받지 못했습니다. 저는 소프트웨어 개발 배경을 가지고 있으며 2 개월 만에 ArcObjects API를 배울 수있었습니다. 2 개월 간의 실제 지식과 비교할 때, 교육 과정은 ArcObjects 자료에 대한 기본적인 내용이었습니다. 아직도, 견습생을 위해 일할 수도 있고, 당신은 당신의 고용으로 운이 좋을 수도 있습니다.

나는 또한 소프트웨어 교육에 중점을두기를 원하고 ArcObjects API를 부수적으로 생각한다고 덧붙이고 싶다. 이 ArcMap 확장이 사람에게 판매하고 고객으로 보유하려는 제품 인 경우 버그 투성이 제품의 지원, 향상 및 유지 관리가 비용이 많이 드는 작업임을 깨닫게됩니다.따라서 소프트웨어 교육에 지출되는 모든 비용은 장기적으로 자체 비용을 지불하게됩니다.

6 개월 동안 가이드 및 멘토 역할을하기 위해 계약 기반으로 소프트웨어 개발자를 고용하는 것을 고려해 보라고 할 것입니다.