1. Trang chủ
  2. » Luận Văn - Báo Cáo

Đề tài niên luận Tìm hiểu ASP.NET MVC

23 1,1K 2

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 23
Dung lượng 1,24 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Nếu không có sự tách biệt rõ ràng giữa các thành phần, kết quả cuối cùng thường là mỏng manh và khó hiểu.Untestable: Khi những người thiết kế của ASP.NET lần đầu tiên giới thiệu nền tảng

Trang 1

Giáo viên hướng dẫn:

Nguyễn Kim Tuấn Sinh viên thực hiện:

Đề tài niên luận: Tìm hiểu ASP.NET MVC

TRƯỜNG ĐẠI HỌC KHOA HỌC KHOA CÔNG NGHỆ THÔNG TIN

Trang 2

Mục lục

PHẦN I: GIỚI THIỆU ASP.NET WEBFORM 2

PHẦN II: ASP.NET MVC 5 PHẦN III: BLOG TIN TỨC 17

PHẦN I: GIỚI THIỆU ASP.NET WEBFORM

1. Quá trình phát triển của ASP.NET #2: ASP 1.0, 1.1, 2.0, 3.0, 3.5, 3.5 SP 1:

ASP.NET 1.0: 16, tháng 1, 2002

ASP.NET 1.1: 24, tháng4, 2003

ASP.NET 2.0: 7, tháng 11, 2005, Visual Studio 2005

- New data controls (GridView, FormView, DetailsView)

- Declarative data access (SqlDataSource, ObjectDataSource, XmlDataSource controls)

- Navigation controls (Danh mục kiểm soát)

Trang 3

- New localization technique

- Support for 64-bit processors (Hỗ trợ cho bộ vi xử lý 64-bit)

- Provider class model

ASP.NET 3.0: 21, tháng 11, 2006 : WCF, CardSpace

ASP.NET 3.5: 19, tháng 11, 2007, phát hành với VS 2008 :

- LINQ (Language Integrated Query) đem đến khả năng truy vấn dữ liệu theo cú pháp SQL trực tiếp trong C# hay VB.NET, áp dụng cho tất cả dữ liệu từ đối tượng đến cơ sở dữ liệu quan hệ và XML

- New data control (ListView, DataPager) ListView linh hoạt hơn và có chứa toàn bộ tính năng của Gripview, Datagrip, Repeater trong ASP.NET 2.0 Nó cung cấp các khả năng và chèn xóa, sửa sắp xếp, phân trang Chúng ta hoàn toàn định dạng được việc dữ liệu hiển thị trên ListView mà không cần phải sử dụng thẻ <table> Các template trong ListView rất phong phú và đa dạng Datager cung cấp cho ListView trong việc phân trang

- ASP.NET AJAX bao gồm như là một phần của framework Do đó quá trình xây dựng giao diện người dùng được dễ dàng và trực quan

- Hỗ trợ cho HTTP pipelining và cung cấp nguồn cấp dữ liệu.WCF hỗ trợ cho RSS, JSON, POX and Partial Trust

ASP.NET 3.5 SP1: 11, Tháng 8, 2008:

- Dynamic Data cung cấp một Framework cho phép chúng ta nhanh chóng xây dựng một chức năng ứng dụng driver-data trên Linq to Sql hay entity Framework Nó cũng có thêm nhiều tính linh hoạt cho các DetailsView, GridView trong kiểm tra tính hợp lệ của dữ liệu, hoạt chỉnh lại các mẫu để thay đổi cách hiển thị dữ liệu

- Browser history in an ASP.NET AJAX

- Combine multiple Javascript files into a single file

Trang 4

2. ASP.NET WEBFORM là gì ?

• ASP.NET là Active Server pages.NET (NET ở đây là NET framework)

ASP.NET là một nền tảng ứng dụng web (web application framework) được phát triển và

cung cấp bởi Microsoft

