Hey Taipi,
Das kann verschiedene Gründe haben wie beispielsweise:
Da wir bei uns aber getrennt entwickeln (eigene Repositories für je Angular und WebApi) sind meine Aussagen natürlich mit Vorsicht zu geniessen. 😃
Wir lassen beispielsweise unsere (teilwese SSR) Apps unter Docker entweder auf Nginx oder Node laufen.
Bezüglich dem Bundling / Environment.
Die einzigen Settings die unsere Angularapps jeweils benötigen sind aktuell
a) REST-API Url
b) weitere externe host-configurations, wie bspw. Sentry.
Diese werden aber nicht vom Host (NGINX / Node) vorgegeben, sondern stehen (Achtung Abt 😉) hardgecoded in den jeweiligen environment.xxx.ts files. Der Angular Build Prozess entscheidet dann jeweils welches Environment File er effektiv in die App reinsetzt.
Gruess
Es gibt kein 'Ini DAL' oder ein 'SQL DAL'. Es gibt genau ein Data Access Layer, welches zwei verschiedene Repositories (oder was auch immer) enthält.
Diese implementieren beide das (beispielsweise) IConfigRepository, welches mit einer ConfigEntity arbeitet.
Sprich;
Im DAL mappen die einzelnen Repositories ihre Daten in die Config Entity.
Im Business Layer wird dann die ConfigEntity in entsprechende Business Model gemappt.
Gruss,
Wurm.
Schon überprüft ob dein Problem nicht bereits vom verwendeten Datenbanksystem gelöst wird?
RavenDB 4 bietet zum Beispiel Document-Revisions an: https://ayende.com/blog/177665/ravendb-4-0-features-document-versioning
Hi scoKi!
Sorry, keine direkte Antwort zu deinem Problem.
Es gibt sonst auch die Möglichkeit Javascript / Typescript Code direkt in Google Chrome zu debuggen.
F12 (developer console) -> Sources.
Danach entweder mittels CTRL+P ein File öffnen, oder im Filetree (links) unter Webpack das gewünschte File suchen. Dort kannst du auch Breakpoints etc setzen.
Ich persönlich debugge Frontend-Code immer über die Chrome Dev Tools.
Was spricht gegen die Projekt-Generierung durch die React CLI (create-react-app)?
Dort gibt es ebenfalls Templates für Typescript-Projekte -> https://github.com/wmonk/create-react-app-typescript
Die F5-Konfigurationen findest du unter .vscode/launch.json.
Hey Leute,
Ich habe scheinbar gerade ne echte Blockade vor dem Kopf was Dependency Injection angeht.
Und zwar stelle ich mir die Frage wie ich am besten bei einem Child-Objekt verschiedene Services injiziere, ohne dass diese im Parent Objekt verwendet werden.
Beispielcode:
public class Person
{
private IDummyInterfaceOne _interfaceA;
private IList<Haus> _haeuser;
public Person(IDummyInterfaceOne interfaceA)
{
this._interfaceA = interfaceA;
this._haeuser = new List<Haus>();
for (int i = 0; i < 10; i++)
{
this._haeuser.Add(new Haus()); // Von wo kommt das IDummyInterfaceTwo?
}
}
}
public class Haus
{
private IDummyInterfaceTwo _interfaceB;
public Haus(IDummyInterfaceTwo interfaceB)
{
this._interfaceB = interfaceB;
}
}
Person ist das Objekt welches schlussendlich mehrere Häuser instanzieren soll.
Die beiden Services 'IDummyInterfaceOne' und 'IDummyInterfaceTwo' sind im DI-Container vorhanden.
Per se fallen mir jetzt zwei Möglichkeiten ein, bin mir aber nicht wirklich sicher ob diese auch der richtige Weg sind.
IDummyInterFaceTwo im Person Konstruktor deklarieren, und dann einfach weiter runtergeben
-> Wird aber bei mehreren Services / Interfaces dann auch unsauber, und vorallem verlangt dann mein Person-Objekt Services die es eigentlich (von sich aus) ja auch gar nicht benötigt (sondern nur an das Haus Objekt weitergibt).
Ich rufe den (statischen Container) auf und hole von dort jeweils den Service.
Gibts etwas was ich da nicht ganz verstanden oder bedacht habe?
Merci & Gruess,
Dani
Jein.
iA ist kein Teil eines Objekts.
Eine statische Variable ist eine sogenannte 'Klassenvariable'.
Variabeln eines Objektes, resp. einer Instanz einer Klasse nennt man dann 'Instanzvariable'.
Beispiel.
class Foo
{
public Int32 MyInteger { get; set; }
public static Int32 MyStaticInteger = 0;
}
class Program
{
static void main(string[] args)
{
Foo myFoo = new Foo();
myFoo.MyInteger = 2; // Instanzvariable MyInteger wird für das Objekt 'myFoo' gesetzt.
Foo mySecondFoo = new Foo();
mySecondFoo.MyInteger = 3; // Instanzvariable MyInteger wird für das Objekt 'mySecondFoo' gesetzt.
Foo.MyStaticInteger = 4; // Klassenvariable MyStaticInteger ist nicht Teil einer Foo-Instanz, sondern eine statische Variable.
}
}
Hey Abt,
Keine Ahnung wie positiv die Repräsentation damit im Marketing ist. 😉
Wir sind alles bald-Absolventen und und interessieren uns für die Thematik da so etwas in unserem Bachelor Studium nicht mehr so genau (oder gar nicht? 😃) gelehrt wird. Keine Angst das hat nichts mit Firmenstrategie oder reiner Publicity zu tun. 😉
Siehe Anhang für die Microservice Idee.
Die Aufteilung hier mag zwar trivial sein, soll ja aber auch nur als Beispiel- & Lernprojekt dienen.
Danke für den Input bzgl. normales Login via Forms - ich schaus mir nochmals genauer an!
Mag sein dass ich ein wenig eingerostet bin und mir dadurch das Ganze komplizierter vorstelle als es überhaupt ist.
Aber ja schlussendlich sollen es mehrere Services geben, auf welche durch ein Gateway geroutet wird.
Clients wird es SPA und Mobile App geben.
Besten Dank,
Wurm.
Hi Abt,
Danke für deine Antwort.
Wir wollen schlussendlich eine OAuth Login-Möglichkeit anbiete, sprich:
Wichtig ist hier, dass wir wie erwähnt eine Microservice Architektur verwenden und keinen Monolith.
Alle Services können zwar die IDP Authentifizierung nachverfolgen, wie aber die Custom-Authentifizierung (die nicht über einen externen IDP, sondern über unser eigenes System erledigt wurde) verifiziert wird ist mir noch unschlüssig.
Kannst du uns da noch weiter helfen?
Oder ist - wie erwähnt - die beste Lösung, dass unser Auth-Service selber auch ein IDP also quasi ein IdentityServer ist?
Gruss,
Wurm