Laden...

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

7 Antworten
1,776 Aufrufe
Letzter Beitrag: vor 5 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

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

Hi,

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

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.

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

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

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.