Seal.Net
Indledning
Dette dokument beskriver hvordan man kommer i gang med at tilpasse eller videreudvikle Seal.Net.
Forudsætninger
Der forudsættes erfaring med .NET-udvikling og brug af open source projekter.
Afhængigheder
Seal.Net er bygget på '.NET Standard 2.0'.
Seal.Net
Seal.Net projektet ligger på nspop svn-repository på følgende adresse: https://svn.nspop.dk/svn/libraries/seal/net/
Projektstruktur
Seal.NET er et standard .NET library projekt og indeholder følgende:
- ● Seal/
❍ Indeholder kildekode for selve biblioteket
- ● DgwsTypes/
❍ Typer der beskriver alle security headers som er defineret i Den Gode Webservice.
- ● SealTest/
❍ Indeholder unit- og integrationstests
- ● doc/
❍ Indeholder ældre dokumentation. Findes af historiske årsager.
Releases
Der laves et svn update og det tjekkes at alle tests kører.
Herefter skal der laves et tag i svn for den pågældende revision med følgende form: release-<major>.<minor>.<patch>
Byg af nuget pakke
En NuGet pakke kan bygges med følgende kommando:
dotnet pack -c release --include-symbols -p:Version=1.2.3 -p:PackageReleaseNotes="..."
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
- Opdater 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
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
hvor DOMAIN\user f.eks. kan aflæses ved at tilgå Control Panel → User Accounts → Configure advanced user profile properties (på Windows 10).