Ich lerne eine große Legacy-Anwendung in VB.net mit dem CSLA-Framework geschrieben. Viele der Objekte scheinen von BusinessBase und BusinessListBase zu erben. Wenn ich in Visual Studio zur Definition gehe, sehe ich, dass diese Klassen Teil des CSLA-Namespace sind. Was sind diese Klassen? Welche Rolle spielen sie im CSLA-Rahmen? Wie hängen sie mit anderen CSLA-Konzepten wie Root Object und Child Object zusammen?Was sind die BusinessBase- und BusinessListBase-Klassen im CSLA-Framework?
Antwort
BusinessBase und BusinessListBase sind die abstrakten Basisklassen, die alle bearbeitbaren (d. H. Nicht schreibgeschützten) Geschäftsobjekte erben. Entweder kann ein root-Objekt oder ein untergeordnetes Objekt sein, abhängig vom Business-Objekt-Diagramm. Diese Klassen stellen die CSLA-Framework-Eigenschaften und -Methoden für die Instanzklassen in Ihrer Anwendung bereit, z. B. IsNew, IsDirty und Save(). Die Basisklassen tun auch die grunzste Arbeit der Kommunikation mit dem DataPortal, das Überprüfen von Geschäftsregeln, die von untergeordneten Klassen definiert werden, das Verwalten der Edit/Undo-Ebene des Objekts und dergleichen. Kurz gesagt, ein Business-Objekt erbt eine dieser Klassen, um sich in den Rest des CSLA-Frameworks zu integrieren. Wenn innerhalb eines CSLA-Frameworks ein Geschäftsobjekt eine Aufgabe ausführen oder eine Eigenschaft verfügbar machen muss, geschieht dies an diesen Klassen.
Einige der Dinge, diese Klassen zu tun nicht tun:
- definiert Geschäft Eigenschaften (sie definieren Objekt/Life-Cycle-Management-Eigenschaften, wie IsNew, IsSavable, etc, aber nicht relevante Eigenschaften zu halten Geschäftsdaten)
- initialisieren Business-Immobilien (wieder CSLA-Management-Eigenschaften von den Basisklassen)
- zuordnen Geschäftsregeln (wie zB "Kundenname Wert must have")
- T behandelt werden alk auf die Datenbank
- Markieren Sie das Objekt als serializable
- bestimmen, welche foo.DataPortal_X Methode wird von
DataPortal.Fetch<foo>(args);
Aufruf ausgeführt (das durch die DataPortal getan hat)
BusinessListBase ist für Listenklassen und erbt die .NET Basislistenfunktionalität, also muss ein CSLA-Geschäftsobjekt, das eine Liste ist, nur BusinessListBase erben. Sie können Objekte wie gewünscht aus einer BusinessListBase hinzufügen, löschen usw., da das Objekt eine Liste ist.
ReadOnlyBase und ReadOnlyListBase sind abstrakte Basisklassen, die denselben Zweck wie ihre Geschäftsgegenstücke erfüllen, aber auch sicherstellen, dass die Objekte schreibgeschützt sind. Was sie bieten, ist meist eine Teilmenge der Geschäftsgrundlagen, mit ein paar zusätzlichen Einschränkungen, wie zum Beispiel das Verhindern, dass Eigenschaften Setter implementieren.
Ich schlage vor, einen Blick auf this question für einige sinnvolle Ramp-up-Informationen über CSLA.
- 1. Was sind die "neuen Hashfunktionen" im Kuckuckshashing?
- 2. Was sind die Werte?
- 3. Was ist Boxen und Unboxing und was sind die Kompromisse?
- 4. Was sind die | und^Operatoren verwendet für?
- 5. Was sind die Methoden Html.Validate und Html.ValidateFor?
- 6. Was sind die Integrität und Crossorigin-Attribut?
- 7. Was sind die Konsolenfarbwerte
- 8. Was sind die japanischen Leerzeichen?
- 9. Was sind die tatsächlichen Grenzen einer Bitmap im Flash?
- 10. Was sind die "-P" im Ausgabeformat von Berkeley Aligner?
- 11. Was sind die Schattenseiten der Faltung im Vergleich zur Realraumkonvolution?
- 12. Was sind die ungültigen Zeichen im XFS-Dateisystem?
- 13. Was sind die Plattformen im .NET Platform Standard?
- 14. Was sind die am häufigsten verwendeten Tastenkürzel im Visual Studio?
- 15. Materialisierte Ansicht im Vergleich zu Tabellen: Was sind die Vorteile?
- 16. Was passiert, wenn die Metatags im Dokumentkörper vorhanden sind?
- 17. Was sind die aktivsten Ruby Foren/Blogs im Internet?
- 18. Was sind die Vorteile einer Verantwortungskette im Vergleich zu Klassenlisten?
- 19. Hosting CLR im Vergleich zu ClrCreateManagedInstance - was sind die Vorteile?
- 20. Was sind Lesebarrieren und Schreibbarrieren im synchronisierten Block
- 21. Was sind '!' und '?' in Swift
- 22. Was sind die Tomcat-Komponenten? Was ist Catalina und Kojote?
- 23. Was sind die .ini-Dateien im Ordner /etc/php5/conf.d?
- 24. Was sind die Gruppen von vier Bindestrichen im .NET-Quellcode?
- 25. Was sind die Bootstrapped-Daten im Data Mining?
- 26. Was sind die richtigen Einheiten im Umgang mit CameraPostion, CameraPostion.Builder?
- 27. Was sind Ereignis und UI-Parameter im Dialog
- 28. Was sind Hyperfunktionen im Kontext der Informatik?
- 29. Was sind übersprungene Tests im Visual Studio?
- 30. Was sind 'generierte Quelldateien' im Java-Compilerkontext?