• ASP.NET đã là 1 bước nhảy vọt khi lần đầu tiên xuất hiện nhằm thu hẹp khoảng cách giữa phát triển Window Form hướng đối tượng (có trạng thái) và phát triển web hướng HTML (không có trạng thái)

• Microsoft đã cố gắng che dấu HTTP (không trạng thái) và HTML (vào thời điểm đó không thân thiện với nhiều developer) bằng cách dùng mô hình giao diện như 1 đối tượng control

có cấu trúc họat động phía server

• Mỗi control lưu giữ trạng thái qua các request (sử dụng tính năng ViewState), tự động tạo ra

mã HTML khi cần thiết, và tự động kết nối với các sự kiện phía client (ví dụ như click) với

mã hồi đáp phía server Kết quả WebForm là 1 lớp trừu tượng lớn nhằm chuyển giao diện

có xử lý sự kiện thông qua Web

3. Nhược điểm của ASP.NET WEBFORM

ViewState: Kĩ thuật lưu giữ trạng thái qua các request (ViewState) thường mang lại

kết quả là những khối dữ liệu lớn được chuyển qua lại giữa client và server Nó có thể đạt hàng trăm kilobytes trong nhiều dữ liệu thực, và nó đi qua đi lại với mỗi lần request, làm những người truy cập vào trang web phải chờ 1 thời gian dài khi họ click 1 button hoặc cố gắng di chuyển đến trang kế tiếp ASP.NET bị tình trạng này rất tồi tệ, Ajax là 1 trong các giải pháp được đưa ra để giải quyết vấn đề này

Page life cycle: Kĩ thuật kết nối sự kiện phía client với mã xử lý sự kiện phía server

là 1 phần của page life cycle, có thể cực kì rắc rối và mỏng manh Chỉ có 1 số ít lập trình viên thành công trong việc xử lý hệ thống control trong thời gian thực mà không bị lỗi ViewState hoặc hiểu được rằng 1 số trình xử lý sự kiện không được kích họat 1 cách bí hiểm

Limited control over HTML: Server control tự tạo ra nó như là mã HTML, nhưng

không phải là mã HTML mà bạn muốn Ngoài việc mã HTML của chúng thường không tuân theo tiêu chuẩn web hoặc không sử dụng tốt CSS mà hệ thống các server control còn tạo ra các giá trị ID phức tạp và không đóan trước được, làm khó khăn trong việc sử dụng JavaScript

Ý thức sai về sự tách biệt các thành phần: Mô hình code-behind của ASP.NET

cung cấp 1 giải pháp cho phép ứng dụng đưa mã ra khỏi các dòng HTML vào thành 1 lớp code–behind riêng biệt Điều này đã được thể hiện ở việc tách biệt giữa giao diện với mã xử

lý, nhưng thực tế người lập trình được khuyến khích pha trộn mã xử lý giao diện (xử lý control phía server) với mã xử lý chương trình (xử lý CSDL) trong cùng những lớp code

Trang 5

behind quá lớn Nếu không có sự tách biệt rõ ràng giữa các thành phần, kết quả cuối cùng thường là mỏng manh và khó hiểu.

Untestable: Khi những người thiết kế của ASP.NET lần đầu tiên giới thiệu nền tảng

này, họ có thể đã không lường trước được là việc test tự động sẽ trở thành 1 công đoạn chính của việc phát triển phần mềm ngày nay Không quá ngạc nhiên, cấu trúc mà họ đã thiết kế hòan tòan không thích hợp với việc test tự động

PHẦN II: ASP.NET MVC

I. Giới thiệu ASP.NET MVC

Những năm 70 của thế kỷ XX, tại phòng thí nghiệm Xerox PARC ở Palo Alto Sự ra đời của giao diện đồ họa (Graphical User Interface) và lập trình hướng đối tượng (Object Oriented Programming) cho phép lập trình viên làm việc với những thành phần đồ họa như những đối tượng đồ họa có thuộc tính và phương thức riêng của nó Không dừng lại ở đó, những nhà nghiên cứu ở Xerox PARC còn đi xa hơn khi cho ra đời cái gọi là kiến trúc MVC (viết tắt của Model – View – Controller)

