Telerik

OpenAccess Features

Skip Navigation LinksProducts / Telerik OpenAccess ORM / Features

ORM and Beyond

Telerik OpenAccess is an Enterprise-grade .Net ORM that does the data access plumbing in desktop and web applications. Supporting both forward (model-first) and reverse (schema-first) mapping, the tool offers transparent persistence for your DAL and business objects. OpenAccess ORM provides tight Visual Studio integration and allows you to seamlessly create database independent code. Take full control of the generated code by customizing the tool and leveraging its advanced features for code optimization and caching.


Features

All feature list

Design Time

  1. Schema-First Approach

    Schema First Approach (Reverse Mapping) allows you to start with your legacy database. The reverse mapping experience begins the minute you connect your new Visual Studio project to the legacy database using the Reverse Mapping wizard. OpenAccess recognizes the data model, data types and additional information like keys and creates the matching object model. Then you can start designing and developing your new .NET application.

    win viewerenlarge screenshot

    See demo

  2. Roundtrip Mapping

    Roundtrip Mapping gives you the ability to dynamically change the direction: any change in the object model will change optionally your schema and any change in the database can optionally change your object model.

  1. Model-First Approach

    Model First Approach (Forward Mapping) allows you to start working from scratch with your object model and just creates your new relational database with an optimized data schema. You don’t need to think in relations anymore, but you still can. OpenAccess optionally allows you to define almost any kind of schema and you can influence the given names of tables or columns.

    win viewerenlarge screenshot

    See demo

  2. Dependent Instances

    You can attribute a relationship so that the dependent instance is automatically deleted when no reference to it exists any longer.

  1. Powerful Wizards

    The OpenAccess ORM Visual Studio Integration is designed to provide maximum support to developers for creating and maintaining their OpenAccess ORM applications. The OpenAccess ORM Visual Studio Integration provides a transparent persistence API for your database applications.

    win viewerenlarge screenshot

    The various wizards provided by OpenAccess ORM Visual Studio Integration are as follows:

    • Enable Project Wizard
    • Expert Enable Wizard
    • Backend Configuration
    • Check Settings
    • FetchPlan Browser
    • OQL Query Browser
    • Metadata Properties
    • ItemType Wizard
    • Data Form Wizard
    • IObjectContext Provider
    • Reverse Engineering Wizard

    Read more

All feature list

Dynamic Data Access

  1. Query Languages

    With OpenAccess you got no limits, you can just use the best of all words, even combined.

    LINQ

    OpenAccess offers extensive LINQ support, which has been validated with the Microsoft 101 LINQ to SQL Samples. The major advantage of LINQ is the compile-time check of your queries – meaning no surprises later during runtime.

    See online demo or download the OpenAccess LINQ 101 examples demo application

    OQL

    OpenAccess additionally supports OQL, also an object-oriented query languages defined a long time ago by the Object Database Management Group. At first, it was there before the invention of LINQ and but now you can use it in such cases where you need to build the query at runtime dynamically.

    See demo

  1. Query Languages (cont.)

    SQL

    If you got any special to do or want to re-use some existing SQL statements, you can do it. Just use SQL and bypass OpenAccess. To execute a query life on the database, you don’t need to write a line of code: Use the OQL browser from within your Visual Studio.

    win viewerenlarge screenshot

  2. Runtime schema changes

    With Telerik OpenAccess ORM you can make runtime changes to an applications’ object model or database schema without recompilation of the application.
  1. Schema Change API

    Schema Change API allows you to change your database schema during runtime. While Artificial Fields use also the Schema Change API to keep object model and database schema in synch, the Schema Change API can be used directly by an application to only change the schema, e.g. to support database migration from older versions.
  2. Artificial Fields

    Artificial fields are fields that extend the structure of a persistent class by adding new persistent fields during runtime. These new fields are described in XML configuration entries. They are accessible via the Generic Metadata Access which is based on the System.ComponentModel API and adds OpenAccess specific functionality.

    See demo

  3. Artificial Types

    Artificial types are types that are not present in the model itself but are defined during runtime. These new persistent types are described in XML configuration entries.
