Heisessie: 1000156.011-000-DSC-0002-m-Uitwerking-Heisessie-Delta-Shell.docx

NGHS 2013

... stable, performance, memory use, transparent file formats, documented (API)

  • Improve API:
    • Drag & Drop
    • TreeView
    • TableView (add/remove columns is a mess (see ITableView/TableView))
    • Remove IGuiView (remove dependencies on IGui from all view)
  • Improve/add provider logic for finding best fitting (i.a.w. most specific) type
    • View provider
    • Property provider
    • Context menu provider (still needs to be implemented)
    • Node presenter provider (actually "TreeView"/)
    • Importers/exporters (still needs to be implemented)
  • Improve property grid:
    • Support for dynamic property hiding (just like dynamic read only)
    • Support for property ordering (fix PropertySorter)
    • Make ExpandableArrayConvertor part of framework
  • Improve IView/IViewContext/ViewManager API:
    • View creation / resolving logic (double-click on item opens view for parent>parent>parent object but can also open view for this object), currently it is too implicit (CreateView changes view.Data to a different object and Delta Shell should check it)
  • Clean-up database and remove duplicate classes (Delta Shell)
  • Introduce support for file-based models at framework level:
    • Use per-model directory in project data folder
    • Rely on IFileBased for all file-based model items
    • Keep model data directory in-sync with Project
    • Eliminate custom "working" directories
  • Improve performance:
    • Minimize number of GetAllItemsRecursive calls
  • Context menu:
    • Possibility to hide "Import"/"Export" items
    • "Properties" items should always be the last item
  • Separate Delta Shell and Plugins (delete ALL direct dependencies between plugins) and use NuGet to manage / develop / deploy Delta Shell and plugins
  • Improve ProjectItemMapView viewcontext (using custom ProjectItemMapLayer that doesn't save datasource)

Delta Shell Next

... future release, open-source, flexibility, simplicity, research version

  • Review map editing functionality including topology, interaction, rendering:
    • Eliminate need for custom map tools such as HydroNetworkEditorMapTool
    • Move common controls (such as Map Contents, Layer Properties Dialog, Attribute Editor) to SharpMap.UI
  • Fix working with units:
    • System-wide support for units
    • Units for properties, variables, etc.
    • Change current units for variables
    • Note: always save in the same unit system. SI on-the-fly UI unit conversion
  • Improve model coupling:
    • Don't use output coverages (which are filled on an output time step basis and not on a simulation time step basis) for coupling: allow users to choose a time step to be used for coupling and fix it in model wrappers / SOBEK .py coupling script
  • Enable coupling with online data sources (both static and dynamic), for example HYMOS, OpenDAP, KNMI, etc. This coupling is relevant (and so should be suitable) when it comes to FM prototype, DelftDashboard/DeltaShell, BMI voor Matlab wrapping, Fews-modellen in DeltaShell, Scripting.
    • Data structures for measurements
    • Automatic generation of model schematizations using existing data (online, local GIS files, etc.)
    • Web: Delta Shell as a webservice (share existing schematizations, allow selection using map, define boundary conditions, run model)
  • Separate data hierarchy/organisation from data-application. Hierarchy/organisation should be responsibility of IProjectItem (Parent, Children, etc...) - see TreeNodePresenters
  • Extend DataItems to exchange values only when it is asked. This is a minimal requirement for parallel (asynchroneous) model runs.
    • Keep time info in mind
    • Note: Improves performance of all models (including coupled ones => profile RTC + FLOW: implicitly will be solved by slit of “data item set / exchange value”)
  • Bubbling of CollectionChange and PropertyChange must happen automatically in ModelBase, derived models and functions:
    • ModelBase OnInputCollectionChange and OnInputPropertyChange etc should work on ALL aggregated and composed items of the model
  • Model vs. model run:
    • Functional requirement: scenario / version / run of model (light-weight) input + output (HARD TO IMPLEMENT FOR NOW – LONG TERM)
  • Generalize import/export (wizard) logic:
    • "File column" to "Data property" matching and vice versa
    • Ability to specify a custom separator (in case of csv)

Suggestions by Pieter van Geer

  • Move UserControlValidationManager to framework
  • Move ShowModalWithTimeNavigator in MorphAnTestHelper to general TestHelper
  • No labels