2. Nội Dung Trình Bày
Tổng Quan MVC
Giới thiệu ASP.NET MVC 3
Cài đặt ứng dụng đơn giản
Tài liệu tham khảo
3. Nội Dung Trình Bày
Tổng Quan MVC
Giới thiệu ASP.NET MVC 3
Cài đặt ứng dụng đơn giản
Tài liệu tham khảo
4. Tổng quan MVC
Tổng Quan
MVC và 3 Layer
Cách thức hoạt động
ASP.NET MVC ROUTING
Controllers
Views
Models
Trang Web đầu tiên
5. Tổng quan MVC
Tổng Quan
MVC và 3 Layer
Cách thức hoạt động
ASP.NET MVC ROUTING
Controllers
Views
Models
Trang Web đầu tiên
6. Tổng Quan
Mô hình MVC: (Models – Views – Controllers)
Chia ứng dụng ra 3 thành phần chính:
1. Model
2. View
3. Controller
Cung cấp mô hình thay thế ASP.NET Web Forms
Namespace: System.Web.Mvc
7. Tổng Quan
Models
Chứa data mà ứng dụng sử dụng
Nhận yêu cầu từ Views Mode Controll
Thực hiên các yêu cầu liên quan đến DB l er
Trả về các giá trị tính toán cho Views
Kiểm tra tính hợp lệ của data
Views
Hiển thị giao diện người dùng
Được tạo ra từ dữ liệu của Models
Controllers View
Xử lý các yêu cầu của user
Chọn Views thích hợp hiển thị cho người dùng
Đồng bộ hóa giữa khung nhìn và mô hình
8. Controll
Model
er
Truyền giá trị từ trả
Nhận kết quả
querystring vào
về từ Model. Lựa
MODEL
Xử lý View từ
chọn data thích
querystring trả
hợp để hiển thị
về kết quả cho View
Controller
9. Tổng quan MVC
Tổng Quan
MVC và 3 Layer
Cách thức hoạt động
ASP.NET MVC ROUTING
Controllers
Views
Models
Trang Web đầu tiên
10. MVC và 3 Layers
Giống nhau:
Cả hai đều tách rời các thành phần riêng biệt
Mỗi thành phần đảm nhiệm mỗi nhiệm vụ khác nhau
Thành phần (3 Layers) Thành phần (MVC)
GUI VIEW, CONTROLLER
DAO MODEL
DTO
BUS
11. MVC và 3 Layers(tt)
Presentation Mode Controll
l er
Business
View
Data
12. MVC và 3 Layers
MVC 3 Layers
View: Presentation:
Chỉ hiển thị giao diện Hiển thị giao diện
Controller: Xử lý sự kiện
Xử lý request, gọi thực Business:
hiện Model, View
Xử lý nghiệp vụ
Model:
Bao gồm DTO Data Access:
Xử lý dữ liệu Xử lý dữ liệu
Kiểm tra tính hợp lệ data
13. Tổng quan MVC
Tổng Quan
MVC và 3 Layer
Cách thức hoạt động
ASP.NET MVC ROUTING
Controllers
Views
Models
Trang Web đầu tiên
14. Cách thức hoạt động
ASP.NET Web Form ASP.NET MVC
Khi người dùng gửi Request Khi người dùng yêu cầu 1
1 trang web trên thanh URL trang web trên thanh URL
Nếu trang web tồn tại trên ổ Địa chỉ trên thanh URL được
cứng => Trả kết quả tương ánh xạ vào 1 hành động của
ứng Controller
Nếu trang web không tồn tại
trên ổ cứng => 404 - Web Not
Found
15. Tổng quan MVC
Tổng Quan
MVC và 3 Layer
Cách thức hoạt động
ASP.NET MVC ROUTING
Controllers
Views
Models
Trang Web đầu tiên
16. ASP.NET MVC ROUTING
Các yêu cầu của user sẽ được ánh xạ vào hành động
tương ứng trong Controller bằng cách nào ?
ASP.NET MVC Routing
Sử dụng route table để xử lý các yêu cầu được gửi đến
Route table được tạo ra khi ứng dụng web lần đầu tiên
chạy
Route table được thiết lập trong file Global.asax
18. Cách thức hoạt động ROUTING
Khi MVC App lần đầu tiên chạy. Application_Start() được
gọi
Application_Start() gọi RegisterRoutes() => Route table
hình thành
Mặc định route table chỉ chứa 1 route (Default)
Default ánh xạ vào {controller}/{action}/{id}
Controller: tên controller
Action: Hành động tương ứng trong Controller
Id: Tham số của action
20. Tổng quan MVC
Tổng Quan
MVC và 3 Layer
Cách thức hoạt động
ASP.NET MVC ROUTING
Controllers
Views
Models
Trang Web đầu tiên
21. Controllers
Kiểm soát cách thức tương tác của user với MVC App
Chứa các control logic
Chỉ định Response nào sẽ trả về cho user khi user gửi
Request
22.
23. Tổng quan MVC
Tổng Quan
MVC và 3 Layer
Cách thức hoạt động
ASP.NET MVC ROUTING
Controllers
Views
Models
Trang Web đầu tiên
24. Views
Ví dụ trên: Index() trả về View.
View chứa HTML và nội dung sẽ trả về cho trình duyệt
25.
26.
27. Tổng quan MVC
Tổng Quan
MVC và 3 Layer
Cách thức hoạt động
ASP.NET MVC ROUTING
Controllers
Views
Models
Trang Web đầu tiên
28. Models
Chứa các thuộc tính tương ứng với các thuộc tính trong
các bảng trong CSDL
Kiểm tra tính hợp lệ của thuộc tính
Các thao tác lên CSDL
29.
30. HTML Helpers
Sử dụng tạo ra các element:
textboxes, dropdownlists, links,…
Ví dụ: Tạo 1 element textbox
Html truyền thống: <input name="username" type="text" />
Html Helper:
MVC 1: @Html.TextBox("username")
MVC 2: @Html.TextBoxFor(model => model.username)
31. HTML Helpers
MVC 1: @Html.TextBox("username")
MVC 2: @Html.TextBoxFor(model => model.username)
Tạo ra: <input name="username" type="text" />
Khác nhau:
TextBoxFor sẽ tạo Name cho trang web (Tên sẽ được đặt trùng
với thuộc tính trong MODEL)
Cho phép sử dụng kiểm tra lỗi tại Compile Time, khi có sự thay
đổi tên thuộc tính trong MODEL
32.
33. Tổng quan MVC
Tổng Quan
MVC và 3 Layer
Cách thức hoạt động
ASP.NET MVC ROUTING
Controllers
Views
Models
Trang Web đầu tiên
34. Trang Web đầu tiên – Chuẩn Bị
Download Asp.NET MV3
http://www.microsoft.com/download/en/details.aspx?id=4211
Update Visual Studio 2010 SP1
http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=23691
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45. Dynamic Type C# 4.0
Kiểu dữ liệu dynamic ứng xử giống kiểu Object
Compiler bỏ qua việc kiểm tra tính hợp lệ của biến
tại thời điểm compile time
Việc kiểm tra tính hợp lệ sẽ xảy ra vào runtime
46.
47.
48.
49. GiỚI THIỆU ASP MVC 3
The Razor View Engine
View bag
Multi View
Model Validation
JavaScript và Ajax
50. ViewBag
Kiểu dữ liệu Dynamic
Được sử dụng để truyền dữ liệu từ Controller
đến View
Không hỗ trợ Intellisense
51.
52.
53.
54. GiỚI THIỆU ASP MVC 3
The Razor View Engine
View bag
Multi View
Model Validation
JavaScript và Ajax
55. GiỚI THIỆU ASP MVC 3
The Razor View Engine
View bag
Multi View
Model Validation
JavaScript và Ajax
56. The Razor View Engine
Được phát triển trong MVC 3
Cho phép tạo ra các giao diện ứng dụng ASP.NET MVC
Giữ nguyên được sự phân chia giữa các thành phần
Thay cho ASPX view Engine <% %>
Cú pháp Razor được bắt đầu bởi @
Hỗ trợ IntelliSense
59. Stored Procedure
Là ngôn ngữ chính giao tiếp giữa ứng dụng và
database
Là hàm cho phép truyền tham số vào và trả về giá
trị
Bao gồm 1 tập lệnh T-SQL để xử lý 1 chức năng
nào đó trong CSDL
60. Stored Procedure – Thuận Lợi
Cho phép thực thi nhanh hơn
Làm giảm bớt vấn đề kẹt đường truyền mạng
Sử dụng trong vấn đề bảo mật của máy
Cho phép điều chỉnh chương trình cho phù hợp
66. Stored Procedure – Ví dụ
Thêm Sinh Viên
Xóa Sinh Viên
Cập Nhật Sinh Viên
Hiển Thi Danh Sách Sinh Viên
67. Entity Framework
Là Object Relational Mapping (ORM) framework
Cho phép developer truy vấn thông tin trên mô
hình đối tượng (concept data model)
Độc lập với mô hình lưu trữ dữ liệu (storage
model)
Ánh xạ cấu trúc bảng trong CSDL và phát sinh các
lớp đối tượng tương ứng (strongly typed entity)
68.
69. Entity Framework
Tự động phát sinh mapping code
Chuyển đổi LINQ query => Database query
Tạo các đối tượng dựa trên kết quả LINQ query
Theo vết các thay đổi trên đối tượng và phát sinh
các truy vấn insert, delete, update
71. Entity Data Model
Bao gồm 3 mô hình:
Storage Mode (store schema definition language (SSDL)): Mô hình
biểu diễn cấu trúc bảng trong CSDL
Conceptual Model (Conceptual Schema Definition Language (CSDL)):
Mô hình biểu diễn các đối tượng kết quả (strongly-typed entities), mối
quan hệ giữa các đối tượng(associations), kế thừa(inheritance)
Mapping Model (mapping specification language (MSL)): Mô hình biểu
diễn việc ánh xạ các trường trong CSDL quan hệ thành các thuộc tính
của đối tượng
Ứng dụng sẽ truy vấn dữ liệu từ Conceptual Model
72.
73. Entity Framework – Lợi ích
Hỗ trợ làm việc với nhiều hệ quản trị CSDL
(MSSQL Server, Oracle, MySQL, DB2,…)
Cho phép duyệt giữa các đối tượng dựa trên quan
hệ khóa chính, khóa ngoại
88. GiỚI THIỆU ASP MVC 3
The Razor View Engine
View bag
Multi View
Model Validation
JavaScript và Ajax
89. GiỚI THIỆU ASP MVC 3
The Razor View Engine
View bag
Multi View
Model Validation
JavaScript và Ajax
90. JavaScript và Ajax
Ajax và các công cụ hỗ trợ hợp lệ trong MVC 3
sử dụng một cách tiếp cận unobtrusive
JavaScript làm cho HTML gọn hơn và ít lộn xộn
hơn, và làm cho nó chuyển đổi ra ngoài dễ dàng
hơn hay tùy chỉnh các thư viện JavaScript
100. Rewrite URL
Ví dụ: link ban đầu
http://localhost/SiteName/Account/Register
Link sau khi rewrite
http://localhost/sitename/account/register
101. Rewrite URL
Để làm được như trên ta sử dụng cách cấu hình
web.config
102. Nội Dung Trình Bày
Tổng Quan MVC
Giới thiệu ASP.NET MVC 3
Cài đặt ứng dụng đơn giản
Tài liệu tham khảo
103. Nội Dung Trình Bày
Tổng Quan MVC
Giới thiệu ASP.NET MVC 3
Cài đặt ứng dụng đơn giản
Tài liệu tham khảo
104. Tài liệu tham khảo
Pro ASP NETMVC3 Framework (Pre-Release)
http://www.asp.net/mvc/mvc3
Thiết kế kiến trúc – TS. Trần Minh Triết
Next Generation Data Access: ADO.Net Entity
Framework - Guy Burstein Senior Consultant
Advantech – Microsoft Division
Getting Started with Entity Framework - Rob
Vettor , C# MVP
https://nndung179.wordpress.com/