Bài giảng Ngành mạng và thiết bị di động - Bài 3: Các công nghệ dùng để xây dựng Web Service cho ứng dụng di động

Giới thiệu Object-Relational Mapping

(ORM)

Xây dựng và triển khai Web Service cho ứng dụng di động 3

• Object-Relational Mapping (ORM) là kỹ thuật ánh xạ từ mô hình

đối tượng xuống CSDL quan hệ.

• Cho phép thao tác trên bảng (Table) trong CSDL mà không cần

quan tâm nhiều đến việc viết câu truy vấn cho mỗi lần truy xuất

CSDL.

Giới thiệu Object-Relational Mapping

(ORM)

Xây dựng và triển khai Web Service cho ứng dụng di động 4

• Ưu điểm

• Độc lập với Hệ quản trị Cơ sở dữ liệu.

• Cung cấp các API đơn giản dễ dùng, viết mã nhanh, bản thiết

kế gần gũi với lập trình viên → tiết kiệm thời gian lập trình.

• Khuyết điểm

• Các ORM thường tự sinh ra các câu lệnh SQL → Khó can thiệp

sâu để tối ưu hóa → Ảnh hưởng đến hiệu suất.

• Cấu trúc bên dưới sẽ phức tạp nếu lạm dụng việc kế thừa quá

nhiều.

• Khó khăn trong việc quản lý session.

pdf 43 trang kimcuc 9380
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Ngành mạng và thiết bị di động - Bài 3: Các công nghệ dùng để xây dựng Web Service cho ứng dụng di động", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

Tóm tắt nội dung tài liệu: Bài giảng Ngành mạng và thiết bị di động - Bài 3: Các công nghệ dùng để xây dựng Web Service cho ứng dụng di động

Bài giảng Ngành mạng và thiết bị di động - Bài 3: Các công nghệ dùng để xây dựng Web Service cho ứng dụng di động
Trường ĐH Khoa Học Tự Nhiên Tp. Hồ Chí Minh 
TRUNG TÂM TIN HỌC 
2015 
 Bài 3: Các công nghệ dùng để xây dựng Web 
Service cho ứng dụng di động – Phần 2 
Ngành Mạng & Thiết bị di động 
www.t3h.vn 
1. Giới thiệu Object-Relational Mapping (ORM) 
2. Entity Framework (EF) 
Nội dung 
Xây dựng và triển khai Web Service cho ứng dụng di động 2 
1. Giới thiệu Object-Relational Mapping 
(ORM) 
Xây dựng và triển khai Web Service cho ứng dụng di động 3 
• Object-Relational Mapping (ORM) là kỹ thuật ánh xạ từ mô hình 
đối tượng xuống CSDL quan hệ. 
• Cho phép thao tác trên bảng (Table) trong CSDL mà không cần 
quan tâm nhiều đến việc viết câu truy vấn cho mỗi lần truy xuất 
CSDL. 
1. Giới thiệu Object-Relational Mapping 
(ORM) 
Xây dựng và triển khai Web Service cho ứng dụng di động 4 
• Ưu điểm 
• Độc lập với Hệ quản trị Cơ sở dữ liệu. 
• Cung cấp các API đơn giản dễ dùng, viết mã nhanh, bản thiết 
kế gần gũi với lập trình viên → tiết kiệm thời gian lập trình. 
• Khuyết điểm 
• Các ORM thường tự sinh ra các câu lệnh SQL → Khó can thiệp 
sâu để tối ưu hóa → Ảnh hưởng đến hiệu suất. 
• Cấu trúc bên dưới sẽ phức tạp nếu lạm dụng việc kế thừa quá 
nhiều. 
• Khó khăn trong việc quản lý session. 
1. Giới thiệu Object-Relational Mapping (ORM) 
2. Entity Framework (EF) 
• Giới thiệu Entity Framework 
• Kiến trúc Entity Framework 
• Cài đặt Entity Famework 
• Tạo Entity Data Model và giới thiệu cấu trúc thư mục 
• DBContext 
• Các loại đối tượng trong Entity 
• Thiết lập quan hệ cho Entity 
• Vòng đời của Entity 
• Các cách tiếp cận trong lập trình với Entity Framework 
• Thực hiện truy vấn với EDM , thực hiện thêm, xóa, sửa trên Entity (CRUD). 
Nội dung 
Xây dựng và triển khai Web Service cho ứng dụng di động 5 
2.1 Giới thiệu Entity Framework 
Xây dựng và triển khai Web Service cho ứng dụng di động 6 
Entity Framework (EF) 
• Là một bộ ánh xạ đối tượng – quan hệ cho phép người 
lập trình .NET làm việc với dữ liệu quan hệ qua các đối 
tượng (object), giúp lập trình viên không cần viết mã 
cho (hầu hết) những gì liên quan đến truy cập dữ liệu. 
→ Entity Framework là một mô hình ORM. 
• Sử dụng LINQ để truy vấn và cập nhật dữ liệu với sự 
hỗ trợ của ADO.NET Data Provider. 
2.1 Giới thiệu Entity Framework 
Xây dựng và triển khai Web Service cho ứng dụng di động 7 
Các thành phần trong Entity Framework: 
• Code: mã lệnh tạo thành các lớp đối tượng dữ liệu 
cho phép thao tác với dữ liệu. 
• Model: sơ đồ gồm các hộp mô tả các thực thể và 
các đường nối kết mô tả các quan hệ. 
• Database: cơ sở dữ liệu (có thể là SQL Server, 
Compact SQL Server, Local database, MySQL, 
Oracle,) 
2.1 Giới thiệu Entity Framework 
Xây dựng và triển khai Web Service cho ứng dụng di động 8 
Sơ đồ minh họa các hình thức ánh xạ – quan hệ trong Entity Framework: 
2.2 Kiến trúc Entity Framework 
Xây dựng và triển khai Web Service cho ứng dụng di động 9 
Mô hình kiến trúc Entity Framework 
2.2 Kiến trúc Entity Framework 
Xây dựng và triển khai Web Service cho ứng dụng di động 10 
• EDM (Entity Data Model) 
 Được phát triển bởi Dr. Peter Chen (1970s). 
