CHƯƠNG 1. TỔNG QUAN VỀ ĐỀ TÀI 1. Lý do chọn đề tài: Cùng với sự phát triển của cuộc cách mạng công nghiệp 4.0, công cuộc xây dựng và đổi mới đất nước theo hướng công nghiệp hóa – hiện đại hóa, cùng với đó là sự ra đời của các trang thương mại điện tử phục vụ cho nhu cầu mua sắm online, giao dịch trực tuyến. Tận dụng lợi thế của các trang thương mại điện tử trong việc quảng bá sản phẩm, thương hiệu cung ứng đầy đủ, toàn diện và chi tiết các loại sản phẩm và về đến khách hàng, nên chúng em chọn đề tài “Xây dựng website quản lý bán đồ nội thất gỗ online cửa hàng Mộc Phúc”.
Mục tiêu của đề tài: Trau dồi kiến thức cho môn học, có kinh nghiệm phân tích, thiết kế các bài toán thực tế. Tăng kỹ năng làm việc nhóm, cách nhìn tổng quan về vấn đề. Tin học hóa quy trình quản lý tại cửa hàng. Ứng dụng xây dựng website quản lý bán đồ nội thất gỗ online với các tính năng sau: giao diện thân thiện, dễ sử dụng, tìm kiếm, xem thông tin sản phẩm, đặt hàng, tương tác dễ dàng, nhanh chóng,.
Giới hạn và phạm vi của đề tài: Nhỏ, trước mắt sẽ triển khai tại cửa hàng Mộc Phúc nhỏ ở thành phố Nha Trang. Đối tượng sử dụng: Phần mềm được sử dụng bởi nhân viên admin, nhân viên bình thường và khách hàng. Tính khả thi: Xây dựng được website bán đồ nội thất gỗ theo yêu cầu của đề tài. Xây dựng được hệ thống quản lý cửa hàng nội thất gỗ có đủ các chức năng cơ bản.
Khảo sát hiện trạng: Là một trong những trại mộc đáng tin cậy ở Nha Trang, sẽ không tránh khỏi hiện tượng số lượng khách hàng có nhu cầu khá đông đảo, trong một lúc nào đó số lượng khách hàng 4|Page Downloaded by BACH VAN (bachvan12@gmail.com) lOMoARcPSD|38895030 đến đặt hàng quá nhiều, nhất là khi những dịp Tết đến và những dịp lễ, lượng khách hàng sẽ tăng lên một cách đáng kể, lúc đấy một mình ông Phúc và một vài nhân viên là không đủ để phục vụ được hết tất cả khách hàng, từ đó sẽ làm giảm chất lượng chăm sóc khách hàng, dẫn đến số khách hàng không hài lòng, và bắt đầu có những đánh giá, nhật xét mang tính phàn nàn, dẫn đến mất khách, sự cạnh tranh cũng vì thế mà tụt dần, tạo cơ hội cho những trại mộc chất lượng khác phát triển một cách vô tình. Để sự cạnh tranh trở nên chất lượng một cách toàn diện, trại mộc nên tạo ra một cửa hàng trực tuyến có những chức năng như: hệ thống đặt hàng và hẹn ngày nhận hàng chỉ bằng những thao tác đơn giản là khách hàng có thể đặt hàng xong, tiết kiệm thời gian cho cả khách hàng và trại mộc. Việc tạo ra hệ thống này sẽ giúp cho việc quản lý cửa hàng trực tuyến của trại mộc dễ dàng hơn, tiết kiệm thời gian cho đôi bên và nâng cao chất lượng phục vụ, làm tăng lượng khách, mở rộng quy mô, tăng doanh thu trại mộc và không bị bỏ lỡ bất kỳ một khách hàng nào hết. 5|Page Downloaded by BACH VAN (bachvan12@gmail.com) lOMoARcPSD|38895030 CHƯƠNG 2.
CỞ SỞ LÝ THUYẾT 2. Tổng quan về ngôn ngữ Asp.NET MVC Mẫu kiến trúc Model - View - Controller được sử dụng nhằm chi ứng dụng thành ba thành phần chính: model, view và controller. Nền tảng ASP.NET MVC giúp cho chúng ta có thể tạo được các ứng dụng web áp dụng mô hình MVC thay vì tạo ứng dụng theo mẫu ASP.NET Web Forms. Nền tảng ASP.NET MVC có đặc điểm nổi bật là nhẹ (lighweigt), dễ kiểm thử phần giao diện (so với ứng dụng Web Forms), tích hợp các tính năng có sẵn của ASP.
Nền tảng ASP.NET MVC được định nghĩa trong namespace System.Mvc và là một phần của name space System. MVC là một mẫu thiết kế (design pattern) chuẩn mà nhiều lập trình viên đã quen thuộc. Một số loại ứng dụng web sẽ thích hợp với kiến trúc MVC. Một số khác vẫn thích hợp với ASP.NET Web Forms và cơ chế postbacks.
Đôi khi có những ứng dụng kết hợp cả hai kiến trúc trên. Giới thiệu Asp.NET MVC 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, cho phép những người lập trình tạo ra những trang web động, những ứng dụng web và những dịch vụ web. Dựa trên ASP.NET MVC cho phép các nhà phát triển phần mềm xây dựng một ứng dụng web dựa trên mẫu thiết kế MVC. MVC là một mẫu thiết kế (design pattern) chuẩn, được sử dụng nhằm chia ứng dụng thành ba thành phần chính: model, view và controller.
Phiên bản ASP.NET MVC: ASP.NET MVC 5 (10/2013), ASP. Nền tảng MVC bao gồm các thành phần dưới đây : 6|Page Downloaded by BACH VAN (bachvan12@gmail.com) lOMoARcPSD|38895030 Hình 1 Mẫu Model -View - Controller 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 liên 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: 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.
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 7|Page Downloaded by BACH VAN (bachvan12@gmail.com) lOMoARcPSD|38895030 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 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. 8|Page Downloaded by BACH VAN (bachvan12@gmail.com) lOMoARcPSD|38895030 Hình 2 Mô hình tuần tự của MVC Lấy ví dụ một GUI Component (thành phần đồ họa người dùng ) đơ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 Check box , 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 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 sá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.
Tiềm hiểu thêm về Controler Controller có trách nhiệm chính là điều hướng các yêu cầu của người sử dụng. Như vậy trên toàn ứng dụng của ta, tất cả các request đều sẽ phải đi tới controller. Và tại đây, ứng với các tham số người sử dụng truyền mà ta đưa họ đến một tác vụ nào đó trên ứng dụng. Tại các tác vụ này, chúng sẽ thông qua lớp model để làm việc và trả kết quả trở về controller.
Cuối cùng controller sẽ đẩy dữ liệu thao tác tới view. View là thành phần cuối cùng mà người sử dụng nhận được khi họ giở request tới ứng dụng. Có thể hiểu 9|Page Downloaded by BACH VAN (bachvan12@gmail.