Integrations Test mit Dependency Injection MsTest v2 .Net Core 3.1

Möchte man einen Integrationstest schreiben und dabei dependency injection nutzen, muss man folgendermaßen vorgehen:

  1. Im Besten Fall teilt ma die Ausführende Applikation z.B. Web Applikation, Console etc und eine Bibliothek.
  2. In die Bibliothek kommt die Auslagerung der StartUp:
    [crayon-5f0dd930a0f8d525732810/]
  3. Im Testprojekt wird eine Basis Klasse definiert, die dieses Modul einliest. Nun kann in CofigureServices services.UseMyModule() aufgerufen werden oder der Host selbst gebaut werden:
    [crayon-5f0dd930a0f9a523134673/]
  4. Die eigentliche Test Klasse erbt nun von diesen BaseUnitTest. Nun kann ein Propertiy erzeugt werden, welche einen Service aus der Dependency Injection ausliest:
    [crayon-5f0dd930a0f9e637879196/]
     



.gitignore SSIS dtsx Dateien hinzufügen

in der VisualStudio .gitignore: https://www.gitignore.io/api/visualstudio

wird das komplette Verzeichnis “obj” exkludiert. Die packages (.dtsx) aus SSIS befindet sich aber gerade dort.

Daher muss man folgende Zeile auskommentieren:
[crayon-5f0dd930a26bd493469797/]
und unter diesen Block einen neuen Block hinzufügen:
[crayon-5f0dd930a26c7461570436/]
meine komplette .gitignore sieht demnach so aus:
[crayon-5f0dd930a26c9858543035/]
 




Step 1: Gitea installieren

  1. Chocolaty ist eine Windows Umgebung um Anwendungen über Kommandozeile zu installieren:
    1. https://chocolatey.org/install
  2. GO installieren
    1. https://golang.org/dl/
  3. cmd öffnen und echo %GOPATH% eingeben. Wenn als Ergebnis wieder %GOPATH% steht, Windows neustarten und nochmal prüfen. Andernfalls unter Systemsteurung -> System -> Erweitert -> Umgebungsvariablen die GOPATH Variable setzen
  4. cmd als Admin starten und folgende Befehle eingeben:
  5. [crayon-5f0dd930a2cbc291285045/]
     
  6. Nun ist der Service unter http://localhost:3000 erreichbar, zeigt aber Fehler an. Daher muss man das Package herunterladen:
    1. https://dl.gitea.io/gitea/1.11.0/gitea-1.11.0-windows-4.0-amd64.exe
    2. Diese direkt in das Verzeichnis c:\gitea kopieren
  7. [crayon-5f0dd930a2cc4963601933/]

     MS SQL Server vorbereiten

  8. Im SQL Management Studio nun eine Neue Datenbank mit dem Namen “Gitea” erstellen
  9. Unter Security -> Logins einen Neuen SQL User “gitea-user” erstellen.
  10.  R. Maustaste auf den User -> Properties -> Server Roles und nur die neue Gitea Datenbank zuweisen
  11. Mindestens einmal als dieser User einlogen und das neue Passwort setzen
  12. Wieder mit Properties -> Global die Haken bei Enforce Password expiration raus nehmen

    SSH Server einrichten

  13. PowerShell als Admin öffnen
    [crayon-5f0dd930a2cc7557655603/]
  14. Zum SSH Test einloggen eingeben. Standard Port ist 22 und sollte in der Firewall freigeschaltet sein
    [crayon-5f0dd930a2cc9072344127/]
     




Microservices mit .Net Framework und Core ohne Docker

Momentan liest man überall von Microservices und welche Vorteile diese Architektur mit sich bringt. Zwar wird immer wieder aufgeführt, dass Microservices Polyglot (Eine Architektur mit unterschiedlichen Programmiersprachen) unterstützen können. Tatsächlich findet man aber nur Anleitungen (In der Microsoft Welt) Zu .Net Core, in Verbindung mit Docker und Azure.