2.2 Kiến trúc Entity Framework 
Xây dựng và triển khai Web Service cho ứng dụng di động 11 
• EDM (Entity Data Model) gồm ba phần chính: 
 Khái niệm mô hình (Conceptual model) 
Các lớp và mối quan hệ tương ứng với cơ sở dữ liệu. 
Được độc lập từ cơ sở dữ liệu. 
 Mapping (bản đồ) 
 Thông tin các khái niệm mô hình do lập trình viên ánh xạ tới 
 mô hình lưu trữ hay cơ sở dữ liệu. 
 Mô hình lưu trữ (Storage model) 
Mô hình thiết kế cơ sở dữ liệu bao gồm Table, View, Store 
procedure, Relationship, Key, 
2.2 Kiến trúc Entity Framework 
Xây dựng và triển khai Web Service cho ứng dụng di động 12 
• LINQ to Entities 
 Ngôn ngữ truy vấn được sử dụng để truy vấn với mô 
hình đối tượng (Object Model). 
 Giá trị trả về tuỳ thuộc theo người lập trình, theo mô 
hình (Model). 
• Entity SQL 
 Ngôn ngữ truy vấn giống như LINQ to Entities nhưng 
nó phức tạp hơn LINQ to Entities . 
2.2 Kiến trúc Entity Framework 
Xây dựng và triển khai Web Service cho ứng dụng di động 13 
• Object Service 
 Phục vụ cho việc truy cập, trả giá trị dữ liệu từ cơ sở dữ liệu. 
 Cung cấp đầy đủ dịch vụ để quá trình chuyển đổi dữ liệu từ thực 
thể đến cấu trúc đối tượng dễ dàng hơn. 
• Entity Client Data Provider 
 Chuyển đổi L2E hoặc truy vấn Entity SQL vào truy vấn SQL trong cơ 
sở dữ liệu. 
 Giao tiếp với ADO.NET data provider hoặc lấy dữ liệu từ cơ sở dữ 
liệu. 
• ADO.Net Data Provider 
 Giao tiếp với cơ sở dữ liệu sử dụng theo chuẩn ADO.NET 
2.3 Cài đặt Entity Famework 
Xây dựng và triển khai Web Service cho ứng dụng di động 14 
• Cài đặt NuGet 
EF 6.1.3 (bản mới nhất hiện nay) yêu cầu phải có NuGet 2.8.6 trở lên. 
→ Cần cài đặt NuGet cho Visual Studio 2013 trở xuống, riêng với Visual 
Studio 2015 đã được tích hợp sẵn mà không cần cài đặt. 
• Cài đặt Entity Framework 
 Cách 1: Sử dụng lệnh 