All feature list

Performance and Caching

  1. Fetch Plans

    OpenAccess ORM provides for declarative coupling of Object Model and Activities through Fetch Plans.

    • FetchPlans describe object networks for performance optimizations.
    • With the up-front declaration of a FetchPlan, OpenAccess is able to know in advance which object graph will be used by your code. This greatly improves your application performance in an easy and declarative manner.
    • This feature combines very well with the data fetches done by your application and avoids a common performance pitfall that is known as the ‘N+1 query problem’. Instead of querying for 1 order and then performing the n order details, a FetchPlan can be used to issue one optimal query fetching both order and its details.
    • The FetchPlan is built up during runtime by a simple yet powerful API. The basic intention is to have a FetchPlan per use case. There is always a current FetchPlan, and this FetchPlan is used by queries and object navigation too.
    • Philosophically, FetchPlans are the countermeasure to lazy-loading as they provide information for eager-loading.

    win viewerenlarge screenshot

    See demo

  1. Level 2 Distributed Cache

    • OpenAccess provides a cache which can be shared by many database access instances (object scopes) in process. This is useful in situations where a lot of data is shared and commonly asked for. A typical example is a web server where much of the data is stable, sharable and commonly used.
    • Entries are evicted from the cache, when objects change. The cache is populated upon read access, configurable in its sizes and stored entry types and uses LRU overflow handling.
    • Entries in the cache are object states (representing the data of a single object) and whole query results. That means, the result of recurring queries can be stored in the cache and such queries will not hit the database server unless the cache entry is evicted. Eviction is automatic but can also be triggered manually.
    • Not only is such a cache shared within one process, but many of those caches can easily be coupled over the network to provide a distributed synchronized cache. The key benefit is that the Level 2 Cache can be used even in such scenarios where multiple application or web servers are put together into a farm.
    • The network access for such a distributed shared cache is optimized by using a asynchronous reliable multicast protocol. This is perfect for a cache cluster of unknown size.
    win viewerenlarge screenshot

    See demo

  1. Level 2 Distributed Cache (contd.)

    The cache can not only be shared within one process, but many instances of it can easily be coupled over the network to provide a distributed synchronized cache. The key benefit is that the Level 2 Cache can be used even in such scenarios where multiple application or web servers are put together into a farm.

    The network access for such a distributed shared cache is optimized by using a asynchronous reliable multicast protocol. This is perfect for a cache cluster of unknown size.

  2. Generic data access

    Telerik OpenAccess ORM provides developers with a unique way to access their data without using reflection. The tool employs a technique called Enhancement, which augments the code that the compiler generates, giving the application the needed management, lazy loading and change tracking capabilities. This approach eliminates the need to use reflection, which guarantees speedy access to your data. The OpenAccess API has to be used to access the artificial fields because they are not showing up at the classes directly.

    More info

    See demo

All feature list

Supported Database Features

  1. Stored Procedures

    OpenAccess allows developers to create new or reuse existing Stored Procedures, and to follow the widely adopted pattern of db logic encapsulation inside the database. Under higher security requirements the stored procedures can be used for all insert, update and delete operations to inject additional checks in the database server.
    With the help of the Reverse Mapping wizard users can specify Stored Procedures for each table that is mapped to a class, collection or map. You can also use the wizard to read the Stored Procedures in the database and generate a static method to execute them.

    win viewerenlarge screenshot

    See demo

  1. Concurency Mechanisms

    OpenAccess supports both optimistic and pessimistic concurrency control. Both approaches can be mixed during runtime. Additionally it is possible to automatically obtain a pessimistic lock upon the first modifying access in an otherwise optimistic transaction.
    When using optimistic concurrency control (the default), conflicts can be detected by designated version fields, the old content of the modified fields or all fields. And you can also turn conflict detection off.

    win viewerenlarge screenshot

  1. Views

    With Telerik OpenAccess ORM you can reverse map database views to classes the same way you do with regular tables. And that is not all, the data exposed by the views can be even modified and stored back to the database.

    win viewerenlarge screenshot

    See demo

All feature list

