41 lines
2.0 KiB
Markdown
41 lines
2.0 KiB
Markdown
# Bremen calling WPF client
|
|
|
|
## Introduction
|
|
|
|
## API / code generation
|
|
|
|
The Rest API client is generated from the OpenAPI specification [BreCalApi.yaml](../../misc/BreCalApiyaml) into the C# file [BreCalApi.cs](../../misc/BreCalApi.cs).
|
|
In order to do so an extension for Visual Studio needs to be installed: REST API Client Code Generator for VS 2022.
|
|
|
|
https://marketplace.visualstudio.com/items?itemName=ChristianResmaHelle.ApiClientCodeGenerator2022
|
|
|
|
This extension has multiple generators, for this project OpenApiCodeGenerator is used (must be set on the yaml file in the project settings).
|
|
Internally this uses Java, currently > 55 which translates into Java JDK 17 LTS.
|
|
If code generation is not working please have a look in the output pane and select appropriate output source.
|
|
|
|
## Installation
|
|
|
|
The client is deployed via ClickOnce.
|
|
|
|
To deploy the test client, leave everything as it is in develop branch and publish using the profile [ClickOnceTestProfile.pubxml](./Properties/PublishProfiles/ClickOnceTestProfile.pubxml).
|
|
To deploy the productive version, use the profile [ClickOnceProfile.pubxml](./Properties/PublishProfiles/ClickOnceProfile.pubxml).
|
|
You will also need to change the AssemblyName in BreCalClient.csproj back to BreCalClient.
|
|
|
|
```xml
|
|
<AssemblyName>BreCalClient</AssemblyName>
|
|
```
|
|
|
|
Resources are embedded in the assembly. Therefore wherever Resources are referenced via assembly name this name has to be adjusted as well. For example:
|
|
|
|
```C++
|
|
this.imageShipcallType.Source = new BitmapImage(new Uri("pack://application:,,,/BreCalClient;component/Resources/arrow_right_green.png"));
|
|
```
|
|
|
|
It is debatable if the single contained file deployment makes sense at this point. Installation file size
|
|
is at about 150MB which takes a long time to upload however it should run on any current windows installation.
|
|
Theoretically it should also work on Linux.
|
|
|
|
### Signing
|
|
|
|
Currently neither assemblies nor the installation is signed. This probably only makes sense with a paid public code signing certificate.
|