2. Requirements¶
Software developers will come from different backgrounds, have different skills and experience and may use different development environments and tools. Whilst one developer may prefer to have formal training and extensive experience in a particular programming language or concept before tackling a task, another may be comfortable to use their experience in other languages or platforms to pick things up as they go.
As a result, it is not possible to come up with a definitive list of all the skills, experience and tools that a developer must have or use in order to undertake development and support of the HLU Tool. Therefore the following is just a guide to the applications, websites and tools that a developer may wish to use and the skills & experience that a developer may need.
2.1. Developer Skills¶
The following is a list of programming concepts, languages, skills & experience that developers may need before attempting to develop or support the HLU Tool and associated guides.
An understanding and experience of general software development concepts such as design, coding, testing, debugging, issue management and deployment.
Experience of programming and debugging applications with Microsoft’s Visual Studio.
Experience in C#, .NET and object-oriented programming concepts.
Ability to write Structured Query Language (SQL).
An understanding of how relational databases work and Relational Database Management Systems (RDBMS) such as Microsoft SQL Server and Microsoft Access.
Familiarity with Microsoft’s .Net Framework component LINQ (Language Integrated Query).
Experience of using ArcGIS Desktop, in particular for creating & editing data and performing basic geoprocessing functions such as split & merge.
A understanding of ArcObjects and experience of developing with ArcObjects in .NET.
Experience of using MapInfo Professional, in particular for creating & editing data.
Experience of developing MapBasic programs, a BASIC-like programming language used to create custom applications for use with MapInfo.
A General understanding of XML and XAML used to write Windows Presentation Foundation (WPF) applications. WPF is used for the tool’s user interface.
Understanding of source code version control system concepts and features, particularly Git and GitHub.
Familiarity with GitHub Flavoured MarkDown text syntax used for GitHub ReadMe files, issues and comments.
Ability to read/write reStructuredText markup syntax used to create the user, technical and developer’s guides.
How online documentation repositories such as ReadTheDocs work.
2.2. Applications¶
The following is a list of applications that you are likely to need as a minimum to develop and support the HLU Tool:
Microsoft Visual Studio Professional 2012 (or later)
Microsoft .Net Framework 3.5 (or higher)
ArcGIS 10.1 (or later)
MapInfo 8 (or later)
SQL Server Express 2008 (or later)
Microsoft Access 2000 (or later)
Git for Windows
GitHub for Windows
InstallShield Limited Edition
2.3. Websites¶
The following are websites that you will need to use and become familiar with when developing and supporting the HLU Tool and associated user, technical and developer’s guides:
- GitHub repository
Hosts the source code for the tool and accompanying user and technical guides (including this developer’s guide), and is also used as the issue tracker for any agreed known issues and proposed change requests for the tool.
See GitHub and GitHub Issues Log for more details.
- ReadTheDocs online guides
Creates and hosts the User Guide, Technical Guide and Developer’s Guide (this guide) for the tool.
See ReadTheDocs for more details.
- ALERC Forum
Hosts a discussion forum available to Local Record Centres (LRCs) for the HLU Tool and associated Habitat Framework.
See ALERC Forum for more details.
2.4. Tools & Extensions¶
The following is a list of free tools and extensions that may be useful when developing and maintaining the tool or the associated user, technical and developer’s guides.
- Active Python
A cross-platform distribution of Python that provides a one-step installation of all essential Python modules.
- Sphinx
A python based documentation generator that can generate HTML, PDF and other output formats.
- Notepad 2-mod
A fast and light-weight Notepad-like text editor with syntax highlighting.
- Sublime Text 3
The latest version of the sophisticated text editor for code and markup languages.