# Pre Requisites

If you want to work with this library, to either PR back into core, or to add to your own separate plugin it is recommended you know a bit about the following tech/patterns.

* **Blazor** - Its really mainly Html/Css/Js + C#
* **ASP MVC** - This is mainly used for side hosted content internally
* **Reactive Extensions** - We use `IObservable` quite a bit to handle events/triggers
* **Dependency Injection** - We HEAVILY use this to let stuff access dependencies
* **Unit Testing** - If you want to PR stuff ideally we need it to have unit tests to verify behaviour
* **Data/View Separation** - We heavily separate data, logic and view to make it easier to pass data around and test

For the most part we are not doing anything too crazy, and everything is written in a way that you can just follow the same conventions yourself (see other docs for more info).


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://strem.gitbook.io/strem-app/developers-how-to-extend-the-app/pre-requisite-tech.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
