1 / 20

Advanced ArcObjects Component Development II (C++)

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.

fisk
Download Presentation

Advanced ArcObjects Component Development II (C++)

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Advanced ArcObjects Component Development II (C++)

  2. 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++)

  3. 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?

  4. Logistics • Daily schedule • Start _______________ • Lunch _______________ • Finish _______________ • Facilities • Refreshments and break area • Restrooms • Telephones and messages • Internet access • Student ID badges • Parking

  5. 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

  6. Course timeline MFC applications Product review C++/COM review Advanced ATL Development directions ATL applications Geodatabase customization

  7. 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

  8. ArcMap Extensions ArcCatalog ArcToolbox Workstation ArcGIS overview Webbrowser ArcGIS Server ArcInfo ArcIMS Webserver ArcEditor ArcView ArcSDE RDBMSserver ArcObjects Data Enterprisegeodatabase Personalgeodatabase Coverage Grid Image Shapefile TIN CAD

  9. GIS in the enterprise Developer interface ArcSDE& ArcIMS Data managementand distribution Advanced modelingand analysis ArcInfo Data editingand maintenance Extensions ArcEditor & ArcPad General analysisand visualization ArcView 8 & ArcView 3 Desktop-basedmap viewing ArcReader Internet-basedmap viewing Web browser Number of users

  10. Introduction to ArcGIS I Introduction to Programming ArcObjects with VBA Advanced ArcObjects Component Development I i i i Introduction to Visual Basic for ESRI software Learning ArcGIS I W W Learning ArcGIS II: Presenting information W Creating and Managing Geodatabases Geodatabase Design Concepts Creating, Editing, and Managing Geodatabases i i W Learning paths Customization /Programming Foundation Proficiency Extensions Introduction to ArcGIS II (more) i Database Design / Development Advanced ArcObjects Component Development II i (more)

  11. Software support resources • 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 • ESRI Technical Support • Request support online • Find phone and fax numbers • Available to support subscribers

  12. 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

  13. Development triangle Embedding ArcObjects 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 2 Map Control Difficulty of implementation Recommended progression ArcObjects Framework 1 Start here

  14. 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

  15. 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

  16. 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

  17. 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

  18. 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

  19. 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?

More Related