Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 3 additions & 4 deletions WebExpress.spec
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<package>
<id>WebExpress</id>
<version>0.0.9-alpha</version>
<version>0.0.10-alpha</version>
<title>WebExpress</title>
<authors>rene_schwarzer@hotmail.de</authors>
<authors>webexpress-framework@outlook.com</authors>
<license>MIT</license>
<icon>icon.png</icon>
<readme>README.md</readme>
<description>WebExpress is a lightweight web server optimized for use in low-performance environments (e.g. Rasperry PI).</description>
<description>WebExpress-Framework is a lightweight .NET web server that runs smoothly on everything from embedded hardware to enterprise-grade infrastructure.</description>
<tags>webexpress</tags>
<artifact>WebExpress.WebCore.dll</artifact>
<artifact>WebExpress.WebUI.dll</artifact>
Expand All @@ -17,5 +17,4 @@
<artifact>WebExpress.exe</artifact>
<artifact>WebExpress.runtimeconfig.json</artifact>
<artifact>config/webexpress.config.xml</artifact>
<artifact>Markdig.dll</artifact>
</package>
Binary file modified assets/banner.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified assets/ig/downloadnet1.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified assets/ig/downloadnet2.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1,766 changes: 1,104 additions & 662 deletions doc/development_guide.md

Large diffs are not rendered by default.

44 changes: 22 additions & 22 deletions doc/installation_guide.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ available as open source:
```
The MIT License (MIT)

Copyright (c) 2023 René Schwarzer
Copyright (c) 2025 René Schwarzer

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
Expand Down Expand Up @@ -53,7 +53,7 @@ other operating systems.
The first step is to write the operating system to an SD card. For this purpose, there is https://downloads.raspberrypi.org/imager/imager.exe
a free program (Windows), with the help of which the image is copied to the SD card.

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

## Setting up the operating system

Expand All @@ -76,28 +76,28 @@ pi@raspberrypi:~ $ sudo raspi-config
It is recommended to change the password, as well as to set up the Wi-Fi, change the time zone and the host name if necessary. In the
remainder of the application guide, the host name ```wx``` is used. In addition, SSH must be activated (to be found under Interface Options).

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

All subsequent steps can now be done via SSH and the Raspberry Pi can be disconnected from the keyboard and screen.

## Installing the .NET Runtime
## Installing the .NET SDK
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
First, the .NET SDK must be installed (it includes the .NET Runtime and the ASP.NET Core Runtime). 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.
The Linux Arm32 archive for the .NET SDK 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
```

In preparation for the installation of .NET Core, a directory must be created at ```/usr/share/dotnet-sdk``` by then unpacking the .NET archive.
Expand All @@ -109,7 +109,7 @@ pi@wx:~ $ sudo mkdir /usr/share/dotnet-sdk
After creating the directory ```/usr/share/dotnet-sdk```, the binaries can be unpacked.

``` bash
pi@wx:~ $ sudo tar zxf aspnetcore-runtime-7.0.0-linux-arm.tar.gz -C /usr/share/dotnet-sdk/
pi@wx:~ $ sudo tar zxf dotnet-sdk-10.0.100-linux-arm.tar.gz -C /usr/share/dotnet-sdk/
```

## Installing utilities
Expand All @@ -124,12 +124,12 @@ pi@wx:~ $ sudo apt-get install mc -y

If necessary, the profile can be extended by ```alias ll='ls -l'```.

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

## Set static IP
It is recommended to configure a static IP address for the Raspberry under ```/etc/dhcpcd.conf``` (see [2]).

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

## Multicast Domain Name Service (mDNS)
For example, Avahi can be used as mDNS. Avahi is an open-source mDNS implementation. At the command prompt, type the following command to install Avahi:
Expand All @@ -144,7 +144,7 @@ Once the installation process is complete, local network queries are accepted an
WebExpress is provided in packaged form for the Raspberry Pi in the GitHub repository https://github.com/webexpress-framework/WebExpress/releases
free of charge.

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

The binaries of WebExpress can be obtained from GitHub via wget.

