Page History
...
Dette dokument beskriver hvordan man kommer i gang med at tilpasse eller videreudvikle Seal.Net ud fra kildeteksten.
Forudsætninger
Der forudsættes erfaring med .netNET-udvikling og brug af open source projekter. Læs også 2. Building, der er rettet med at bygge og release biblioteket, men hvis beskrivelse af teknisk setup ikke gentages her.
Afhængigheder
Seal.Net er bygget på .net platformen, og kræver version 4.6.2.'.NET Standard 2.0'.
Seal.Net
...
Koden findes i bitbucket:
| Code Block | ||
|---|---|---|
| ||
https:// |
...
git.nspop.dk/projects/ |
...
LIB/ |
...
repos/seal.net/ |
...
browse |
Projektstruktur
Seal.Net NET er et standard Visula Studio 2015 projekt, og har følgende struktur.NET library projekt og indeholder følgende:
- ● Seal/
❍ Indeholder kildekode for selve biblioteket
...
❍ Indeholder unit- og integrationstests
- ● doc/
❍ Indeholder al dokumentation som krævet på ældre dokumentation. Findes af historiske årsager.
Installation af .NET
...
...
...
...
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.
Herefter skal der laves et tag i git (på main branch) for den pågældende revision 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 | ||
|---|---|---|
| ||
dotnet pack -c release --include-symbols -p:Version=1.2.3 |
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 krav.
- ● scripts/
❍ Indeholder scripts til at bygge med.
- ● packages/
❍ Indeholder eksterne NuGet pakker. Dette dir skal heller ikke ligge i Subversion.
Releases
Et nyt release laves ved først at opdatere ChangeLog-filen med ændringerne fra sidste release.
Herefter checkes det at projektet kan bygges og at alle tests kører uden fejl. Herefter køres updateres versionsnummer i Seal/Properties/AssemblyInfo.cs
Udvikles der under Windows kan release foretages manuelt med følgende trin:
- Lav en svn update for at sikre, at den seneste version er hentet.
- Lav et nyt tag i SVN baseret på trunk, der hedder vx.y.z hvor x.y.z er det nye versionsnummer.
Byg af nuget pakke
- Check og opdater evt. versionsnummeret i Seal/Properties/AssemblyInfo.cs (det bestemmer versionsnummerert i nuget pakken).
- MSBuild seal\Seal.csproj /property:Configuration=Release
- 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
- Hvis man får en fejl omkring certifikater, gør da følgende
- nuget pack Seal\Seal.csproj -properties Configuration=Release -Symbols -SymbolPackageFormat snupkg
- Kopier den byggede pakke til lokalt nuget katalog
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 laves opsætning som beskrevet i dette afsnit.
Følgende kommando køres
netsh http add urlacl url=http://+:1010/FMK/ user=DOMAIN\userhvor DOMAIN\user f.eks. kan aflæses ved at tilgå Control Panel → User Accounts → Configure advanced user profile properties (på Windows 10).
Følgende certifikater importeres som trusted root certification authorities (med MMC):
- SealTest/Resources/oces2/PP/system_vii.p12 (password: Test1234)
- SealTest/Resources/oces3/devtest4/FOCES_gyldig.p12 (password: w5JT_D8Oh_Uq)
- SealTest/Resources/SelfSigned.pfx
Kom Godt i Gang Guide
Der er udarbejdet en "Kom Godt i Gang Guide", til at hjælpe udviklere i gang, med at udvikle systemer, der benytter sig af Seal.Net. Guiden findes via linket:
https://www.nspop.dk/display/public/web/SEAL.NET+-+Leverancebeskrivelse