Upload
fisk
View
82
Download
2
Embed Size (px)
DESCRIPTION
Advanced ArcObjects Component Development II (C++). Welcome. Instructor introduction Student introductions Name Organization Role in organization Programming experience VB, VC++ (ATL and MFC) Goals and expectations for this class Prerequisites AACD I, VC++, MFC, ATL. - PowerPoint PPT Presentation
Citation preview
Advanced ArcObjects Component Development II (C++)Copyright © 2002 ESRI. All rights reserved.
Advanced ArcObjects Component
Development II (C++)
1-2Advanced ArcObjects Component Development II (C++)Copyright © 2002 ESRI. All rights reserved.
Welcome
Instructor introduction
Student introductions Name
Organization
Role in organization
Programming experience
VB, VC++ (ATL and MFC)
Goals and expectations for this class
Prerequisites AACD I, VC++, MFC, ATL
Advanced ArcObjects Component
Development II (C++)
1-3Advanced ArcObjects Component Development II (C++)Copyright © 2002 ESRI. All rights reserved.
Quick questionnaire
How many people have: Written implementations of ICommand or IExtension?
Used ArcObjects Online, developer help, OMDs, Exploring AO?
Used smart types (smart pointers)? Understand smart types?
Used source-sinks for outbound interfaces in VC++?
Written ArcObjects-ATL components?
Written geodatabase extensions?
Used aggregation to write custom features for the geodatabase?
1-4Advanced ArcObjects Component Development II (C++)Copyright © 2002 ESRI. All rights reserved.
Logistics
Daily schedule Start _______________
Lunch _______________
Finish _______________
Facilities Refreshments and break area
Restrooms
Telephones and messages
Internet access
Student ID badges
Parking
1-5Advanced ArcObjects Component Development II (C++)Copyright © 2002 ESRI. All rights reserved.
Course materials
Books Lecture
Exercise
CDs Course data
Online course evaluation http://classeval.esri.com
Course Identification Number: _______________
Software evaluation Email enhancement requests to product teams
http://arconline.esri.com/arconline/feedback.cfm
1-6Advanced ArcObjects Component Development II (C++)Copyright © 2002 ESRI. All rights reserved.
Course timeline
Product review
Development directions
C++/COM review
ATL applications
Advanced ATL
Geodatabase customization
MFC applications
1-7Advanced ArcObjects Component Development II (C++)Copyright © 2002 ESRI. All rights reserved.
Course objectives
Write ArcObjects applications with VC++
Build on concepts introduced in Advanced ArcObjects Component Development I (AACD I)
Understand multi-component integration
Learn more about the ArcObjects development framework
Ask questions and participate in discussions
1-8Advanced ArcObjects Component Development II (C++)Copyright © 2002 ESRI. All rights reserved.
ArcGIS overview
Data
ArcGIS Server
ArcIMS
Personalgeodatabase
ArcSDERDBMSserver
Webserver
Enterprisegeodatabase
ImageCoverage Grid
Shapefile TIN CAD
Webbrowser
ArcInfo
ArcEditor
ArcView
ArcMap
ArcCatalog
ArcToolboxWorkstation
Extensions
1-11
Advanced ArcObjects Component Development II (C++)Copyright © 2002 ESRI. All rights reserved.
GIS in the enterprise
Web browser
ArcReader
ArcView 8 & ArcView 3
ArcEditor & ArcPad
ArcInfo
ArcSDE& ArcIMS
Internet-basedmap viewing
Desktop-basedmap viewing
General analysisand visualization
Data editingand maintenance
Advanced modelingand analysis
Data managementand distribution
Extensions
Number of usersD
evelop
er interface
1-13
Advanced ArcObjects Component Development II (C++)Copyright © 2002 ESRI. All rights reserved.
Database Design / Development
Geodatabase Design
Conceptsi
Learning paths
Proficiency
Learning ArcGIS II:
Presenting information
WIntroduction to ArcGIS II
i
Foundation
Learning ArcGIS I
WIntroduction to ArcGIS I
i
Creating, Editing, and Managing
Geodatabases
W
Creating and Managing
Geodatabasesi
Extensions
Customization /ProgrammingIntroduction
to Visual Basic for
ESRI software
W
Introduction to
Programming ArcObjects with VBA
i
(more)
(more)
Advanced ArcObjects Component
Development I
i
Advanced ArcObjects Component
Development II
i
1-14
Advanced ArcObjects Component Development II (C++)Copyright © 2002 ESRI. All rights reserved.
Online Support Center isgateway to resources
http://support.esri.com
Downloads Software upgrades
Technical papers
ArcScripts
User-to-user resources Discussion forums
Email lists
Technical archives Knowledge base
Documentation
System requirements
Software support resources
ESRI Technical Support Request support online
Find phone and fax numbers
Available to support subscribers
1-16
Advanced ArcObjects Component Development II (C++)Copyright © 2002 ESRI. All rights reserved.
ArcObjects: The foundation
Development platform for all ArcGIS applications
Three main products: ArcInfo, ArcEditor, and ArcView Applications: ArcMap, ArcCatalog, ArcToolbox, ArcScene
Application extensions: 3D Analyst, ArcPress…
Available license controls the objects that are available No reinstall required
Developers use ArcObjects to write custom COM objects to extend and customize applications
1-17
Advanced ArcObjects Component Development II (C++)Copyright © 2002 ESRI. All rights reserved.
Development triangle
Recommended progression
Start here
EmbeddingArcObjects
Stand-alone applications
Custom features and workspaces
Custom layers and renderers
Document persistence
Windows Property pagesViews
Geodatabase class extensions Application extensions
Editor tools
Commands Buttons Tools Menus Toolbars
VBA Macros and UIControls
Map Control
Difficulty of implementation
1-18
Advanced ArcObjects Component Development II (C++)Copyright © 2002 ESRI. All rights reserved.
ArcObjects development with VBA
Learning ArcObjects: Many samples, help system
Prototyping, testing, and exploring ArcObjects API
For relatively simple application extensions
Distribute functionality in an MXD or MXT format
Free
1-19
Advanced ArcObjects Component Development II (C++)Copyright © 2002 ESRI. All rights reserved.
ArcObjects development with VB
Everything possible in VBA
Implement interfaces and create custom components
Obtain more advanced functionality and extensions
Encapsulates COM programming details
Very easy to use and fast to write prototypes
Many samples
Hide code in binary DLLs
1-20
Advanced ArcObjects Component Development II (C++)Copyright © 2002 ESRI. All rights reserved.
ArcObjects development with VC++
Everything possible in VB and VBA
More advanced components and extensions options Implement every interface, even those supporting inheritance
Other considerations Rich Object Oriented development environment (inheritance)
Better debugging environment (no problems like VB 6)
Control type library names and GUIDs explicitly
Explicit control of COM server design (e.g., custom marshaling)
Considered standard for large-scaled software development projects
1-21
Advanced ArcObjects Component Development II (C++)Copyright © 2002 ESRI. All rights reserved.
Which development environment to use?
Reasons you should avoid using VB Advanced component implementation or interface inheritance
Interface members contain IUnknown* argument types
Application requires aggregation
VB hides implementation details: Is that really bad?
Performance concerns? VC++: Fastest
VB: Approximately 2% slower
VBA: Approximately 4% slower
VB versus VC++ development time? Depends on experience level
1-22
Advanced ArcObjects Component Development II (C++)Copyright © 2002 ESRI. All rights reserved.
Exercise 1 overview
Install the class data
Determine the installation directory for ArcMap
Explore the class materials: Data, exercises…
Set Visual Studio file paths for: esriCore.olb
ArcCATIDs.h
1-23
Advanced ArcObjects Component Development II (C++)Copyright © 2002 ESRI. All rights reserved.
Review
What is ArcObjects?
What are three main ArcGIS products?
What are the two main levels of customization?
What is the best development language to use?
What is the most important developer resource?
What is the purpose of IExtensionConfig?
1-24
Advanced ArcObjects Component Development II (C++)Copyright © 2002 ESRI. All rights reserved.