2012-04-10 13 views
1

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

6

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.

Verwandte Themen