Climsoft Roadmap Version 1 - climsoft/Climsoft GitHub Wiki


NOTE: this version of the Climsoft roadmap was created in January 2017. A new version will be available by April 2019


Future releases

  • 4.0 - Climsoft Core release (by Samuel) - Friday 10th February
  • 4.1 - Service pack release (includes VB code that did not make it into 4.0)
  • 4.2 - Products and plugins release (enables R products and Key Entry plugins)
  • 4.3 - Multiple database release

All version 4.x releases will be interchangeable and will use the same version 4 database.

Any updates that require changes to the database schema after version 4.0 is released in February will have to wait until version 5 (which will require users to migrate their version 4 databases to version 5).

4.0 4.1 4.2 4.3 5.x
Core Serv Prod Multi
Database:
- Connects to a single database βœ“ βœ“ βœ“
- Encrypted connections to remote database(s) βœ“ βœ“
- Local configuration separated from database βœ“ βœ“ βœ“ βœ“
- User specific local configuration βœ“ βœ“ βœ“ βœ“
Key Entry:
- Behaviours encapsulated in user controls βœ“ βœ“ βœ“ βœ“
- Entity Framework † βœ“ βœ“ βœ“
User Interface:
- Language translation βœ“ βœ“ βœ“ βœ“
- Extend GUI βœ“ βœ“ βœ“
Collaboration
- Coding Standards † βœ“ βœ“ βœ“
- Inline documentation † βœ“ βœ“ βœ“
- Feature branches βœ“ βœ“ βœ“
- Automated tests † βœ“ βœ“ βœ“
Products
- R Interface βœ“ βœ“ βœ“
- Gridded data tools βœ“ βœ“ βœ“
- Interfaces with other data sources βœ“ βœ“ βœ“
† = partially implemented

Database

- Connects to a single database

The initial versions in the 4.x series will connect to a single local database using an unencrypted connection. Security will be provided by the fact that both the database and client are on the same machine where access by users is limited. It will still be possible to have a distributed setup, but data will not be transferred by direct connection (e.g. data could instead be exported and sent securely to the central database administrator for importing into the central database).

- Encrypted connections to remote database(s)

Climsoft 4.3 and above will support direct secure encrypted connections to remote database(s). This will allow users to make use of a local database for key entry at stations and then automatically connect and upload data to a central database. Since connections to multiple databases will be officially supported at this time, it will also be possible to easily to connect to other databases as required (e.g. a sample database used for training). Users may have different privileges depending on which database they are connected to.

- Local configuration separated from database

Version 4.0 stores local configuration information for a particular instance of climsoft in the primary database. This will cease to work correctly when multiple clients connect to the same database (climsoft clients may have different key entry forms and product plugins installed), therefore configuration that is specific to the local installation can be separated into a local application datastore for each instance that is not part of a main climsoft database.

- User specific local configuration

Whilst some configuration is specific to the local installation (e.g. which databases a user can connect to, and what plugins are installed and available), other configuration, like language choice, is specific to each user (it is anticipated that these items will be stored using .NET’s my.settings).

Key Entry

- Behaviours encapsulated in user controls

"User controls" allow behaviours to be contained within visual studio controls and reused without the need to repeat code.

- Entity Framework

It is anticipated that Entity Framework will be required for version 4.2 that will introduce product plugins, therefore we could demonstrate Entity Framework in version 4.1. It may also be necessary to move towards using Entity Framework for robust Key Entry and Key Entry plugins.

User Interface

- Language translation

The Multilingual App Toolkit caused some problems during the development of 4.0 and was therefore removed. The issues can be resolved by all developers uninstalling the toolkit. Translations can then be added by a single instance of the toolkit installed (e.g. in a virtual machine) and only used when the intention is to update the project resource files with new translation information.

- Extend GUI

The graphical user interface can be extended to fit with the new capabilities of the software that will include plugins.

Collaboration

- Coding Standards

Future versions can adhere to the coding standards which include following naming conventions, refactoring code and reducing complexity in individual functions. The section below on automated tests provides justification for separating code for business logic from the user interface code.

- Inline documentation

.NET projects have a standard that we can follow for documenting modules, classes and procedures.

- Feature branches

To enable collaboration on GitHub, contributions can be made as isolated bug fixes or feature branches (where a single, well-specified problem is working on in a single branch). This will reduce merge conflicts and make it easier for multiple developers to work on the software.

- Automated tests

Automated tests ensure that the code is working as expected. To be able to implement automated tests we first need to separate business logic from the GUI in order to be able to use the testing tools that are available in the free community edition of Visual Studio.

Products

- R Interface

Interfaces with R for QC and analysis of climate data.

- Gridded data tools

Development of interfaces with gridded data tools.

- Interfaces with other data sources

e.g. OpenWIS.