Um eine Architektur für eine Unternehmensanwendung zu entwerfen, die viele Eingabe-Validierungen sowohl auf Server als auch auf Client hat, ist die beste Vorgehensweise? Was halten Sie davon, dieselben JavaScript-Funktionen mit bekannten Parametern zu haben und diese gleichzeitig auf Server und Client auszuführen? Ich habe viele Validierungen müssen in Client und Server tun, und ich möchte Code-Redundanz zu verhindern, die Verwendung von benutzerdefinierten Validierung ist nicht der Punkt, der Punkt ist die Suche nach einem Weg zur Vermeidung von doppelten Code in Client und Server. Ich möchte eine richtige Architektur nicht eine technologische Idee.Vermeiden von serverseitiger und clientseitiger Validierungscode-Duplizierung in Unternehmens-Webanwendungen
Antwort
Die Geschäftslogik einer Unternehmensanwendung sollte in der Business-Schicht gekapselt sein.
Die Frage ist: sind Eingabe Validierung Geschäftslogik ??
Aus meiner Sicht gewährleisten einige Eingabe-Validierung Datenkonsistenz und sollte Geschäftslogik sein. Es ist eine architektonische Analyse.
Eine weitere Überlegung ist der Client. Wie viele Kunden haben Sie? Web, Android, iOS ... Sie müssen die Client-Validierung für jeden implementieren. Die Business-Schicht bleibt jedoch gleich.
Meine Antwort ist: Sie sind der Architekt, berücksichtigen Sie Anwendungsbeschränkungen und die oben genannten Überlegungen und finden Sie ein Kriterium für die Bereitstellung der Validierung in Server oder Client.
Eigentlich jetzt, ich arbeite nodejs für diese Lösung zu gleichen JS-Code in Server-Seite und Client-Seite, ich werde das Ergebnis melden und ich weiß für jede andere Idee zu schätzen. Update: Ich finde Edgejs für das Ausführen von js in C#, ich arbeite daran und ich werde aktualisieren müssen danach posten :).
- 1. Authentifizierung zwischen clientseitiger JavaScript-Anwendung und serverseitiger HTTP-API?
- 2. RegisterOnSubmitStatement nach clientseitiger Validierung
- 3. Abfragbarer clientseitiger Speicher
- 4. Großschreibung von Einträgen mit ASP.NET clientseitiger Validierung
- 5. Serverseitiger AJAX-Verzeichnis-Browser
- 6. Node.js serverseitiger Code-Schutz
- 7. JSF Progressbar - Serverseitiger Prozess
- 8. Angular2 serverseitiger Listener zum Hochladen von Dateien
- 9. Webapplikationen mit clientseitiger XML-Datenbank
- 10. Feuerereignis nach clientseitiger Skriptvalidierung in asp.net?
- 11. Socket.io - Manuelle Wiederverbindung nach clientseitiger Trennung
- 12. Doppeltes Klicken mit serverseitiger Validierung verhindern
- 13. AEM: Anzeige eines Meldungsfelds nach serverseitiger Validierung
- 14. Parameterformat beim Verfolgen von Google Analytics-Ereignissen mit serverseitiger Anforderungsautomatisierung
- 15. Serverseitiger Browser, der JavaScript ausführen kann
- 16. Vermeiden XDMP-EXPNTREECACHEFULL und Laden von Dokument
- 17. Vermeiden von Schleifen in Scala
- 18. Vermeiden von Ausführungsverzögerungen in Aufgabenwarteschlangen
- 19. Upgrade von MVC1/xVal-Projekt auf MVC2 und Kompatibilitäten mit clientseitiger Validierung
- 20. Anzeigen eines Javascript-Bestätigungsdialogs in Rails mit serverseitiger Validierungslogik
- 21. Vermeiden von Benutzereingaben
- 22. Wie manipuliere ich MP3-Tags nur mit clientseitiger Codierung?
- 23. Vermeiden von TreeMap ConcurrentModificationException?
- 24. die Groß- und Kleinschreibung in Python Vermeiden
- 25. Vermeiden isPresent() und get() in der Steuerlogik
- 26. CORS - Serverseitiger Cookie wird nicht im Chrome-Browser gespeichert
- 27. "transparenter" serverseitiger Proxy für Anforderungen an ASP.NET-Web-API
- 28. Vermeiden von Socket-Timeouts in SQLAlchemy
- 29. Wie Text und Text vermeiden
- 30. MVC.NET Lesen von Benutzerinformationen in ein Formular mit fehlgeschlagener serverseitiger Autorisierung
Vielen Dank für Ihre Zeit, aber ich denke, dass Ihre Fragen vor beantwortet werden. Mein Client ist nur Web-Anwendung und meine Validierungen sind übliche Geschäftslogik zwischen UI-Schicht (Web) und Server. Aber der Punkt ist die Vermeidung von doppelten Code in UI und Server, und meine Idee ist die Ausführung der Validierung JS im Server eine Client-Seite gleichzeitig. –