Skip to content

Latest commit

 

History

History

dev

GRA Developer Documentation

Environment

GRA code should successfully compile using either the free Visual Studio Code or Visual Studio Community edition. External dependencies are managed with NuGet and should be automatically downloaded upon the first build. The current main branch requires C# 11 to compile, we are currently using Visual Studio 2022.

Framework history:

  • Current work (versions 4.5.x) use .NET 8.0
  • Versions 4.4.x use .NET 7.0
  • Version 4.3.17 uses .NET 6.0
  • Versions 4.2 and 4.2.1 use .NET 5.0
  • Version 4.1.1 used ASP.NET Core v2.2
  • Version 4.1.0 used ASP.NET Core v2.1
  • Version 4.0.0 used ASP.NET Core v1.1

By default, GRA is configured to use LocalDB as a database for development and testing. While not packaged with Visual Studio Community, it can easily be added by selecting the notification flag in the title bar of Visual Studio and choosing to install the "MS SQL Server Update for database tooling". Alternately, the SQL Server Data Tools (SSDT) package can be installed manually by downloading it from Microsoft. You could also add a SQLite migration and configure the GRA to use SQLite.

If you have any trouble getting the package to build, please submit an issue with details.

Project conventions

The main branch contains work in progress.

  • Try to follow the HTML and CSS code guides.
  • Wrap lines at 100 characters whenever possible.
  • IDisposable calls should be called with using.
  • async methods should have "Async" at the end of the method name unless they are Controllers.
  • Avoid "magic numbers," place them in constants.
  • Avoid adding settings to the appsettings.json configuration file, preferences generally belong somewhere that they can be set in the application.
  • Review the project organization.
  • Follow the initial developer setup guidance.
  • Examine guidance for adding an entity if necessary.
  • We try to adhere to domain-driven design with varying levels of success.

Design/Architecture

Back-end software

Front-end user interface