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

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

Đ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

2010 Giáo viên hướng dẫn: Nguyễn Kim Tuấn Sinh viên thực hiện: Hồ Văn Kỳ Long Lớp : K31D Đề 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 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) Đề tài thực tập: Tìm hiểu ASP.NET MVC Page 2 - Master pages - Login controls - Themes - Skins - Web parts - Personalization services - Full pre-compilation - 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. - New namespaces System.Web.Abstraction and System.Web.Routing . Đề tài thực tập: Tìm hiểu ASP.NET MVC Page 3 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 Đề tài thực tập: Tìm hiểu ASP.NET MVC Page 4 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. Đề tài thực tập: Tìm hiểu ASP.NET MVC Page 5 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 Đề tài thực tập: Tìm hiểu ASP.NET MVC Page 6 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: Đề tài thực tập: Tìm hiểu ASP.NET MVC Page 7  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 năng ASP.NET 2.0 ASP.NET MVC 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ó Đề tài thực tập: Tìm hiểu ASP.NET MVC Page 8 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. Đề tài thực tập: Tìm hiểu ASP.NET MVC Page 9 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: Đề tài thực tập: Tìm hiểu ASP.NET MVC Page 10 [...]... tin phản hồi Đề tài thực tập: Tìm hiểu ASP.NET MVC Page 17 C Phân tích bài toán: a) Sơ đồ ngữ cảnh: b) Mô hình logic: c) Mô hình cơ sở dữ liệu: Đề tài thực tập: Tìm hiểu ASP.NET MVC Page 18 d) Thiết kế: • CategoryController: - Đoạn code tạo danh mục mới : Đề tài thực tập: Tìm hiểu ASP.NET MVC Page 19 - Đoạn code Edit danh mục: - Đoạn code delete Tin tức Đề tài thực tập: Tìm hiểu ASP.NET MVC Page 20... code Edit danh mục: - Đoạn code delete Tin tức Đề tài thực tập: Tìm hiểu ASP.NET MVC Page 20 • Homecontroller: D Hình ảnh website tin tức: Đề tài thực tập: Tìm hiểu ASP.NET MVC Page 21 Đề tài thực tập: Tìm hiểu ASP.NET MVC Page 22 Đề tài thực tập: Tìm hiểu ASP.NET MVC Page 23 ... thái xử lý và dữ liệu nếu có Trong Solution Explorer click phai chuột vào Models => Add => New Item =>LINQ to SQL Classes Đề tài thực tập: Tìm hiểu ASP.NET MVC Page 14 Đề tài thực tập: Tìm hiểu ASP.NET MVC Page 15 IX Mô hình dữ liệu LINQ to SQL: Những điểm lưu ý khi cài ASP.NET MVC: Thành phần Model không cần thiết phải biết đến các View và Controller cụ thể gắn kết với nó Khi có thay đổi, Model chỉ... Đề tài thực tập: Tìm hiểu ASP.NET MVC Page 11 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 Tìm hiểu. .. Index.aspx 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à : VIII Đề tài thực tập: Tìm hiểu ASP.NET MVC Page... 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: VII Đề tài thực tập: Tìm hiểu ASP.NET MVC Page... View, và Controller lại với nhau thành 3 trong 1 cho dễ quản lý và thao tác đối với người sử dụng Kiến trúc MVC không phải là kiến trúc 3 tầng (3-Tiers Architecture) Mặc dù giữa 2 kiến trúc này có nhiều điểm tương đồng nhưng chúng nói về 2 khía cạnh khác nhau Đề tài thực tập: Tìm hiểu ASP.NET MVC Page 16 PHẦN III: BLOG TIN TỨC A Website tin tức: Là giải pháp tạo lập một trang báo điện tử với khả năng...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 . SQL Classes Đề tài thực tập: Tìm hiểu ASP. NET MVC Page 14 Đề tài thực tập: Tìm hiểu ASP. NET MVC Page 15 IX. Mô hình dữ liệu LINQ to SQL: X. Những điểm lưu ý khi cài ASP. NET MVC: Thành phần. Văn Kỳ Long Lớp : K31D Đề 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 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 phản hồi. Đề tài thực tập: Tìm hiểu ASP. NET MVC Page 17 C. Phân tích bài toán: a) Sơ đồ ngữ cảnh: b) Mô hình logic: c) Mô hình cơ sở dữ liệu: Đề tài thực tập: Tìm hiểu ASP. NET MVC Page 18 d)

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

Từ khóa liên quan

Mục lục

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

  • PHẦN II: ASP.NET MVC

  • PHẦN III: BLOG TIN TỨC

Tài liệu cùng người dùng

Tài liệu liên quan