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.