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:

Indeholder kildekode for selve biblioteket

Typer der beskriver alle security headers som er defineret i Den Gode Webservice.

Indeholder unit- og integrationstests

Indeholder al dokumentation som krævet på https://www.nspop.dk/display/public/web/Dokumentationskrav+for+NSP-platformen

Indeholder scripts til at bygge med.

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 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

For at inkludere refererede projekter som dll (DgwsTypes i dette tilfælde) i den generreede 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:


Specifikt for .NET Framework med FMK integrationstest

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).