Wie trocken zu bleiben, wenn Logik eine C # und Javascript Implementierung benötigt?

StackOverflow https://stackoverflow.com/questions/586818

  •  06-09-2019
  •  | 
  •  

Frage

Ich verwende derzeit das ASP.NT MVC RC1 eine grundlegende Zeiterfassungsanwendung zu implementieren. Ich mag die DRY Prinzipien folgen, aber es schwierig, in einem bestimmten Fall zu finden:

Einer meiner Ansichten, eine Teilansicht hat tatsächlich eine Reihe von Textfeldern, die die Anzahl von Stunden auf eine bestimmte Aufgabe ausgegeben darstellen, eine Textbox pro Tag der Woche. Wenn ich die Seite zunächst geladen werden, möchte ich eine Textbox in der Ansicht, die die Summe aller diesen Stunden angezeigt werden soll. Darüber hinaus möchte ich, dass insgesamt zu aktualisieren, da ich die Werte in den Textfeldern ändern. Das Update auf die Textfelder keinen vollständigen Postbacks verursachen, nur einen AJAX-Postbacks, der nichts tun mit den Ergebnissen (die Postback aktualisiert den Wert auf dem DB aber die Rückkehr Action ist ein Emptyresult, da es nichts, was ich auf die aktualisieren müssen UI).

Zur Zeit habe ich die Steuerung eine Ansicht erstellen, die für diese Ansicht mit dem „total“ aufgefüllt wird, so die Logik, die alle Werte hinzufügt, ist in der C # Controller. Auf der UI-Seite habe ich Javascript, das die Gesamt auf der UI-Ebene aktualisiert. Aber das ist nicht gut, denn wenn ich die Logik hinter ändern, wie das Gesamt berechnet wird, ich habe es an zwei Stellen ändern! Ahh! Nicht trocken!

Also, wie kann ich das tun? Die einzige Antwort, die so weit zu mir kommt, ist den JavaScript-Code verschrotten, die die Gesamt auf der Benutzeroberfläche berechnet und hat stattdessen das AJAX Postbacks für diese Ansicht des neuen „total“ zurückzukehren.

Gibt es andere Ansätze?

War es hilfreich?

Lösung

, um die Logik zu haben, die Zeit in C # für insgesamt und Javascript ist im engeren Sinne nicht trocken, das ist wahr. Man könnte Haare über die Tatsache, gespalten, dass sie zwei verschiedene Sprachen in zwei getrennten Umgebungen arbeiten, aber am Ende des Tages, wenn Sie ein Sie beide ändern sich ändern müssen.

Ich denke, es ist ein Kompromiss zwischen Form und Funktion. Wie wichtig ist es das Javascript zu haben? Wenn der AJAX-Aufruf einfach zu langsam ist (eine reale Möglichkeit), dann kann dies die Zeit sein, zu erkennen, dass das DRY-Prinzip ein Leitprinzip ist, kein Gesetz.

Andere Tipps

Sie könnten versuchen, Nikhil Kothari Skript # -Projekt . Es ist ein Cross-Compiler, und übersetzt von C # kompiliert Browser unabhängige Javascript, die Sie Logik lässt teilen. Seine von vielen Gruppen innerhalb von Microsoft verwendet für genau diesen Zweck.

Weitere, von der Website:

  

Script # bringt die Produktivität zu Ajax und JavaScript-Entwicklung.   Script # ist ein kostenloses Tool, mit dem Entwickler C # Quelle an Autor   Code und es anschließend in reguläre Skript kompilieren, die über Werke   alle modernen Browser, und so nutzen die Produktivität dabei und   Macht der bestehenden .NET-Tools sowie der Visual Studio IDE. Skript#   ermöglicht Ihnen, mit einer Entwicklungsmethodik und Ansatz, bringt   Software-Engineering, langfristige Wartbarkeit und skalierbar   Entwicklungsansätze für Ihre Ajax-Anwendungen, Komponenten und   Frameworks.

     

Script # wird weitgehend von den Entwicklern in Microsoft Gebäuden verwendet   Ajax Erfahrungen in Windows Live, Büro zu nennen nur ein paar, wie   auch durch einen externen Entwickler und Unternehmen, darunter Facebook. Wenn   Sie bauen Ajax-basierte RIA-Anwendungen, Sie schulden es sich selbst zu   versuchen heute Script # und sehen, ob es Ihre eigene Ajax verbessern können   Entwicklung!

Wenn Sie Code auf beiden ausführen möchten, den Server und der Client können Sie einen Ausdruck Baum zu JavaScript-Compiler / schreiben.

Auf dem Serverside bewerten Sie den Ausdruck und den gleichen Ausdruck zu JavaScript auf das Client übersetzt senden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top