Giáo trình Thiết kế Web
Quy trình.
Trƣớc khi thiết kế một Website, chúng ta cần thiết phải lập một bản kế
hoạch rõ ràng, chi tiết để có thể lƣờng trƣớc đƣợc độ phức tạp, khó khăn
của Website cũng nhƣ hạn chế việc phải thay đổi lại cấu trúc, thành phần
Website sau này và nên tuân thủ một cách tuần tự qui trình sau :
Lập kế hoạch và xác định chiến lƣợc phát triển Thiết kế và lập
trình Website Kiểm tra Lƣu trữ và xuất bản web Quảng bá và phát
triển nội dung Theo dõi, đánh giá và bảo trì website.
- Lập kế hoạch và xác định chiến lƣợc phát triển : Phân tích yêu cầu,
xác định mục tiêu, phạm vi nội dung của website, công nghệ hỗ trợ, tính
năng tƣơng tác, nhu cầu quảng bá,.
- Thiết kế và lập trình Website : Xây dựng cấu trúc nội dung của
Website, các vấn đề cần đề cập trong từng nội dung. Chuẩn bị hình ảnh,
video, nhạc,. để minh họa cho phần lời và phải lựa chọn thật cẩn thận để
chúng phải chứa đựng thông tin, đẹp và ấn tƣợng. Thiết kế các giao diện,
các cơ sở dữ liệu và lập trình kết hợp với cơ sở dữ liệu để tạo ra các trang
web tĩnh có giao diện đẹp, nội dung phong phú và các trang web động có
tính tƣơng tác cao với ngƣời xem.
- Kiểm tra: Việc kiểm tra kỹ lƣỡng trƣớc khi thực hiện việc upload bao
gồm : Kiểm tra nội dung, kiểm tra chính tả, kiểm tra tốc độ, kiểm tra các
liên kết, thử các lỗi bảo mật, kiểm tra trên nhiều trình duyệt, với mục đích
để loại bỏ những thành phần rƣờm rà, những lỗi sẽ bị mắc phải nhằm
hoàn thiện sản phẩm trƣớc khi công bố rộng rãi.
- Xuất bản: Đăng ký tên miền và thuê dịch vụ hosting sau đó upload
website lên mạng. Dựa vào hiện trạng và mục tiêu phát triển website để lựa
chọn ISP thích hợp.
- Quảng bá và phát triển nội dung : Đăng ký Website vào các máy tìm
kiếm (search engine) trong nƣớc và thế giới. Nâng tầm phát triển Website
bằng cách tự động hoá dần các chức năng của Website.25
- Theo dõi, đánh giá và bảo trì site: Dựa vào các thông tin truy cập thu
thập đƣợc từ ISP mà ta có thể quyết định tăng cƣờng nội dung cho những
phần thƣờng đƣợc truy cập và giảm bớt những phần ít đƣợc truy cập. Đồng
thời còn phải quan tâm đến việc cập nhật nội dung và nâng cao tính thẩm
mỹ của giao diện.
Trang 1
Trang 2
Trang 3
Trang 4
Trang 5
Trang 6
Trang 7
Trang 8
Trang 9
Trang 10
Tải về để xem bản đầy đủ
Tóm tắt nội dung tài liệu: Giáo trình Thiết kế Web
s sau vào GiftShop.css .ShoppingCartTitle { color: Red; font-family: Verdana, Helvetica, sans-serif; font-size: 16px; } - Chuột phải vào dự án trong Solution Explorer và kích Add New Item. - Chọn Web Form Template, đặt tên ShoppingCart.aspx. Kích vào hộp chọn Place code in separate file and Select master page nhƣ hình dƣới và sau đó kích Add. 261 Hình 3.55: Thêm ShoppingCart.aspx - Chọn GiftShop.master trong hộp thoại hiện ra và kích OK. - Bạn hãy thiết kế trang ShoppingCart giống hình dƣới đây, và đặt thuộc các thuộc tính có trong trang nhƣ bảng dƣới. Hình 3.56: ShoppingCart.aspx trong cửa sổ Design 262 Thuộc tính các điều khiển trong ShoppingCart.aspx - Bây giờ bạn định dạng điều khiển GridView. Thiết lập thuộc tính AutoGenerateColumns là false, DataKeyNames là ProductID, độ rông 100%, và BorderWidth là 0px. - Trong cửa sổ Design , chọn GridView, kích vào Smart Link, và chọn Add New Column và thêm vào các cột theo danh sách dƣới đây: - Kích GridView Smart Link và chọn Edit Columns, trong bảng Selected fields, chọn Price và đặt thuộc tính DataFormatString giá trị {0:c}. - Tƣơng tự nhƣ vậy đặt thuộc tính DataFormatString giá trị {0:c} cho trƣờng Subtotal. - Trƣờng Quantity là một Template Field vì vậy bạn phải điền nó bằng tay, chuyển sang cửa sổ Source thêm Textbox sau đây tới Item Template: <asp:TextBox ID="editQuantity" runat="server" CssClass="GridEditingRow" Width="24px" MaxLength="2" Text='' /> 263 - Sử dụng style SmallButtonText cho nút nhấn Delete, chuyển sang cửa sổ Design kích vào Grid Smart Link, chọn Edit Columns. Trong hộp thoại mở ra, chọn Delete field kích chuột thuộc tính ControlTyle, và đặt CssClass là SmallButtonText, nhƣ hình dƣới đây: Hình 3.57: Chọn style cho nút nhấn Xóa - Kích chuột OK để đóng hộp thoại. Xác minh rằng trong phần nội dung của nó phải giống hình 3.58. Hình 3.58. Phần nội dung của ShoppingCart.aspx trong cửa sổ Design - Mở tập tin code-behind (ShoppingCart.aspx.cs), viết những đoạn mã giống dƣới đây: 264 public partial class ShoppingCart : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { // Tải trang ban đầu if (!IsPostBack) PopulateControls(); } // đổ dữ liệu vào điều khiển giỏ hàng private void PopulateControls() { // đặt tiêu đề cho trang this.Title = BalloonShopConfiguration.SiteName + " : Shopping Cart"; // lấy những sản phẩm có trong giỏ hàng DataTable dt = ShoppingCartAccess.GetItems(); // nếu giỏ hàng là rỗng... if (dt.Rows.Count == 0) { titleLabel.Text = "Giỏ hàng trống!"; grid.Visible = false; updateButton.Enabled = false; totalAmountLabel.Text = String.Format("{0:c}", 0); } else // nếu giỏ hàng không rỗng... { // liệt kê danh sách vào nội dung giỏ hàng grid.DataSource = dt; grid.DataBind(); // cài đặt điều khiển titleLabel.Text = "Những sản phẩm trong giỏ hàng của bạn:"; grid.Visible = true; updateButton.Enabled = true; 265 // hiển thị tổng giá decimal amount = ShoppingCartAccess.GetTotalAmount(); totalAmountLabel.Text = String.Format("{0:c}", amount); } } } Chỉnh sửa số lƣợng sản phẩm - Mở ShoppingCart.aspx trong cửa sổ Design, chọn GridView, trong cửa Properties trong phần Action kích đúp vào RowDeleting cho việc tạo sự kiện tự động: - Viết vào đoạn mã giống dƣới đây: // xoá sản phẩm khỏi giỏ hàng protected void grid_RowDeleting(object sender, GridViewDeleteEventArgs e) { // Chỉ số hàng bị xóa int rowIndex = e.RowIndex; // ID của sản phẩm bị xóa string productId = grid.DataKeys[rowIndex].Value.ToString(); // Xoá sản phẩm khỏi giỏ hàng bool success = ShoppingCartAccess.RemoveItem(productId); // Hiển thị trang thái statusLabel.Text = success ? "Xóa sản phẩm thành công!<br />" : "Có lỗi trong việc xoá sản phẩm khỏi giỏ hàng!<br />"; PopulateControls(); } - Trong ShoppingCart.aspx kích đúp vào nút Update Quantities, và viết vào đoạn mã nhƣ dƣới đây: // Cập nhật số lƣợng sản phẩm vào giỏ hàng protected void updateButton_Click(object sender, EventArgs e) { 266 // Số hàng trong GridView int rowsCount = grid.Rows.Count; // lƣu trữ một hàng của GridView GridViewRow gridRow; // Đƣa vào một textbox nhập số lƣợng trong GridView TextBox quantityTextBox; // Khai báo biến lƣu trữ ID sản phẩm và số lƣợng string productId; int quantity; // Khi cập nhật thành công? bool success = true; // duyệt qua các hàng của GridView for (int i = 0; i < rowsCount; i++) { // Lấy một hàng gridRow = grid.Rows[i]; // ID của sản phẩm bị xoá productId = grid.DataKeys[i].Value.ToString(); // Lấy Textbox số lƣợng trong hàng quantityTextBox = (TextBox)gridRow.FindControl("editQuantity"); // Lấy số lƣợng và bảo vệ các giá trị không có thật if (Int32.TryParse(quantityTextBox.Text, out quantity)) { // Cập nhật số lƣợng sản phẩm success = success && ShoppingCartAccess.UpdateItem(productId, quantity); } else { // Không thành công success = false; } // thông báo trạng thái statusLabel.Text = success ? 267 "Cập nhật giỏ hàng thành công!" : "Lỗi cập nhật! Làm ơn kiểm tra lại!"; } PopulateControls(); } Chức năng “Continue Shopping” (Tiếp tục mua hàng) - Chỉnh sửa ShoppingCart.aspx trong cửa sổ Design kích đúp vào nút Continue Shopping tự động tạo ra phƣơng thức continueShoppingButton_Click, sửa nó giống dƣới đây: // Chuyển hƣớng đến các trang danh mục trƣớc đó protected void continueShoppingButton_Click(object sender, EventArgs e) { // Chuyển hƣớng đến trang danh mục cuối cùng truy cập // hoặc đến trang chính của danh mục object page; if ((page = Session["LastVisitedCatalogPage"]) != null) Response.Redirect(page.ToString()); else Response.Redirect(Request.ApplicationPath); } - Mở GiftShop.master.cs và sửa đổi nó để có thể lƣu vị trí trang hiện tại và phiên làm việc (Session) của khách truy cập. public partial class GiftShop : System.Web.UI.MasterPage { // Các trang web đƣợc coi là “danh mục trang” mà ngƣời truy câp // có thể tiếp tục mua hàng private static string[] catalogPages = { "~/Default.aspx", "~/Catalog.aspx", "~/Search.aspx" }; // Thực thi bất kỳ trang nào khi trang đƣợc tải protected void Page_Load(object sender, EventArgs e) { 268 // Khi trang tải lần đầu if (!IsPostBack) { /* Lƣu truy cập vào trang danh mục mới nhất vào session Để hỗ trợ chức năng tiếp tục mua hàng “Continue Shopping” */ // lấy những trang hiện đƣợc nạp string currentLocation = Request.AppRelativeCurrentExecutionFilePath; // Nếu trang là một nới mà khác muốn tiếp tục mua hàng // ghi nó lại vào session của ngƣời truy cập for (int i = 0; i < catalogPages.GetLength(0); i++) if (String.Compare(catalogPages[i], currentLocation, true) == 0) { // ghi lại vị trí hiện thời Session["LastVisitedCatalogPage"] = Request.Url.ToString(); // ngừng vòng lặp break; } } } } - Mở trang Product.aspx và thêm một nút nhấn Continue Shopping cạnh nút Add to Cart, với những thuộc tính sau: Tên thuộc tính Giá trị thuộc tính ID ContinueShoppingButton CssClass SmallButtonText Text Tiếp tục mua hàng - Trong cửa sổ Design, kích đúp vào để có sự kiện Click của nó đƣợc tạo ra và hoàn thành đoạn mã cho nút “Tiếp tục mua hàng”: // Chuyến hƣớng đến các trang danh mục đã truy cập trƣớc đó protected void continueShoppingButton_Click(object sender, EventArgs e) 269 { // chuyển hƣớng đến trang danh mục cuối cùng đƣợc truy cập object page; if ((page = Session["LastVisitedCatalogPage"]) != null) Response.Redirect(page.ToString()); else Response.Redirect(Request.ApplicationPath); } - Thực thi dự án và đảm bảo rằng không xảy ra lỗi nào. Hình 3.59. Hiển thị nội dung tóm tắt của giỏ hàng 270 Hình 3.60: Trang ShoppingCart.aspx khi có sản phẩm B. THỰC HÀNH 1. Nội dung thực hành Thực hành lại các ví dụ và ứng dụng đã làm ở bài học 2. Bảng vật tƣ thiết bị cần thiết TT Thiết bị - Vật tƣ Thông số kỹ thuật Số lƣợng 1 Một bộ máy tính - CPU: duo core 2.0 Ghz trở lên - Ram: 1 Gb trở lên - HDD: 40 GB 1 bộ / học sinh 2 Phần mềm - Hệ điều hành Windows 7 - Microsoft SQL Server 2008 - Microsoft Visual Studio 2010 3. Quy trình thực hiện công việc TT Công việc Thao tác Yêu cầu 1 Chuẩn bị - Kiểm tra các hoạt động của máy tính. - Phần mềm Visual Studio 2010 - Phần mềm MS SQL Server 2008 - MT Hoạt động bình thƣờng. Đã cài đặt Đầy đủ. 271 2 Xác định yêu cầu. - Xác định nội dung, mục đích của website. - Xác định đối tƣợng chủ yếu sử dụng website - Đầy đủ và chính xác. 3 Tạo cơ sở dữ liệu. - Thiết kế các bảng. - Ràng buộc giữa các bảng với Nhau. - Thiết kế các thủ tục cần thiết xử lý dữ liệu. - Thiết kế các hàm cần dùng nếu có. Đầy đủ, chính xác. 4 Xây dựng các lớp xử lý dữ liệu. - Lớp cấu hình. - Lớp xử lý dữ liệu. Đúng 5 Xây dựng lớp hiển thị. - Thiết kế khung trang trong tệp tin Master page. - Xây dựng các Web User Control. - Xây dựng các trang theo yêu cầu của ngƣời sử dụng. Đúng , trang web phải hoạt động tốt. 6 Kiểm tra. - Chạy Website. - Chỉnh sửa lại các trang theo yêu cầu. - Hoạt động tốt. - Không lỗi. 4. Tổ chức thực hiện. Mỗi học sinh một máy, thực hành dƣới sự hƣớng dẫn của giáo viên. 5. Kiểm tra đánh giá. - Tạo và liên kết đƣợc với cơ sở dữ liệu: 2 điểm - Các chức năng trên các form giao diện hoạt động tốt : 6 điểm. - Các trang web đẹp, bố cục hợp lý, mầu sắc hài hoà : 2 điểm. 272 BÀI TẬP BÀI 3. Bài 1: Thực hành lại tất cả các thí dụ về HTML Server Controls và Web Server Controls đã đƣợc học. Có thể viết các bài thực hành có nội dung tƣơng đƣơng các thí dụ để năm vững bài học. Bài 2: Sử dụng các điều khiển để thực hiện các bài tập sau: Tạo trang Default.aspx để thực hiện các nội dung sau: 1) Nhập x, in ra tri tuyệt đối của x. 2) Tính T = 1+2+3++n với n nguyên và n>0. 3) In ra các số có 3 chữ số sao cho abc = a3 + b3 + c3 4) Tính S = 1+2/22+3/33++n/nn, với n nguyên > 0. Hãy tạo các đƣờng link đến từng trang cho từng bài tập ở trên. Bài 3: Thực hành lại các ví dụ trong bài học, có thể tùy chỉnh theo ý của ngƣời làm. Bài 4: Đọc và giải thích nội dung của phần mã lệnh trang bai4.aspx. <%@ Page Language="C#" AutoEventWireup="true" CodeFile="bai4.aspx.cs" Inherits="bai4" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" " transitional.dtd"> Session <asp:DropDownList runat="server" id="Chonmau" autopostback="true" onselectedindexchanged="Chonmau_IndexChanged"> Chọn mầu ... Red Green Blue 273 Phần code behind public partial class bai4 : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { if (Session["BackgroundColor"] != null) { Chonmau.SelectedValue = Session["BackgroundColor"].ToString(); BodyTag.Style["background-color"] = Chonmau.SelectedValue; } } protected void Chonmau_IndexChanged(object sender, EventArgs e) { BodyTag.Style["background-color"] = Chonmau.SelectedValue; Session["BackgroundColor"] = Chonmau.SelectedValue; } } Thực thi trang, khi chọn màu Red từ DropdownList, kết quả thực thi trang: Hình 3.61: Kết quả thực thi trang - Kết thúc ứng dụng và chạy lại ứng dụng nà trong cùng một cửa sổ trình duyệt đang mở, trang hiển thị ra sao? Giải thích. - Nếu đóng cửa sổ trình duyệt và thực thi lại ứng dụng , trang hiển thị ra sao? Giải thích. 274 Bài 5: Tạo một ứng dụng ASP.NET về đối tƣợng Application và tập tin Global.asax . -Tạo trang Global.asax. void Application_Start(object sender, EventArgs e) { int SiteHitCounter=500; int CurrentUsers=100; Application["SiteHitCounter"] = SiteHitCounter; Application["CurrentUsers"] = CurrentUsers; } void Application_End(object sender, EventArgs e) { HitCountClass cls = new HitCountClass(); } void Application_Error(object sender, EventArgs e) { // Code that runs when an unhandled error occurs } void Session_Start(object sender, EventArgs e) { Application["SiteHitCounter"] = (int)Application["SiteHitCounter"] + 1; Application["CurrentUsers"] = (int)Application["CurrentUsers"] + 1; } void Session_End(object sender, EventArgs e) { Application["CurrentUsers"] = (int)Application["CurrentUsers"] - 1; // Code that runs when a session ends. // Note: The Session_End event is raised only when the sessionstate mode 275 // is set to InProc in the Web.config file. If session mode is set to StateServer // or SQLServer, the event is not raised. } Tạo trang Counter.aspx <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Counter.aspx.cs" Inherits="ApplicationPage" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" ""> Counter Viết đoạn mã sau cho trang Counter.aspx.cs public partial class Counter : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { Label.Text = "Hit Counter: " + Application["SiteHitCounter"] .ToString(); Label.Text = "Current users: " + 276 Application["CurrentUsers"].ToString(); } } Khi thực thi trang Counter ta đƣợc kết quả sau: Hit Counter: 501 Current users: 101 Hãy giải thích tại sao lại có kết quả trên? Bài 6: Hãy viết chƣơng trình thêm sửa xóa cho các bảng (Department, Category, Product) và quản lý hóa đơn để hoàn thành ứng dụng mẫu đã thiết kế ở bài 3, phần 5. 277 TÀI LIỆU THAM KHẢO Tiếng Việt. [1] Macromedia Dreamweaver 8 - Nguyễn Tƣờng Sinh và Lê Minh Hoàng - NXB Lao động xã hội, năm 2008. [2] Kỹ thuật xây dựng ASP.NET – Nguyễn Văn Lân – NXB Lao động xã hội, 2008. [3] Học và thực hành thiết kế web chuyên nghiệp với Macromedia Dreamweaver – Nguyễn Mạnh Hải – NXB Văn hóa thông tin, 2007. [4] Giáo trình HTML và thiết kế Web - Khoa Công nghệ thông tin, Trƣờng ĐH Công Nghệ, ĐHQGHN. [5] Bài giảng thiết kế web - Dƣơng Thành Phát trƣờng Cao đẳng Công nghệ thông tin Hồ Chí Minh. [6] Giáo trình thiết kế Web và làm hoạt hình - Phạm Quang Huy - NXB Giao thông vận tải, năm 2003. [7] Giáo trình tự học thiết kế Web động -Hoàng Hải - NXB Lao động Xã Hội , năm 2007. Tiếng Anh [8] HTML, DHTML and JavaScript - Aptech WorldWide‟s book.. [9] Beginning ASP.NET 2.0 in C# 2005-Matthew MacDonald - 2006 [10] Pro ASP.NET 2.0 in C# 2005 - Matthew MacDonald và Mario Szpuszta -2005 [11] Beginning SQL Server 2005 for Developers - Robin Dewson -2006 [12] Professional ASP.NET 2.0 - Wiley Publishing xuất bản năm 2006 [13] Web Designer For Teens - Thomson Course Technology PTR - 2005 [14] Microsoft® ASP.NET 4Step by Step tác giả George Shepherd - 2010
File đính kèm:
- giao_trinh_thiet_ke_web.pdf