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

  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

hvor DOMAIN\user f.eks. kan aflæses ved at tilgå Control Panel → User Accounts → Configure advanced user profile properties (på Windows 10).

  • No labels