Application Scenarios Support

  1. Disconnected API

    • OpenAccess unique ObjectContainer API concept has been the first ORM feature supporting disconnected data scenarios. Whether you’re thinking of mobile devices, web applications or replications - you need disconnected data management you can count on. To work with portions of your data in a disconnected mode, just take them with you. OpenAccess keeps them transactionally save and uses little network bandwidth by only exchanging the minimum change set. So it tracks which objects have been changed or are new. See demo
    • The offline ObjectContainer API shares a common interface with the online ObjectScope API, and parts of the applications can be implemented independent of their connectivity.
    • The ObjectContainer serves as a bag which can hold object network, provides serialization, change tracking and the ability to apply changes in a round-trip fashion to the database.

    win viewerenlarge screenshot

    See demo

  1. Support for Medium Trust Environments

    You can run OpenAccess enabled applications under medium-trust security levels. A common example is an ASP.NET application that runs in ahosted environment. Typically, these types of applications require only enough permissions to run under medium trust. Depending on the Telerik OpenAccess ORM features that your application uses, you may need to grant additional permissions beyond those granted by a default partial-trust policy.
  2. Automatic Change Tracking

    Modifications to values of the persistent fields are automatically tracked. You don’t need to notify the OpenAccess runtime system that an instance is to be written. When modifications are detected, only the necessary columns are included in the resulting SQL statements. All referenced persistent objects will be handled as well, and only complete object graphs are stored – no instance is left behind.

  1. Lazy Loading

    OpenAccess uses lazy loading where your application objects are filled with the data upon access. Not all fields will be filled immediately, so collection or picture fields can be deferred in their population. This has the advantage of saving memory and network bandwidth while preserving easy access – when the field’s content is needed, the data is fetched transparently from the database server. Of course, you can decide which fields are to be fetched when, and OpenAccess provides sensible defaults.

All feature list

Integration

  1. Telerik Reporting

    OpenAccess supports seamless integration with Telerik Reporting. You just have to bind the OpenAccess data through an object data source and the Data Explorer in the Reporting designer, Telerik OpenAccess will take care of the rest.
  2. Asp.Net and MVC

    Telerik OpenAccess ORM can be used to create the data access plumbing of your MVC applications. We have created a sample online forum demo that shows the integration OpenAccess and RadControls for ASP.NET with ASP.NET MVC.
  1. SQL Azure

    Telerik OpenAccess offers full support for Microsoft’s cloud-based database SQL Azure. You can perform model-first and/or schema first mapping with the same ease you do with local databases like SQL Server. Read more.
  2. Silverlight and Ado.Net Data Services

    Telerik OpenAccess ORM supports LINQ and IUpdateable and it can be used with ADO.NET Data Services. This means that you will be able to leverage the power of OpenAccess in you Silverlight applications. Read how you to do it.
  1. RIA Services

    You can use Telerik OpenAccess to map to your database tables and then expose those entities as part of .Net RIA Services. We have also created a WCF Wizard tool that will automatically create the C# "plumbing" code and the necessary project files for using OpenAccess entities with the service. 
All feature list

Database Support

  • Microsoft SQL Server 2005/2008 Express

    Microsoft SQL Server
    2005/2008 Express
  • Oracle Server 9.2, 10.x, 11.x

    Oracle Server
    9.2, 10.x, 11.x
  • sql azure

    Microsoft SQL Azure
  • Advantage Database Server 8.1

    Advantage Database Server 8.1
  • SQL Anywhere Server 10.x

    SQL Anywhere Server 10.x
  • Microsoft SQL Server 2000/2005/2008

    Microsoft SQL Server
    2000/2005/2008 and Compact 3.5
  • Oracle Database 10g Express Edition

    Oracle Database
    10g Express Edition
  • Firebird Server 2.x

    Firebird Server 2.x
  • MySQL 5.x

    MySQL 5.x

See supported databases by OpenAccess ORM and OpenAccess ORM Express

Powered by Sitefinity ASP.NET CMS

Contact Us | Site Feedback | Terms of Use | Privacy Policy
Copyright © 2002-2010 Telerik. All rights reserved.