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'.
Seal.Net projektet ligger på nspop svn-repository på følgende adresse: https://svn.nspop.dk/svn/libraries/seal/net/
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.
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 på formen 'release-<major>.<minor>.<patch>':
svn cp https://svn.nspop.dk/svn/libraries/seal/net/trunk/ https://svn.nspop.dk/svn/libraries/seal/net/tags/release-X.Y.Z/ -m "Tag X.Y.Z" |
Hvor X.Y.Z skal rettes til versionen.
Lav et checkout af det nyoprettede tag, og lav en mappe i roden af projektet der hedder "Release".
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. På denne måde bliver den generede NuGet pakke en del af releaset.
En NuGet pakke kan bygges med følgende kommando:
dotnet pack -c release --include-symbols -p:Version=1.2.3 -p:PackageReleaseNotes="..." |
Der er kan dog opstå nogle begrænsninger/bugs ved at specificere release notes på kommandolinjen, som f.eks. linjeskift, eller karakterer som ikke kommer korrekt med i pakken. Her kan man i stedet specificere release notes i projektfilen 'Seal.csproj':
<Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> <PackageReleaseNotes>Release note med linjeskift </PackageReleaseNotes> </PropertyGroup> </Project> |
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
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().
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:
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).