Trong kiến trúc MVC, một đối tượng đồ họa (GUI Component) bao gồm 3 thành phần

cơ bản: Model, View và Controller

Model: có trách nhiệm đối với toàn bộ dữ liệu cũng như trạng thái của đối tượng đồ

họa

View: thể hiện trực quan của Model, hay nói cách khác chính là giao diện của đối

tượng đồ họa

Controller: điều khiển việc tương tác giữa đối tượng đồ họa với người sử dụng

cũng như những đối tượng khác

Trang 6

Mục đích chính của MVC là tách rời phần thể hiện và các xử lý bên trong Trong

nhiều môi trường lập trình hiện đại, nhiều xử lý sự kiện cơ bản đã được hỗ trợ sẵn nên thành phần Controller không còn quan trọng nữa

Một ví dụ của kiến trúc MVC là cách hiện thực của 1 đối tượng GUI Một đối

tượng đồ họa (GUI Component) bao gồm 3 thành phần cơ bản: Model, View, và Controller Model có trách nhiệm đối với toàn bộ dữ liệu cũng như trạng thái của đối tượng đồ họa View chính là thể hiện trực quan của Model, hay nói cách khác chính là giao diện của đối tượng đồ họa Và Controller điều khiển việc tương tác giữa đối tượng đồ họa với người sử dụng cũng như những đối tượng khác

Khi người sử dụng hoặc những đối tượng khác cần thay đổi trạng thái của đối tượng

đồ họa, nó sẽ tương tác thông qua Controller của đối tượng đồ họa Controller sẽ thực hiện việc thay đổi trên Model Khi có bất kỳ sự thay đổi nào ở xảy ra ở Model, nó sẽ phát thông điệp (broadcast message) thông báo cho View và Controller biết Nhận được thông điệp từ Model, View sẽ cập nhật lại thể hiện của mình, đảm bảo rằng nó luôn là thể hiện trực quan chính xác của Model Còn Controller, khi nhận được thông điệp từ Model, sẽ có những tương tác cần thiết phản hồi lại người sử dụng hoặc các đối tượng khác

Lấy ví dụ một GUI Component đơn giản là Checkbox Checkbox có thành phần Model để quản lý trạng thái của nó là check hay uncheck, thành phần View để thể hiện nó với trạng thái tương ứng lên màn hình và thành phần Controller để xử lý những sự kiện khi

có sự tương tác của người sử dụng hoặc các đối tượng khác lên Checkbox Khi người sử dụng nhấn chuột vào Checkbox, thành phần Controller của Checkbox sẽ xử lý sự kiện này, yêu cầu thành phần Model thay đổi dữ liệu trạng thái Sau khi thay đổi trạng thái, thành phần Model phát thông điệp đến thành phần View và Controller Thành phần View của

Trang 7

Checkbox nhận được thông điệp sẽ cập nhật lại thể hiện của Checkbox, phản ánh chính xác trạng thái Checkbox do Model lưu giữ Thành phần Controller nhận được thông điệp do Model gởi tới sẽ có những tương tác phản hồi với người sử dụng nếu cần thiết.

II. Các điểm cần lưu ý:

1/ MVC dành cho lâp trình giao diện người dùng

2/ MVC tách biệt 3 thao tác chính khi lâp trình giao diện:

+ Xây dựng dữ liệu (sẽ trình bày trên giao diện)

+ Trình bày giao diện với dữ liệu

+ Đáp trả các thao tác của người dùng

3/ Lợi ích của MVC

- Lợi ích duy nhất và quan trọng nhất khi sử dụng MVC là sự rõ nghĩa trong mã nguồn

III. Các đặc tính của ASP.NET MVC

