Upload
peterbahaa
View
3.233
Download
6
Embed Size (px)
DESCRIPTION
A presentation for a Introduction about Telerik OpenAccess ORM
Citation preview
1
Introduction to Telerik OpenAccess ORM
By Peter Bahaa
2
Bio!
• Technical Team Lead of DashSoft• MSDN HDI Presenter• Technical Consultant for BeBrand.tv• Technical Consultant for LaserMarvels• Community Leader of dotnetwork.org• Past
– Technical Team Lead of BeBrand.tv
3
Agenda
• What is ORM?• Why using ORM?• What is Telerik OpenAccess ORM?• Features!• CRUD Demo• DSW Demo• ORM Battle Benchmarking
4
Agenda
• What is ORM?• Why using ORM?• What is Telerik OpenAccess ORM?• Features!• CRUD Demo• DSW Demo• ORM Battle Benchmarking
5
What is ORM?
• Object-relational mapping (ORM, O/RM, and O/R mapping)
• "virtual object database" that can be used from within the programming language.
6
Agenda
• What is ORM?• Why using ORM?• What is Telerik OpenAccess ORM?• Features!• CRUD Demo• DSW Demo• ORM Battle Benchmarking
7
Why Using ORM?
• Facilitates implementing the Domain Model pattern.• Huge reduction in code.• Changes to the object model are made in one place.• Rich query capability.• Navigation.• Data loads are completely configurable.• Concurrency support.• Cache management.• Transaction management and Isolation.• Key Management.
8
Agenda
• What is ORM?• Why using ORM?• What is Telerik OpenAccess ORM?• Features!• CRUD Demo• DSW Demo• ORM Battle Benchmarking
9
What is Telerik OpenAccess?
• 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.
10
Agenda
• What is ORM?• Why using ORM?• What is Telerik OpenAccess ORM?• Features!• CRUD Demo• Fetch Demo• DSW Demo• ORM Battle Benchmarking
11
Features!
• Visual Studio Integration• Dynamic Data Access• Performance and caching• Supported Database Features• Application Scenarios support• Integration• Database Support• Technical Support
12
Features!
• Visual Studio Integration• Dynamic Data Access• Performance and caching• Supported Database Features• Application Scenarios support• Integration• Database Support• Technical Support
13
Visual Studio Integration
• Schema-First Approach• Model-First Approach• Powerful Wizards• Roundtrip Mapping
14
Features!
• Visual Studio Integration• Dynamic Data Access• Performance and caching• Supported Database Features• Application Scenarios support• Integration• Database Support• Technical Support
15
Dynamic Data Access
• Query Languages– LINQ– OQL– SQL
• Runtime schema changes• Schema Change API
16
Features!
• Visual Studio Integration• Dynamic Data Access• Performance and caching• Supported Database Features• Application Scenarios support• Integration• Database Support
17
Performance and Caching
• Fetch Plans• Level 2 Distributed Cache• Generic data access
18
Performance and Caching
• Fetch Plans• Level 2 Distributed Cache• Generic data access
19
Fetch Plans
• Fine-tune the fetching of the fields we are using from the database and not the whole object.
• Better performance.• Less load on the database server.
20
Fetch Plans (cont.)
21
Fetch Plans (cont.)
22
Performance and Caching
• Fetch Plans• Level 2 Distributed Cache• Generic data access
23
Features!
• Visual Studio Integration• Dynamic Data Access• Performance and caching• Supported Database Features• Application Scenarios support• Integration• Database Support• Technical Support
24
Supported Database Features
• Stored Procedures• Views
25
Features!
• Visual Studio Integration• Dynamic Data Access• Performance and caching• Supported Database Features• Application Scenarios support• Integration• Database Support• Technical Support
26
Application Scenarios Support
• Disconnected API• Partial Trust• Lazy Loading• Automatic Change Tracking
27
Application Scenarios Support
• Disconnected API• Partial Trust• Lazy Loading• Automatic Change Tracking
28
Disconnected API
• OpenAccess unique ObjectContainer API concept has been the first ORM feature supporting disconnected data scenarios.
• The offline ObjectContainer API shares a common interface with the online ObjectScope API
• 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.
29
Application Scenarios Support
• Disconnected API• Partial Trust• Lazy Loading• Automatic Change Tracking
30
Partial Trust
• Most O/R products do not support the partial trust paradigm out of the box.
• Most commonly the support was tied to severe limitations of the products functionality.
• Most popular products like Linq To Sql and Entity Framework had issues on their own with the partial trust support.
31
Partial Trust (Cont.)
32
Application Scenarios Support
• Disconnected API• Partial Trust• Lazy Loading• Automatic Change Tracking
33
Features!
• Visual Studio Integration• Dynamic Data Access• Performance and caching• Supported Database Features• Application Scenarios support• Integration• Database Support
34
Integration
• Telerik Reporting • SQL Azure• RIA Services• Asp.Net and MVC• Silverlight and Ado.Net Data Services
35
Features!
• Visual Studio Integration• Dynamic Data Access• Performance and caching• Supported Database Features• Application Scenarios support• Integration• Database Support• Technical Support
36
Database Support
• Microsoft SQL Server 2005/2008 Express• Oracle Server 9.2, 10.x, 11.x • Microsoft SQL Azure • Advantage Database Server 8.1 • SQL Anywhere Server 10.x • Microsoft SQL Server 2000/2005/2008 and
Compact 3.5• Oracle Database 10g Express Edition • Firebird Server 2.x • MySQL 5.x
37
Features!
• Visual Studio Integration• Dynamic Data Access• Performance and caching• Supported Database Features• Application Scenarios support• Integration• Database Support• Technical Support
38
Technical Support
• Free even for trial versions• Consulting more than a regular technical support• Choose the way that fits you:
– Support Tickets– Product Documentation– Forum– Telerik Blogs– Telerik TV– Knowledge base– Code Library– Webinars– Telerik Trainer – Product Resource Pages
39
Agenda
• What is ORM?• Why using ORM?• What is Telerik OpenAccess ORM?• Features!• CRUD Demo• DSW Demo• ORM Battle Benchmarking
40
CRUD Demo
41
Agenda
• What is ORM?• Why using ORM?• What is Telerik OpenAccess ORM?• Features!• CRUD Demo• DSW Demo• ORM Battle Benchmarking
42
DSW Demo
43
Agenda
• What is ORM?• Why using ORM?• What is Telerik OpenAccess ORM?• Features!• CRUD Demo• DSW Demo• ORM Battle Benchmarking
44
ORM Battle Benchmarking
• Performance Scorecard• LINQ Scorecard• Single CRUD Graph• Multiple CRUD Graph• LINQ Graph• Queries Graph• Paging Graph• Fetch Graph• Materialization Graph
45
Questions?