Skip to content

0.0.10-alpha#9

Merged
ReneSchwarzer merged 10 commits into
mainfrom
develop
Apr 5, 2026
Merged

0.0.10-alpha#9
ReneSchwarzer merged 10 commits into
mainfrom
develop

Conversation

@ReneSchwarzer
Copy link
Copy Markdown
Member

This pull request introduces several improvements and additions to the test suite, focusing on code clarity, null handling, and new test coverage. The main changes include the addition of a new unit test class for deterministic identifiers, improved null handling in assertion helpers, and consistent naming and structure updates in test methods.

Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR updates WebExpress’s packaging/build metadata and documentation for the 0.0.10-alpha release, including a platform/framework bump and refreshed assets.

Changes:

  • Bump package/app versions to 0.0.10(-alpha) and update metadata (authors/description, artifact list).
  • Upgrade projects to target net10.0, update test SDK/runner package versions, and switch the application icon to a new .ico.
  • Refresh documentation content and image links (and expand the development guide with new sections/diagrams).

Reviewed changes

Copilot reviewed 4 out of 11 changed files in this pull request and generated 6 comments.

Show a summary per file
File Description
WebExpress.spec Version/author/description updates; adjusts packaged artifacts list.
src/WebExpress/WebExpress.csproj Version bump, target framework change to net10.0, app icon change, dependency version bump.
src/WebExpress/ufo.ico Adds new application icon asset.
src/WebExpress.Test/WebExpress.Test.csproj Moves tests to net10.0 and updates test SDK/runner packages.
icon.png Adds/updates package icon asset.
doc/installation_guide.md Updates image links and .NET download/install commands.
doc/development_guide.md Large doc refresh: formatting/diagrams updates and new model documentation (e.g., WebSocket/MessageQueue).

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines +4 to +9
<Version>0.0.10.0</Version>
<AssemblyVersion>0.0.10.0</AssemblyVersion>
<OutputType>Exe</OutputType>
<TargetFramework>net9.0</TargetFramework>
<ApplicationIcon>Rocket.ico</ApplicationIcon>
<Authors>Rene_Schwarzer@hotmail.de</Authors>
<TargetFramework>net10.0</TargetFramework>
<ApplicationIcon>ufo.ico</ApplicationIcon>
<Authors>webexpress-framework@outlook.com</Authors>
Copy link

Copilot AI Apr 1, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The PR description focuses on test-suite improvements, but this change set primarily bumps versions/TFM (net10.0) and updates packaging metadata. Please update the PR title/description (or split into separate PRs) so reviewers know the intended scope and risk.

Copilot uses AI. Check for mistakes.
Comment thread doc/installation_guide.md Outdated
Comment on lines 83 to 101
## Installing the .NET Runtime
After SSH has been activated, a connection to the Raspberry Pi can be established with the help of an SSH client (e.g. Putty, OpenSSH).

