1.1 Tổng quan
Xây dựng và triển khai Web Service cho ứng dụng di động 6
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.1.2 Môi trường hỗ trợ LinQ
Xây dựng và triển khai Web Service cho ứng dụng di động 7
• 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.
44 trang |
Chia sẻ: thanhle95 | Lượt xem: 576 | Lượt tải: 2
Bạn đang xem trước 20 trang tài liệu Bài giảng Xây dựng và triển khai Web Service cho ứng dụng di động - 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, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
Trường ĐH Khoa Học Tự Nhiên Tp. Hồ Chí Minh
TRUNG TÂM TIN HỌC
2015
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
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
Nội dung
Xây dựng và triển khai Web Service cho ứng dụng di động 2
1.1 Tổng quan
Xây dựng và triển khai Web Service cho ứng dụng di động 3
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 .
1.1 Tổng quan
Xây dựng và triển khai Web Service cho ứng dụng di động 4
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.
1.1 Tổng quan
Xây dựng và triển khai Web Service cho ứng dụng di động 5
Mô hình kiến trúc LinQ
1.1 Tổng quan
Xây dựng và triển khai Web Service cho ứng dụng di động 6
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.
1.2 Môi trường hỗ trợ LinQ
Xây dựng và triển khai Web Service cho ứng dụng di động 7
• 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.
1.3 Cách truy vấn
Xây dựng và triển khai Web Service cho ứng dụng di động 8
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;
1.3 Cách truy vấn
Xây dựng và triển khai Web Service cho ứng dụng di động 9
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 mả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 của LINQ để lấy danh sách điểm trên 8 điểm
IEnumerable 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 + " ");
} Console.ReadLine();
1.3 Cách truy vấn
Xây dựng và triển khai Web Service cho ứng dụng di động 10
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).
1.3 Cách truy vấn
Xây dựng và triển khai Web Service cho ứng dụng di động 11
Các toán tử truy vấn (Query Operators)
• LINQ có các toá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.
1.3 Cách truy vấn
Xây dựng và triển khai Web Service cho ứng dụng di động 12
Các toán tử truy vấn (Query Operators)
• Toá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 query = from tu in cacTu where
tu.Length == 3 select tu;
1.3 Cách truy vấn
Xây dựng và triển khai Web Service cho ứng dụng di động 13
Các toán tử truy vấn (Query Operators)
• Toán tử nối (Join Operators):
Cú pháp sử dụng:
Toán tử Join:
join in on equals
Toán tử GoupJoin:
join in on equals into
1.3 Cách truy vấn
Xây dựng và triển khai Web Service cho ứng dụng di động 14
Các toán tử truy vấn (Query Operators)
• Toán tử nối (Join Operators):
Ví dụ sử dụng toá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
});
1.3 Cách truy vấn
Xây dựng và triển khai Web Service cho ứng dụng di động 15
Các toá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 dsCacTu = new List() { “chu", “meo", “con" };
var query = from tu in dsCacTu select tu.Substring(0, 1);
Ví dụ sử dụng SelectMany:
List dsCacCumTu = new List() { “chu meo con", “chay lon
ton trong san" };
var query = from cumTu in dsCacCumTu from tu in
cumTu.Split(' ') select tu;
1.3 Cách truy vấn
Xây dựng và triển khai Web Service cho ứng dụng di động 16
Các toá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
1.3 Cách truy vấn
Xây dựng và triển khai Web Service cho ứng dụng di động 17
Các toá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ự giảm dần
var daySoTangDan = from n in num orderby n descending select n;
1.3 Cách truy vấn
Xây dựng và triển khai Web Service cho ứng dụng di động 18
Các toán tử truy vấn (Query Operators)
• Gom nhóm (Grouping Operators )
GroupBy
group by
Hoặc:
group by into
ToLookup
1.3 Cách truy vấn
Xây dựng và triển khai Web Service cho ứng dụng di động 19
Các toán tử truy vấn (Query Operators)
• Conversions
AsEnumerable
AsQueryable
Cast
OfType
ToArray
ToDictionary
ToList
ToLookup
1.3 Cách truy vấn
Xây dựng và triển khai Web Service cho ứng dụng di động 20
Các toán tử truy vấn (Query Operators)
• Concatenation
Concat
1.3 Cách truy vấn
Xây dựng và triển khai Web Service cho ứng dụng di động 21
Các toán tử truy vấn (Query Operators)
• Aggregation
Aggregate
Average
Count
LonCount
Max
Min
Sum
1.3 Cách truy vấn
Xây dựng và triển khai Web Service cho ứng dụng di động 22
Các toán tử truy vấn (Query Operators)
• Quantifier Operations
All
Any
Contains
1.3 Cách truy vấn
Xây dựng và triển khai Web Service cho ứng dụng di động 23
Các toán tử truy vấn (Query Operators)
• Partition Operators
Skip
SkipWhile
Take
TakeWhile
1.3 Cách truy vấn
Xây dựng và triển khai Web Service cho ứng dụng di động 24
Các toán tử truy vấn (Query Operators)
• Generation Operations
DefaultIfEmpty
Empty
Range
Repeat
1.3 Cách truy vấn
Xây dựng và triển khai Web Service cho ứng dụng di động 25
Các toán tử truy vấn (Query Operators)
• Set Operations
Distinct
Except
Intersect
Union
1.3 Cách truy vấn
Xây dựng và triển khai Web Service cho ứng dụng di động 26
Các toán tử truy vấn (Query Operators)
• Equality
SequenceEqual
1.3 Cách truy vấn
Xây dựng và triển khai Web Service cho ứng dụng di động 27
Các toán tử truy vấn (Query Operators)
• Element Operators
ElementAt
ElementAtOrDefault
First
FirstOrDefault
Last
LastOrDefault
Single
SingleOrDefault
DefaultIfEmpty
1.3 Cách truy vấn
Xây dựng và triển khai Web Service cho ứng dụng di động 28
LINQ To Objects
•Là cách sử dụng LINQ đối với các đối tượng Collection mà đã được
thực thi giao diện IEnumerable hoặc IEnumerable
•Là trường hợp sử dụng đơn giản nhất của LINQ khi làm việc với dữ
liệu.
1.3 Cách truy vấn
Xây dựng và triển khai Web Service cho ứng dụng di động 29
LINQ To Objects
Ví dụ:
namespace LINQtoObjects{
class HocVien{
static void Main(string[] args){
string[] tenHocViens = { “Tí", “Tèo", “Bin", “Bo", “Bom" };
var list = from t in tenHocViens select t;
StringBuilder sb = new StringBuilder();
foreach (string s in list) {
sb.Append(s + Environment.NewLine);
}
Console.WriteLine(sb.ToString());
Console.ReadLine();
}
}
}
1.3 Cách truy vấn
Xây dựng và triển khai Web Service cho ứng dụng di động 30
LINQ To XML
• Sử dụng LINQ với mục đích truy vấn file XML.
• Có các phương thức hỗ trợ sau: Xattribute, XCData, Xcomment,
Xcontainer, Xdeclaration, Xdocument, XDocumentType, Xelement,
Xname, Xnamespace, Xnode, XNodeDocumentOrderComparer,
XNodeEqualityComparer, Xobject, XObjectChange,
XObjectChangeEventArgs, XObjectEventHandler,
XProcessingInstruction, Xtext.
1.3 Cách truy vấn
Xây dựng và triển khai Web Service cho ứng dụng di động 31
LINQ To XML
Ví dụ sử dụng LINQ để đọc tập tin XML:
//Khai báo các thư viện
using System;
using System.Collections.Generic;
using System.Linq;
using System.Xml.Linq;
1.3 Cách truy vấn
Xây dựng và triển khai Web Service cho ứng dụng di động 32
LINQ To XML
Ví dụ sử dụng LINQ để đọc tập tin XML:
namespace LINQtoXML {
class MinhHoaDocXML {
static void Main(string[] args) {
string myXML = @" Account
SalesPre-Sales
Marketing ";
XDocument xdoc = new XDocument();
xdoc = XDocument.Parse(myXML);
var result = xdoc.Element("Departments").Descendants();
foreach (XElement item in result) {
Console.WriteLine("Department Name - " + item.Value); } } }}
1. Tìm hiểu LinQ
2. Hướng dẫn xây dựng Web Service dùng API RESTful Service
• Giới thiệu về ASP.NET Web API
• Giới thiệu cơ bản về RESTful Service
• Các nguyên tắc cơ bản để tạo ra RESTful Service
• Xây dựng Web Service
Nội dung
Xây dựng và triển khai Web Service cho ứng dụng di động 33
2. 1 Giới thiệu về ASP.NET Web API
Xây dựng và triển khai Web Service cho ứng dụng di động 34
ASP.NET Web API là gì?
Là framework giúp chúng ta tạo ra các Web API - API trên nền
web (HTTP).
Web API là các dịch vụ Web (Web service) được xây dựng dựa
trên HTTP sử dụng mô hình lập trình convention (như ASP.NET
MVC).
2. 1 Giới thiệu về ASP.NET Web API
Xây dựng và triển khai Web Service cho ứng dụng di động 35
Đặc điểm Web API (.NET 4.0 trở lên)
• Giúp cho việc xây dựng các HTTP service rất đơn giản, nhanh chóng
• Mã nguồn mở (Open Source) và có thể được sử dụng bởi bất kì client
nào hỗ trợ XML, JSON.
• Hỗ trợ đầy đủ các thành phần HTTP: URI, request/response headers,
caching, versioning, content formats.
• Có thể host trong ứng dụng hoặc trên IIS.
• Kiến trúc lý tưởng cho các thiết bị có băng thông giới hạn như các
thiết bị di động.
• Định dạng dữ liệu có thể là JSON, XML hoặc một kiểu dữ liệu bất kỳ.
2. 1 Giới thiệu về ASP.NET Web API
Xây dựng và triển khai Web Service cho ứng dụng di động 36
Đặc điểm Web API (.NET 4.0 trở lên)
• Làm mới và hiện đại hóa các mẫu dự án mặc định
• Mẫu dự án trên điện thoại di động
• Nhiều tính năng mới để hỗ trợ các ứng dụng di động
• Tùy chỉnh sinh mã (code).
• Tăng cường hỗ trợ cho các phương pháp bất đồng bộ
• Đọc danh sách đầy đủ tính năng trong các ghi chú phát hành
2. 1 Giới thiệu về ASP.NET Web API
Xây dựng và triển khai Web Service cho ứng dụng di động 37
Ưu điểm của Web API
• Cấu hình đơn giản hơn nhiều so với WCF.
• Hiệu suất (performance) cao.
• Hỗ trợ RESTfull đầy đủ.
• Hỗ trợ đầy đủ các thành phần MVC như: routing, controller,
action result, filter, model binder, IoC container,
dependency injection, unit test,
• Mã nguồn mở (Open source).
2. 2 Giới thiệu cơ bản về RESTful Service
Xây dựng và triển khai Web Service cho ứng dụng di động 38
- Là một dịch vụ web đơn giản sử dụng HTTP và tính chất của
REST.
- Nó tuân thủ theo 4 nguyên tắc thiết kế cơ bản sau:
• Sử dụng các phương thức HTTP một cách rõ ràng
• Phi trạng thái
• Hiển thị cấu trúc thư mục như URls
• Chuyển đổi JavaScript Object Notation (JSON) và XML hoặc
cả hai.
2. 3 Nguyên tắc cơ bản để tạo ra RESTful
Service
Xây dựng và triển khai Web Service cho ứng dụng di động 39
4 nguyên tắc thiết kế cơ bản sau:
• Sử dụng các phương thức HTTP một cách rõ ràng
Thiết lập một ánh xạ 1-1 giữa các hành động: tạo, đọc, cập
nhật và xoá (CRUD) các quá trình vận hành và các phương thức
HTTP:
POST - Tạo một tài nguyên trên máy chủ
GET - Truy xuất một tài nguyên
PUT - Thay đổi trạng thái một tài nguyên hoặc để cập nhật
nó
DELETE - Huỷ bỏ hoặc xoá một tài nguyên
Xây dựng và triển khai Web Service cho ứng dụng di động 40
4 nguyên tắc thiết kế cơ bản sau:
• Phi trạng thái
Ví dụ:
Thiết kế trạng thái:
Thiết kế phi trạng thái:
2. 3 Nguyên tắc cơ bản để tạo ra RESTful
Service
Xây dựng và triển khai Web Service cho ứng dụng di động 41
4 nguyên tắc thiết kế cơ bản sau:
• Hiển thị cấu trúc thư mục như URls
Cấu trúc địa chỉ của RESTful service:
• Giấu các đuôi tài liệu mở rộng của bản gốc trong máy chủ (.jsp, .php,
.asp).
• Để mọi thứ là chữ thường.
• Thay thế các khoảng trống bằng gạch chân hoặc gạch nối (một trong
hai loại).
• Tránh các chuỗi yêu cầu.
• Thay vì sử dụng mã (404 Not Found) khi yêu cầu địa chỉ cho một
phần đường dẫn thì luôn luôn cung cấp một trang mặc định hoặc tài
nguyên như một phản hồi.
2. 3 Nguyên tắc cơ bản để tạo ra RESTful
Service
Xây dựng và triển khai Web Service cho ứng dụng di động 42
4 nguyên tắc thiết kế cơ bản sau:
• Chuyển đổi JavaScript Object Notation (JSON) và XML
hoặc cả hai.
Là một bản tóm tắt các thuộc tính của những thứ trong mô
hình dữ liệu hệ thống.
Định dạng dữ liệu mà ứng dụng và trao đổi dịch vụ trong mức
đáp ứng yêu cầu/ phản hồi hoặc trong phần thân của HTTP.
Các chủ thể trong mô hình dữ liệu có liên quan với nhau.
Cấu trúc dịch vụ sao cho nó tận dụng được phần đầu chấp
nhận HTTP có sẵn bên trong – một loại MIME
2. 3 Nguyên tắc cơ bản để tạo ra RESTful
Service
2. 4 Xây dựng Web Service
Xây dựng và triển khai Web Service cho ứng dụng di động 43
Bước 1:
Khởi động Visual Studio → tạo một project ASP.NET Web Application
và chọn template Web API.
Bước 2:
Tạo Data Model sử dụng Entity Framework để Web API service có thể
tương tác CRUD (Create, Read, Update, Delete) dữ liệu được.
Bước 3: Tạo ra các Web API
Nhấp chuột phải vào thư mục Controllers và chọn thêm controller.
•Web API 2 Controller Empty: tự viết các phương thức từ đầu.
•Web API 2 Controller with read/write actions: phát sinh các phương
thức ví dụ để bạn có thể biết cách viết các service này.
Bước 4: Chạy thử và kiểm tra.
Xây dựng và triển khai Web Service cho ứng dụng di động 44