Skip to content

ProjectStructuration

Vianney DOLEANS edited this page Dec 3, 2023 · 2 revisions

Project Structuration

ArcGis Pro Isogeo Add-In is composed of multiple projects :

  • Isogeo.AddIn
  • Isogeo.Language
  • Isogeo.Map
  • Isogeo.Models
  • Isogeo.Network
  • Isogeo.Resources
  • Isogeo.Utils
  • MVVMPattern
  • Tests (empty)

And one dependency :

  • log4net (Log Manager)
  • (and also an official Microsoft NuGet Package for WPF behavior possibilities added)

Idea in this structuration has been to simplify the maintenance of the Isogeo Add-In.

Isogeo.AddIn

  • Main core of Isogeo Add-In
  • Contains the Views and ViewModels (see MVVM Pattern)
  • Contains configuration files (config.daml, app.config, log4net.config)
  • Contains FilterManager code

Isogeo.Language

  • Translation core of Isogeo Add-In
  • Contains 2 files (Resources.FR.resx and Resources.resx)
  • Currently, this 2 files support respectively french and english
  • You just have to add another file to add a new supported language (with good name, like FR for french), it will be automatically added inside ArcGis Pro software.

Isogeo.Map

  • Contains MapManager needed to communicate with ArcGis Pro software (change current zoom, add layers, etc).

Isogeo.Models

  • Contains Models of Isogeo Add-In used by multiples projects that doesn't fit in another projects.
    • Variables.cs is also present in Isogeo.Models
      • It's a singleton inherited from ArcMap AddIn code that was modified a lot to minimize impact/utilization on Isogeo Add-In
        • After multiple iterations from V1 and V2, the only remaining part is the response content of the last search on Isogeo API (used in read-only by other modules than NetworkManager).

Isogeo.Network

  • Contains NetworkManager needed to communicate with Isogeo API

Isogeo.Resources

  • Contains resources of Isogeo ArcGis Pro Add-In :
    • Images
    • Icons
    • Styles (xaml)
    • Themes (dark and light) (xaml)
    • ControlTemplates.xaml (templates to design Isogeo Add-In components)

They're currently 2 themes realized :

  • Dark
  • Light

Isogeo.Utils

  • Contains tools to use inside solution :
    • Log Manager (log4net)
    • Encrypt password Manager (security)
    • multiple other tools
    • Configuration Manager
    • ...

MVVMPattern

  • Contains MVVM Pattern and Mediator Pattern used for the structuration of Isogeo ArcGis Pro Add-In.
    • It's basic implementations which can be found everywhere on the web.
      • Not "incredible" implementation with many features, etc., but do the job, easy to understand.

Tests

  • There is no tests on this project.
  • Project took a lot more time that expected : ensure global quality (UI, architecture, etc.) but also more features that planned.
    • Testing code has been sacrificed (decision of that time)
    • No order has since been issued for the realization of theses tests