![piconnect](https://raw.githubusercontent.com/webexpress-framework/WebExpress.Doc/main/assets/ig/piconnect.png)
![piconnect](https://raw.githubusercontent.com/webexpress-framework/WebExpress/main/assets/ig/piconnect.png)

First, the .NET Runtime and the ASP.NET Core Runtime must be installed. Help for this is offered under [1]. The current versions
can be obtained free of charge from Microsoft at https://dotnet.microsoft.com/download/dotnet-core.

![downloadnet1](https://raw.githubusercontent.com/webexpress-framework/WebExpress.Doc/main/assets/ig/downloadnet1.png)
![downloadnet1](https://raw.githubusercontent.com/webexpress-framework/WebExpress/main/assets/ig/downloadnet1.png)

For the Raspberry Pi, the binaries for Linux-Arm32 are to be used. The direct link to the Linux-Arm32 binaries must be copied.

![downloadnet2](https://raw.githubusercontent.com/webexpress-framework/WebExpress.Doc/main/assets/ig/downloadnet2.png)
![downloadnet2](https://raw.githubusercontent.com/webexpress-framework/WebExpress/main/assets/ig/downloadnet2.png)

The Linux Arm32 archive for the ASP.NET Core Runtime is downloaded to the Raspberry using wget.

``` bash
pi@wx:~ $ wget https://download.visualstudio.microsoft.com/download/pr/61cb6649-f41f-4966-84ae-9ff673528054/9bbd07607c5a1af87354e1fa93c36a00/aspnetcore-runtime-7.0.0-linux-arm.tar.gz
pi@wx:~ $ wget https://builds.dotnet.microsoft.com/dotnet/Sdk/10.0.100/dotnet-sdk-10.0.100-linux-arm.tar.gz
```
Copy link

Copilot AI Apr 1, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This section is titled “Installing the .NET Runtime” and the surrounding text refers to downloading the ASP.NET Core runtime, but the command downloads the .NET SDK tarball (dotnet-sdk-10.0.100). Please align the wording/steps (either download the runtime, or rename the section and explain why the SDK is required).

Copilot uses AI. Check for mistakes.
Comment thread doc/development_guide.md Outdated

WebExpress supports WebSocket connections as an additional communication channel alongside traditional HTTP request/response endpoints. WebSocket endpoints are registered as specialized endpoint contexts (`ISocketContext`) within the sitemap/endpoint management system and are delegated by the HttpServer to the appropriate handler when a request arrives. WebSocket endpoints are implemented as components (`ISocket`), analogous to page or REST API endpoints, and are managed through a socket manager (`ISocketManager`). The sitemap contains a route for each socket endpoint, allowing incoming URIs to be mapped to the appropriate socket context using the familiar sitemap lookup mechanism.

The following illustration depicts the basic architecture of the WebSocket model. Multiple clients can simultaneously establish persistent connections to the server. These connections are recognized by the `HttpServer`` and routed through the sitemap to the appropriate socket endpoints.
Copy link

Copilot AI Apr 1, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Markdown inline code formatting is broken here: `HttpServer`` has an extra backtick, which will render incorrectly. Remove the extra backtick so the identifier is formatted properly.

Suggested change
The following illustration depicts the basic architecture of the WebSocket model. Multiple clients can simultaneously establish persistent connections to the server. These connections are recognized by the `HttpServer`` and routed through the sitemap to the appropriate socket endpoints.
The following illustration depicts the basic architecture of the WebSocket model. Multiple clients can simultaneously establish persistent connections to the server. These connections are recognized by the `HttpServer` and routed through the sitemap to the appropriate socket endpoints.

Copilot uses AI. Check for mistakes.
Comment thread doc/development_guide.md Outdated
Comment on lines +2132 to +2133
/// </summary>
public void async Task OnConnectedAsync(ISocketConnection webSocket)
Copy link

Copilot AI Apr 1, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The example method signature is not valid C#: public void async Task OnConnectedAsync(...) mixes void with Task and has modifiers in the wrong order. Update it to a compilable async signature (e.g., returning Task and using public async Task ...).

Suggested change
/// </summary>
public void async Task OnConnectedAsync(ISocketConnection webSocket)
/// </summary>
public async Task OnConnectedAsync(ISocketConnection webSocket)

Copilot uses AI. Check for mistakes.
Comment thread doc/development_guide.md Outdated
@@ -3134,22 +3390,23 @@ Tasks are created dynamically by instantiating a class derived from `Task` and s
```
╔══════════╗ ╔═══════════╗
║ Created ║ ║ Canceld ║
Copy link

Copilot AI Apr 1, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Typo in the task state diagram label: “Canceld” should be “Cancelled”.

Suggested change
║ Created ║ ║ Canceld
║ Created ║ ║ Cancelled

Copilot uses AI. Check for mistakes.
Comment thread doc/development_guide.md Outdated
│ │ │ │ Login dialog │ │ │
│ │ │ └───────┬──────┘ │ │
│ │ │ │ │ │
│ │ │ ┌──────────┴──────────────│────┘
│ │ │ │ Login successful? │
No │ │ Yes endpoint │ No │ │ component
▼ ▼ ▼ ▼ ▼
╔══════════════╗ ╔══════════════════╗ ╔════════════════╗
╔═══▼══════▼═══╗ ╔═════▼══════▼═════╗ ╔═══════▼════════╗
║ Grant access ║ ║ Stautus page 401 ║ ║ Hide component ║
Copy link

Copilot AI Apr 1, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Typo in the authorization flow diagram: “Stautus page 401” should be “Status page 401”.

Suggested change
║ Grant access ║ ║ Stautus page 401 ║ ║ Hide component ║
║ Grant access ║ ║ Status page 401 ║ ║ Hide component ║

Copilot uses AI. Check for mistakes.
@ReneSchwarzer ReneSchwarzer merged commit 400f1db into main Apr 5, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants