Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Simplify application maintenance #90

Closed
8 of 15 tasks
RonnyB71 opened this issue May 20, 2022 · 0 comments
Closed
8 of 15 tasks

Simplify application maintenance #90

RonnyB71 opened this issue May 20, 2022 · 0 comments
Assignees
Labels
Epic kind/chore Technical tasks/debt needed in order to maintain a healthy system or otherwise improve dev processes quality/engineering team/studio

Comments

@RonnyB71
Copy link
Member

RonnyB71 commented May 20, 2022

Introduction

In order to reduce breaking changes in the template used by all Altinn 3 Apps and to simplify the maintenance of apps a number of issues have been identified and grouped into this epic.

The expected positive results are:

  • Smaller interfaces is easier to implement and reason about as well as test.
  • Easier to swap out and replace if our default implementation isn't what's needed.
  • Less Altinn specific and closer to standard ASP.NET, making it easier to onboard new .Net developers as it's closer to what they already know about .Net developement.
  • Loosely coupled components
  • Fewer breaking changes
  • Removes the need for application developers to change override methods from AppBase that they haven't touched/used as part of we introducing new changes.
  • Prepares the ground for easier code re-use for example by creating standard codelists that can be injected into any app.

Not solving:

  • The need for an application owner/developer to have to keep their app updated with the latest nuget packages and security patches and deploy those changes.
  • Breaking changes altogether. Breaking changes can still happen and relies on how well the interfaces are defined.

In scope

  • Although the details isn't in place yet the goal is to split todays interfaces and implementations (eg. IAltinnApp, AppSettings +++) into smaller interfaces and move code out of AppBase into default implementations with the ability to easily swap them out if needed.

  • Create a .Net Api on top of the configuration we currently have. This is more about restructuring the standalone service implementations we currently have, where the responsibility of knowing what files needs to be updated is exposed to the controller, into a business layer handling all the implicit connections between the various configuration files.

Out of scope

  • A DSL for building apps without having to resolve to C# or JavaScript coding for simple applications. The issues in this epic is considered necessary and a good help if we later decide to create a DSL. Although a good idea, we currently don't have the resources to take on this task and we need to prepare the underlying codebase (this epic) to make it easier to have a DSL on top.
  • AppLight - a concept where the all the shared runtime code was separated out into it's own container allowing for only the configurations to be injected in order to create the application. The reason for not including this is that it might be that the work done in this epic is enough, or at least we would like to evaluate the results before taking the next step and the fact that you would still need to deploy the app in order to get the latest version of the app.

Tasks

app-template-dotnet (in prioritized order)

app-lib-dotnet

altinn-studio-docs

@RonnyB71 RonnyB71 added Epic kind/chore Technical tasks/debt needed in order to maintain a healthy system or otherwise improve dev processes quality/engineering team/studio labels May 20, 2022
@tjololo tjololo moved this to ✅ Done in Team Apps Oct 12, 2022
@FinnurO FinnurO moved this from ✅ Done to 📈 Todo in Team Apps Feb 11, 2023
@HanneLauritsen1967 HanneLauritsen1967 moved this from 📈 Todo to ✅ Done in Team Apps Mar 9, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Epic kind/chore Technical tasks/debt needed in order to maintain a healthy system or otherwise improve dev processes quality/engineering team/studio
Projects
Status: Done
Development

No branches or pull requests

2 participants