Khởi động Visual Studio (đã cài NuGet) → Tools → NuGet Package 
Manager → Package Manager Console và gõ câu lệnh sau: 
Install-Package EntityFramework 
2.3 Cài đặt Entity Famework 
Xây dựng và triển khai Web Service cho ứng dụng di động 15 
• Cài đặt Entity Framework 
 Cách 2: 
Khởi động Visual Studio (đã cài NuGet) → Tools → NuGet Package 
Manager → Manager NuGet Package for Solution → gõ tìm 
Entity Framewwork và cài đặt nó. 
2.4 Tạo Entity Data Model và giới thiệu cấu 
trúc thư mục 
Xây dựng và triển khai Web Service cho ứng dụng di động 16 
Tạo Entity Data Model 
Bước 1: Mở Visual Studio và tạo một dự án (project). 
Bước 2: Thêm Entity Data Model vào dự án vừa tạo. 
• Nhấp chuột phải vào dự án → Add → New Item → Visual C# Items → Data → 
ADO.NET Entity Data Model → Đặt tên cho Entity Data Model muốn tạo và chọn 
Add. 
• Từ hộp thoại Entitty Data Model Wizard → Chọn EF Designer from database → 
Next. 
• Chọn dữ liệu kết nối (Choose Your Data Connection): chọn mã nguồn (Data source), 
điền tên server (server name), tên CSDL và kiểm tra kết nối (Test connection). 
• Chọn phiên bản (Choose Your Version): Chọn Entity Framework 6.x. 
• Chọn dữ liệu đối tượng và cài đặt (Choose Your Data Objects and Settings): Chọn 
Tables → đổi tên Model Namspace → Fisnish. 
2.4 Tạo Entity Data Model và giới thiệu cấu 
trúc thư mục 
Xây dựng và triển khai Web Service cho ứng dụng di động 17 
Thiết kế EDM 
•Thiết kế EDM đại diện cho mô hình của chúng ta. 
•Nó bao gồm Entities, Associations và Multiplicity giữa các thực thể. 
•Nó giống như cấu trúc bảng (table) trong cơ sở dữ liệu, nhưng chúng ta 
có thể thêm hoặc trộn cột (merge column) hoặc xoá cột (remove 
column) mà không đòi hỏi phải từ ứng dụng của bạn thông qua thiết kế 
này. 
•Có thể thêm đối tượng mới có các cột trong mô hình này. 
•Chú ý: 
Nên hết sức cẩn thận khi thay đổi trong thiết kế. 
2.5 DBContext 
Xây dựng và triển khai Web Service cho ứng dụng di động 18 
• Là đối tượng UnitOfWork - là mẫu thiết kế về truy xuất CSDL. 
• Nó theo dõi những thay đổi của các đối tượng và chịu trách nhiệm 
cập nhật dữ liệu đến CSDL. 
• Nó giữ bản sao chép cục bộ của dữ liệu (ở CSDL) với những thay 
đổi chưa được cập nhật. 
→ Đối tượng DBContext phải có thời gian sống ngắn để nhanh chóng 
cập nhật CSDL nhằm giảm nguy cơ xảy 
ra các mâu thuẫn khi xử lý đồng bộ. 
• Khi sử dụng EF, chúng ta cần phải tạo một lớp ngữ cảnh kế thừa 
từ System.Data.Entity.DbContext. 
2.6 Các loại đối tượng trong Entity Framework 
Xây dựng và triển khai Web Service cho ứng dụng di động 19 
• Có 4 loại: EntityObject, POCO (Plain Old CLR Object) , POCO Proxy, 
Self-Tracking Entities. 
• Với mỗi Entity đều có 2 loại thuộc tính: 
• Scalar properties 
• Gồm các thuộc tính nằm trong một entity. 
• Ứng với Entity Teacher có scalar properties là TeacherId, 
TeacherName, StandardId 
• Navigation properties 
• Là một con trỏ, trỏ đến một Entity khác - nó hiện thực primary key – 
foreign key (1-n). 
• Ứng với Entity Teacher có 2 navigation properties là Courses, 
Standard 
2.6 Các loại đối tượng trong Entity Framework 
Xây dựng và triển khai Web Service cho ứng dụng di động 20 
• EntityObject 
 Mặc định ADO.NET Entity Data Model tạo một EntityObject từ 
