Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Seal.Net er bygget på '.NET Standard 2.0'.

Seal.Net

...

Koden findes i bitbucket:

Code Block
languagetext
https://

...

git.nspop.dk/

...

projects/LIB/

...

repos/seal

...

.net/browse

Projektstruktur

Seal.NET er et standard .NET library projekt og indeholder følgende:

...

Indeholder unit- og integrationstests

  • ●   doc/

Indeholder al dokumentation som krævet på ældre dokumentation. Findes af historiske årsager.


Installation af .NET

https://dotnet.microsoft.com/en-us/download

Der skal installeres en version 9 af .NET:

Start med at hente seneste version herfra:

https://

...

dotnet.

...

microsoft.

...

com/

...

en-us/

...

download/

...

dotnet/9.0

Installér herefter den downloadede gz-fil:

Code Block
mkdir -p $HOME/dotnet && tar zxf dotnet-sdk-<version>-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


Byg Seal.NET

Verificer at versionen af .NET er '9.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:

Code Block
dotnet --version

Byg nu Seal.NET:

Code Block
dotnet build

Kør tests

Inden testene kan afvikles skal følgende certifikater installeres i truststore:

Ubuntu:

Code Block
sudo apt-get install -y 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

Windows:

Importer certifikaterne som Trusted Root Certification Authority med MMC.


Herefter kan alle tests nu afvikles:

Code Block
dotnet test

Denne kommando bygger først alle projekter, og kører derefter tests.

Releases

Tjek at alle tests kører igennem, og få feature branch merged ind på main

  • ●   scripts/

Indeholder scripts til at bygge med.

  • ●   packages/

Indeholder eksterne NuGet pakker. Dette dir skal heller ikke ligge i Subversion.

Releases

Der laves et svn update og det tjekkes at alle tests kører.

Herefter skal der laves et tag i svn git (på main branch) for den pågældende revision med følgende form:  på formen 'release-<major>.<minor>.<patch>':

Code Block
git tag -a release-X.Y.Z -m "SDS-XXXX"

Hvor X.Y.Z skal rettes til versionen, og beskeden til SDS-sagsnummer i Jira.

Opret herefter en release branch, og byg NuGet pakken - se nedenunder (det er denne pakke som uploades til nuget.org, som gør Seal.Net tilgængelig for andre).


NuGet link til Seal.NET: https://www.nuget.org/packages/Seal.net

Byg af

...

NuGet pakke

En NuGet pakke kan bygges med følgende kommando:

Code Block
languagebash
dotnet pack -c release --include-symbols -p:Version=1.2.3

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, vil den automatisk ligge dll og evt. pdb filer fra projektet ind i den genererede pakke.

Specifikt for .NET Framework

  1.  Opdater versionsnummeret i Seal/Properties/AssemblyInfo.cs (det bestemmer versionsnummerert i nuget pakken).
  2. MSBuild seal\Seal.csproj /property:Configuration=Release
    1. Hvis man får en fejl omkring certifikater, gør da følgende
              sn -i DgwsTypes\DgwsTypesStrongName.pfx med den VS_KEY der nævnes (pw: DgwsTypesPassword)
              byg igen, du får nu sikkert en ny fejl med ny VS_KEY
              sn -i Seal\Seal.NetStrongName.pfx med den VS_KEY der nævnes (pw: Seal.NetPassword)
              byg igen, skulle gerne være uden fejl nu
  3. nuget pack Seal\Seal.csproj -properties Configuration=Release -Symbols -SymbolPackageFormat snupkg

Tests

Unit- og integrationstests er placeret under SealTest/, og følger den samme pakkestruktur som de klasser der testes. Der anvendes normal NUnit til at implementere tests. Tests køres i Visual Studio som normalt. Så vidt muligt navngives testmetoder efter deres hensigt – dvs. f.eks. testConditionShouldBeTrue() i stedet for test1().

Opsætning af udviklingsmiljø

For at få projektets testsuite til at køre skal følgende certifikater importeres i trust store.

I Windows importeres disse som trusted root certification authorities med MMC:

  • SealTest/Resources/oces2/PP/system_vii.p12 (password: Test1234)
  • SealTest/Resources/oces3/devtest4/FOCES_gyldig.p12 (password: Test1234)
  • SealTest/Resources/SelfSigned.pfx

Specifikt for .NET Framework med FMK integrationstests

Følgende kommando køres

netsh http add urlacl url=http://+:1010/FMK/ user=DOMAIN\user

Lig den ind i "Release" mappen og commit denne mappe på tagget:

Code Block
git add -f ./Seal/bin/Release/Seal.net.X.Y.Z.nupkg
git add -f ./Seal/bin/Release/Seal.net.X.Y.Z.symbols.nupkg

commit -m "SDS-XXXX: nuget pakker tilføjet"
git push

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 kravhvor DOMAIN\user f.eks. kan aflæses ved at tilgå Control Panel → User Accounts → Configure advanced user profile properties (på Windows 10).