Introducing Telerik® Data Access
Telerik Data Access is a tool that supports development of data-oriented software applications. Telerik Data Access tool is targeted at solving the object-relational impedance mismatch.
The object-relational impedance mismatch is a set of conceptual and technical difficulties which are often encountered when a relational database management system is being used by a program written in an object-oriented programming language. Relational and object-oriented models are so different that additional code and functionality is required to make them work together efficiently.
Using the Telerik Data Access tool means that architects and developers of data-oriented applications will have the ability to concentrate on the logic of the business problems they are solving, instead of solving problems with the data engines used to store and retrieve the data.
The handling of the data persistence is a huge task that may include multiple storage systems, each with its own protocols. Even applications that work with a single data storage must balance the requirements of the storage system against the requirements of writing efficient and maintainable code. These are exactly the problems that Telerik Data Access tool handles efficiently. It enables developers to work with data in the form of domain-specific objects and graphs of objects ( example: Orders and Order Details) without having to concern themselves with the underlying database tables and columns where the actual data is stored. This increases the level of abstraction at which developers can work when dealing with data and reduces the code that is required to create and maintain data-oriented applications.
Data-oriented applications development using Telerik Data Access
Nearly every application deals with data that needs to live longer than the actual execution of the program. This is also true for .NET applications. There are many ways to store this application data, many of which involve parsing the data to and from disk files. Although this is an easy way to make data persistent, realistically it can only be used for simple object graphs. Furthermore, essential features such as transactions, data protection and query capabilities are missing.
Telerik Data Access is a powerful object-relational mapper providing transparent persistence that fully conforms to the .NET standard. With Telerik Data Access, you can easily store your .NET application objects directly in the underlying database store. Telerik Data Access provides developers with a smart data access layer, which provides persistence services for effectively building well designed object-oriented applications.
Benefits from using Telerik Data Access
- Applications can work with the persisted data using object-oriented development practices, including types with inheritance, complex members, and relationships.
- Applications are freed from hard-coded data access layers and dependencies on a particular data store (database) or storage schema.
- Mappings between the data model and the storage-specific schema can change with minimal changes to user application code.
- Developers can work with data persistence object model that can be mapped to various data stores (different database management systems).
- The data persistence object model can be mapped directly to the data store (forward mapping), or can be extracted from the data source (reverse mapping).
- Multiple data persistence models can be mapped to a single storage schema. Also single domain model could be mapped to multiple data stores/schemes.
- Language-integrated query (LINQ) support provides compile-time syntax validation for queries against a data persistence model.
- All persistence classes are still normal CLR objects, and as such can be easily tested by state of the art unit tests.
- Advanced caching features are available out of the box, providing optimizations like: Connection Pool settings, Compiled Query Cache / Prepared Statement Cache, First Level Cache, Distributed Second Level Cache.
- Multi-tier application scenarios are supported through the ObjectContainer API.
- No reflection is used for data persistence and changes tracking. The product can be used even in Medium Trust environments. All the needed persistence code is post-build generated through byte code enhancement.
Transparent Persistence
Transparent refers to the way you work with the database in Telerik Data Access. In nearly all cases, objects are read from or written to the database without any explicit direction from you - transparently.
Transparent Persistence is therefore, the ability to directly manipulate data stored in a relational database using an object-oriented programming language, i.e., no SQL statements are needed to retrieve, insert, or update objects in the database and the tasks associated with conversion between your object model and your table model are done automatically. Telerik Data Access is intended to be used with all managed languages, such as Visual Basic.NET, C#, J# etc. and it has very few restrictions on the data model used.
While retrieving an object graph from the database only the objects that are really accessed are retrieved and objects that have not been accessed are not present in memory. As soon as an object is accessed it is retrieved from the database, and therefore, the retrieval is performed transparently from the users point of view. This is referred to as "lazy loading" (also known as delayed loading).
All database operations on persistent instances in the database are always performed in the context of a transaction. Database operations include addition, deletion or modification of objects in the database as well as reading objects from the database.
All this is done without the need of a persistent base class or reflection, since Telerik Data Access provide post-compilation bytecode enhancer technology. The enhancer, which is normally invisibly integrated into the Visual Studio IDE, 'injects' the necessary code to your assemblies.
If you have a lot of questions already, check out the FAQ section or take a look at the Getting Started folder.