database thông qua trình công cụ có sẵn của Visual Studio. 
 Nó hiển thị đầy đủ cấu trúc của một Table (Fields Name, Data 
type,.) 
• POCO (Plain Old CLR Object) 
 Là một thực thể của CSDL (database). 
 EF sẽ tự động tạo ra các đối tượng ứng với CSDL. 
 Nó cũng hỗ trợ cú pháp LINQ. 
2.6 Các loại đối tượng trong Entity Framework 
Xây dựng và triển khai Web Service cho ứng dụng di động 21 
• POCO (Plain Old CLR Object) 
 Ví dụ: 
public class HocVien 
 { 
 public int MaHocVien{ get; set; } 
 public string TenHocVien{ get; set; } 
 public IList KhoaHocs { get; set; } 
 } 
2.6 Các loại đối tượng trong Entity Framework 
Xây dựng và triển khai Web Service cho ứng dụng di động 22 
• POCO Proxy 
 Một lớp runtime proxy của POCO entity. 
 POCO entity trở thành POCO proxy entity nếu đáp ứng được lazy loading 
proxy và change tracking. 
• Self-Tracking Entities 
• Là những EntityObject, POCO, POCO proxy entities làm việc tốt với ứng 
dụng. 
• Trong n-tier, phải chuyển các entities thành 1-tier nơi mà object context 
không có sẵn. Việc theo dõi những thay đổi trong object context đều do 
self-tracking entities đảm nhận. 
• Ngoài ra, nó còn có chức năng tracking function và thực hiện 
IObjectWithChange Tracker và interface INotifyPropertyChanged. 
2.7 Thiết lập quan hệ cho Entity 
Xây dựng và triển khai Web Service cho ứng dụng di động 23 
Có 3 kiểu thiết lập: 
• Quan hệ một – một (One-to-One Relationship) 
• Quan hệ một – nhiều (One-to-Many Relationship) 
• Quan hệ nhiều – nhiều (Many-to-Many Relationship) 
2.7 Thiết lập quan hệ cho Entity 
Xây dựng và triển khai Web Service cho ứng dụng di động 24 
• Quan hệ một – một (One-to-One Relationship) 
 Mỗi hàng ở một bảng này chỉ có thể quan hệ duy nhất với một 
hàng khác trong bảng khác. 
 Quan hệ này thường không phổ biến, và nó có thể có tới hai 
chiều khác nhau tùy vào cách bạn thiết kế CSDL. 
2.7 Thiết lập quan hệ cho Entity 
Xây dựng và triển khai Web Service cho ứng dụng di động 25 
• Quan hệ một – một (One-to-One Relationship) 
 Ví dụ 
2.7 Thiết lập quan hệ cho Entity 
Xây dựng và triển khai Web Service cho ứng dụng di động 26 
• Quan hệ một – nhiều (One-to-Many Relationship) 
  Là một thực thể (Entity) sẽ có quan hệ với nhiều thực thể 
khác nhau. 
 Trong quan hệ một nhiều, mỗi record của bảng này có thể có 
quan hệ với nhiều hàng thuộc bảng khác. 
2.7 Thiết lập quan hệ cho Entity 
Xây dựng và triển khai Web Service cho ứng dụng di động 27 
• Quan hệ một – nhiều (One-to-Many Relationship) 
 Ví dụ 
2.7 Thiết lập quan hệ cho Entity 
Xây dựng và triển khai Web Service cho ứng dụng di động 28 
• Quan hệ nhiều – nhiều (Many-to-Many Relationship) 
 Là một record của bảng này có quan hệ với nhiều record 
trong bảng khác. 
2.7 Thiết lập quan hệ cho Entity 
Xây dựng và triển khai Web Service cho ứng dụng di động 29 
• Quan hệ nhiều – nhiều (Many-to-Many Relationship) 
 Ví dụ 
2.8 Vòng đời của Entity 
Xây dựng và triển khai Web Service cho ứng dụng di động 30 
2.9 Các cách tiếp cận trong lập trình với 
Entity Framework 
Xây dựng và triển khai Web Service cho ứng dụng di động 31 
Có 3 cách tiếp cận trong lập trình với Entity Framework: Code 
First, Models First, Database First. 
2.9 Các cách tiếp cận trong lập trình với 
Entity Framework 
Xây dựng và triển khai Web Service cho ứng dụng di động 32 
• Database first 
 Được hỗ trợ từ phiên bản EF 1 trong Visual Studio 2008. 
 EF sẽ tự động tạo ra mô hình dữ liệu (data model) và các lớp (object 
layer) từ CSDL có sẵn thông qua công cụ Entity Data Model Wizard. 
 Chúng ta có thể thay đổi mô hình dữ liệu và cập nhật lại vào CSDL. 
 Là cách tiếp cận phổ biến vì cách thực hiện đơn giản, nhanh chóng. 
