Những nguyên lý sáng tạo được áp dụng trong mô hình MVC

23 525 0
Những nguyên lý sáng tạo được áp dụng trong mô hình 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

GS.TSKH HOÀNG KIẾM NHẬN XÉT CỦA GIÁO VIÊN LỜI NÓI ĐẦU HỌC VIÊN: Trần Văn Hanh 1 GS.TSKH HOÀNG KIẾM Nhà nước ta đang chú trọng phát triển kinh tế tri thức. Việc phát triển kinh tế tri thức đối với nước ta gặp rất nhiều khó khăn và thách thức. Vì trình độ dân trí còn thấp. Việc định hướng phát triển kinh tế trí thức là nhận thức vô cùng đúng đắn của Đảng và Nhà nước. Xong Đảng ta đang gặp nhiều khó khăn mà vấn đề chủ chốt ở đây là yếu tố con người. Chúng ta không thể phát triển kinh tế tri thức với những con người còn hạn chế về mặt tri thức, chính vì vậy chúng ta cần tập trung vào phát triển nguồn nhân lực. Việc đào tạo nguồn nhân lực tri thức là yếu tố sống còn của kinh tế nước nhà. Nhưng đào tạo thế nào cũng là một vấn đề. Công việc ngày càng phức tạp, mà những kiến thức chúng ta học ở phổ thông hay đại học là chưa đủ để giải quyết những vấn đề đó. Chúng ta cần sáng tạo và tư duy tốt thì mới giải quyết được những vẫn đề ngày càng phức tạp hơn. Nhưng không phải ai trong chúng ta cũng có khả năng sáng tạo, chính vì vậy chúng ta cần tìm hiểu xem làm thế nào để sáng tạo. Khi khả năng sáng tạo của chúng ta được đánh thức chúng ta sẽ giải quyết được rất nhiều vấn đề và tạo ra nhiều sản phẩm có ích cho xã hội. Nhận thấy những nguyên lý sáng tạo là vô cùng thực tiễn và được áp dụng rộng rãi trong nhiều lĩnh vực, sau quá trình học tập, làm việc và nghiên cứu em quyết định chọn đề tài: “Những nguyên lý sáng tạo được áp dụng trong mô hình MVC”. Vì nó rất gần gũi đối với em trong công việc lập trình hàng ngày. Em xin cảm ơn những bài học quý giá và những kinh nghiệm thực tế mà thầy Hoàng Kiếm đã dạy em trong quá trình lên lớp và những tài liệu thầy cho để tham khảo. Những bài học của thầy chắc chắn sẽ theo em trong suốt quá trình làm việc. Và em mong rằng bằng những tri thức thầy có cùng với sự nhiệt huyết của thầy, thầy sẽ tiếp tục giảng dạy, đào tạo ra đội ngũ tri thức có khả năng tư duy và sáng tạo góp phần vào sự nghiệp phát triển kinh tế chung của nước nhà. Em xin cám ơn thầy! MỤC LỤC HỌC VIÊN: Trần Văn Hanh 2 GS.TSKH HOÀNG KIẾM PHẦN I: Mô hình MVC 4 1. Tổng quát về mô hình MVC 4 1.1 Giới thiệu 4 1.2 Các thành phần 4 1.3 Các tính năng của mô hình MVC 6 1.4 Ưu điểm 8 1.5 Nhược điểm 8 2. Lựa chọn áp dụng mô hình MVC trong xây dựng ứng dụng 9 2.1 Lợi ích của việc xây dựn ứng dụng trên mô hình MVC 9 2.2 Lợi ích của việc xây dựng ứng dụng trên mô hình Web Form 10 3. So sánh mô hình MVC với mô hình 3 lớp 11 3.1 Điểm giống 11 3.2 Điểm khác 12 4. MVC làm việc như thế nào 13 5. Sự khác biệt giữa MVC và Web Form 14 PHẦN II: Các nguyên tắc sáng tạo 17 PHẦN III: Những nguyên tắc sáng tạo được áp dụng trong mô hình MVC 24 1. Nguyên tắc lấy ra, bỏ đi, rút bớt 24 2. Nguyên tắc kết hợp 24 3. Nguyên tắc phân đoạn 24 4. Nguyên tắc chất lượng nội 24 5. Nguyên tắc loại bỏ và tái sử dụng 25 6. Nguyên tắc trung gian 25 7. Nguyên tắc vạn năng 25 TÀI LIỆU THAM KHẢO 26 PHẦN I: Mô hình MVC 1. Tổng quan về mô hình MVC 1.1 Giới thiệu về MVC Mô hình MVC (Model - View - Controller) là một kiến trúc phần mềm hay mô hình thiết kế được sử dụng trong kỹ thuật phần mềm. Nó giúp cho các developer tách ứng dụng của họ ra 3 thành phần khác nhau Model, View và Controller. Mỗi thành phần có một nhiệm vụ riêng biệt và độc lập với các thành phần khác. HỌC VIÊN: Trần Văn Hanh 3 GS.TSKH HOÀNG KIẾM 1.2 Các thành phần Models: Các đối tượng Models là một phần của ứng dụng, các đối tượng này thiết lập logic của phần dữ liệu của ứng dụng. Thông thường, các đối tượng model lấy và lưu trạng thái của model trong CSDL. Ví dụ như, một đối tượng Product (sản phẩm) sẽ lấy dữ liệu từ CSDL, thao tác trên dữ liệu và sẽ cập nhật dữ liệu trở lại vào bảng Products ở SQL Server. Trong các ứng dụng nhỏ, model thường là chỉ là một khái niệm nhằm phân biệt hơn là được cài đặt thực thụ, ví dụ, nếu ứng dụng chỉ đọc dữ liệu từ CSDL và gởi chúng đến view, ứng dụng khong cần phải có tầng model và các lớp lien quan. Trong trường hợp này, dữ liệu được lấy như là một đối tượng model (hơn là tầng model). Views: Views là các thành phần dùng để hiển thị giao diện người dùng (UI). Thông thường, view được tạo dựa vào thông tin dữ liệu model. Ví dụ như, view dùng để cập nhật bảng Products sẽ hiển thị các hộp văn bản, drop-down list, và các check box dựa trên trạng thái hiện tại của một đối tượng Product. HỌC VIÊN: Trần Văn Hanh 4 GS.TSKH HOÀNG KIẾM Controllers: Controller là các thành phần dùng để quản lý tương tác người dùng, làm việc với model và chọn view để hiển thị giao diện người dùng. Trong một ứng dụng MVC, view chỉ được dùng để hiển thị thông tin, controller chịu trách nhiệm quản lý và đáp trả nội dung người dùng nhập và tương tác với người dùng. Ví dụ, controller sẽ quản lý các dữ liệu người dùng gởi lên (query-string values) và gởi các giá trị đó đến model, model sẽ lấy dữ liệu từ CSDL nhờ vào các giá trị này. Mẫu MVC giúp bạn tạo được các ứng dụng mà chúng phân tách rạch ròi các khía cạnh của ứng dụng (logic về nhập liệu, logic xử lý tác vụ và logic về giao diện). Mẫu MVC chỉ ra mỗi loại logic kể trên nên được thiếp lập ở đâu trên ứng dụng. Logic giao diện (UI logic) thuộc về views. Logic nhập liệu (input logic) thuộc về controller. Và logic tác vụ (Business logic – là logic xử lý thông tin, mục đích chính của ứng dụng) thuộc về model. Sự phân chia này giúp bạn giảm bớt được sự phức tạp của ứng dụng và chỉ tập trung vào mỗi khía cạnh cần được cài đặt ở mỗi thời điểm. Ví dụ như bạn chỉ cần tập trung vào giao diện (views) mà không phải quan tâm đến logic xử lý thông tin của ứng dụng. Để quản lý sự phức tạp của ứng dụng, mẫu MVC giúp cho chúng ta có thể kiểm thử ứng dụng dễ dàng hơn hẳn so với khi áp dụng mẫu Web Forms. Ví dụ, trong một ứng dụng ASP.NET Web Forms, một lớp thường được sử dụng để hiển thị thông tin xuất ra cho người dùng và đồng thời xử lý thông tin người dùng nhập. Việc xây dựng các bộ test tự động cho ứng dụng Web Forms là rất phức tạp, bởi để kiểm thử mỗi trang web, bạn phải khởi tạo đối tượng trang, khởi tạo tất cả các control được sử dụng trong trang và các lớp phụ thuộc trong ứng dụng. Và bởi vì có quá nhiều lớp cần được khởi tạo để chạy được trang, thật khó để có thể viết các test chỉ tập trung vào một khía cạnh nào đó của ứng dụng. Và vì thế, kiểm thử đối với các ứng dụng dứa trên nền tảng Web Forms sẽ khó khăn hơn nhiều so với khi áp dụng trên ứng dụng MVC. Hơn thế nữa, việc kiểm thử trên nền tảng Web HỌC VIÊN: Trần Văn Hanh 5 GS.TSKH HOÀNG KIẾM Forms yêu cầu phải sử dụng đến web server. Nền tảng MVC phân tách các thành phần và sử dụng các interface (khái niệm giao diện trong lập trình hướng đối tượng), và nhờ đó có thể kiểm thử các thành phần riêng biệt trong tình trạng phân lập với các yếu tố còn lại của ứng dụng. Sự phân tách rạch ròi ba thành phần của ứng dụng MVC còn giúp cho việc lập trình diễn ra song song. Ví dụ như một lập trình viên làm việc với view, lập trình viên thứ hai lo cài đặt logic của controller và lập trình viên thứ ba có thể tập trung vào logic tác vụ của model tại cùng một thời điểm. 1.3 Các tính năng của mô hinh MVC Tách bạch các tác vụ của ứng dụng (logic nhập liệu, business logic, và logic giao diện), dễ dàng kiểm thử và mặc định áp dụng hướng phát triển TDD. Tất cả các tính năng chính của mô hình MVC được cài đặt dựa trên interface và được kiểm thử bằng cách sử dụng các đối tượng mocks, mock object là các đối tượng mô phỏng các tính năng của những đối tượng thực sự trong ứng dụng. Bạn có thể kiểm thử unit-test cho ứng dụng mà không cần chạy controller trong tiến trình ASP.NET, và điều đó giúp unit test được áp dụng nhanh chóng và tiện dụng. Bạn có thể sử dụng bất kỳ nền tảng unit-testing nào tương thích với nền tảng .NET. MVC là một nền tảng khả mở rộng (extensible) & khả nhúng (pluggable). Các thành phần của ASP.NET MVC được thiết kể để chúng có thể được thay thế một cách dễ dàng hoặc dễ dàng tùy chỉnh. Bạn có thể nhúng thêm view engine, cơ chế định tuyến cho URL, cách kết xuất tham số của action-method và các thành phần khác. ASP.NET MVC cũng hỗ trợ việc sử dụng Dependency Injection (DI) và Inversion of Control (IoC). DI cho phép bạn gắn các đối tượng vào một lớp cho lớp đó sử dụng thay vì buộc lớp đó phải tự mình khởi tạo các đối tượng. IoC quy định rằng, nếu một đối tượng yêu cầu một đối tượng khác, đối tượng đầu sẽ lấy đối tượng thứ hai từ một nguồn bên ngoài, ví dụ như từ tập tin cấu hình. Và nhờ vậy, việc sử dụng DI và IoC sẽ giúp kiểm thử dễ dàng hơn. HỌC VIÊN: Trần Văn Hanh 6 GS.TSKH HOÀNG KIẾM ASP.NET MVC có thành phần ánh xạ URL mạnh mẽ cho phép bạn xây dựng những ứng dụng có các địa chỉ URL xúc tích và dễ tìm kiếm. Các địa chỉ URL không cần phải có phần mở rộng của tên tập tin và được thiết kế để hỗ trợ các mẫu định dạng tên phù hợp với việc tối ưu hóa tìm kiếm (URL) và phù hợp với lập địa chỉ theo kiểu REST. Hỗ trợ sử dụng đặc tả (các thẻ) của các trang ASP.NET(.aspx), điều khiển người dùng (.ascx) và trang master page (.marter). Bạn có thể sử dụng các tính năng có sẵn của ASP.NET như là sử dụng lồng các trang master page, sử dụng in-line expression (<%= %>), sử dụng server controls, mẫu, data-binding, địa phương hóa (localization) và hơn thế nữa. Hỗ trợ các tính năng có sẵn của ASP.NET như cơ chế xác thực người dùng, quản lý thành viên, quyền, output caching và data caching, seession và profile, quản lý tình trạng ứng dụng, hệ thống cấu hình… ASP.NET MVC 3 còn bổ sung một view engine mới là Razor View Engine cho phép thiết lập các view nhanh chóng, dễ dàng và tốn ít công sức hơn so với việc sử dụng Web Forms view engine. 1.4 Ưu điểm Phát triển phần mềm: Có tính chuyên nghiệp hóa, có thể chia cho nhiều nhóm được đào tạo nhiều kỹ năng khác nhau, từ thiết kế mỹ thuật cho đến lập trình đến tổ chức database. - Bảo trì: Với các lớp được phân chia theo như đã nói, thì các thành phần của một hệ thống dễ được thay đổi, nhưng sự thay đổi có thể được cô lập trong từng lớp, hoặc chỉ ảnh hưởng đến lớp ngay gần kề của nó, chứ không phát tán náo loạn trong cả chương trình. - Mở rộng: Với các lớp được chia theo ba lớp như đã nói, việc thêm chức năng vào cho từng lớp sẽ dễ dàng hơn là phân chia theo cách khác. - Tiện về bug lỗi, kiểm soát code, workflow dễ dàng hơn và nhiều người có thể tham gia phát triển cùng trên 1 module. HỌC VIÊN: Trần Văn Hanh 7 GS.TSKH HOÀNG KIẾM 1.5 Nhược điểm - Đối với dự án nhỏ: Cồng kềnh, tốn thời gian phát triển. - Trade-off là performance, do tốn thời gian trung chuyển DTO (Data Transfer Object) giữa các layers 2. Lựa chọn áp dụng MVC trong xây dựng ứng dụng Bạn cần phải xem xét kỹ càng việc áp dụng mô hình ASP.NET MVC hay mô hình ASP.NET Web Forms khi xây dựng một ứng dụng. Mô hình MVC không phải là mô hình thay thế cho Web Forms, bạn có thể dùng một trong hai mô hình. Trước khi quyết định sử dụng MVC hay Web Forms cho một web site cụ thể, bạn cần phải phân tích lợi ích khi chọn một trong hai hướng. 2.1 Lợi ích của ứng dụng web dựa trên mô hình MVC Nền tảng ASP.NET MVC mang lại những lợi ích sau: Dễ dàng quản lý sự phức tạp của ứng dụng bằng cách chia ứng dụng thành ba thành phần model, view, controller Nó không sử dụng view state hoặc server-based form. Điều này tốt cho những lập trình viên muốn quản lý hết các khía cạnh của một ứng dụng. Nó sử dụng mẫu Front Controller, mẫu này giúp quản lý các requests (yêu cầu) chỉ thông qua một Controller. Nhờ đó bạn có thể thiết kế một hạ tầng quản lý định tuyến. Để có nhiều thông tin hơn, bạn nên xem phần Front Controller trên web site MSDN HỌC VIÊN: Trần Văn Hanh 8 GS.TSKH HOÀNG KIẾM Hỗ trợ tốt hơn cho mô hình phát triển ứng dụng hướng kiểm thử (TDD) Nó hỗ trợ tốt cho các ứng dụng được xây dựng bởi những đội có nhiều lập trình viên và thiết kế mà vẫn quản lý được tính năng của ứng dụng 2.2 Lợi ích của ứng dụng được xây dựng trên nền tảng Web Form Nó hỗ trợ cách lập trình hướng sự kiện, quản lý trạng thái trên giao thức HTTP, tiện dụng cho việc phát triển các ứng dụng Web phục vụ kinh doanh. Các ứng dụng trên nền tảng Web Forms cung cấp hàng tá các sự kiện được hỗ trợ bởi hàng trăm các server controls. Sử dụng mẫu Page Controller. Xem thêm ở mục Page Controller trên MSDN Mô hình này sử dụng view state hoặc server-based form, nhờ đó sẽ giúp cho việc quản lý trạng thái các trang web dễ dàng. Nó rất phù hợp với các nhóm lập trình viên quy mô nhỏ và các thiết kế, những người muốn tận dụng các thành phần giúp xây dựng ứng dụng một cách nhanh chóng. Nói tóm lại, áp dụng Web Forms giúp giảm bớt sự phức tạp trong xây dựng ứng dụng, bởi vì các thành phần (lớp Page, controls,…) được tích hợp chặc chẽ và thường thì giúp bạn viết ít code hơn là áp dụng theo mô hình MVC. HỌC VIÊN: Trần Văn Hanh 9 GS.TSKH HOÀNG KIẾM 3. So sánh mô hình MVC với mô hình 3 lớp Hình 2: Mô hình MVC 3.1 Điểm giống Tách rời programming core/business logic ra khỏi những phụ thuộc về tài nguyên và môi trường. Presentation Layer (PL) thể hiện giống như chức năng của View và Controller. Business Layer (BL) và Data Access Layer (DL) thể hiện giống như chức năng HỌC VIÊN: Trần Văn Hanh 10 [...]... bằng phóng xạ ion hóa - Sử dụng ô xi ion hóa 39 Môi trường khí trơ - Thay môi trường thường bằng môi trường khí trơ - Thực hiện quá trình trong chân không 40 Vật liệu composite - Thay vật liệu đồng nhất bằng vật liệu composite HỌC VIÊN: Trần Văn Hanh 20 GS.TSKH HOÀNG KIẾM PHẦN III: Những nguyên lý đã được áp dụng trong mô hình MVC 1 Nguyên tắc lấy ra bỏ đi, rút bớt - Mô hình MVC đã loại bỏ đi post-back... bộ khung thật tốt 1 lần duy - nhất sau đó sử dụng bộ khung này để viết cho những trang web khác Nhờ áp dụng nguyên tác sáng tạo này mà viết 1 trang web trở lên dễ dàng hơn, hiệu xuất làm việc cao hơn Khi 1 bộ khung áp dụng được cho tất cả các trang web 6 Nguyên tắc sử dụng trung gian - Đối với mô hình MVC chúng ta có thể sử dụng các thư viện trung gian, đã được viết sẵn, để phục vụ cho nhu cầu lập trình,... liệu, nhóm viết View thì thiết kế thật tốt tạo giao diện trực quan đối với người dùng, nhóm viết Controller thì thực hiện tốt các thao tác nghiệp vụ và điều hướng hiển thị của View 5 Nguyên tắc loại bỏ và tái sử dụng - Loại bỏ những phần riêng, phần chi tiết trong mô hình MVC, chỉ giữ lại những - bộ khung Frammework trong mô hình nhằm mục đích tái sử dụng Nhờ nguyên tắc này mà lập trình viên chỉ cần... góc độ này, thì MVC tương đương với 3-layer (tất nhiên có chồng chéo như hình vẽ) 3.2 Điểm khác Trong mô hình 3 lớp, quá trình đi theo chiều dọc, bắt đầu từ PL, sang BL, rồi tới DL, và từ DL, chạy ngược lại BL rồi quay ra lại PL Hình 3: Mô hình 3 lớp Còn trong mô hình MCD, dữ liệu được nhận bởi View, View sẽ chuyển cho Controller cập nhật vào Model, rồi sau đó dữ liệu trong Model sẽ được đưa lại cho... Database Controllers Sử dụng cú pháp của Các sự kiện được điều WebForm, tất cả các sự khiển bởi controllers, các Cú pháp kiện và controls do server controls không do server chương trình quản lý quản lý HỌC VIÊN: Trần Văn Hanh 14 GS.TSKH HOÀNG KIẾM Sử dụng hầu hết các công Phần lớn dùng LINQ và Truy cập dữ nghệ truy cập dữ liệu trong SQL class để tạo mô hình liệu ứng dụng truy cập đối tượng Debug phải... GS.TSKH HOÀNG KIẾM - Chính vì sử dụng mô hình MVC nên trong tương lai hô mình MVC sẽ rất phổ biến và có khả năng thay thế cho phần mềm TÀI LIỆU THAM KHẢO 1 Giáo trình của GS TSKH Hoàng Kiếm 2 GS-PTS Phan Dũng - TRUNG TÂM SÁNG TẠO KHOA HỌC KỸ THUẬT (TSK) 3 http://www.asp.net/learn /mvc/ tutorial-01-cs.aspx 4 Tài liệu ASP.NET MVC 4 in Action 5 Tài liệu Professtional ASP.NET MVC 4 HỌC VIÊN: Trần Văn Hanh 23... luồng xử lý này có hình tam giác HỌC VIÊN: Trần Văn Hanh 11 GS.TSKH HOÀNG KIẾM 4 MVC làm việc như thế nào Nhìn lại sơ đồ phía trên, ta thấy có mũi tên nét liền và những mũi tên nét đứt Những mũi tên nét đứt được hình thành trên quan điểm của người dùng mà không phải là của những nhà thiết kế phần mềm thực sự Do đó chúng ta chỉ quan tâm đến những mũi tên còn lại Đây là một cách đơn giản để mô tả lại... thể 14 Làm tròn - Thay những vật thể thẳng hoặc bề mặt bằng phẳng thành những mặt cong ; thay thể hình lập phương thành hình cầu - Sử dụng con lăn, vật hình xoắn ốc - Thay thế chuyển động thẳng bằng chuyển động quay ; tận dụng lực li tâm 15 Năng động - Tạo một vật thể hoặc môi trường của nó tự động điều chỉnh tới chế độ tối ưu tại mỗi trạng thái hoạt động - Chia vật thể thành những phần nhỏ mà có thể... dụng Đối với MVC thì việc đó có thể sử dụng các unit test có thể thẩm định rất dễ dàng các Controllers thực hiện như thế nào - Sau đây là bảng so sánh các tính năng của ASP.net WebForm với ASP.net MVC Các tính năng ASP.net WebForm ASP.net MVC Kiến trúc sử dụng việc Kiến trúc mô hình phân chia chương trình Kiến trúc WebForm –> Bussiness –> thành: Models, Views, chương trình Database Controllers Sử dụng. .. từ giao diện đó đến thẳng ứng dụng Không còn tồn tại khái niệm lifecycle, viewstate trong mô hình MVC, dễ dàng cho lập trình viên hơn 2 Nguyên tắc kết hợp - Kết hợp lại các thành phần của phần mềm có cùng chức năng nghiệp vụ vào cùng 1 lớp, để dễ dàng quản lý, chỉnh sửa, phát triển Và có tính bảo mật cao - hơn Trong View chứa tất cả các thông tin cho người dùng của ứng dụng Giữ - nhiệm vụ nhận thông . chọn áp dụng MVC trong xây dựng ứng dụng Bạn cần phải xem xét kỹ càng việc áp dụng mô hình ASP.NET MVC hay mô hình ASP.NET Web Forms khi xây dựng một ứng dụng. Mô hình MVC không phải là mô hình. khác 12 4. MVC làm việc như thế nào 13 5. Sự khác biệt giữa MVC và Web Form 14 PHẦN II: Các nguyên tắc sáng tạo 17 PHẦN III: Những nguyên tắc sáng tạo được áp dụng trong mô hình MVC 24 1. Nguyên. chọn đề tài: Những nguyên lý sáng tạo được áp dụng trong mô hình MVC . Vì nó rất gần gũi đối với em trong công việc lập trình hàng ngày. Em xin cảm ơn những bài học quý giá và những kinh nghiệm

Ngày đăng: 05/07/2015, 22:56

Từ khóa liên quan

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

Tài liệu liên quan