Upload
dung-nguyen
View
7.286
Download
3
Embed Size (px)
DESCRIPTION
Mô hình MVC 3.0 - HCMUS Có chỉnh sửa gì nhớ ghi rõ nguồn là Nguyễn Ngọc Dũng - HCMUS
Citation preview
MÔ HÌNH MVC 3NGUYỄN NGỌC DŨNG – 0961027NGUYỄN ĐÌNH HUY – 0961058LÂM CHÁNG VƯỢNG – 0961173
Đại Học Khoa Học Tự Nhiên
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
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
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
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
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
Tổng Quan Models
Chứa data mà ứng dụng sử dụng Nhận yêu cầu từ Views Thực hiên các yêu cầu liên quan đến DB 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 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
Model
Controller
View
Controller
View
Model
Request
Response
HTML
HTTP
Truyền giá trị từ querystring vào
MODEL Xử lý data từ querystring trả về kết quả cho
Controller
Nhận kết quả trả về từ Model. Lựa chọn View thích hợp để hiển thị
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
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
MVC và 3 Layers
View: Chỉ hiển thị giao diện
Controller: Xử lý request, gọi thực
hiện Model, View Model:
Bao gồm DTO Xử lý dữ liệu Kiểm tra tính hợp lệ data
Presentation: Hiển thị giao diện Xử lý sự kiện
Business: Xử lý nghiệp vụ
Data Access: Xử lý dữ liệu
MVC 3 Layers
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
Cách thức hoạt động
Khi người dùng gửi Request 1 trang web trên thanh URL
Nếu trang web tồn tại trên ổ cứng => Trả kết quả tương ứng
Nếu trang web không tồn tại trên ổ cứng => 404 - Web Not Found
Khi người dùng yêu cầu 1 trang web trên thanh URL
Địa chỉ trên thanh URL được ánh xạ vào 1 hành động của Controller
ASP.NET Web Form ASP.NET MVC
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
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
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
Ví dụ http://localhost:51013/Store/Details/386
Controller
Action
ID
Code execute
StoreController. Details(386)
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
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
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
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
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
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)
} Điểm
khác biệt ?
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
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
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 SP1http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=23691
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
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
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
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
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
Stored Procedure – Tham số Tham số đầu ra: dùng để nhận kết quả trả về từ
stored. Sử dụng từ khóa OUTPUT để xác định tham số
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
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)
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
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
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
Quản Lý Sinh Viên – Entity Framework
Thêm Sinh Viên Xóa Sinh Viên Cập Nhật Sinh Viên Hiển Thị Sinh Viên
Multi View
Cho phép chọn các view engine muốn làm việc hộp thoại New Project cho phép xác định view
engine mặc định cho một project
Multi View
Cho phép chọn các view engine muốn làm việc hộp thoại New Project cho phép xác định view
engine mặc định cho một project
Model Validation
using System.ComponentModel.DataAnnotations Thiết lập kiểm tra dữ liệu tại Model Cập nhật Controler Hiển thị thông tin hợp lệ hoặc thông báo lỗi cho
người dùng
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
Rewrite URL Ví dụ: link ban đầu http://localhost/SiteName/Account/Register
Link sau khi rewrite http://localhost/sitename/account/register
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
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
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/