Expand Down Expand Up @@ -316,17 +316,17 @@ WebExpress will start automatically after each restart of the Rasperry Pi.
If https is used with self-generated certificates, the certificates should be stored in the client. The .pfx file must be placed in the
certificate store under Trusted Root Certification Authorities.

![certificatestore1](https://raw.githubusercontent.com/webexpress-framework/WebExpress.Doc/main/assets/ig/certificatestore1.png)
![certificatestore2](https://raw.githubusercontent.com/webexpress-framework/WebExpress.Doc/main/assets/ig/certificatestore2.png)
![certificatestore3](https://raw.githubusercontent.com/webexpress-framework/WebExpress.Doc/main/assets/ig/certificatestore3.png)
![certificatestore4](https://raw.githubusercontent.com/webexpress-framework/WebExpress.Doc/main/assets/ig/certificatestore4.png)
![certificatestore5](https://raw.githubusercontent.com/webexpress-framework/WebExpress.Doc/main/assets/ig/certificatestore5.png)
![certificatestore6](https://raw.githubusercontent.com/webexpress-framework/WebExpress.Doc/main/assets/ig/certificatestore6.png)
![certificatestore7](https://raw.githubusercontent.com/webexpress-framework/WebExpress.Doc/main/assets/ig/certificatestore7.png)
![certificatestore1](https://raw.githubusercontent.com/webexpress-framework/WebExpress/main/assets/ig/certificatestore1.png)
![certificatestore2](https://raw.githubusercontent.com/webexpress-framework/WebExpress/main/assets/ig/certificatestore2.png)
![certificatestore3](https://raw.githubusercontent.com/webexpress-framework/WebExpress/main/assets/ig/certificatestore3.png)
![certificatestore4](https://raw.githubusercontent.com/webexpress-framework/WebExpress/main/assets/ig/certificatestore4.png)
![certificatestore5](https://raw.githubusercontent.com/webexpress-framework/WebExpress/main/assets/ig/certificatestore5.png)
![certificatestore6](https://raw.githubusercontent.com/webexpress-framework/WebExpress/main/assets/ig/certificatestore6.png)
![certificatestore7](https://raw.githubusercontent.com/webexpress-framework/WebExpress/main/assets/ig/certificatestore7.png)

The WebExpress certificate must be trusted in the browser.

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

# Update
To ensure security, the Raspberry Pi, its applications and WebExpress must be updated regularly.
Expand Down
Binary file modified icon.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
6 changes: 3 additions & 3 deletions src/WebExpress.Test/WebExpress.Test.csproj
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup>
<TargetFramework>net9.0</TargetFramework>
<TargetFramework>net10.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>

Expand All @@ -10,9 +10,9 @@
</PropertyGroup>

<ItemGroup>
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.14.1" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="18.0.1" />
<PackageReference Include="xunit" Version="2.9.3" />
<PackageReference Include="xunit.runner.visualstudio" Version="3.1.1">
<PackageReference Include="xunit.runner.visualstudio" Version="3.1.5">
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
<PrivateAssets>all</PrivateAssets>
</PackageReference>
Expand Down
Binary file removed src/WebExpress/Rocket.ico
Binary file not shown.
12 changes: 6 additions & 6 deletions src/WebExpress/WebExpress.csproj
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup>
<Version>0.0.9.0</Version>
<AssemblyVersion>0.0.9.0</AssemblyVersion>
<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>
Comment on lines +4 to +9
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.
<StartupObject>WebExpress.App.Program</StartupObject>
<RuntimeIdentifiers>win-x64;linux-x64;linux-arm;</RuntimeIdentifiers>
<RepositoryUrl>https://github.com/webexpress-framework/WebExpress.Server</RepositoryUrl>
Expand All @@ -15,7 +15,7 @@
</PropertyGroup>

<ItemGroup Condition="'$(Configuration)' != 'DebugLocal'">
<PackageReference Include="WebExpress.WebApp" Version="0.0.9-alpha" />
<PackageReference Include="WebExpress.WebApp" Version="0.0.10-alpha" />
</ItemGroup>

<ItemGroup Condition="'$(Configuration)' == 'DebugLocal'">
Expand Down
Binary file added src/WebExpress/ufo.ico
Binary file not shown.