• Tách rõ ràng các mối liên quan, mở khả năng test TDD (test driven developer) Có thể test unit trong ứng dụng mà không cần phải chạy Controllers cùng với tiến trình của ASP.NET

và có thể dùng bất kỳ một unit testing framework nào như NUnit, MBUnit, MS Test, v.v…

• Có khả năng mở rộng, mọi thứ trong MVC được thiết kế cho phép dễ dàng thay thế/tùy biến ( ví dụ: có thể lựa chọn sử dụng engine view riêng, routing policy, parameter serialization, v.v…)

• Bao gồm một ánh xạ URL mạnh mẽ cho phép xây dựng ứng dụng với những URL sạch, các URL không cần cs phần mở rộng (ví dụ: có thể ánh xạ địa chỉ /Products/Edit/4 để thực hiện hành động “Edit” của lớp điều khiển ProductControllers hoặc ánh xạ địa chỉ /Blog/SomeTopic để thực hiện hành động “Display Topic” của lớp điều khiển BlogEngineController )

• ASP.NET MVC Framework cũng hỗ trợ những file ASP.NET như ASPX ASCX và Master, đánh dấu các tập tin này như một “view template” ( có thể dễ dàng dùng các tính năng của ASP.NET như lồng các trang Master, <%= %> snippets, mô tả server controls, template, data-binding, localization, v.v… ) Tuy nhiên sẽ không còn postback và interactive back server và thay vào đó là interactive end-user tới một Controller

class ( không còn viewstate, page lifecycle )

• ASP.NET MVC Framework hỗ trợ đầy đủ các tính năng bảo mật của ASP.NET như forms/windows authenticate, URL authorization, membership/roles, output và data caching, session/profile state, configuration system, provider architecture v.v…

IV. Sự khác biệt với WEBFORM:

Trang 8

 ASP.NET WebForm sử dụng ViewState để quản lý, các trang ASP.NET đều có lifecycle, postback và dùng các web controls, các events để thực hiện các hành động cho UI khi có sự tương tác với người dùng nên hầu hết ASP.NET WebForm xử lý chậm

 ASP.NET MVC Framework chia ra thành 3 phần: Models, Views, Controllers Mọi tương tác của người dùng với Views sẽ được thực hiện hành động trong Controllers, không còn postback, không còn lifecycle không còn event

 Việc kiểm tra ( test ), gỡ lỗi ( debug ) với ASP.NET đều phải chạy tất cả các tiến trình của ASP.NET và mọi sự thay đổi ID của bất kỳ controls nào cũng ảnh hưởng đến ứng dụng Đối với ASP.NET MVC Framework thì việc có thể sử dụng các unit test có thể thẩm định rất dễ dàng các Controller thực hiện như thế nào

Tính

Kiến trúc chương trình Kiến trúc mô hình WebForm =>

Business =>Database

Kiến trúc sử dụng việc phân chia chương trình thành Controllers, Models, Views

Cú pháp chương trình Sử dụng cú pháp của webform, tất các

sự kiện và controls do server quản lý

Các sự kiện được điều khiển bởi controllers, các controls không do server do server quản lý

Truy cập dữ liệu Sử dụng hầu hết các công nghệ truy

cập dữ liệu trong ứng dụng

Phần lớn dùng LINQ to SQL class để tạo

mô hình truy cập đối tượng

Debug Debug chương trình phải thực hiện tất

cả bao gồm các lớp truy cập dữ liệu,

sự hiển thị, điều khiển các controls

Debug có thể sử dụng các unit test kiểm tra các phương thức trong controller

Tốc độ phân tải Tốc độ phân tải chậm khi trong

trang có quá nhiều các controls vì ViewState quá lớn

Phân tải nhanh hơn do không phải quản lý ViewState để quản lý các control trong trang

Tương tác với javascript Tương tác với javascript khó khăn vì

các controls được điều khiển bởi server

