Laden...

ASP.NET Core + Angular - Besser Client und Server separat handhaben?

Erstellt von Taipi88 vor 4 Jahren Letzter Beitrag vor 4 Jahren 1.514 Views
Taipi88 Themenstarter:in
1.029 Beiträge seit 2010
vor 4 Jahren
ASP.NET Core + Angular - Besser Client und Server separat handhaben?

Hi,

ich versuche mich gerade erstmalig in SPA's einzuarbeiten.

Was mich ein wenig wundert:
Wieso ist z.B. das Hosting einer Angular-Anwendung direkt in ASP.NET Core eingebaut?

Wäre es nicht sauberer, das ganze als separates Projekt zu handeln - und dort ohnehin mit VS-Code und separat mit Node.js zu arbeiten? Oder gibt es einen guten Grund das ganze innerhalb von von ASP.NET Core zu halten?

Nicht, dass ich mir später das Leben unnötig schwer mache...

LG

16.806 Beiträge seit 2008
vor 4 Jahren

Wieso ist z.B. das Hosting einer Angular-Anwendung direkt in ASP.NET Core eingebaut?

Das kommt drauf an, was man erreichen will.

Eine Angular Applikation ist eine rein Client-seitige Applikation - trotzdem wirst Du aber Settings haben.
Ohne eine Server-Side Application hast Du jedoch keinerlei Möglichkeiten Settings in Deine SPA zu bekommen, ohne dass Du die Settings hart in den Quellcode schreibst.

Leider schreiben selbst Angular-Buch-Autoren in ihre Code Samples die Settings oft hart in Code - eigentlich verwerflich für in Lehrbuch; und alles andere als eine gute Idee.

Wenn man die Autoren dann auf Twitter fragt, ob das wirklich so eine gute Idee für ein Lehrbuch ist kommt auch gerne "Wieso? Klappt doch." zurück.
Da stell ich schon die Qualität des Buchs infrage..){gray}.

Taipi88 Themenstarter:in
1.029 Beiträge seit 2010
vor 4 Jahren

Hi,

in anderen Worten macht man das "nur" um ein sinnvolles auf Environments angepasstes Bundling zu erreichen? Nun denn - das macht zumindest Sinn 😃

16.806 Beiträge seit 2008
vor 4 Jahren

Environments ist ein Thema; aber prinzipiell kann man mit Server Side schon viel erreichen.

  • Static Pre Rendering
  • Server Side Rendering (SEO, Fallback..)
  • Fallback für Low Powered Devices
  • Quick first page
  • ...

ASP.NET Core ist da aber auch nur eine von vielen Möglichkeiten.

2.207 Beiträge seit 2011
vor 4 Jahren

Hallo Taipi88,

ich bin mir nicht sicher, ob du die Trennung auch im Code meinst. Wir haben bei Kunden oftmals Applikationen in Client und Server-Folder getrennt. Gerade bei getrennten Teams ist das sehr angenehm. Ich arbeite zu 99% mit getrenntem "backend" und "frontend" Folder.

Gruss

Coffeebean

R
295 Beiträge seit 2008
vor 4 Jahren

Hey Taipi,

Das kann verschiedene Gründe haben wie beispielsweise:

  • Umgehen von CORS während Entwicklungsprozessen
  • Monorepo Codebasis
  • Damit bei einem Deployment die Angular-App direkt vom (bspw. IIS) geserved wird, ohne dass man sich um externes Hosten kümmern muss

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

ServiceStack & Angular = =)

16.806 Beiträge seit 2008
vor 4 Jahren

Diese werden aber nicht vom Host (NGINX / Node) vorgegeben, sondern stehen (:::

X( X( X( X( X( X( X( X( X( X( X(
Don't. Just: Don't.