- There are already some tools around that deal with OO/Relational
Mapping. What makes the difference?
|
- Many of those tools generate business classes out of a given
DB scheme. Such classes are just wrappers of tables. They miss
inheritance and polymorphism as these features cannot be expressed
in a relational model.
|
- > Persistor.NET®
uses sophisticated algorithms to generate the DB scheme from
the Meta Data of the stored classes. There is full support of
inheritance, polymorphism and interfaces.
|
- Any of those tools need some mapping information. Often there
is some (visual) editor that supports the writing of mapping
information.
|
- > Persistor.NET®
does all mapping internally. No additional information has to
be provided.
|
- Most of those tools assume the business classes to be derived
from some "persistence" type or to implement some
"persistence" interface or be tagged with some “persistence”
attribute. This impacts the business classes heavily and reduces
reuse of these classes. This approach also reduces persistence
to classes written by you.
|
- > Persistor.NET®
extends the Serialization mechanism of the .NET Framework. So
business classes are completely unaware of persistence and .NET
Framework classes or classes provided by 3rd party assemblies
can be used without a glitch.
|
- Most of those tools use their own query language that may
be based on some standards. But any of them comes with severe
drawbacks: the criteria are defined as strings that will be
parsed at runtime. So there is no syntax check at compile time.
Even worse: the query has to be stated by means of database
or class internals like table names, column names or names of
private fields.
|
- > Persistor.NET®
provides Native Queries: the queries are stated in the programming
language you are using. So the query code is 100% typesafe,
100% compile-time checked and 100% refactorable. It is even
possible to call methods from within queries.
|