Tương tác với javascript dễ dàng vì các đối tượng không do server quản lý điều khiển không khó

Trang 9

URL Address Cấu trúc địa chỉ URL có dạng

<filename>.aspx?&<các tham số>

Cấu trúc địa chỉ rành mạch theo dạng Controllers/Action/Id

V. Tạo PROJECT với ASP.NET MVC Web Application:

Trong chương trình Visual Studio 2008 đã cài đặt ASP.NET MVC Framework :File => New Project => Windows C# => ASP.NET MVC Web Application

Trong mục Solution Explorer có 3 thư mục mặc định : Model, Views, Controllers chứa các đối tượng tương ứng với các thành phần Model ,View, Controllers trong mô hình MVC

Trang 10

Chạy ứng dụng bằng cách ấn F5 Nếu là ứng dụng mới tạo lần đầu thì sẽ thông báo hỏi cho phép mở chế độ debug hay không? Nếu đồng ý chọn “ Modify the web.config file to enable debugging”, không muốn thì chọn without debugging.

Kết quả chạy ứng dụng:

Trang 11

VI. Tìm hiểu CONTROLLER:

Controller là tầng trung gian giữa Model và View Controller được giao nhiệm vụ nhận các yêu cầu từ phía máy khách Một yêu cầu từ phía máy khách được thực hiện bởi một chức năng logic thích hợp từ thành phần Model và sau đó sinh ra kết quả cho người dùng và được thành phần View hiển thị Tùy theo cách thiết kế lớp mà chúng ta thường thấy Controller gồm:

+ Front Controller + Dispatcher + Action Mapping + Action Filter + Action: lớp xử lý các sự kiện chính, nơi dẫn đến application flow chủ yếu (Main Event Handler)

+ Response + Request: xử lý một phần user input ở mức GET, POST và PUT + Session: xử lý một phần user input ở mức SESSION

Khi giao tiếp với Model, Controller sẽ tiến hành 2 cách :

+ Extract dữ liệu hay state + Update dữ liệu

Trang 12

Một controller là một class (C# hay VB class) Ứng dụng ASP.NET MVC Web Application luôn tồn tại 2 controller là AccountController.cs và HomeController.cs.

Trong HomeController.cs có 2 phương thức là Index() và About() Hai phương thức này là 2 action trong controller HomeController.cs nó thực hiện khi được gọi bằng địa chỉ /Home/Index

và /Home/About

VII. Tìm hiểu VIEW:

View hiển thị các thông tin người dùng của ứng dụng và được giao nhiệm vụ cho việc nhận các dữ liệu Tất cả các nghiệp vụ logic được thực thi ở Model Dữ liệu vào từ người dùng sẽ thông qua View được kiểm tra ở Model trước khi lưu vào cơ sở dữ liệu Việc truy xuất, xác nhận và lưu

dữ liệu là một phần của Model

Một View chứa các thẻ HTML và được trả về cho browser Trong mô hình MVC thì một view tương ứng với một trang aspx trong WebForm

View phải được tạo đúng vị trí đường dẫn Ví dụ với controller HomeController.cs thì hành động HomeController.Index() trả về một view nằm ở vị trí đường dẫn \Views\Home\Index.aspx và HomeController.About() sẽ trả về một view nằm ở vị trí đường dẫn \Views\Home\About.aspx

View About.aspx:

Trang 13

VIII. Tìm hiểu MODEL:

Model được giao nhiệm vụ cung cấp dữ liệu cho cơ sở dữ liệu và lưu trữ dữ liệu vào các kho chứa

dữ liệu Tất cả các nghiệp vụ logic được thực thi ở Model Dữ liệu vào từ người dùng sẽ thông qua View được kiểm tra ở Model trước khi lưu vào cơ sở dữ liệu Việc truy xuất , xác nhận và lưu trữ

dữ liệu là một phần của Model

Model có thể là :

Ngày đăng: 12/04/2015, 14:13

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w