Laden...

Neues ASP.NET Project mit .NET Core 2.0 oder lieber MVC?

Erstellt von camelord vor 6 Jahren Letzter Beitrag vor 6 Jahren 3.102 Views
camelord Themenstarter:in
256 Beiträge seit 2006
vor 6 Jahren
Neues ASP.NET Project mit .NET Core 2.0 oder lieber MVC?

Hi,

ich beginne ein neues ASP.NET Projekt und Frage mich, ob man mittlerweile mit .NET Core starten kann oder lieber noch MVC benutzen sollte..

Gruß
camelord

78 Beiträge seit 2016
vor 6 Jahren

Auch in .NET Core benutzt du MVC, nur eben ASP.net Core MVC
Und Ja, man kann mit .NET Core starten ... sollte das auch.

http://dotnet-paderborn.azurewebsites.net/

camelord Themenstarter:in
256 Beiträge seit 2006
vor 6 Jahren

Gut danke..
Du hast natürlich recht - ich meine die vorherige technologie.
vor nem Jahr ungefähr wurde mir noch noch abgeraten, da Core noch nicht soweit war für den produktiven einsatz.
Die Roadmap hat noch ein paar features offen..

16.806 Beiträge seit 2008
vor 6 Jahren

Du vermischt quasi alles, was man so vermischen kann 😉

  • .NET Core ist eine Runtime
  • ASP.NET eine Technologie/Engine - diese kann man aktuell sowohl auf .NET Core wie auch auf .NET Framework verwenden
  • MVC eine Middleware(Feature); man kann sie aktivieren - muss es aber nicht. "ASP.NET Core MVC" gibt es nicht.
    ASP.NET Core ist der Produktname - und MVC eben nur eines von vielen vielen Features.

Ab .NET Core 2.0 ist es zu empfehlen - davor sehr eingeschränkt.
Wenn man nicht .NET Framework muss, sollte man .NET Core verwenden.

camelord Themenstarter:in
256 Beiträge seit 2006
vor 6 Jahren

Perfekt - danke dir

P
1.090 Beiträge seit 2011
vor 6 Jahren

Was du dir auch mal anschauen kannst ist. .Net Core nur für das Backend zu verwenden und für das Frontend Angular oder Aurelia einzusetzen.

Sollte man mal gelesen haben:

Clean Code Developer
Entwurfsmuster
Anti-Pattern

T
2.219 Beiträge seit 2008
vor 6 Jahren

Palins Vorschlag nutzen wir auch aktuell für einen Projekt Relaunch.
Dort stellt ASP .NET Core sowohl den Server als auch mit WebAPI eine REST Schnittstelle mit JSON als Format zwischen Server und Client bereit.

Das Web selbst ist als SPA konzipiert und wird mit Angular 2+ auf Typescript Basis umgesetzt.
Die Clients kommunizieren dann nur noch über WebAPI mit dem Server.
Lässt sich super umsetzen, sobald man sich einmal in Angular und WebAPI eingearbeitet hat.

T-Virus

Developer, Developer, Developer, Developer....

99 little bugs in the code, 99 little bugs. Take one down, patch it around, 117 little bugs in the code.

78 Beiträge seit 2016
vor 6 Jahren

@Abt:

"ASP.NET Core MVC" gibt es nicht.

Wat? Kannst du das kurz erklären?

http://dotnet-paderborn.azurewebsites.net/

16.806 Beiträge seit 2008
vor 6 Jahren

MVC war früher wie WebAPI ein eigenes Produkt - das gibt es so nicht mehr.

Das Produkt heisst "ASP.NET Core" und Funktionalitäten werden über Middlewares hinzugefügt - zB. Mvc oder Http APIs.

Man kann aber ASP.NET Core auch völlig ohne Mvc oder API betreiben.
Machen wir zB. bei Services, die nichts anderes machen als auf einen Message Bus zu hören aber keinerlei HTTP Features haben.

Und noch weiter gesponnen: das Pipelining von Kestrel ermöglich sogar MVC-behavior völlig ohne ASP.NET Core zu betreiben.

camelord Themenstarter:in
256 Beiträge seit 2006
vor 6 Jahren

Sehr schön - danke für die Tips!

Gibt es auch einen Front-End Theme, der mit Razor funktioniert?

1.029 Beiträge seit 2010
vor 6 Jahren

Hi,