Mein Ziel ist es eine Architektur ohne Docker (Da auf VMs nicht unterstützt wird) und eine Verbindung aus Core und .Net Framework herzustellen. Aus einer Reihe von nachhaltigen Frameworks soll die Entwicklung in CD (Continues Delivery) gestaltet werden. TFS und GitLab scheiden wegen ihren Lizenzmodell aus.

  • CodeRepository: Git -> https://git-scm.com/download/win
  • Build Server: Jenkins -> https://jenkins.io/download/
    • https://www.guru99.com/jenkin-continuous-integration.html
  • Api Gateway (Kommunikation ClientApi zu Microservices) Ocelot : https://github.com/ThreeMammals/Ocelot
  • Kommunikationsprotokoll zwischen Microservices: gRPC (Da schneller als Http)
  • Sicherheit unter Microservices: JWT Token
  • Authentifizierung Microservice mit OAuth 2.0 und OWIN Middleware: https://oauth.net/code/dotnet/
  • Repository: Implementierung mit Dapper: https://github.com/StackExchange/Dapper
  • Repository Cache: https://github.com/MichaCo/CacheManager
  • Datenbank Code Migration SSDT: SQL Server Data Tools
    • https://www.youtube.com/watch?v=6ass_PYECmM&t
    • https://arapaima.uk/post/2017-04-04-jenkins-windows-git-ssdt-profit/
  • (Optional) Search Engine: https://www.elastic.co/guide/en/elasticsearch/client/net-api/current/introduction.html
    • https://www.red-gate.com/simple-talk/dotnet/net-development/how-to-build-a-search-page-with-elasticsearch-and-net/



Windows Bug Tooltip bleibt hängen

Wahrscheinlich jeder kennt es, wenn plötzlich irgendwo im Bildschirm ein Tooltip hängt und nicht weg geht.

Dann kann man einfach Windows+D 2x drücken und dann ist der weg




Visual Studio Build Events

Wenn man nach einem Build eine Applikation starten möchte, muss man einen Umweg um eine bat Datei gehen.

R. Maustaste auf das Projekt in Visual Studio, dann auf “Build” und unter Pre oder Post folgendes eingeben

call  meinPfadZurBatDatei\startPublisher.bat

 

und unter diesen Pfad müssen wir eine bat Datei erstellen, die wiederum eine exe ausführt

einfach start meinPfadZurExe.exe in die bat Datei schreiben




SQL Server Remote Zugriff

Um auf eine SQL Instanz per Remote (von außen) zugreifen zu können, muss man in der Firewall folgende Ports aufmachen:

InBound (Eingehende): TCP 1433 (für z.B. SSMS), UDP 1434 (für ODBC Verbindungen)

OutBound (Ausgehende): TCP 1433

Zusätzlich die Dynamic aus “SQL Server Network Configuration” -> “Protocols for [INSTANZ]” -> “TCP/IP” -> Reiter “IPAdresses” ->  Im Feld “IPAll” -> TCP Dynamic Ports

Auserdem muss der TCP/IP Client Protokoll in SQL Configuration eingeschaltet werden:

außerdem muss der SQL Browser Service laufen:




Eigene Adblock uBlock Filterliste

Surface 2019-05-19
[crayon-5f0dd930a2fd8833649451/]
 




Pokemon Tower Defense Tricks

// Letzte Trades

http://www.ptdtrading.com/latestTrades.php?whichProfile=1

JQuery hinzufügen dynamisch
[crayon-5f0dd930a32d5388759191/]
Blendet alle Regulären Pokemon aus
[crayon-5f0dd930a32dc237558266/]
Blendet Pidgeot aus
[crayon-5f0dd930a32df456521118/]
[crayon-5f0dd930a32e0845485106/]
 




Vivaldi Browser

Auf der Suche nach einem Browser, der Tabs stacken/gruppieren kann, bin ich bei Vivaldi gelandet. Dieser hat mich in vielerlei hinsicht überzeugt:

  1. Die Engine ist die Gleiche wie bei Chromium.
  2. Das Entwicklungsmenü ist zu Chrome gleich.
  3. Man kann Tabs gruppieren und wirklich alles ändern.

 

Anbei der Link zu Vivaldi: https://vivaldi.com

Ich habe noch die style.css anpassen müssen, da die Schriftart zu smoothie aussieht und mir die Schriftgröße für die Tabs zu klein war.

Diese befindet sich bei Windows hier:

C:\Users\Seibel\AppData\Local\Vivaldi\Application\1.14.1077.60\resources\vivaldi\style\common.css

Dazu folgende Änderungen einfügen: Im Kopf einfügen
[crayon-5f0dd930a3578880767063/]
Nach .tab-position .tab { suchen und folgendes hinzufügen
[crayon-5f0dd930a357e807607576/]
Dann im kommpletten Stylesheet nach smooth suchen und bis auf den angefügten Kopfeintrag alle smooth Einträge entfernen

 

Als Theme habe ich das Dark Theme genommen und die Farben angepasst: