MỤC LỤC
Tầng nghiệp vụ (Business Logic Layer – BLL): Mã lệnh ở tầng này sẽ thực hiện các nguyên tắc nghiệp vụ , tạo các đối tượng cụ thể thuộc miền nghiệp vụ nhằm thỏa mãn các yêu cầu của ứng dụng. Tầng trình diễn (Presentation Layer – PL) : Là các đoạn mã lệnh tạo nên những gì mà người dùng thấy ở trên trình duyệt – nó có thể là các dữ liệu đã được định dạng, thực đơn duyệt hệ thống, ….
Để xử lí việc hỗ trợ lưu trữ dữ liệu linh động với các Database Server khác nhau ta sẽ sử dụng kiểu mẫu thiết kế Provider Model cụ thể là thay vì việc viết trực tiếp các lớp truy cập CSDL (DAL classes) đầu tiên ta sẽ viết lớp trừu tượng (abstract class) và giao diện công khai của các lớp đó (public interface) và cả các phương thức hỗ trợ nếu cần. 2 câu lệnh trên thực thi cùng một nhiệm vụ là truy vấn thông tin khách hàng từ bảng Customers, tuy nhiên trong cách truy vấn sử dụng LINQ thì dữ liệu được chuyển thành dạng collection, gọi là Iqueryable<Customer>, giúp ta có thể sử dụng vòng lặp chuẩn foreach.
Việc tạo model này hoàn toàn có thể thực hiện bằng cách kéo thả các bảng cũng như store procedure vào phần designer. Việc tạo model như vậy giúp xây dựng ứng dụng nhanh chóng tuy nhiên lại là hạn chế vì chỉ có thể sử dụng với SQL server.
Đối với trình duyệt input này được viết hoàn toàn bằng HTML điều này giúp tối ưu hóa khả năng tìm kiếm hệ thống của các hệ thống tìm kiếm như google hay bing giúp các khách hàng chưa biết tới hệ thống có thể tìm đến hệ thống thông qua cỗ máy tìm kiếm. Cụ thể ta sẽ sử dụng JQuery – đây là javascript framework ổn định , ra đời cách đây vài năm , có các tài liệu hỗ trợ đầy đủ , dễ sử dụng.
• 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… ).
• 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…). • 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….
Các đối tượng MvcHandler sử dụng thể hiện của RequestContext để xách định đối tượng IcontrollerFactory qua đó tạo ra thể hiện controller. Đối với các controller như thế đối tượng ControllerActionInvoker đi kèm với controller đó sẽ xác định phương thức action của lớp controller đó để gọi, và rồi gọi phương thức đó.
Lấy ví dụ, lớp Category ở trên có một mối quan hệ một nhiều với lớp Product, điều này có nghĩa nó sẽ có một thuộc tính “Categories” là một tập hợp các đối tượng Product trong Category này. Chú ý rằng ta không cần phải tự quản lý các mối quan hệ primary key/foreign key, thay vào đó, chỉ đơn giản thêm các đối tượng Product vào tập hợp Products của đối tượng category, và rồi thêm đối tượng category vào tập hợp Categories của DataContext, LINQ to SQL sẽ biết cách thiết lập các giá trị primary key/foreign key một cách thích hợp.
Tất cả các module của hệ thống đều sử dụng module thành viên và hồ sơ.
Người dùng với vai trò là editor có thêm các chức năng như quản lí các đầu mục báo, tạo đầu mục mới , xóa đầu mục đang có trong hệ thống. Module này cho người dùng biết thông tin địa phương của người dùng qua thông tin ở hồ sơ đăng kí như thời gian, tiền dùng tại địa phương (chẳng hạn như ở Mĩ là USD, ở Việt nam là VND).
Sau khi tạo CSDL GlobalStore với SQL Server Management Studio , chạy file aspnet_regsql trong thư mục C:\Windows\Microsoft.NET\Framework\v2.0.50727 để tạo các bảng dành cho module thành viên và hồ sơ mà ASP.NET phiên bản 2.0 đã cung cấp sẵn. Các trang để quản lí người dùng dành cho người quản trị như view dành cho quản lí người dùng ManageUser view giúp nhà quản trị tìm kiếm người dùng hoặc bằng tên hoặc bằng địa chỉ , view dành cho việc chỉnh sửa – edit user , sẽ hiển thị các chi tiế thêm về người dùng và cho phép nhà quản trị để hoặc không để tài khoản đó hoạt động , hay thay đổi cập nhật vai trò người dùng.
PayPalServer Đây chính là máy chủ Paypal mà khách hàng gửi yêu cầu tới đó có thể là máy chủ Sandbox dành cho thử nghiệm có địa chỉ (https://www.sandbox.paypal.com/cgi-bin/webscr) hoặc là máy chủ thực (https://www.paypal.com/cgi-bin/webscr) PayPalAccount Đây là ID của PayPal của k hoặc là một địa chỉ thư điện tử. Vì lí do bảo mật thì token này không được gửi tới chủ tài khoản PayPal tuy nhiên khi chủ tài khoản sử dụng Token này thì nó sẽ xuất hiện ở phía dưới các nút bật tắt kiểu radio của phần truyền dữ liệu thanh toán trên trang tùy chọn phương thức thanh toán.
Trước khi có thể gọi phương thức Send ta cần thiết lập các thông tin cấu hình cho hệ thống để phương thức này có thể thực hiện được như địa chỉ của máy chủ SMTP (thuộc tính SmtpClient Host) , cổng (thuộc tính port) và giấy chứng thực của máy chủ này (thuộc tính credentials) , kết nối được mã hóa với SSL (thuộc tính EnableSsl) và thời gian duy trì từ lúc bắt đầu cho tới khi kết thúc của việc gửi thư ( thuộc tính TimeOut , giá trị mặc định là 100 giây). Một giải pháp được đưa ra trong hệ thống đó là khi người dùng nhấn nút submit (tương đương với hành động gửi thư) thì ở phía máy chủ sẽ sinh ra một tiến trình xử lí nhiệm vụ gửi thư mất nhiều thời gian đó ở chế độ nền (backgroudn running mode) và chuyển hướng người dùng về trang quản lí thư.
Với module này cần thiết lập một số thông tin cấu hình như thiết lập thuộc tính archived hay public cho một chưng cầu … (khi thiết lập thuộc tính public hay archived cho poll, cho phép hay không cho phép vote nhiều lần .). VotingLockInterval Một số nguyên cho biết khi nào thì cookie dành cho phần vote của một người dùng cụ thể nào đó hết hiệu lực (tương ứng với số ngày ngăn ngừa việc vote lại).
CreateForum.aspx Trang này cho phép editor tạo hay chỉnh sửa một diễn đàn đang tồn tại. RemoveForum.aspx Trang này dùng để hỏi liệu bạn có muốn xóa điễn đàn khỏi CSDL hay không.
Global store với mục tiêu tạo một site thương mại tương tác cao nội dung phong phú nên trong hệ thống có module cho phép người dùng viết bài xung quanh các nội dung về sự kiện nào đó tổ chức tại siêu thị, chia sẻ các hình ảnh về siêu thị ,…. Người dùng sử dụng module này có thể xem toàn bộ các bài báo, xem theo đầu mục, xem chi tiết bài báo , viết lời bịnh và đánh giá.
Như sơ đồ dưới ta có mở rộng cho lớp Article thực thể bằng việc thêm ba thuộc tính AverageRating, Location, Published và 2 phương thức là.
CreateArticle.aspx Trang này cho phép bạn tạo mới hay chỉnh sửa một bài báo có trong hệ thống. CreateCategory.aspx Trang này cho phép bạn tạo mới hay chỉnh sửa một đầu mục báo có trong hệ thống.
3 hàm này thực thi việc đảm bảo các trường title, imageUrl, và description có chứa giá trị bởi lẽ chúng buộc phải có để có thể lưu một bản category vào CSDL. Phần code cho xử lí thêm comment cũng như phần cho điểm bài báo phải thực hiện 2 việc : Một là tạo một yêu cầu bất đồng bộ, hai là thực hiện đáp trả yêu cầu function ValidateCommentName () {.
Phần cấu hình định tuyến dành riêng cho người dùng có vai trò editor routes.MapRoute(.
CurrentCulture Trả về một đối tượng CultureInfo cung cấp thông tin về văn hóa được sử dụng trong tiến trình hiện hành CurrentUICulture Trả về một đối tượng CultureInfo cung cấp thông tin. Để tạo view cho module quốc tế hóa có tính minh họa ta sẽ không cần tạo quá nhiều thông tin mà chỉ cần các thông tin như tiền địa phương , cách viết con số của địa phương , cách viết phần trăm của địa phương, cách viết ngày và thời gian địa phương.
<h3><%= HttpContext.GetGlobalResourceObject("Messages", "LocalGreeting", System.Globalization.CultureInfo.CurrentUICulture)%></h3>. "Message", System.Globalization.CultureInfo.CurrentUICulture)%></p>.
Ngoài ra ta sẽ phải xây dựng DataSet cho việc chứa các địa chỉ cửa hàng tìm được gần địa chỉ mà khách hàng nhập vào nhất gồm 2 tệp một tệp chứa design của DataSet là LocationsData.xsd ,một tệp chứa code LocationsData.Designer.cs. Module này có 2 view một dành cho mọi người dùng tìm kiếm siêu thị gần họ nhất , view còn lại chỉ dành cho người dùng có vai trò quản trị để thêm vị trí cửa hàng mới.
Việc tìm kiếm cửa hàng gần nhất là một tiện ích khá thú vị của hệ thống tuy nhiên mục tiêu cần hướng tới là trong trường hợp khách hàng có lựa chọn sản phẩm vào giỏ hàng thì hệ thống cần thiết phải thông báo cho khách hàng biết sản phẩm mà khách hàng muốn mua đó có hay không có ở các siêu thị mà họ định tới. ASP.NET MVC, các bài từ cơ bản đến nâng cao về framework asp.net mvc trên trang dành cho .NET MVC của microsoft (http://www.asp.net/mvc/fundamentals) Steven Sanderson (2009) , Pro ASP.NET MVC framework , p540 tới p546 – Internationlization , p555 tới p576 commbination of ASP.NET and ASP.NET MVC technology in one application.