Seal.Net
Dette dokument beskriver hvordan man kommer i gang med at tilpasse eller videreudvikle Seal.Net.
Der forudsættes erfaring med .NET-udvikling og brug af open source projekter.
Afhængigheder
Seal.Net er bygget på '.NET Standard 2.0'.
Koden findes i bitbucket:
https://git.nspop.dk/projects/LIB/repos/seal.net/browse |
Seal.NET er et standard .NET library projekt og indeholder følgende:
❍ Indeholder kildekode for selve biblioteket
❍ Typer der beskriver alle security headers som er defineret i Den Gode Webservice.
❍ Indeholder unit- og integrationstests
❍ Indeholder ældre dokumentation. Findes af historiske årsager.
https://dotnet.microsoft.com/en-us/download
Der skal installeres en version 7 af .NET:
Start med at hente seneste version herfra:
https://dotnet.microsoft.com/en-us/download/dotnet/7.0
Installér herefter den downloadede gz-fil:
mkdir -p $HOME/dotnet && tar zxf dotnet-sdk-7.0.407-linux-x64.tar.gz -C $HOME/dotnet export DOTNET_ROOT=$HOME/dotnet export PATH=$PATH:$HOME/dotnet |
Tilføj evt. de to sidste linjer til ~/.bashrc
Verificer at versionen af .NET er '7.x.y', som er den version SealTest projektet benytter - Seal projektet (som SealTest bruger) er “ligeglad”, da den compiler mod .NET Standard 2.0, som er kompatibel med alle versioner:
dotnet --version |
Byg nu Seal.NET:
dotnet build |
Inden testene kan afvikles skal følgende certifikater installeres i truststore:
sudo apt-get install -y ca-certificates sudo cp SealTest/Resources/oces3/FOCES_gyldig.crt /usr/local/share/ca-certificates sudo cp SealTest/Resources/oces3/ca.cer /usr/local/share/ca-certificates/ca.crt sudo cp SealTest/Resources/SelfSigned.crt /usr/local/share/ca-certificates sudo update-ca-certificates |
Herefter kan alle tests nu afvikles:
dotnet test |
Denne kommando bygger først alle projekter, og kører derefter tests.
Tjek at alle tests kører igennem.
Herefter skal der laves et tag i git på feature branch for den pågældende revision på formen 'release-<major>.<minor>.<patch>':
git tag -a release-X.Y.Z -m "vX.Y.Z" |
Hvor X.Y.Z skal rettes til versionen.
Byg en NuGet pakke - se nedenunder (det er denne pakke som uploades til nuget.org, som gør Seal.Net tilgængelig for andre).
Lig den ind i "Release" mappen og commit denne mappe på tagget.
En NuGet pakke kan bygges med følgende kommando:
dotnet pack -c release --include-symbols -p:Version=1.2.3 |
Release note for pakken skrives ind i 'ReleaseNotes.txt'. Projektfilen ('Seal.csproj') er konfigureret til at læse fra denne fil når den pakkes til en NuGet pakke. Der er ikke lavet en aftale om at dette skal gøres, så det er ikke et krav.
For at inkludere refererede projekter som dll (DgwsTypes i dette tilfælde) i den genererede NuGet-pakke, er NuGet pakken Teronis.MSBuild.Packaging.ProjectBuildInPackage refereret i Seal-projektet. Når der sættes 'PrivateAssets="all"' på en projekt-reference (i 'Seal.csproj'), vil den automatisk ligge dll og evt. pdb filer fra projektet ind i den genererede pakke.
Dette gøres da .NET pakker eksterne afhængigheder som NuGet referencer, men man har valgt at ligge dem ind direkte som en lokal dll før i tiden. Da DgwsTypes ligger på nuget.org, kan den erstattes af en NuGet reference, og da dette er understøttet af .NET, er det nok at foretrække på sigt.
Specifikt for .NET Framework