Trường ĐH Khoa Học Tự Nhiên Tp. Hồ Chí Minh
TRUNG TÂM TIN HỌC
Bài 2: Các công nghệ dùng để xây dựng Web
Service cho ứng dụng di động – Phần 1
Ngành Mạng & Thiết bị di động
www.t3h.vn
2015
Nội dung
1. Tìm hiểu LinQ
• Tổng quan
• Mơi trường hỗ trợ LinQ
• Cách truy vấn:
Dùng LinQ đọc danh sách đối tượng và thực hiện truy vấn
Dùng LinQ đọc dữ liệu XML và thực hiện truy vấn
2. Hướng dẫn xây dựng Web Service dùng API RESTful Service
Xây dựng và triển khai Web Service cho ứng dụng di động
2
1.1 Tổng quan
LinQ là gì?
•LINQ là tên viết tắt của Language Integrated Query (ngơn
ngữ truy vấn thơng minh).
•Là một tập hợp các thành phần mở rộng cho phép viết các
câu truy vấn dữ liệu ngay trong một ngôn ngữ lập trình, như
C# hoặc VB.NET.
•Là một mơ hình ORM (Object-relational mapping) hỗ trợ
lập trình CSDL hướng đối tượng mạnh mẽ.
•Cú pháp đơn giản, dễ hiểu.
•Có thể hiển thị, binding trực tiếp lên các giao diện .
Xây dựng và triển khai Web Service cho ứng dụng di động
3
1.1 Tổng quan
LinQ là gì?
Chú ý:
•LINQ khơng làm tăng tốc độ thực thi chương trình mà nó
giúp viết mã lệnh nhanh hơn và dễ quản lý mã hơn.
•Có thể kết hợp LINQ với ADO.Net để truy vấn.
Xây dựng và triển khai Web Service cho ứng dụng di động
4
1.1 Tổng quan
Mơ hình kiến trúc LinQ
Xây dựng và triển khai Web Service cho ứng dụng di động
5
1.1 Tổng quan
Có các loại LinQ sau:
•LINQ To Objects.
•LINQ To XML (XLINQ).
Có thể kết hợp với ADO.Net để truy vấn:
•LINQ To Dataset.
•LINQ To SQL (DLINQ).
•LINQ To Entities.
Xây dựng và triển khai Web Service cho ứng dụng di động
6
1.2 Mơi trường hỗ trợ LinQ
•
Có nhiều cơng cụ hỗ trợ LinQ, nhưng Visual Studio là
công cụ hỗ trợ được sử dụng phổ biến và mạnh mẽ nhất
hiện nay (từ Visual Studio 2008 trở đi).
•
•
LinQ được hỗ trợ trên nền tảng .NET 3.5 trở lên.
Để sử dụng LINQ phải khai báo thư viện System.LinQ.
Xây dựng và triển khai Web Service cho ứng dụng di động
7
1.3 Cách truy vấn
LINQ có 2 kiểu truy vấn LinQ:
•Lamda (Method) Syntax
Ví dụ:
var doDaiToiDas = dodais.Where( d => d.length > 10);
•Query (Comprehension) Syntax
Ví dụ:
var doDaiToiDas = from d in dodais where d.length >
10;
Xây dựng và triển khai Web Service cho ứng dụng di động
8
1.3 Cách truy vấn
Các biểu thức truy vấn (Query Expressions) của LINQ với các từ
khóa Select, From, Where và OrderBy tương tự như cú pháp truy
vấn của SQL.
Ví dụ:
// Tạo một maả
ng kiêả
u int chứa các điêả
m sôô
int[] diems = new int[] { 7, 8, 10, 9};
// Sưả dụng cú pháp truy vâô
n cuả
a LINQ đêảlâô
y danh sách điêả
m trên 8
điêả
m
IEnumerable<int> diemQuery = from diem in diems where diem > 80
select diem ;
// Xưảlý hiêả
n thị ra màn hình
foreach (int i in diemQuery) {
Console.Write(i + " ");
Xây dựng và triển khai Web Service cho ứng dụng di động
9
1.3 Cách truy vấn
Các phương thức truy vấn mở rộng (Extension
Methods)
•Các phương thức này chỉ được khai báo trong các lớp tĩnh
(static class)
•Được sử dụng để biên dịch các biểu thức truy vấn (Query
Expressions) thành các phương thức gọi truyền thống
(object-oriented).
Xây dựng và triển khai Web Service cho ứng dụng di động
10
1.3 Cách truy vấn
Các tốn tử truy vấn (Query Operators)
•LINQ có các tốn tử truy vấn cơ bản sau: Filtering (lọc),
Join (nối), Projection (phép chiếu), Sorting (sắp xếp) ,
Grouping
(gom nhóm),
Conversions
(chuyển
đổi),
Concatenation (ghép nối), Aggregation (kết hợp),
Quantifier (toán tử định lượng) , Partition (phân hoạch),
Generation , Set , Equality (bằng nhau), Element.
Xây dựng và triển khai Web Service cho ứng dụng di động
11
1.3 Cách truy vấn
Các tốn tử truy vấn (Query Operators)
•Tốn tử lọc (Filtering Operators)
Sử dụng từ khóa: where
Dùng để lọc các giá trị theo yêu cầu.
Ví dụ:
string[] cacTu= { “toi", “yeu", “lap", “trinh"};
IEnumerable<string> query = from tu in cacTu where
tu.Length == 3
select tu;
Xây dựng và triển khai Web Service cho ứng dụng di động
12
1.3 Cách truy vấn
Các tốn tử truy vấn (Query Operators)
•Tốn tử nới (Join Operators):
Cú pháp sử dụng:
Tốn tử Join:
join … in … on … equals …
Toán tử GoupJoin:
join … in … on … equals … into …
Xây dựng và triển khai Web Service cho ứng dụng di động
13
1.3 Cách truy vấn
Các tốn tử truy vấn (Query Operators)
•Tốn tử nới (Join Operators):
Ví dụ sử dụng tốn tử Join:
var danhSachNV = (from nv in nhanviens
join p in phongbans on
nv.PhongBanId equals
d.PhongBanId
select new
{
TenNhanVien =
nv.TenNhanVien,
TenPhongBan = d.TenPB
});
Xây dựng và triển khai Web Service cho ứng dụng di động
14
1.3 Cách truy vấn
Các tốn tử truy vấn (Query Operators)
•Phép chiếu (Projection Operations)
Sử dụng từ khóa: select
Có 2 dạng: select và SelectMany
Ví dụ sử dụng select:
List<string> dsCacTu = new List<string>() { “chu", “meo", “con" };
var query = from tu in dsCacTu select tu.Substring(0, 1);
Ví dụ sử dụng SelectMany:
List<string> dsCacCumTu = new List<string>() { “chu meo con", “chay
lon ton trong san" };
var query = from cumTu in dsCacCumTu from tu in
cumTu.Split(' ')
select tu;
Xây dựng và triển khai Web Service cho ứng dụng di động
15
1.3 Cách truy vấn
Các tốn tử truy vấn (Query Operators)
•Sắp xếp (Sorting Operators )
Có 5 loại:
OrderBy
OrderByDescending: orderby ... descending
ThenBy: orderby …, …
ThenByDescending: orderby …, … descending
Reverse
Xây dựng và triển khai Web Service cho ứng dụng di động
16
1.3 Cách truy vấn
Các tốn tử truy vấn (Query Operators)
•Sắp xếp (Sorting Operators )
Ví dụ:
int[] num = { -20, 12, 6, 10, 0, -3, 1 };
// Săắ
p xêắ
p dãy sôắtrên thứ tự tăng dâầ
n
var daySo = from n in num orderby n select n;
// Săắ
p xêắ
p dãy sôắtrên theo thứ tự gia
ảm dâầ
n
var
daySoTangDan
=
from
n
in
num
orderby
n
descending
select n;
Xây dựng và triển khai Web Service cho ứng dụng di động
17
1.3 Cách truy vấn
Các tốn tử truy vấn (Query Operators)
•Gom nhóm (Grouping Operators )
GroupBy
group … by
Hoặc:
group … by … into …
ToLookup
Xây dựng và triển khai Web Service cho ứng dụng di động
18
1.3 Cách truy vấn
Các tốn tử truy vấn (Query Operators)
•Conversions
AsEnumerable
AsQueryable
Cast
OfType
ToArray
ToDictionary
ToList
ToLookup
Xây dựng và triển khai Web Service cho ứng dụng di động
19
1.3 Cách truy vấn
Các tốn tử truy vấn (Query Operators)
•Concatenation
Concat
Xây dựng và triển khai Web Service cho ứng dụng di động
20
1.3 Cách truy vấn
Các tốn tử truy vấn (Query Operators)
•Aggregation
Aggregate
Average
Count
LonCount
Max
Min
Sum
Xây dựng và triển khai Web Service cho ứng dụng di động
21
1.3 Cách truy vấn
Các tốn tử truy vấn (Query Operators)
•Quantifier Operations
All
Any
Contains
Xây dựng và triển khai Web Service cho ứng dụng di động
22
1.3 Cách truy vấn
Các tốn tử truy vấn (Query Operators)
•Partition Operators
Skip
SkipWhile
Take
TakeWhile
Xây dựng và triển khai Web Service cho ứng dụng di động
23
1.3 Cách truy vấn
Các tốn tử truy vấn (Query Operators)
•Generation Operations
DefaultIfEmpty
Empty
Range
Repeat
Xây dựng và triển khai Web Service cho ứng dụng di động
24
1.3 Cách truy vấn
Các tốn tử truy vấn (Query Operators)
•Set Operations
Distinct
Except
Intersect
Union
Xây dựng và triển khai Web Service cho ứng dụng di động
25