Template parsen in C#

Ok habe ich mir gedacht. Es wird ja wohl nicht so schwer sein folgenden Code zu parsen und die Templates entsprechend zu ersetzen:
[crayon-6606b2ead7f9d127320756/]
vue.js oder mustache verwendet eine ähnliche Syntax.

Ich könnte an dieser Stelle mustache für C# verwenden und er würde mir das Template ersetzen, allerdings benötige ich nicht nur das Ergebnis als String sondern ich möchte bei jedenm Iterationsaufruf eingreifen können.

Bisher habe ich mir folgende Tools angeschaut:

Leider ist Sprache sehr schlecht  dokumentiert und es fehlen Beispiele wie man das umsetzen könnte. Dennoch würde ich es gerne bevorzugen.




Vue – Konstanten definieren

Konstanten kann man in Vue einfach im Created Hook definieren.

Generell sollte man sich das Arbeiten mit Konstanten angewöhnen.

if(UserTypeId == 7) {…} stellt den Entwickler vor die Frage, was an diesen UserType nun so besonders ist.

Besser: if(UserTypeId == USERTYPE_GUEST) . So weiß jeder, die folgende Logik betrifft den Gastbenutzer
[crayon-6606b2ead83ba088575529/]
 




Vue – Directive

Mal angenommen man möchte alle Felder auf einer Seite deaktivieren. Man könnte input für input durchgehen und mit :disabled=”isEditable” das Feld deaktivieren.
Oder man schreibt eine Custom Directive, die diese Logik abbildet: https://vuejs.org/v2/guide/custom-directive.html

Möchte man das global haben:
[crayon-6606b2ead8547025964784/]
Oder per Instanz:
[crayon-6606b2ead854a381395139/]
Eingebunden wird das nun mit.
[crayon-6606b2ead854c813115899/]
oder
[crayon-6606b2ead854d635324372/]
oder ohne Bedingung
[crayon-6606b2ead854e042182215/]
 




Cmd Pfad autocomplete funktioniert nicht

Cmd öffnen
[crayon-6606b2ead86e5651377949/]
Befehle eingeben
Cmd neustarten und mit cd Tab den Pfad autocompleten lassen 🙂




Applikationsdesign: Datensätze abarbeiten nach Punktesystem

Mir kam mal folgende Problemstellung in die Gedanken:

Mal angenommen ich muss unterschiedliche Aufgaben abarbeiten. Diese befinden sich in einer Warteschleife. So dass sie nacheinander oder auch asynchron parallel abgearbeitet werden sollen.

Jede Aufgabe besitzt eine Priorität. Sagen wie 1 (unwichtig) – 10 (sehr wichtig). In die Warteschleife kommen immer wieder Aufgaben nach. Das Problem ist, es werden die sehr wichtigen immer zuerst abgearbeitet. Die weniger wichtigen kommen daher nie dran und werden nie verarbeitet. Die Lösung ist ein Punktesystem mit Zeitangabe. Die Priorität ist dient dann als Faktor und wird mit der Anzahl Minuten multipliziert. Das ergibt die Summe der Punkte pro Datensatz

Beispiel: Es ist Momentan 12:00 Uhr Mittags.

  1. Datensatz 1: Prio 4, Hinzugefügt um: 11 Uhr, Punkte: 4 * 60 = 240
  2. Datensatz 2: Prio 9, Hinzugefügt um: 8 Uhr, Punkte: 9 * 240 = 2160
  3. Datensatz 3: Prio 2, Hinzugefügt um: 4 Uhr, Punkte: 2 * 480 = 960

Sortiert man diese Liste nun nach Punkten ergibt sich eine neue Reihenfolge

  1. Datensatz 2: Prio 9, Hinzugefügt um: 8 Uhr, Punkte: 9 * 240 = 2160
  2. Datensatz 3: Prio 2, Hinzugefügt um: 4 Uhr, Punkte: 2 * 480 = 960
  3. Datensatz 1: Prio 4, Hinzugefügt um: 11 Uhr, Punkte: 4 * 60 = 240

So hat jeder Datensatz eine Chance drangenommen zu werden. Je länger er in der Warteschleife verweilt, desto höher wird sein Punktesatz.




system-versioned temporal tables oder automatische Historie auf Tabellenbasis

funktioniert ab SQL Server 2016

 
[crayon-6606b2ead884d671036236/]
 




SQL Column löschen inkl. aller Constraints

[crayon-6606b2ead89af112745873/]
 




Windows Dienst installieren / löschen

sc.exe create MyServiceName binpath= “C:\inetpub\wwwroot\….exe”
sc.exe delete MyServiceName




Bibliotheken für Authorisierung

Das Thema Authorisierungen ist sehr komplex und es gibt dazu viele Ansätze. Hier ist eine Liste von Bibliotheken:

Casbin

Vergleich Casbin mit OPA: OPA vs Casbin (github.com)

https://www.openpolicyagent.org/

oso Documentation — oso Documentation (osohq.com) (Nur Python und Java)

ory/ladon: A SDK for access control policies: authorization for the microservice and IoT age. Inspired by AWS IAM policies. Written for Go. (github.com) (Veraltet)

teramoby/speedle-plus: Speedle+ is an open source project for access management. It is based on Speedle open source project and maintained by previous Speedle maintainers. (github.com)




VueCliMiddleware unter IIS installieren

Dies ist eine Fortsetzung zu

https://hosting149637.a2ebb.netcup.net/devandy.de/vuecli-installieren/

  1. Über Windows Cmd Console zum Ordner navigieren wo das neue Zertifikat erstellt werden soll (cd… )
  2. in die Console folgendes eingeben: mkcert -pkcs12 localhost 127.0.0.1
  3. Im Ordner wird nun eine localhost+1.p12 Datei erstellt. Diese Datei umbenennen zu localhost.pfx
  4. In Die Console mkcert – install eingeben und mit Ja bestätigen
  5. Die localhost.pfx Datei doppelt anklicken und “Lokaler Computer auswählen”. Ganz wichtig. Sonst funktioniert es nicht
  6. Bei Kennwort “changeit” eingeben und “Schlüssel als exportierbar machen” anhaken
  7. Zu IIS wechseln, ASP Core App mit VueCliMiddleware auswählen, und auf der rechten Seite auf “Bindungen…” klicken.
  8. Doppelt auf die https Sitebindung klicken
  9. Auf den Button “Auswählen” klicken und gerade installiertes Zertifikat auswählen und mit OK bestätigen
  10. Bei Hostname noch localhost eintragen
  11. Zur VueApp wechsel und in die VueConfig folgendes eintragen:
  12. [crayon-6606b2ead8b43678962387/]
    Der Port 8080 sollte gleich sein, wie in VueCliMiddleware angegeben. Die localhost.pfx Datei muss im angegebenen Pfad vorhanden sein

 

Hot reloading funktioniert leider noch nicht