→ Chỉ nên dùng khi ta đã có sẵn CSDL (không phải tạo). 
2.9 Các cách tiếp cận trong lập trình với 
Entity Framework 
Xây dựng và triển khai Web Service cho ứng dụng di động 33 
• Models first 
 Được bổ sung từ phiên bản EF 4 trong Visual 2010. 
 Ta có thể tạo một mô hình dữ liệu (data model) rỗng bằng công cụ 
Entity Data Model Designer, khi đó object layer cũng tự động được 
sinh ra. 
 Sau khi đã hoàn thành việc thiết kế, ta có thể sử dụng chức năng 
Generate Database from Model để tạo ra các mã DDL (data 
definition language) dựa trên mã SSDL (Store Schema Definition 
Language). Các mã DDL này sẽ được thực thi và lưu thành tập tin 
.sql. 
→ Dùng khi ta bắt đầu thiết kế CSDL từ đầu (từ chưa có gì). 
2.9 Các cách tiếp cận trong lập trình với 
Entity Framework 
Xây dựng và triển khai Web Service cho ứng dụng di động 34 
• Code First 
 Hướng tiếp cận này bỏ qua phần Model (.edmx). 
 Ta có thể thiết kế các lớp (class) tương ứng với các table của 
CSDL mà ta cần làm việc hoặc muốn tạo ra. 
 Sử dụng class DbContext để thao tác với CSDL. 
→ Đòi hỏi phải thực hiện các công việc một cách thủ công nhưng 
bù lại nó linh hoạt và được sử dụng rất phổ biến. 
2.10 Truy vấn với EDM 
Xây dựng và triển khai Web Service cho ứng dụng di động 35 
Có 3 loại truy vấn trong EF: 
• LINQ to Entities 
• Entity SQL 
• Native SQL 
2.10 Truy vấn với EDM 
Xây dựng và triển khai Web Service cho ứng dụng di động 36 
• LINQ to Entities 
 Ta có thể truy vấn trực tiếp vào Entity và gọi Record trong 
Database một cách dễ dàng. 
 Có thể dùng từ khoá var, IEnumerable hoặc 
IQueryable để lấy dữ liệu thông qua cú pháp LINQ. 
2.10 Truy vấn với EDM 
Xây dựng và triển khai Web Service cho ứng dụng di động 37 
• LINQ to Entities 
 Ví dụ truy vấn với LINQ to Entities dùng cú pháp LINQ Method: 
 Ví dụ truy vấn với LINQ to Entities dùng cú pháp LINQ Query : 
2.10 Truy vấn với EDM 
Xây dựng và triển khai Web Service cho ứng dụng di động 38 
• Entity SQL 
 Ta có thể lựa chọn Entity Framework’s Object Services để 
truy vấn trực tiếp. 
 Kết hợp giữa ObjectQuery với Entity Framework’s T-SQL 
để xây dựng một biểu thức truy vấn . 
 Ví dụ truy vấn với Object Services và Entity SQL: 
2.10 Truy vấn với EDM 
Xây dựng và triển khai Web Service cho ứng dụng di động 39 
• Native SQL 
Trong lớp ObjectContext có thêm các phương thức 
ExecuteFunction(), ExecuteStoreQuery(), 
ExecuteStoreCommand(). 
Ví dụ: 
2.11 Thêm, xóa, sửa trên Entity (CRUD). 
Xây dựng và triển khai Web Service cho ứng dụng di động 40 
Ví dụ thêm 1 Entity (Add Entity) 
2.11 Thêm, xóa, sửa trên Entity (CRUD). 
Xây dựng và triển khai Web Service cho ứng dụng di động 41 
Ví dụ cập nhật 1 Entity (Update Entity) 
2.11 Thêm, xóa, sửa trên Entity (CRUD). 
Xây dựng và triển khai Web Service cho ứng dụng di động 42 
Ví dụ xóa 1 Entity (Delete Entity) 
Xây dựng và triển khai Web Service cho ứng dụng di động 43 

File đính kèm:

  • pdfbai_giang_nganh_mang_va_thiet_bi_di_dong_bai_2_phan_2_cac_co.pdf