CHƯƠNG 1: TỔNG QUAN 1. Giới thiệu tổng quát Ngày nay, công nghệ ngày càng phát triển, và cùng với sự phát triển đó thì Intenet là một lĩnh vực phát triển mạnh mẽ hàng đầu. Từ đó, việc giao dịch, mua bán trên mạng hiện nay không còn là một lĩnh vực xa lạ mà nó đã được phổ biến rộng rãi. Đồng hành với điều đó thì công nghệ web trên nền .NET Framework của Microsoft ngày càng phát triển mạnh mẽ hơn, cùng với rất nhiều các công nghệ khác như: JSP, PHP, ….
Trong đó, công nghệ ASP.NET MVC là một công nghệ đang phát triển mạnh mẽ cùng với nhiều tính năng ưu việt đáp ứng nhu cầu của người lập trình và người thiết kế. Mục đích của đồ án Tìm hiểu, nghiên cứu ASP.NET MVC5, WEB API và Bootstrap để xây dựng một website bán hàng. Xây dựng website bán văn phòng phẩm online đáp ứng được một số quy trình cơ bản của một website bán hàng. Kết quả của phần mềm Xây dựng được một số các chức năng của một website bán hàng: Đối với người dùng: Đăng nhập Đăng kí Tìm kiếm theo tên mặt hàng Xem chi tiết mặt hàng Quản lí giỏ hàng Quản lý đặt hàng Đối với quản trị viên thì có thêm các chức năng sau: Quản lý khách hàng, loại khách hàng Quản lý mặt hàng, loại mặt hàng Quản lý nhà sản xuất Quản lý đặt hàng, chi tiết đặt hàng Quản lý giao hàng, chi tiết giao hàng Quản lý nhà cung cấp, loại nhà cung cấp 13 do an Quản lý khả năng cung cấp, chi tiết khả năng cung cấp Quản lý hợp đồng cung cấp, chi tiết hợp đồng cung cấp Quản lý user, quyền user Quản lý các hình thức vận chuyển 14 do an Chương 2: CƠ SỞ LÝ THUYẾT 2.
Giới thiệu mô hình MVC 2. Xuất xứ Vào những năm 70 của thế kỷ 20, tại phòng thí nghiệm Xerox PARC ở Palo Alto, sự ra đời của giao diện đồ họa (GUI) 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).[1] MVC được phát minh tại Xerox Parc vào những năm 70, bởi TrygveReenskaug. MVC lần đầu tiên xuất hiện công khai là trong Smalltalk - 80.
Sau đó trong một thời gian dài hầu như không có thông tin nào về MVC, ngay cả trong tài liệu 80 Smalltalk. Các giấy tờ quan trọng đầu tiên được công bố trên MVC là “A Cookbook for Using the Model-View-Controller User Interface Paradigm in Smalltalk – 80”, bởi Glenn Krasner và Stephen Pope, xuất bản trong tháng 8/ tháng 9 năm 1988. Kiến trúc của mô hình MVC Trong kiến trúc MVC, một đối tượng đồ hoạ người dùng (GUI Component) bao gồm 3 thành phần cơ bản: Model, View và Controller. Sự chia nhỏ này giúp lập trình viên dễ dàng kiểm soát các thành phần trong khi phát triển, cũng như lợi ích lâu dài trong việc kiểm tra, bảo trì và nâng cấp.
15 do an Hình 2.1: Sơ đồ cấu trúc MVC Model: đại diện cho dữ liệu. Nó chính là những lớp (class) chứa thông tin về các đối tượng mà ta cần phải thao tác, làm việc trên nó. View: 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 đồ hoạ. Nó làm nhiệm vụ thể hiện một Model hay nhiều Model một cách trực quan, nhận thông tin (từ một Model hoặc nhiều Model) sau đó biểu diễn lên trang website.
Controller: điều khiển việc tương tác giữa đối tượng đồ hoạ với người sử dụng cũng như những đối tượng khác. Nó nằm giữa tầng View và Model, làm nhiệm vụ tìm kiếm, xử lý một hoặc nhiều Model, sau đó gửi Model tới View để View hiển thị. Đặc điểm của mô hình MVC Lợi ích quan trọng nhất của mô hình MVC là nó giúp cho ứng dụng dễ bảo trì, module hoá các chức năng và được xây dựng nhanh chóng. MVC tách các tác vụ của ứng dụng thành các phần riêng lẽ: Model, View, Controller giúp cho việc xây dựng ứng dụng nhẹ nhàng hơn, dễ thêm các tính năng mới đồng thời dễ dàng thay đổi các tính năng cũ.
Nó cho phép thay đổi một phần của ứng dụng mà không ảnh hưởng đến các phần khác. MVC đã tách biệt sự phụ thuộc giữa các thành phần trong một đối tượng đồ hoạ, làm tăng tính linh động (flexibility) và tính tái sử dụng (reusebility) của đối tượng đồ hoạ. Một đối tượng đồ hoạ có thể dễ dàng thay đổi giao diện (View) hoặc cách thức lưu trữ (Model) hoặc cách xử lý (Controller) của đối tượng mà những thành phần còn lại vẫn giữ nguyên. Công nghệ ASP.
Lịch sử phát triển của ASP.NET Thời kì Công nghệ Thời kỳ đầu Common Gateway Interface (CGI) Thời kỳ tiếp theo Microsoft Internet Database Connector (IDC) 1996 Active Server Pages (ASP) 2002/03 ASP.1 16 do an 2005 ASP.NET Ajax 2008 ASP.1: Quá trình phát triển của ASP. Khái quát các thành phần của ASP.NET MVC Giống như mô hình MVC, ASP.NET MVC cũng chia nhỏ một ứng dụng thành ba thành phần Models, Views, Controllers để cài đặt, mỗi thành phần đóng một vai trò khác nhau và ảnh hưởng lẫn nhau.2: Nền tảng ASP.NET MVC Framework Models: là thành phần có nhiệm vụ lưu trữ thông tin, trạng thái của các đối tượng, thông thường nó là một lớp được ánh xạ từ một bảng trong CSDL. 17 do an Views: là thành phần có nhiệm vụ hiển thị các thông tin lên cho người dùng thông qua giao diện, thông thường các thông tin cần hiển thị được lấy từ thành phần Models. Controllers: là thành phần có trách nhiệm xử lý các tác động về mặt giao diện, các thao tác đối với Models, và chọn một Views thích hợp để hiển thị ra màn hình.NET MVC, Views chỉ có tác dụng hiển thị giao diện mà thôi, còn điều khiển dòng nhập xuất và xử lý của người dùng vẫn do Controllers đảm trách.
Lợi ích của mô hình ASP.NET MVC Có tính mở rộng do có thể thay thế từng thành phần một cách dễ dàng. Không sử dụng Viewstate, giúp các nhà phát triển dễ dàng điều khiển ứng dụng màn hình. Hệ thống định tuyến mới mạnh mẽ. Hỗ trợ tốt hơn cho việc kiểm thử, xác định và kiểm tra lại các yêu cầu trước khi bắt tay vào viết code.
Hỗ trợ kết hợp tốt giữa người lập trình và người thiết kế giao diện. Sử dụng các tính năng tốt nhất đã có của ASP. Đặc điểm ASP.NET MVC FRAMEWORK Tiếp tục hỗ trợ các tính năng trong ASP.NET Hỗ trợ sử dụng các các tập tin: .Master như là thành phần View. Hỗ trợ đầy đủ các tính năng bảo mật của ASP.NET: Form/ Windows authenticate, URL authorization, membership/roles, output và data caching, section/ profile state, configuration system, provider architecture.
Tách rõ ràng các mối liên quan, mở ra 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,… Có khả năng mở rộng. Mọi thứ trong MVC được thiết kế để dễ thay thế, dễ dàng tùy biến. Ánh xạ URL mạnh mẽ, cho phép xây dựng ứng dụng với những URL sạch.
18 do an Không sử dụng mô hình post-back từ giao diện gửi đến server nữa. Thay vào đó, có thể chủ động đưa những post-back từ View đến thẳng lớp Controller. Không còn viewstate hay là page lifecycle tồn trong mô hình MVC. Hỗ trợ nhiều công cụ tạo View (Support for Multiple View Engines) Cho phép chọn công cụ tạo view.
Hộp thoại New Project cho phép xác định view engine mặc định cho một project. Các loại view engine: o Web Forms (ASPX) o Razor o View engine nguồn mở như Spark, NHaml, NDjango. Hỗ trợ định tuyến ASP.NET MVC Framework có một bộ máy ánh xạ URL thật sự mạnh mẽ. Bộ máy này cung cấp phương pháp rất linh hoạt trong việc ánh xạ URLs sang các Controller Classes.
Có thể dễ dàng định ra các quy luật, cài đặt đường đi.NET dựa vào các quy luật đường đi đó để xác định Controller và action cần phải thực thi.NET còn có khả năng phân tích URL, chuyển các thông số trong URL thành các tham số trong lời gọi hàm của Controller. Model Binding Model Binding là tính năng thế mạnh của ASP.NET MVC (và bây giờ nó cũng được áp dụng cho cả Web Forms trong phiên bản ASP. Hỗ trợ bạn viết phương thức nhận một đối tượng tùy biến như là một tham số Với sự hỗ trợ của Model Binding, bây giờ người lập trình chỉ cần tập trung vào việc cài đặt các nghiệp vụ logic, không cần phải bận tâm về việc suy nghĩ làm cách nào để ánh xạ dữ liệu từ người dùng sang các đối ượng. Filters: là tính năng mạnh trong ASP.
Hỗ trợ cho việc kiểm tra tính hợp lệ trước khi một action method được gọi hoặc sau khi một action method thi hành. Razor View: từ ASP.NET MVC3 đi kèm với một công cụ View mới có tên là Razor với những lợi ích sau: Cú pháp Razor là sạch sẽ và xúc tích, đòi hỏi một số lượng tối thiểu các tổ hợp phím. 19 do an Việc tìm hiểu Razor tương đối dễ dàng vì nó dựa trên ngôn ngữ C# và Visual Basic. Visual Studio bao gồm IntelliSense và mã cú pháp Razor được màu hóa.
Với Razor views có thể kiểm tra từng đơn vị mà không đòi hỏi bạn phải chạy các ứng dụng hoặc phải chạy website. Các tính năng của mô hình MVC3 và MVC4 MVC3: So với phiên bản ASP.NET MVC2 thì MVC3 được hỗ trợ thêm HTML5 và CSS3. Cải thiện về Model Validation – tính năng kiểm tra tính hợp lệ của dữ liệu do người dùng nhập vào. Hỗ trợ thêm 2 View Engine: RAZOR, ASPX, kể cả Open source, trong khi ASP.NET MVC2 chỉ có ASPX.
Controller được cải tiến hơn như thuộc tính ViewBag và kiểu ActionResult. Cải thiện Dependency Injection với IDpendencyResolver (có 2 phần: DependencyResolver và interface IDpendencyResolver) trong ASP. Đây là lớp thực thi mô hình Service Locator, cho phép framework gọi DIContainer khi cần làm việc với 1 lớp thực thi từ 1 kiểu cụ thể. Cách tiếp cận với JavaScript được hạn chế.
Hỗ trợ caching trong Partial page.NET WEB API ra đời, nhằm đơn giản hoá việc lập trình với HTML hiện đại và đây là một cải tiến mới thay cho WCF WEB API.