<!-- Do not use the "dated prod" template directly; the above
line is generated by "subst:prod|reason" -->
DataObjects.Net
is
.Net library that dramatically
simplifies development of
data and
business tiers
of the
database application. It
provides:<br />
<blockquote>* Methodology that
standardizes and simplifies development of
persistent classes and
services operating with them providing very clear separation of
your
business and
data tiers
from other parts of an application. Essentially DataObjects.Net
requires you to build a hierarchy of your persistent and business
objects over two base classes: <code>DataObject</code>
and <code>DataService</code>. It provides more then 20
attributes
controlling almost any persistence or behavior-related aspect.
Don't worry about this number - you can know nearly 5 of them to
start using
DataObjects.Net.
</blockquote>
<blockquote>*
Persistence framework handling all
object persistence related tasks transparently. Moreover, this
framework allows to almost forget that the underlying
database exists - it handles even
database schema updates. This framework fully supports
inheritance, persistent
interfaces, relations and
collections,
object queries,
full-text
indexing and
search, multilingual properties and a lot
of other features. Use of this framework makes most part of your
data tier automatically compatible with
Microsoft SQL Server 2005 \
Microsoft SQL Server 2000,
MDSE,
Microsoft Access,
Oracle and
Firebird (formerly -
Interbase) without any additional
code.
</blockquote>
<blockquote>* Transactional
services allowing to almost forget that your business and data
objects operate in the concurrent
transactional environment.
Transactional services
intercept calls of your
business tier methods and wraps them into
transactions (outermost or
nested) providing that if
exception or
[[Deadlock|deadlock] occurs,
no
data will be changed. These services are capable of
re-processing method call on deadlock exceptions (and similar).
This behavior is provided completely transparently for developers,
but nevertheless it's highly
configurable.
</blockquote>
<blockquote>* Security
system supporting per-instance
access control lists , permissions
(custom permissions), security principals (users and roles) and
permission inheritance. Its primary goal is to make usage of
business objects completely safe, even when these objects are
publicly available - via
.Net Remoting, for
example.
</blockquote>
<blockquote>* All is initially
remotable -
any persistent object or business service can be marshaled to
another application domain via
.Net Remoting (as well as all other
DataObjects.Net-related objects, e.g.
<code>Query</code>). This means that you can access
your data and business tier from a completely different network or
across the
Internet
with almost no additional code. DataObjects.Net supports two
marshaling scenarios: access-by-reference for regular
<code>DataObjects<code> and by-value marshaling for
so-called offline entities (
data transfer
objects).
</blockquote>
DataObjects.NET allows you to
focus on code of
business tier and application data model - it
completely solves a set of problems that could take up to 80% of
development time, and can be used in virtually any
.Net application
that accesses a
relational database.