um's kurz zu machen: Hä?

Wenns html/js ist - dann lässt es sich mit Razor machen.

Oder meinst du etwas anderes?

LG

5.657 Beiträge seit 2006
vor 6 Jahren

Hi camelord,

einen Front-End Theme

meinst du so etwas wie Bootstrap oder Material?

Weeks of programming can save you hours of planning

camelord Themenstarter:in
256 Beiträge seit 2006
vor 6 Jahren

Ein Front-End Theme ist für mich sowas: Inspinia

Den hatte ich sehr gerne mit ASP.NET MVC5 benutzt.
Wenn ich nun ASP.NET Core 2.0 mit Razor und Tag Helper verwende, kann ich diesen Theme nicht mehr verwenden, da nicht unterstützt.

Daher rührt die Frage..

16.806 Beiträge seit 2008
vor 6 Jahren

Ähm... was? 🤔

Razor ist eine Engine um HTML zu erzeugen. Und Dein Theme ist nichts anderes als eine Zusammenstellung von HTML.
Warum sollte das Theme mit Razor nicht funktionieren? Das macht kein Sinn. 😉

286 Beiträge seit 2011
vor 6 Jahren

Wenn ich nun ASP.NET Core 2.0 mit Razor und Tag Helper verwende, kann ich diesen Theme nicht mehr verwenden, da nicht unterstützt.

Ich verwende zufällig genau dieses Theme für ein ASP.NET Core 2.0 Projekt und das funktioniert ziemlich problemlos.

Du solltest beachten, dass die Beispielprojekte von Inspinia kein .netcore 2.0 sondern ein .netcore1.0 Projekt enthält. Eine Portierung des Beispiels auf 2.0 hat noch nicht stattgefunden.

D.h. du kannst es nicht einfach blindcopypasten. Allerdings sind alle für dich relevanten Informationen sowieso im Views-Ordner in den einzelnen .cshtml-Dateien. Und die sind meiner Erinnerung nach pures HTML ohne sonstigen .net-Code (bist auf @Url.Action(..) im href).

Beste grüße
emuuu

2+2=5( (für extrem große Werte von 2)

camelord Themenstarter:in
256 Beiträge seit 2006
vor 6 Jahren

danke @emuuu - dann wäre das der Fallback.
Jetzt wäre es doch super, wenn der von Razor generierte HTML Code dem Theme entsprechen würde..

2.207 Beiträge seit 2011
vor 6 Jahren

Hallo camelord,

Jetzt wäre es doch super, wenn der von Razor generierte HTML Code dem Theme entsprechen würde..

Genau das kannst du ja mit Razor machen 😃 Loops über deine Items etc. so dass am Ende das HTML rauskommt, was du wolltest.

Gruss

Coffeebean

286 Beiträge seit 2011
vor 6 Jahren

wenn der von Razor generierte HTML Code dem Theme entsprechen würde..

Wie Coffeebean schon gesagt hat, musst du nun dein Model entsprechend einbinden.

<div class="full-height-scroll">
		<div class="table-responsive">
		<table class="table table-striped table-hover dataTable table-search">
			<tbody>
				@foreach (var place in Model.Places)
				{
					<tr>
						<td>@place.PlaceName</td>
						<td>@place.Address</td>
						<td>@place.ZipCode</td>
						<td>@place.City</td>
					</tr>
				}
			</tbody>
		</table>
	</div>
</div>

Edit:
Was du unbedingt beachten solltest ist, dass die Inspinia die stylsheets und nötigen scripts in _Layout.cshtml einbindet und diese entsprechend in _ViewStart.cshtml referenziert.

Das hat den Effekt, dass bei return View() zunächst _Layout geladen wird und dein Browser später auch weiß was er mit all den tollen css-Klassen anfangen soll.

2+2=5( (für extrem große Werte von 2)

16.806 Beiträge seit 2008
vor 6 Jahren

Man muss jede Template Sprache in eine Konstrukt einfügen.
Das gilt für Razor genauso wie für Handlebars oder alles andere.

Deswegen sind das auch einfach nur Vorlagen.
Und natürlich erzeugt dann eine Template Sprache genau das, was man definiert. Hellsehen kann auch Razor nicht.

camelord Themenstarter:in
256 Beiträge seit 2006
vor 6 Jahren

Ok verstanden - krieg ich hin.
vielen Dank!