Danke Dir.
Ich will über meinen Experten Klassen erstellen, die dann ein Rundum Sorglos Paket bieten
Man soll dann in den Metadaten angeben, welche Eigenschaften man indexieren will usw.
Wird dann eine Personenliste nach Vornamen sortiert, verwendet das Framework den automatisch erstellten Comparer.
Als Ziel für die Daten kann man Objektlisten (mit automatischer Datenserialisierung) wählen oder einen ORM (mit bestimmter Datenbank).
In der Businesslogik rufe ich dann Objekte oder Listen ab und muss mich nicht kümmern, wie die verwaltet werden. Das Ziel kann ich auch nachträglich auf Knopfdruck umstellen.
Grundsätzlich funktioniert das schon alles sehr gut. Nur die Sortierung und Filterung von Daten ist noch nicht gelöst.
Hier muss ich intern zwei Wege gehen:
- Suchen und sortieren in reinen Objektlisten und ID-Listen
- Suchen in einer Datenbank mittels
SQL
Die Anwendung soll von dieser Differenzierung nichts bemerken.
Da die Units im allgemeinen automatisch generiert werden kann ich auch Funktionen wie:
function TManager.GetPersonListWhereFirstNameOrderByLastName(aFirstname): TPersonList;
generieren. Es müsste dazu in den Metadaten nur definiert werden, nach was genau gesucht werden soll.
Den Vorteil gegenüber LINQ u.ä. Lösungen ist, dass man die benötigten Funktionen gut optimieren kann (incl. Comparer z.B.).
Schreibarbeit fällt nicht an, da der Quelltext automatisch erzeugt wird.
Ob Objektlisten oder ein ORM benutzt wird, wird dann innerhalb der Funktionen unterschieden.
Ich muss darauf mal noch etwas herum denken...