106
MÔ HÌNH MVC 3 NGUYỄN NGỌC DŨNG – 0961027 NGUYỄN ĐÌNH HUY – 0961058 LÂM CHÁNG VƯỢNG – 0961173 Đại Học Khoa Học Tự Nhiên

Mô Hình MVC 3.0

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(tt)

Model

Controller

View

Presentation

Business

Data

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

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

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

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

GiỚI THIỆU ASP MVC 3

The Razor View Engine View bag Multi View Model Validation JavaScript và Ajax

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

GiỚI THIỆU ASP MVC 3

The Razor View Engine View bag Multi View Model Validation JavaScript và Ajax

GiỚI THIỆU ASP MVC 3

The Razor View Engine View bag Multi View Model Validation JavaScript và Ajax

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

ASPX View Engine

Kết Quả

Kết Quả

The Razor View Engine

Kết Quả

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 – Cú pháp Tạo Stored Procedure

Stored Procedure – Cú pháp Thực thi Stored Procedure

Xóa Stored Procedure

Stored Procedure – Tham số Tham số đầu vào: Cho phép truyền các giá trị vào

trong stored

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ụ

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

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

GiỚI THIỆU ASP MVC 3

The Razor View Engine View bag Multi View Model Validation JavaScript và Ajax

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

GiỚI THIỆU ASP MVC 3

The Razor View Engine View bag Multi View Model Validation JavaScript và Ajax

Model Validation

Ràng buộc và kiểm tra các dữ liệu nhập từ người dùng

Model Validation

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

Model Validation

Model ValidationModel

Model ValidationControler

Model Validation

View

Model ValidationKết quả

GiỚI THIỆU ASP MVC 3

The Razor View Engine View bag Multi View Model Validation JavaScript và Ajax

GiỚI THIỆU ASP MVC 3

The Razor View Engine View bag Multi View Model Validation JavaScript và Ajax

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

JavaScript và Ajax Cấu hình web.config

JavaScript và Ajax

Thư mục quản lí Scripts

JavaScript và Ajax Khai báo sử dụng Script (cách 1)

JavaScript và Ajax Khai báo sử dụng Script (cách 2: dùng Razor)

JavaScript và Ajax Khai báo sử dụng Script (cách 3: sử dụng

@helper )

Khai báo

JavaScript và Ajax Ajax.Beginform

JavaScript và Ajax Ajax.Beginform

JavaScript và Ajax Ajax.Beginform

Rewrite URL

Đặc điểm: Bảo mật Tùy biến address

Rewrite URL Ví dụ: link ban đầu http://localhost/SiteName/Account/Register

Link sau khi rewrite http://localhost/sitename/account/register

Rewrite URL

Để làm được như trên ta sử dụng cách cấu hình web.config

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/

Kết Thúc

CÂU HỎI ?