Laden...

ASP.NET - das abstrakte Umdenken

Erstellt von Mary81 vor 6 Jahren Letzter Beitrag vor 6 Jahren 1.450 Views
M
Mary81 Themenstarter:in
87 Beiträge seit 2008
vor 6 Jahren
ASP.NET - das abstrakte Umdenken

Hallo zusammen.

Seit ca. 8 Monaten bin ich von Windows Forms und WPF auf ASP.NET (Arbeitstellenwechsel) umgestiegen.

Seit März entwickle ich in einem Projekt, was recht übersichtlich ist. Aber mir trotzdem Kopfschmerzen bereitet.

Die Schwierigkeiten die ich dabei habe sind die ganzen Technologien die hier eine Rolle mitspielen: JQuery, Javascript, HTML, SCC und Ajax. Das Grundprinzip verstehe ich, aber dass alles unter einen Hut zu packen.... oder es rund zu kriegen.....

Habe mich die Tage nach einem Buch umgeschaut... War auch irgw. nicht das richtige, denn die guten Bücher sind alle auf Englisch und mein Englisch ist nicht besonders gut um so ein schwieriges Thema zu verstehen. Die Bücher auf Deutsch sind von 2014 und Co.

Habt ihr einen Rat/Tip für mich wie ich die Lücken decken kann?

  • Webentwicklung (abstrakte denken) (was ist es genau? was ist der Unterschied Web und WPF/Win Forms?)
  • Ajax (wie und wo) (kann ich komplett mit Ajax programmieren oder muss ich noch etwas beachten)
  • JQuery (wo sind evtl. die Nachteile)
  • In wieweit kann ich das Prinzip des MVVM-Models anwenden?
  • Views mit Bindungselementen (gibt es in der WebEntwicklung wie bei WPF?)
  • In wieweit kann ich die Logik von der View trennen und geht es überhaupt?

Das sind so die Hauptfragen, die mich am meisten beschäftigen.

Vielen Dank

16.835 Beiträge seit 2008
vor 6 Jahren

Mindestens folgendes musst Du immer verinnerlichen:

Webanwendungen bestehen immer aus zwei Teilen: dem Server und dem Client.
Der Server weiß nach einem Response nie, ob der Client sich jemals wieder mit einem neuen Request meldet. Nie.
Das liegt daran, dass HTTP ein verbindlungsloses Protokoll ist.

Diese Grundlage ist es schon, dass Du vollkommen andere Herangehensweisen und Pattern verwenden musst.
Du kannst zB. nie lange etwas Cachen, weil Du nicht weißt, ob der User sich nochmal die nächste Zeit blicken lässt.
Ebenso musst Du damit rechnen, dass der Benutzer mehrere Fenster zeitgleich offen haben kann, was also eine vollständige Isolation und Abstraktion Deiner Business Logik pro User erfordert.

MVVM im Web gibt es in der Form nicht zwischen Server und Client, sondern nur im Client selbst. zB mit Hilfe von Angular, Vue oder React.
Der Client kommuniziert mit dem Server durchaus über Modelle, zB. SubmitModels damit der Server Daten empfängt, und ViewModels, die der Server verwendet, um Views zu generieren (oder eben API Modelle für API Schnittstellen).
ASP.NET MVC - Arbeiten mit View- und SubmitModels

Ajax programmiert man nicht, sondern Ajax ist ein Oberbegriff von mehreren Technologien (Asynchronous JavaScript and XML).
Nur, dass man heute eigentlich kein XML verwendet, sondern eher Json, da es effizienter ist (weniger Overhead-Zeichen).

Und ja, Logik kann man natürlich vollständig trennen; aber hier kann man pauschal keine Antwort geben.
Das ist i.d.R. Teil einer individuellen Software Architektur.

M
Mary81 Themenstarter:in
87 Beiträge seit 2008
vor 6 Jahren

Das mit der Isolation der BL pro User kommt mir sehr schlüssig vor, hast du einen schlauen link vielleicht für mich?

Das Projekt habe ich so ähnlich wie im ... ASP.NET MVC - Arbeiten mit View- und SubmitModels aufgebaut.

Aber jedes mal wenn ich versuche (vielleicht ist es auch falsch!?) Javascript/JQuery/Ajax vom HTML zu trennen, z.B. in einer xy.js zu verlagern, dann funktionieren bestimmte Sachen nicht mehr auf der Seite wie vorher. Und ich weiß auch nicht wieso 😃

16.835 Beiträge seit 2008
vor 6 Jahren

Ich weiß jetzt nicht, welchen Link Du erwartest.
Das ist alles individuelle Software Architektur.

Wenn etwas in JavaScript nicht funktioniert, dann siehst Du das gut in den Entwicklertools von Chrome (F12).

Wie gesagt: der Server ist eine Anwendung (ASP.NET MVC), und der Client (JavaScript/CSS).
Wenn Du es nicht trennst wirst Du in relativ naher Zukunft keinen Spaß mehr haben.

5.658 Beiträge seit 2006
vor 6 Jahren

Hi Mary81,

Habt ihr einen Rat/Tip für mich wie ich die Lücken decken kann?

Lernen!

Ein bißchen erschreckend finde ich ja, daß du erst nach 8 Monaten anfängst, dich in die Webentwicklung einzulesen. In der Zeit hättest du eigentlich Englisch lernen UND dich in die Materie einarbeiten können...

Auch die deutschen Bücher von 2014 zu lesen, wäre keine Zeitverschwendung. An den von dir genannten Technologien hat sich seitdem nicht viel geändert. Andererseits gibt es auch viele neue Entwicklungen in dem Bereich. Aber wenn ich deine Fragen so lese, dann mußt du tatsächlich bei den absoluten Grundlagen anfangen und erstmal ein bißchen Erfahrung sammeln.

Es muß ja auch nicht unbedingt ein Buch sein, im Internet gibt es unzählige Artikel und Blogs, die sich mit dem Thema beschäftigen. Auch bei YouTube und Microsoft gibt es gute Video-Tutorials, z.T. sogar auf Deutsch.

Weeks of programming can save you hours of planning

2.207 Beiträge seit 2011
vor 6 Jahren

Hallo Mary81,

Aber jedes mal wenn ich versuche (vielleicht ist es auch falsch!?) Javascript/JQuery/Ajax vom HTML zu trennen, z.B. in einer xy.js zu verlagern, dann funktionieren bestimmte Sachen nicht mehr auf der Seite wie vorher. Und ich weiß auch nicht wieso 😃

Abt hat es ja schon gesagt. Server und Client sind getrennte Bereiche. Daher gibt es ja Frontend- und Backend-Entwickler 😃

Wenn du JS-Dateien von A nach B verschiebst, schau dir Scopes an im Javascript, schau dir die komplette Javascript/Ecmascript-Welt (Besser Typescript) an. Dann verstehst du schnell, wnan wo Daten herkommen. Es gibt unzählige Blogs, Bücher, Videos wie du Frontend- und Backend entwickelst. Dann wird auch schnell die Rolle der einzelnen Technologien klar.

Gruss

Coffeebean