Chắc hản ai cũng biết rằng những lợi ích mà TMĐT mang lại là không chỉ cho các công ty, doanh nghiệp mà còncho người tiêu dùng là rất lớn như: Quảng bá thông tin và tiếp thị cho một thị
Trang 1MỤC LỤC
DANH MỤC BẢNG BIỂU 4
DANH MỤC HÌNH VẼ 5
LỜI NÓI ĐẦU 6
CHƯƠNG 1: TỔNG QUAN VỀ ĐỀ TÀI 7
1.1.Giới thiệu 7
1.2.Thương mại điện tử và ứng dụng với website bán hàng trực tuyến 8
1.2.1 Giới thiệu thương mại điện tử 8
1.2.2 Khảo sát hiện trạng 12
1.2.3 Các chức năng của website 15
1.3.Phạm vi đề tài 15
CHƯƠNG 2: CÔNG NGHỆ SỬ DỤNG 16
2.1 Tổng quan về Internet 16
2.1.1 Sự ra đời và phát triển Internet 16
2.1.2 Giới thiệu về Internet Information Server (IIS) 18
2.2 Giới thiệu về công nghệ ASP.NET 19
2.2.1 Tìm hiểu về ASP.NET 19
2.2.2 Quá trình xử lý tệp ASPX 21
2.2.3 Phân loại tệp tin trong ASP.NET 22
2.2.4 Các đối tượng và các thành phần điều khiển trong ASP.NET 23
2.3 Giới thiệu về ngôn ngữ lập trình C# 26
2.3.1 Tổng quan về ngôn ngữ lập trình C# 26
2.3.2 Tại sao phải sử dụng ngôn ngữ C# 28
2.3.3 Các từ khóa của C# 31
2.3.4 Ngôn ngữ C# và các ngôn ngữ khác 32
2.3.5 Các bước chuẩn bị cho chương trình 33
2.4 Công cụ SQL Server 34
Trang 22.4.1 Giới thiệu về SQL Server 34
2.4.2 Các đối tượng trong hệ quản trị cơ sở dữ liệu 38
2.4.3 Tính toàn vẹn và bảo mật 41
CHƯƠNG 3: PHÂN TÍCH HỆ THỐNG 44
3.1 Sơ đồ phân rã chức năng 44
3.1.1 Sơ đồ 44
3.1.2 Phân tích các chức năng 44
3.2 Sơ đồ luồng dữ liệu 46
3.2.1 Sơ đồ luồng dữ liệu mức ngữ cảnh 46
3.2.2 Sơ đồ luồng dữ liệu mức đỉnh 47
3.2.3 Sơ đồ luồng dữ liệu dưới mức đỉnh 48
3.2.3.1 Chức năng quản lý mặt hàng 48
3.2.3.2 Chức năng quản lý bán hàng 49
3.2.3.3 Chức năng quản lý người dùng 50
3.2.3.4 Chức năng quản lý tin tức 51
3.2.4 Xác định các thực thể liên kết 52
3.3 Thiết kế cơ sở dữ liệu 52
3.4 Mô hình cơ sở dữ liệu 57
CHƯƠNG 4: THIẾT KẾ GIAO DIỆN 58
4.1 Một số giao diện phần khách hàng 58
4.1.1 Trang chủ 58
4.1.2 Trang đăng ký 59
4.1.3 Trang sản phẩm 60
4.1.4 Trang chi tiết sản phẩm 61
4.1.5 Trang giỏ hàng 62
4.1.6 Trang tin khuyến mãi 63
4.1.7 Trang cá nhân thành viên 64
Trang 34.2 Một số giao diện phần quản trị 65
4.2.1 Trang chủ Admin 65
4.2.2 Trang danh sách thành viên 66
4.2.3 Trang cập nhật sản phẩm 67
4.2.4 Trang cập nhật đơn hàng 68
4.2.5 Trang cập nhật tin khuyến mãi 69
4.2.6 Trang thống kê, tìm kiếm 70
CHƯƠNG 5: ĐÁNH GIÁ KẾT QUẢ VÀ HƯỚNG PHÁT TRIỂN ĐỀ TÀI 71
5.1 Đánh giá kết quả 71
5.2 Hướng phát triển đề tài 72
KẾT LUẬN 73
TÀI LIỆU THAM KHẢO 74
Trang 4DANH MỤC BẢNG BIỂU
Bảng 2.1 Phân loại tệp tin trong ASP.Net 22
Bảng 3.1 Bảng thành viên 53
Bảng 3.2 Bảng Quyền 53
Bảng 3.3 Bảng phiếu nhập 53
Bảng 3.4 Bảng nhóm sản phẩm 54
Bảng 3.5 Bảng loại sản phẩm 54
Bảng 3.6 Bảng sản phẩm 54
Bảng 3.7 Bảng đơn hàng 54
Bảng 3.8 Bảng chi tiết đơn hàng 55
Bảng 3.9 Bảng tin khuyến mãi 55
Trang 5DANH MỤC HÌNH VẼ
Hình 2.1 Quá trình xử lý tệp ASPX 22
Hình 2.2 Sơ đồ xử lý kiểm tra dữ liệu nhập tại Client và Server 24
Hình 3.1 Sơ đồ phân rã chức năng 44
Hình 3.2 Sơ đồ luồng dữ liệu mức ngữ cảnh 46
Hình 3.3 Sơ đồ luồng dữ liệu mức đỉnh 47
Hình 3.4 Sơ đồ luồng dữ liệu mức dưới đỉnh 48
Hình 3.5 Sơ đồ luồng dữ liệu mức dưới đỉnh 49
Hình 3.6 Sơ đồ luồng dữ liệu mức dưới đỉnh 50
Hình 3.7 Sơ đồ luồng dữ liệu mức dưới đỉnh 51
Hình 3.8 Mô hình cơ sở dữ liệu 56
Hình 4.1 Giao diện trang chủ 57
Hình 4.2 Giao diện trang đăng ký 58
Hình 4.3 Giao diện trang sản phẩm 59
Hình 4.4 Giao diện trang chi tiết sản phẩm 60
Hình 4.8 Giao diện trang admin 64
Hình 4.9 Giao diện trang danh sách thành viên 65
Hình 4.10 Giao diện trang cập nhật sản phẩm 66
Hình 4.11 Giao diện trang cập nhật đơn hàng 67
Hình 4.12 Giao diện trang cập nhật tin khuyến mãi 68
Hình 4.13 Giao diện trang thống kê 69
Trang 6LỜI NÓI ĐẦU
Ngày nay, công nghệ thông tin đã có những bước phát triển mạnh mẽtheo cả chiều rộng và chiều sâu Máy tính điện tử không còn là một thứphương tiện quý hiếm mà đang ngày càng trở thành một công cụ làm việc vàgiải trí thông dụng của con người, không chỉ ở nơi làm việc mà ngay cả tronggia đình
Hiện nay các công ty hàng đầu thế giới không ngừng đầu tư và cải thiệncác giải pháp cũng như các sản phẩm cho phép tiến hành thương mại hóa trênInternet Thông qua các sản phẩm và công nghệ này, chúng ta dễ dàng nhận ratầm quan trọng và tính tất yếu của thương mại điện tử Bạn chỉ cần vào cáctrang dịch vụ thương mại điện tử, làm theo hướng dẫn và click vào những gìbạn cần Các nhà dịch vụ sẽ mang đến tận nhà cho bạn
Ở Việt nam cũng có rất nhiều doanh nghiệp đang tiến hành thương mạihóa trên Internet nhưng do những khó khăn về cơ sở hạ tầng như viễn thôngchưa phát triển mạnh, các dịch vụ thanh toán điện tử ngân hàng chưa phổ biếnnên chỉ dừng lại ở mức độ giới thiệu sản phẩm và tiếp nhận đơn hàng thôngqua web
Để tiếp cận và góp phần đẩy mạnh sự phổ biến của thương mại điện tử ở
Việt nam, em đã tìm hiểu đề tài “Xây dựng website giới thiệu và bán sản
phẩm cho công ty Seven.am”
Với sự hướng dẫn tận tình của Thầy Trần Duy Hùng em đã hoàn thành
cuốn báo cáo đồ án tốt nghiệp này Tuy đã cố gắng tìm hiểu, phân tích thiết kế
và cài đặt hệ thống nhưng chắc rằng không tránh khỏi những thiếu xót Em rấtmong nhận được sự góp ý của quý thầy cô Qua đây cho phép em bày tỏ lòngbiết ơn đến sự dạy dỗ chỉ bảo của các thầy, cô trong bộ môn tin học Đặc biệt
là Thầy Trần Duy Hùng, người đã trực tiếp hướng dẫn, chỉ bảo và giúp đỡ
em trong thời gian thực hiện đồ án tốt nghiệp này, em xin chân thành cảm ơn
Trang 7CHƯƠNG 1: TỔNG QUAN VỀ ĐỀ TÀI
1.1 Giới thiệu
Ngày nay, nền kinh tế của đất nước đang phát triển rất nhanh, thu nhậpcủa người dân đã được nâng cao rất nhiều Cùng với quá trình đó, nhu cầutiêu dùng của người dân cũng tăng mạch về cả lượng và chất Những nămtrước đây, chúng ta mới chỉ có ước mơ là “ăn no mặc ấm” thì bay giờ mọichuyện đã thay đổi Mọi người đều có cách suy nghĩ là “ăn ngon mặc đẹp”
Đó cũng chính là mục tiêu mà cuộc sống mang lại Trong đại bộ phận nhữngngười này thì tầng lớp thanh niên chiếm một tỉ lệ tương đối lớn Nhữngngười này đến với thời trang với một mong muốn rất chính đáng đó là làmđẹp cho bản thân và thể hiện sự tôn trọng đối với người khác Do kháchhàng là giới trẻ nên họ có con mắt thẩm mỹ rất thị hiếu khách hàng Nhậnthức được rằng là một cửa hàng mới xuất hiện trên thị trường nên em ý thứcđược rằng mình cần phải có một cái gì đó là của riêng mình thì khách hàngmới sẽ đến với mình và ủng hộ mình một cách nhiệt tình nhất, đem lại chokhách hàng sự lựa chọn tốt nhất Do đó đòi hỏi em cần tạo ra sự khác biệthóa trong tất cả mọi lĩnh vực từ chất lượng đến phong cách phục vụ và cảcách bố trí trên website Những điều này em xin được trình bày trong phầndưới của đồ án Bây giờ em xin được giới thiệu vài nét sơ lược về websitecủa mình:
Tên website: Seven.am
Lĩnh vực kinh doanh: Thời trang
Sản phẩm kinh doanh: Quần áo nữ, sản phẩm thời trang như: đầmcông sở, đầm dạo phố, vest
Mô hình: Công ty nhỏ
Trang 81.2 Thương mại điện tử và ứng dụng với website bán hàng trực tuyến 1.2.1 Giới thiệu thương mại điện tử
a Thương mại điện tử là gì?
Thương mại điện tử (còn gọi là E-Commerce hay E-Business)
là quy trình mua bán thông qua việc truyền dữ liệu giữa các thiết bịtruyền tin trong chính sách phân phối của tiếp thị Tại đây một mối quan
hệ thương mại hay dịch vụ trực tiếp giữa người cung cấp và khách hàng
được tiến hành thông qua việc truyền tin Hiểu theo nghĩa rộng, thương
mại điện tử bao gồm tất cả các loại giao dịch thương mại mà trong đó các
đối tác giao dịch sử dụng các kỹ thuật thông tin trong khuôn khổ chàomời, thảo luận hay cung cấp dịch vụ Thông qua một chiến dịch quảng
cáo của IBM trong thập niên 1990, khái niệm Electronic Business,
thường được dùng trong các tài liệu, bắt đầu thông dụng
Thương mại điện tử (Electronic Commerce), một yếu tố hợp
thành của nền “Kinh tế số hóa”, là hình thái hoạt động thương mại bằng các phương pháp điện tử; là việc trao đổi thông tin thương mại thông qua
các phương tiện công nghệ điện tử mà nói chung là không cần phải in ragiấy trong bất cứ công đoạn nào của quá trình giao dịch (nên còn gọi là
“Thương mại không có giấy tờ”).
b Các phương tiện của thương mại điện tử
Các phương tiện điện tử được sử dụng trong thương mại điện tử là:
- Máy điện thoại;
- Máy fax;
- Truyền hình;
- Các hệ thống thiết bị công nghệ thanh toán điện tử (Bao gồm cà
mạng giá trị gia tăng);
Trang 9- Các mạng nội bộ (Intranet) và Mạng ngoại bộ (Extranet);
- Mạng toàn cầu Internet Công cụ Internet và Website ngày càng
phổ biến, giao dịch thương mại điện tử với nước ngoài hầu nhưđều qua Internet, các mạng nội bộ nay cũng thường sử dụng công
nghệ Internet
c Các hình thức giao dịch của thương mại điện tử
Các hình thức hoạt động chủ yếu của giao dịch thương mại điện tử là:
- Thư điện tử (email);
- Thanh toán điện tử (electronic payment);
- Trao đổi dữ liệu điện tử (electronic date interchange – EDI);
- Giao gửi số hóa các dữ liệu (digital delivery of content), tức việc
mua bán, trao đổi các sản phẩm mà người tà cần nội dung (chínhnội dung là hàng hóa), mà không vần tới vật mang hàng hóa(như: phim ảnh, âm nhạc, các chương trình truyền hình, phầnmềm máy tính, v.v…);
- Bán lẻ hàng hóa hữu hình (retail of tangible goods).
d Lợi ích của thương mại điện tử (TMĐT)
Thuật ngữ Thương Mại Điện Tử (TMĐT) ngày nay không còn xa
lạ gì đối với mỗi chúng ta nữa Chắc hản ai cũng biết rằng những lợi ích
mà TMĐT mang lại là không chỉ cho các công ty, doanh nghiệp mà còncho người tiêu dùng là rất lớn như:
Quảng bá thông tin và tiếp thị cho một thị trường toàn cầu với chi
phí cực thấp: Chỉ với vài chục đô la Mỹ mỗi tháng, bạn đã có thể đưathông tin quảng bá của mình đến hàng trăm triệu người xem từ các nơitrên thế giới Đây là điều mà chỉ có TMĐT mới có thể làm được cho các
Trang 10công ty, doanh nghiệp Với một Website của mình, bạn có thể quảng cáothông tin 24 giờ mỗi ngày, 7 ngày mỗi tuần, và lượng độc giả của bạn làhàng trăm triệu người từ mọi nơi trên thế giới.
Dịch vụ tốt hơn cho khách hàng: Với TMĐT, bạn có thể cung
cấp catalogue, brochure, thông tin, bảng báo giá cho đối tượng kháchhàng một cách cực kỳ nhanh chóng, bạn có thể tạo điều kiện cho kháchhàng mua hàng trực tiếp từ trên mạng thông qua Website của chínhmình TMĐT mang lại cho bạn các công cụ để làm hài lòng khách hàng,bởi trong thời đại ngày nay yếu tố thời gian thực sự là vàng bạc, không ai
có thể đủ kiên nhẫn chờ đợi thông tin trong vài ngày khi mà họ có đủđiều kiện để biết nó bằng nhiều cách khác nhau Hơn nữa, ngày nay chấtlượng dịch vụ và thái độ phục vụ là những yếu tố rất quan trọng trongviệc tìm và giữ khách hàng Nếu bạn không xử lý yêu cầu thông tin củađối tượng quan tâm một cách nhanh chóng, họ sẽ không kiên nhẫn màchờ bạn, trong khi có biết bao nhiêu đối thủ cạnh tranh đang săn đón họ
Tăng doanh thu: Với TMĐT, đối tượng khách hàng của bạn giờ
đây không còn bị giới hạn về mặt địa lý, hay thời gian làm việc Bạnkhông chỉ có thể bán hàng cho cư dân trong thành phố gần nơi sinh sốngcủa bạn, mà bạn có thể có khách hàng trong cả nước và các nước kháctrên thế giới Vì thế, chắc chắn lượng khách hàng của bạn sẽ tăng lênđáng kể từ đó doanh thu của bạn cũng tăng theo số lượng khách hàng.Tất nhiên chất lượng và giá cả sản phẩm hay dịch vụ của bạn phải tốt,nếu không TMĐT cũng không giúp gì được cho bạn
Giảm chi phí hoạt động: Với TMĐT, bạn không phải tốn kém
nhiều cho việc thuê cửa hàng, mặt bằng, đông đảo nhân viên phục vụ,bạn cũng không cần phải đầu tư nhiều cho kho chứa… mà bạn chỉ cầnxây dựng một Website bán hàng qua mạng Nếu Website của bạn chỉ là
Trang 11trưng bày thông tin, hình ảnh sản phẩm, bạn tiết kiệm được chi phí in ấnbrochure, catalogue và cả chi phí gửi bưu điện những ấn phẩm này Cònnếu doanh nghiệp bạn làm hàng xuất khẩu, bạn có thể ngồi ở nhà và tìmkiếm khách hàng qua mạng, không cần phải tốn kém nhiều cho nhữngchuyến đích thân “Xuất ngoại”.
Với những lợi thế trên, TMĐT thực sự là một cơ hội cho cácdoanh nghiệp trên thế giới nói chung và ở Việt Nam nói riêng phát triển
và khẳng định mình Bạn đừng nghĩ rằng hãy còn quá sớm để nói đếnTMĐT Những người chiến thắng thường là những người đi tiên phong,hơn nữa các công ty, doanh nghiệp cũng đã bắt đầu quan tâm nhiều đếnTMĐT, do đó để giành lấy ưu thế, bạn không thể cứ đủng đỉnh đi dạo vàquan sát người khác hành động, mà bạn phải nhanh tay hành động ngaybây giờ
e Các công đoạn của một giao dịch mua bán trên mạng.
Gồm có 6 công đoạn sau:
Khách hàng, từ một máy tính tại một nơi nào đó, điền những thôngtin thanh toán và địa chỉ liên hệ vào đơn đặt hàng (Order Form) củaWebsite bán hàng (còn gọi là Website thương mại điện tử) Doanhnghiệp nhận được yêu cầu mua hàng hóa hay dịch vụ của khách hàng vàphản hồi xác nhận tóm tắt lại những thông tin cần thiết như mặt hàng đãchọn, địa chỉ giao nhận và số phiếu đặt hàng…
Khách hàng kiểm tra lại các thông tin và kích (click) và nút(button) “đặt hàng”, từ bàn phím hay chuột (mouse) của máy tính, để gửithông tin trả về cho doanh nghệp
1 Doanh nghiệp nhận và lưu trữ thông tin đặt hàng đồng thời chuyểntiếp thông tin thanh toán (số thẻ tín dụng, ngày đáo hạn, chủ thẻ…) đã
Trang 12được mã hóa đến máy chủ (Server, thiết bị xử lý dữ liệu) của Trung tâmcung cấp dịch vụ xử lý thẻ trên mạng Internet Với quá trình mã hóa cácthông tin thanh toán của khách hàng được bảo mật an toàn nhằm chốnggian lận trong các giao dịch (chẳng hạn doanh nghiệp sẽ không biết đượcthông tin về thẻ tín dụng của khách hàng).
2 Khi Trung tâm Xử lý thẻ tín dụng nhận được thông tin thanh toán,
sẽ giải mã thông tin và xử lý giao dịch đằng sau bức tường lửa (FireWall)
và tách rời mạng Internet (off the Internet), nhằm mục đích bảo mật tuyệtđối cho các giao dịch thương mại, định dạng lại giao dịch và chuyển tiếpthông tin thanh toán đến ngân hàng của doanh nghiệp (Acquirer) theomột đường dây thuê bao riêng (một đường truyền số liệu riêng biệt)
3 Ngân hàng của doanh nghiệp gửi thông điệp điện tử yêu cầu thanhtoán (authorization request) đến ngân hàng hoặc công ty cung cấp thẻ tíndụng của khách hàng (Issuer) Và tổ chức tài chính này sẽ phản hồi làđồng ý hoặc từ chối thanh toán đến trung tâm xử lý thẻ tín dụng trênmạng Internet
4 Trung tâm xử lý thẻ tín dụng trên Internet sẽ tiếp tục chuyển tiếpnhững thông tin phản hồi trên đến doanh nghiệp, và tùy theo đó doanhnghiệp thông báo cho khách hàng được rõ là đơn đặt hàng sẽ được thựchiện hay không
5 Toàn bộ thời gian thực hiện một giao dịch qua mạng từ bước 1 ->bước 6 được xử lý trong khoảng 15 – 20 giây
1.2.2 Khảo sát hiện trạng
Sau khi khảo sát hiện trạng, em nắm bắt được các thông tin sau:
Quản lý khách hàng: mỗi khách hàng được quản lý các thông tin sauđây: họ tên, địa chỉ, điện thoại, fax, email, tên đăng nhập, mật khẩu Ngoài
Trang 13ra, nếu khách hàng là công ty hay cơ quan thì quản lý thêm tên công ty/cơquan.
Quản lý mặt hàng: mỗi mặt hàng được quản lý những thông tin: tên mặtbằng, đơn giá, số lượng, thời gian bảo hành, hình ảnh, mô tả
Quá trình đặt hàng của khách hàng: Khách hàng xem và
lựa chọn mặt hàng cần mua Trong quá trình lựa chọn, bộ phận bán hàng sẽtrực tiếp trao đổi thông tin cùng khách hàng, chịu trách nhiệm hướng dẫn Saukhi lựa chọn xong, bộ phận bán hàng sẽ tiến hành lập đơn đặt hàng của khách.Sau khi tiếp nhận yêu cầu trên, bộ phận này sẽ làm hóa đơn và thanh toántiền Trong trường hợp nhiều công ty, trường học, các doanh nghiệp,… có yêucầu đặt hàng, mua với số lượng lớn thì cửa hàng nhanh chóng làm phiếu đặthàng, phiếu thu có ghi thuế cho từng loại mặt hàng và giao hàng theo yêu cầu
Quá trình đặt hàng và nhà cung cấp: Hàng ngày nhân viên
kho sẽ kiểm tra hàng hóa trong kho và đề xuất lên ban điều hành cần xử lý vềviệc những mặt hàng cần nhập Trong qua trình đặt hàng thì ban điều hành sẽ
có trách nhiệm xem xét các đề xuất về những mặt hàng yêu cầu và quyết địnhloại hàng, số lượng hàng cần đặt và phương thức đặt hàng với nhà cung cấp.Việc đặt hàng với nhà cung cấp được thực hiện thông qua địa chỉ trên mạnghay qua điện thoại, fax
Quá trình nhập hàng: Sau khi nhận yêu cầu đặt hàng từ
công ty, nhà cung cấp sẽ giao hàng cho công ty có kèm theo hóa đơn haybảng kê chi tiết các loại mặt hàng Thủ kho sẽ kiểm tra lô hàng của từng nhàcung cấp và trong trường hợp hàng hóa giao không đúng yêu cầu đặt hànghay kém chất lượng về hệ thống máy móc, thì thủ kho sẽ trả lại nhà cung cấp
và yêu cầu giao lại những mặt hàng bị trả đó Tiếp theo thủ kho sẽ kiểm trachứng từ giao hàng để gán giá trị thành tiền cho từng loại sản phẩm Nhữngloại hàng hóa này sẽ được cung cấp một mã số và được cập nhật ngay vào giá
Trang 14bán Sau khi nhập xong chứng từ giao hàng, nhân viên nhập kho sẽ in mộtphiếu nhập để lưu trữ trong hồ sơ Từ quy trình thực tiễn nêu trên, ta nhậnthấy rằng hệ thống được xây dựng cho bài toán đặt ra chủ yếu phục vụ cho haiđối tượng: Khách hàng và nhà quản lý.
Khách hàng: là những người có nhu cầu mua sắm hàng hóa.
Khác với việc đặt hàng trực tiếp tại công ty, khách hàng phải hoàn toàn tựthao tác thông qua từng bước cụ thể để có thể mua được hàng Trên mạng, cácmặt hàng được sắp xếp và phân theo từng loại mặt hàng giúp cho khách hàng
dễ dàng tìm kiếm Trong hoạt động này, khách hàng chỉ cần chọn một mặthàng nào đó từ danh mục các mặt hàng thì những thông tin về mặt hàng đó sẽhiển thị lên màn hình như: hình ảnh, đơn giá, mô tả… và bên cạnh là tranhliên kết để thêm hàng hóa vào giỏ hàng Đây là giỏ hàng điện tử mà trong đóchứa các thông tin về hàng hóa lẫn số lượng khách mua và hoàn toàn đượccập nhật trong giỏ Khi khách hàng muốn đặt hàng thì hệ thống hiển thị trangxác lập đơn đặt hàng cùng thông tin về khách hàng và hàng hóa Cuối cùng là
do khách hàng tùy chọn đặt hay không
Nhà quản lý: là người làm chủ hệ thống, có quyền kiểm soát
mọi hoạt động của hệ thống Nhà quản lý được cấp một username vàpassword để đăng nhập vào hệ thống thực hiện những chức năng của mình.Nếu như quá trình đăng nhập thành công thì nhà quản lý có thể thực hiệnnhững công việc: quản lý cập nhật thông tin các mặt hàng, tiếp nhận đơn đặthàng, kiểm tra đơn đặt hàng và xử lý đơn đặt hàng Thống kê các mặt hàngbán trong tháng, năm, thống kê khách hàng, nhà cung cấp, thống kê tồn kho,thống kê doanh thu Khi có nhu cầu nhập hàng hóa từ nhà cung cấp thì tiếnhành liên lạc với nhà cung cấp để đặt hàng và cập nhật các mặt hàng này vào
cơ sở dữ liệu…
Trang 151.2.3 Các chức năng của website
Đây là một website nhằm bán và giới thiệu rộng rãi các mặt hàng củacông ty đến cho người tiêu dùng với các chi tiết mặt hàng cũng như giá cảmột cách chính xác
Có những chức năng sau:
Cho phép nhập hàng vào CSDL
Hiển thị danh sách các mặt hàng theo từng loại (bao gồm: hình ảnh,giá cả, màu sắc, mô tả chức năng)
Hiển thị hàng hóa mà khách hàng đã chọn để mua
Hiển thị đơn đặt hàng của khách hàng
Cung cấp khả năng tìm kiếm, khách hàng có thể truy cập từ xa đểtìm kiếm xem mặt hàng đặt mua
Cho phép quản lý đơn đặt hàng
Trang 16CHƯƠNG 2: CÔNG NGHỆ SỬ DỤNG
Chương trình được cài đặt trên máy Server Các phần mềm cần thiết để thiết
kế và hoạt động chương trình
- Hệ điều hành Window SERVER 2003
- Internet Information Server (IIS) đóng vai trò làm Web Server
- Trình duyệt Web Internet Explorer 4.0 trở lên
- Hệ quản trị cơ sở dữ liệu MS SQL Server 2005
- MS Visual Studio 2008
- Unikey
2.1 Tổng quan về Internet
2.1.1 Sự ra đời và phát triển Internet
Internet ra đời thực sự là một cuộc cách mạng vĩ đại Internet đã mang lạicho chúng ta một kho kiến thức mà không một thư viện, một bộ bách khoatoàn thư hay một hệ thống thư viện nào khác có thể so sánh được Internetcũng là môi trường kinh doanh Nhanh - Rẻ - Hiệu quả nhất
- 1962: ý tưởng đầu tiên về mạng kết nối các máy tính với nhau(J.C.R.Licklider)
- 1965: mạng gửi các dữ liệu đó được chia nhỏ thành từng packet, đitheo các tuyến đường khác nhau và kết hợp lại tại điểm đến (Donald Dovies);Lawrence G.Roberts đó kết nối một máy tính ở Massachussetts với một máytính khác ở California qua đường dây điện thoại
- 1967: Ông này đề xuất ý tưởng mạng ARPANET – Advanced search Project Agency Network tại một hội nghị ở Michigan
Re Công nghệ chuyển gởi tin – packet switching technology đem lại lợiích to lớn khi nhiều máy tính có thể chia sẻ thông tin với nhau; phát triểnmạng máy tính thử nghiệm của Bộ quốc phòng Mỹ theo ý tưởng ARPANET
Trang 17- 1969: Mạng này được đưa vào hoạt động và là tiền thân của Internet;Internet- liên mạng bắt đầu xuất hiện khi nhiều mạng được kết nối với nhau
- 1972: thư điện tử bắt đầu được sử dụng (Ray Tomlinson)
- 1973: ARPANET lần đầu tiên được kết nối ra nước ngoài, tới trườngđại học London
- 1984: giao thức chuyển gởi tin TCP/IP (Transmision Control tocol và Internet Protocol) trở thành giao thức chuẩn của Internet; hệ thốngcác tên miền DNS (Domain Name System) ra đời để phân biệt các máy chủ;được chia thành sáu loại chính
Pro-+ edu (education) cho lĩnh vực giáo dục
+ gov (government) thuộc chính phủ
+ mil (miltary) cho lĩnh vực quân sự
+ com (commercial) cho lĩnh vực thương mại
+ org (organization) cho các tổ chức
+ net (network resources) cho các mạng
- 1990: ARPANET ngừng hoạt động, Internet chuyển sang giai đoạn
mới
- 1991: ngôn ngữ đánh dấu siêu văn bản HTML (Hyper Text Mark- up
Language) ra đời cùng với giao thức truyền siêu văn bản HTTP (Hyper TextTransfer Protocol), Internet đó thực sự trở thành công cụ đắc lực với hàng loạtcác dịch vụ mới
- WWW ra đời đem lại cho người dùng khả năng tham chiếu từ một văn
bản đến nhiều văn bản khác, chuyển từ cơ sở dữ liệu này sang cơ sở dữ liệukhác với hình thức hấp dẫn và nội dung phong phú
- Internet và Web là công cụ quan trọng nhất của TMĐT, giúp cho
TMĐT phát triển và hoạt động hiệu quả
Trang 18- Mạng Internet được sử dụng rộng rãi từ năm 1994.
- Công ty Netsscape tung ra các phần mềm ứng dụng để khai thác thông
tin trên Internet vào tháng 5 năm 1995
- Công ty Amazon.com ra đời vào tháng 5 năm 1997.
- Công ty IBM tung ra chiến dịch quảng cáo cho các mô hình kinh
doanh điện tử năm 1997…
- Dịch vụ Internet bắt đầu được cung cấp tạo Việt Nam chính thức từ
năm 1997
2.1.2 Giới thiệu về Internet Information Server (IIS)
IIS – Viết tắt của Microsoft Internet Information Services (các dịch vụcung cấp thông tin Internet) là các dịch vụ dành cho máy chủ chạy trên nền
Hệ điều hành Window nhằm cung cấp và phân tán các thông tin lên mạng, nóbao gồm nhiều dịch vụ khác nhau như Web Server, FTP Server,…Nó có thểđược sử dụng để xuất bản nội dung của các trang Web lên Internet/Intranetbằng việc sử dụng “Phương thức chuyển giao siêu văn bản”- HypertextTransport Protocol (HTTP) Như vậy, sau khi bạn thiết kế xong các trangWeb của mình, nếu bạn muốn đưa chúng lên mạng để mọi người có thể truycập và xem chúng thì bạn phải nhờ đến một Web Server, ở đây là IIS Nếukhông thì trang Web của bạn chỉ có thể được xem trên chính máy của bạnhoặc thông qua việc chia sẻ tệp (file sharing) như các tệp bất kỳ trong mạngnội bộ mà thôi
Nhiệm vụ của IIS là tiếp nhận yêu cầu của máy trạm và đáp ứng lại yêucầu đó bằng cách gửi về máy trạm những thông tin mà máy trạm yêu cầu Bạn
có thể sử dụng IIS để:
Xuất bản một Website của bạn trên Internet
Tạo các giao dịch thương mại điện tử trên Internet (hiện các catalog
Trang 19và nhận được các đơn đặt hang từ người tiêu dùng).
Chia sẻ file dữ liệu thông qua giao thức FTP
Cho phép người ở xa có thể truy xuất database của bạn (gọi làDatabase remote access) Và rất nhiều khả năng khác…
IIS sử dụng các giao thức mạng phổ biến là HTTP (Hyper Text TransferProtocol) và FPT (File Transfer Protocol) và một số giao thức khác nhưSMTP, POP3,…để tiếp nhận yêu cầu và truyền tải thông tin trên mạng vớicác định dạng khác nhau Một trong những dịch vụ phổ biến nhất của IIS màchúng ta quan tâm trong giáo trình này là dịch vụ WWW (World Wide Web),nói tắt là dịch vụ Web Dịch vụ Web sử dụng giao thức HTTP để tiếp nhậnyêu cầu (Requests) của trình duyệt Web (Web browser) dưới dạng một địa chỉURL (Uniform Resource Locator) của một trang Web và IIS phản hồi lại cácyêu cầu bằng cách gửi về cho Web browser nội dung của trang Web tươngứng
2.2 Giới thiệu về công nghệ ASP.NET
2.2.1 Tìm hiểu về ASP.NET
Từ khoảng cuối thế thập niên 90, ASP (Active Server Page) đã đượcnhiều lập trình viên lựa chọn để xây dựng và phát triển ứng dụng webđộng trên máy chủ sử dụng hệ điều hành Windows ASP đã thể hiện đượcnhững ưu điểm của mình với mô hình lập trình thủ tục đơn giản, sử dụnghiệu quả các đối tượng COM: ADO (ActiveX Data Object) - xử lý dữ liệu,FSO (File System Object) - làm việc với hệ thống tập tin…, đồng thời,ASP cũng hỗ trợ nhiều ngôn ngữ: VBScript, JavaScript Chính những ưuđiểm đó, ASP đã được yêu thích trong một thời gian dài
Tuy nhiên, ASP vẫn còn tồn đọng một số khó khăn như Code ASP vàHTML lẫn lộn, điều này làm cho quá trình viết code khó khăn, thể hiện và
Trang 20trình bày code không trong sáng, hạn chế khả năng sử dụng lại code Bêncạnh đó, khi triển khai cài đặt, do không được biên dịch trước nên dễ bịmất source code Thêm vào đó, ASP không có hỗ trợ cache, không đượcbiên dịch trước nên phần nào hạn chế về mặt tốc độ thực hiện.Quá trình xử
lý Postback khó khăn,…
Đầu năm 2002, Microsoft giới thiệu một kỹ thuật lập trình Web khámới mẻ với tên gọi ban đầu là ASP+, tên chính thức sau này là ASP.Net.Với ASP.Net, không những không cần đòi hỏi bạn phải biết các tagHTML, thiết kế web, mà nó còn hỗ trợ mạnh lập trình hướng đối tượngtrong quá trình xây dựng và phát triển ứng dụng Web
ASP.Net là kỹ thuật lập trình và phát triển ứng dụng web ở phíaServer (Server-side) dựa trên nền tảng của Microsoft.Net Framework.Hầu hết, những người mới đến với lập trình web đều bắt đầu tìm hiểunhững kỹ thuật ở phía Client (Client-side) như: HTML, Java Script, CSS(Cascading Style Sheets) Khi Web browser yêu cầu một trang web (trangweb sử dụng kỹ thuật client-side), Web server tìm trang web mà Client yêucầu, sau đó gởi về cho Client Client nhận kết quả trả về từ Server và hiểnthị lên màn hình
ASP.Net sử dụng kỹ thuật lập trình ở phía server thì hoàn toàn khác,
mã lệnh ở phía server (ví dụ: mã lệnh trong trang ASP) sẽ được biên dịch
và thi hành tại Web Server Sau khi được Server đọc, biên dịch và thi hànhkết quả tự động được chuyển sang HTML/JavaScript/CSS và trả về choClient Tất cả các xử lý lệnh ASP.Net đều được thực hiện tại Server và do
đó, gọi là kỹ thuật lập trình ở phía server
Những ưu điểm của ASP.Net
- ASP.Net cho phép bạn lựa chọn một trong các ngôn ngữ lập trình mà
bạn yêu thích: Visual Basic.Net, J#, C#,…
Trang 21- Trang ASP.Net được biên dịch trước Thay vì phải đọc và thông dịch
mỗi khi trang web được yêu cầu, ASP.Net biên dịch những trang webđộng thành những tập tin DLL mà Server có thể thi hành nhanh chonhs
và hiệu quả Yếu tố này là một bước nhảy vọt đáng kể so với kỹ thuậtthông dịch của ASP
- ASP.Net hỗ trợ mạnh mẽ bộ thư viện phong phú và đa dạng của Net
Framework, làm việc với XML, Web Server, truy cập cơ sở dữ liệu quaADO.Net,…
- ASPX và ASP có thể cùng hoạt động trong 1 ứng dụng.
- ASP.Net sử dụng phong cách lập trình mới: Code behide Tách code
riêng, giao diện riêng => dễ đọc, dễ quản lý và bảo trì
- Kiến trúc lập trình giống ứng dụng trên Windows.
- Hỗ trợ quản lý trạng thái của các control.
- Tự động phát sinh mã HTML cho các Server control tương ứng với
từng loại Browser
- Hỗ trợ nhiều cơ chế cache.
- Triển khai cài đặt
Không cần lock, không cần đăng ký DLL
Cho phép nhiều hình thức cấy hình ứng dụng
- Hỗ trợ quản lý ứng dụng ở mức toàn cục.
Global.aspx có nhiều sự kiện hơn
Quản lý session trên nhiều Server, không cần Cookies
2.2.2 Quá trình xử lý tệp ASPX
Khi web server nhận được yêu cầu từ phía client, nó sẽ tìm kiếm tập tinđược yêu cầu thông qua chuỗi URL được gửi về, sau đó tiến hành xử lý theohình 2.1:
Trang 22Hình 2.1 Quá trình xử lý tệp ASPX
2.2.3 Phân loại tệp tin trong ASP.NET
Bảng 2.1 Phân loại tệp tin trong ASP.Net
.asax asa Tập tin global.asax trong ASP.Net thay thế cho tập
tin global.asa của ASP, là tập tin quản lý các sự kiệncủa ứng dụng (application), session, và các sự kiệnkhi có các yêu cầu tới trang web
.ascx Các điều khiển do con người dùng tự tạo được lưu
trữ với phần mở rộng là ascx
.asmx Tập tin Web Service của ứng dụng ASP.Net.aspx.aspx asp Phần mở rộng mặc định của trang ASP.Net
.config Tập tin cấu hình ứng dụng theo định dạng
XML.Web.config chứa hầu hết các cấu hình của ứngdụng
.cs Tập tin mã nguồn viết theo ngôn ngữ C#.js
.js js Tập tin mã nguồn của Jscript
Server tìm kiếm tập tin
Xử lý tập tin ASPX
Biên dịch
Thay đổi
Lưu trữ lại dưới dạng DLL
Thi hành trang ASPX
Trang 23.vb Tập tin mã nguồn viết theo ngôn ngữ VB.Net
2.2.4 Các đối tượng và các thành phần điều khiển trong ASP.NET
Các đối tượng nội tại như Request, Response, Form, Cookies, ServerVariables đều được giữ lại và hoàn toàn tương thích với ASP Tuy nhiênASP.Net cung cấp cho các đối tượng này nhiều thuộc tính và phương thứcmới giúp nâng cao khả năng xử lý lỗi của chúng
Các thành phần điều khiển trong ASP.NET
Điều khiển nội tại (intrinsic control)
Các điều khiển này tạo ra những phần tử kiểu HTML phía trình khách.Các phần tử HTML được coi là điều khiển nội tại: <table> <tr> <td>
<form> <input> <select> <textarea> <button> <a> <ing>
Điều khiển danh sách (list control)
Thành phần điều khiển này cho phép hiển thị mọi loại dữ liệu kiểudanh sách như các bảng dữ liệu (table), khung nhìn (view), liệt kê…Điềukhiển danh sách chuẩn gồm các thành phần sau: Repeater, Datalist vàDataGrid
Điều khiển Repeater là thành phần đơn giản cho phép kết xuất nhữngnội dung lặp lại với cùng một định dạng, font chữ, màu sắc…
DataList giống như Repeater nhưng cho phép thêm vào các phần tửđiều khiển HTML khác để biểu diễn cho dữ liệu lặp lại
DataGrid là khung lưới hay bảng dùng để trình bày dữ liệu theo địnhdạng hàng và cột, có thể dùng DataGrid để định dạng các dòng hoặc cột dữliệu giống như bảng tính Excel và kết xuất cuối cùng hoàn toàn là mãHTML tương thích với hầu hết các trình duyệt
Ngoài ra còn có hai điều khiển danh sách khác là RadioButtonList vàCheckBoxList để tạo các nút chọn
Điều khiển đa năng (rich control)
Trang 24Các điều khiển đa năng không dễ xây dựng bằng các phần tử HTMLđơn giản Các điều khiển đa năng được tạo bởi JavaScript cùng với thẻHTML để tạo nên những hiệu ứng đặc biệt.
Điều khiển kiểm tra (validate control)
ASP.NET cung cấp các điều khiển kiểm tra gọi là Validation Control
có thể dùng để sinh mã kiểm tra ở cả hai phía Client và Server
Hình 2.2 Sơ đồ xử lý kiểm tra dữ liệu nhập tại Client và ServerNhư các bạn đã biết, mỗi khi PostBack về Server, trang Web luôn kiểmtra tính hợp lệ dữ liệu (nếu có yêu cầu khi thiết kế) Nếu dữ liệu không hợp lệ(bỏ trống, vi phạm miền giá trị, mật khẩu lại không đúng…) trang web sẽkhông thể PostBack về Server
Không
Không -Có
Có
Client
Server
Trang 25Có 3 điều khiển:
RequeredFieldValidator: dùng kiểm tra giá trị bắt buộc của trường
ComparedValidator: Kiểm tra giá trị thông qua so sánh với giá trị khác.RegularExpressionValidator: Kiểm tra tính hợp lệ của dữ liệu
Ngoài ra còn có các điều khiển CustomValidator để cài đặt bộ kiểm tra dữliệu cho riêng mình bằng các hàm JavaScript hoặc Basic…, ValidationSummary sẽ kiểm tra tất cả các thành phần điều khiển của Validator và in kết
Chuỗi thông báo xuất hiện khi có lỗi
Chuỗi thông báo xuất hiện trong điều khiển Validation Summary
Giá trị này sẽ được hiển thị tại vị trí của điều khiển nếu chúng ta không gán giá trị cho thuộc tính Text
Qui định hình thức hiển thị:
None: Không hiển thị thông báo lỗi (vẫn có kiểm tra dữ liệu)
Static: Trong trường hợp không có vi phạm
dữ liệu, điều khiển không có hiển thị nhưng vẫn chiếm vị trí như trong lúc thiết kế
Dynamic: Trong trường hợp không có vi phạm dữ liệu, điều khiển không chiếm dụng vị trí trên màn hình
Có cho phép thực hiện kiểm tra ở phía Client hay không Giá trị mặc định là True - có kiểm tra
Trang 26quả nếu một điều khiển nào không thỏa mãn điều kiện kiểm tra Mỗi điềukhiển Validator được liên kết với một thành phần HTML thông qua thuộc tínhcủa phần tử.
2.3 Giới thiệu về ngôn ngữ lập trình C#
2.3.1 Tổng quan về ngôn ngữ lập trình C#
Ngôn ngữ C# khá đơn giản, chỉ khoảng 80 từ khóa và hơn mười mấy kiểu
dữ liệu được xây dựng sẵn Tuy nhiên, ngôn ngữ C# có ý nghĩa cao khi nóthực thi những khái niệm lập trình hiện đại C# bao gồm tất cả những hỗ trợcho cấu trúc, thành phần component, lập trình hướng đối tượng Những tínhchất đó hiện diện trong một ngôn ngữ lập trình hiện đại Và ngôn ngữ C# hội
đủ những điều kiện như vậy, hơn nữa nó được xây dựng trên nền tảng của haingôn ngữ mạnh nhất là C++ và Java
Ngôn ngữ C# được phát triển bởi đội ngũ kỹ sư của Microsoft, trong đóngười dẫn đầu là Anders Hejlsberg và Scott Wiltamuth Cả hai người này đều
là những người nổi tiếng, trong đó Anders Hejlsberg được biết đến là tác giảcủa Turbo Pascal, một ngôn ngữ lập trình PC phổ biến Và ông đứng đầunhóm thiết kế Borland Delphi, một trong những thành công đầu tiên của việcxây dựng môi trường phát triển thích hợp (IDE) cho lập trình client/server
Phần cốt lõi hay còn gọi là trái tim của bất cứ ngôn ngữ lập trình hướngđối tượng là sự hỗ trợ của nó cho việc định nghĩa và làm việc với những lớp.Những lớp thì định nghĩa những kiểu dữ liệu mới, cho phép người phát triển
mở rộng ngôn ngữ để tạo mô hình tốt hơn để giải quyết vấn đề Ngôn ngữ C#chứa những từ khóa cho việc khai báo những kiểu lớp đối tượng mới vànhững phương thức hay thuộc tính của lớp, và cho việc thực thi đóng gói, kếthừa, và đa hình, ba thuộc tính cơ bản của bất cứ ngôn ngữ lập trình hướng
Trang 27đối tượng.
Trong ngôn ngữ C# mọi thứ liên quan đến khai báo lớp đều được tim thấytrong phần khai báo của nó Định nghĩa một lớp trong ngôn ngữ C# không đòihỏi phải chia ra tập tin header và tập tin nguồn giống như trong ngôn ngữ C++ Hơn thế nữa, ngôn ngữ C# hỗ trợ kiểu XML, cho phép chèn các tag XML
để phát sinh tự động các document cho lớp
C# cũng hỗ trợ giao diện interface, nó được xem như một cam kết với mộtlớp cho những dịch vụ mà giao diện quy đinh Trong ngôn ngữ C#, một lớpchỉ có thể kế thừa từ duy nhất một lớp cha, tức là không cho đa kế thừa nhưtronh ngôn ngữ C++, tuy nhiên một lớp có thể thực thi nhiều giao diện Khimột lớp thực thi một giao diện thì nó sẽ hứa là nó sẽ cung cấp chức năng thựcthi giao diện
Trong ngôn ngữ C#, những cấu trúc cũng được hỗ trợ, nhưng khái niệm vềngữ nghĩa của nó thay đổi khác với C++ Trong C#, một cấu trúc được giớihạn, là kiểu dữ liệu nhỏ gọn, và khi tạo thể hiện thì nó yêu cầu ít hơn về hệđiều hành và bộ nhớ so với một lớp Một cấu trúc thì không thể kế thừa từmột lớp hay được kế thừa nhưng một cấu trúc có thể thực thi một giao diện.Ngôn ngữ C# cung cấp những đặc tính hướng thành phần (component-oriented), như là những thuộc tính, những sự kiện Lập trình hướng thànhphần được hỗ trợ bởi CLR cho phép lưu trữ metadata với mã nguồn cho mộtlớp Metadata mô ta cho một lớp, bao gồm những phương thức và nhữngthuộc tính của nó, cũng như những sự bảo mật cần thiết và những thuộc tínhkhác Mã nguồn chứa đựng những logic cần thiết để thực hiện những chứcnăng của nó Do vậy, một lớp được biên dịch như là một khối self-contained,nên môi trường hosting biết được cách đọc Metadata của một lớp và mã
Trang 28nguồn cần thiết mà không cần những thông tin khác để sử dụng nó.
2.3.2 Tại sao phải sử dụng ngôn ngữ C#
Nhiều người tin rằng không cần thiết có một ngôn ngữ lập trình mới Java,C++, Perl, Microsoft Visual Basic, và những ngôn ngữ khác được nghĩ rằng
đã cung cấp tất cả những chức năng cần thiết
Ngôn ngữ C# là một ngôn ngữ được dẫn xuất từ C và C++, nhưng nó đượctạo từ nền tảng phát triển hơn Microsoft bắt đầu với công việc trong C và C++ và thêm vào những đặc tính mới để làm cho ngôn ngữ này dễ sử dụng hơn.Nhiều trong số những đặc tính này khá giống với những đặc tính có trongngôn ngữ Java Không dừng lại ở đó, Microsoft đưa ra một số mục đích khixây dựng ngôn ngữ này Những mục đích này được tóm tắt như sau:
C# là ngôn ngữ đơn giản
C# là ngôn ngữ hiện đại
C# là ngôn ngữ hướng đối tượng
C# là ngôn ngữ mạnh mẽ và mềm dẻo
C# là ngôn ngữ có ít từ khóa
C# là ngôn ngữ hướng module
C# sẽ trở nên phổ biến
C# là ngôn ngữ đơn giản
C# loại bỏ một vài sự phức tạp và rối rắm của những ngôn ngữ nhưJava và C++ bao gồm việc loại bỏ những macro, những templace, đa kế thừa,
và lớp cơ sở ảo (virtual base class) Chúng là những nguyên nhân gây ra sựnhầm lẫn hay dẫn đến những vấn đề cho các người phát triển C++ Nếu chúng
ta là người học ngôn ngữ nàu đầu tiên thì chắc chắn là ta sẽ không trải quanhững thời gian để học nó! Nhưng khi đó ta sẽ không biết được hiệu quả củangôn ngữ C# khi loại bỏ những vấn đề trên
Trang 29Ngôn ngữ C# đơn giản vì nó dựa trên nền tảng C và C++ Nếu chúng
ta thân thiện với C và C++ hoặc thậm chí là Java, chúng ta sẽ thấy C# khágiống về diện mạo, cú pháp, biểu thức, toán tử và những chức năng khác đượclấy trực tiếp từ ngôn ngữ C và C++, nhưng nó đã được cải tiến để làm chongôn ngữ đơn giản hơn Một vài trong các sự cải tiến là loại bỏ các dư thừa,hay là thêm vào những cú pháp thay đổi Ví dụ như, trong C++ có ba toán tửlàm việc với các thành viên là ::, , và -> Để biết khi nào dùng ba toán tử nàycũng phức tạp và dễ nhầm lẫn Trong C#, chúng được thay thế với một toán
tử duy nhất gọi là (dot) Đối với người mới học thì điều này và những việc cảitiến khác làm bớt nhầm lẫn và đơn giản hơn
C# là ngôn ngữ hiện đại
Điều gì làm cho một ngôn ngữ hiện đại? Những đặc tính như là xử lýngoại lệ, thu gom bộ nhớ tự động, những kiểu dữ liệu mở rộng, và bảo mật
mã nguồn là những đặc tính được mong đợi trong một ngôn ngữ hiện đại C#chứa tất cả những đặc tính trên Nếu là người mới học lập trình có thể chúng
ta sẽ cảm thấy những đặc tính trên phức tạp và khó hiểu
Trong C#, bộ thu gom bộ nhớ tự động và kiểu dữ liệu an toàn đượctích hợp vào ngôn ngữ sẽ loại bỏ những vấn đề rắc rối của C++
C# là ngôn ngữ hướng đối tượng
Những đặc điểm chính của ngôn ngữ hướng đối tượng
(Object-oriented language) là sự đóng gói (encapsulation), sự kế thừa (inheritance), và
đa hình (polymorphism) C# hỗ trợ tất cả những đặc tính trên
C# là ngôn ngữ mạnh mẽ và cũng mềm dẻo
Như đã đề cập trước, với ngôn ngữ C# chúng ta chỉ bị giới hạn ở
Trang 30chính bởi bản thân hay là trí tưởng tượng của chúng ta Ngôn ngữ này khôngđặt những ràng buộc lên những việc có thể làm C# được sử dụng cho nhiểucác dự án khác nhau như là tạo ta ứng dụng xử lý văn bản, ứng dụng đồ họa,bản tính, hay thậm chí những trình biên dịch cho các ngôn ngữ khác.
C# là ngôn ngữ ít từ khóa
C# là ngôn ngữ sử dụng giới hạn những từ khóa Phần lớn các từ khóađược sử dụng để mô tả thông tin Chúng ta có thể nghĩ rằng một ngôn ngữ cónhiều từ khóa thì sẽ mạnh hơn
Điều này không phải sự thật, ít nhất là trong trường hợp ngôn ngữ C#,chúng ta có thể tìm thấy rằng ngôn ngữ này có thể được sử dụng để làm bất
cứ nhiệm vụ nào
C# là ngôn ngữ hướng module
Mã nguồn C# có thể được viết trong những phần được gọi là nhữnglớp, những lớp này chứa các phương thức thành viên của nó Những lớp vànhững phương thức có thể được sử dụng lại trong các ứng dụng hay cácchương trình khác Bằng cách truyền các mẫu thông tin đến những lớp hayphương thức chúng ta có thể tạo ra những mã nguồn dùng lại có hiệu quả
C# sẽ là một ngôn ngữ phổ biến
C# là một trong những ngôn ngữ lập trình mới nhất Vào thời điểm cuốnsách này được viết, nó không được biết như là một ngôn ngữ phổ biến Nhưngngôn ngữ này có một số lý do chính là Microsoft và sự cam kết của NET.Microsoft muốn ngôn ngữ C# trở nên phổ biến Mặc dù một công ty không thểlàm một sản phẩm trở nên phổ biến, nhưng nó có thể hỗ trợ Cách đây khônglâu, Microsoft đã gặp sự thất bại về hệ điều hành Microsoft Bob Mặc dùMicrosoft muốn Bob trở nên phổ biến nhưng thất bại C# thay thế tốt hơn đểđem đến thành công sơ với Bob Thật sự là không biết khi nào mọi người trong
Trang 31công ty Microsoft sử dụng Bob trong công việc hằng ngày của họ.
Tuy nhiên với C# thì khác, nó được sử dụng bởi Microsoft Nhiều sảnphẩm của công ty này đã chuyển đổi và viết lại bằng C# Bằng cách sử dụngngôn ngữ này Microsoft đã xác nhận khả năng của C# cần thiết cho nhữngngười lập trình
Microsoft NET là một lý do khác để đem đến sự thành công củaC# .NET là một sự thay đổi trong cách tạo và thực thi những ứng dụng
Ngoài hai lý do trên ngôn ngữ C# cũng sẽ trở nên phổ biến do nhữngđặc tính của ngôn ngữ này được đề cập trong mục trước như: đơn giản, hướngđối tượng, mạnh mẽ…
2.3.3 Các từ khóa của C#
Bảng 2.2 Các từ khóa của ngôn ngữ C#
abstract default foreach object sizeof unsafe
as delegate goto operator stackalloc ushort
bool double implicif override string virtual
catch explicit internal pbblic throw
2.3.4 Ngôn ngữ C# và các ngôn ngữ khác
Chúng ta đã từng nghe đến những ngôn ngữ khác như Visual Basic, C++
và Java Có lẽ chúng ta cũng tự hỏi sự khác nhau giữa ngôn ngữ C# và những
Trang 32ngôn ngữ đó Và cũng tự hỏi tại sao lại chọn ngôn ngữ này để học mà khôngchọn một trong những ngôn ngữ kia Có rất nhiều lý do và chúng ta hãy xemmột số sự so sánh giữa ngôn ngữ C# với những ngôn ngữ khác giúp chúng taphần nào trả lời được những thắc mắc.
Microsoft nói rằng C# mang đến sức mạnh của ngôn ngữ C++ với sự dễdàng của ngôn ngữ Visual Basic Có thể nó không dễ như Visual Basic,nhưng với phiên bản Visual Basic.NET (Version 7) thì ngang nhau Bởi vìchúng được viết lại từ một nền tảng Chúng ta có thể viết chương trình với ít
mã nguồn hơn nếu dùng C#
Mặc dù C# loại bỏ một vài các đặc tính của C++, nhưng bù lại nó tránhđược những lỗi mà thường gặp trong ngôn ngữ C++ Điều này có thể tiếtkiệm được hàng giờ hay thậm chí hàng ngày trong việc hoàn tất một chươngtrình Chúng ta sẽ hiểu nhiều về điều này trong các chương của giáo trình.Một điều quan trọng khác với C++ là mã nguồn C# không đòi hỏi phải cótập tin header Tất cả mã nguồn được viết trong khai báo một lớp
Như chúng ta biết NET runtime trong C# thực hiện việc thu gom bộ nhớ
tự động Do điều này nên việc sử dụng con trỏ trong C# ít quan trọng hơntrong C++ Những con trỏ cũng có thể được sử dụng trong C#, khi đó nhữngđoạn mã nguồn này sẽ được đánh dấu là không an toàn (unsafe code)
C# cũng từ bỏ ý tưởng đa kế thừa như trong C++ Và sự khác nhau là C#đưa thêm thuộc tính vào trong một lớp giống như trong Visual Basic Vànhững thành viên của lớp được gọi duy nhất bằng toán tử “.” khác với C++ cónhiều cách gọi trong các tình huống khác nhau
Một ngôn ngữ khác rất mạnh và phổ biến là Java, giống như C++ và C#được phát triển dựa trên C Nếu chúng ta quyết định sẽ học Java sau này,chúng ta sẽ tìm được nhiều cái mà học từ C# có thể được áp dụng
Điểm giống nhau C# và Java là cả hai cùng biên dịch mã trung gian: C#
Trang 33biên dịch ra MSIL còn Java biên dịch ra bytecode Sau đó chúng được thựchiện bằng cách thông dịch hoặc biên dịch just-in-time trong từng máy ảotương ứng Tuy nhiên, trong ngôn ngữ C# nhiều hỗ trợ được đưa ra để biêndịch mã ngôn ngữ trung gian sang mã máy C# chứa nhiều kiểu dữ liệu giá trị.
Ví dụ, ngôn ngữ C# hỗ trợ kiểu liệt kê (enumerator), kiểu này được giới hạnđến một tập hằng được định nghĩa trước, và kiểu dữ liệu cấu trúc đây là kiểu
dữ liệu giá trị do người dùng định nghĩa Chúng ta sẽ được tìm hiểu kỹ hơn vềkiểu dữ liệu tham chiếu và kiểu dữ liệu giá trị sẽ được trình bày trong phầnsau
Tương tự như Java, C# cũng từ bỏ tính đa kế thừa trong một lớp, tuy nhiên
mô hình kế thừa đơn này được mở rộng bởi tính đa kế thừa nhiều giao diện
2.3.5 Các bước chuẩn bị cho chương trình
Thông thường, trong việc phát triển phần mềm, người phát triển phải tuânthủ theo quy trình phát triển phần mềm một cách nghiêm ngặt và quy trìnhnày đã được chuẩn hóa Tuy nhiên trong phạm vi của chúng ta là tìm hiểu mộtngôn ngữ mới và viết những chương trình nhỏ thì không đòi hỏi khắt khe việcthực hiện theo quy trình Nhưng để giải quyết được những vấn đề thì chúng tacũng cần phải thực hiện đúng theo các bước sau Đầu tiên là phải xác địnhvấn đề cần giải quyết Nếu không biết rõ vấn đề thì ta không thể tìm đượcphương pháp giải quyết Sau khi xác định được vấn đề, thì chúng ta có thểnghĩ ra các kế hoạch để thực hiện Sau khi có một kế hoạch, thì có thể thực thi
kế hoạch này Sau khi kế hoạch được thực thi, chúng ta phải kiểm ra lại kếtquả để xem vấn đề được giải quyết xong chưa Logic này thường được ápdụng trong nhiều lĩnh vực khác nhau, trong đó có lập trình
Khi tạo một chương trình trong C# hay bất cứ ngôn ngữ nào, chúng ta nêntheo những bước tuần tự sau:
Trang 34 Xác định mục tiêu của chương trình.
Xác định những phương pháp giải quyết vấn đề
Tạo một chương trình để giải quyết vấn đề
Thực thi chương trình để xem kết quả
SQL cho phép bạn truy cập vào CSDL
SQL là một chuẩn ngôn ngữ của ANSI
SQL có thể thực thi các câu truy vấn trên CSDL
SQL có thể lấy dữ liệu từ CSDL
SQL có thể chèn dữ liệu mới vào CSDL
SQL có thể xóa dữ liệu trong CSDL
SQL có thể sear đổi dữ liệu hiện có trong CSDL
SQL là một chuẩn
SQL là một chuẩn của ANSI (American National Standards Institute Viện tiêu chuẩn quốc gia Hoa kỳ) về truy xuất các hệ thống CSDL Các câulệnh SQL được sử dụng để truy xuất và cập nhật dữ liệu trong một CSDL
-SQL hoạt động với hầu hết các chương trình CSDL như MS Access,DB2, Informix, MS SQL Server, Oracle, Sybase v.v…
Bảng CSDL
Một CSDL thường bao gồm một hoặc nhiều bảng (table) Mỗi bảng
được xác định thông qua một tên (ví dụ Customers hoặc Orders) Bảng chưa
các mẩu tin - dòng (record - row), là dữ liệu của bảng
Trang 35Quy tắc sử dụng tên trong SQL
Các đối tượng trong cơ sở dữ liệu dựa trên SQL được xác định thôngqua tên của đối tượng Tên của các đối tượng là duy nhất trong mỗi cơ sở dữliệu Tên được sử dụng nhiều nhất trong các truy vấn SQL và được xem lànền tảng trong cơ sở dữ liệu quan hệ là tên bảng và tên cột
Trong các cơ sở dữ liệu lớn với nhiều người sử dụng, khi ta chỉ định têncủa một bảng nào đó trong câu lệnh SQL, hệ quản trị cơ sở dữ liệu đó là têncủa bảng do ta sở hữu (tức là bảng do ta tạo ra) Thông thường, trong các hệquản trị cơ sở dữ liệu này cho phép những người dùng khác nhau tạo ra nhữngbảng trùng tên với nhau mà không gây ra xung đột về tên Nếu trong một câulệnh SQL ta cần chỉ đến một bảng do một người dùng khác sở hữu (hiểnnhiên là phải được phép) thì tên của bảng phải được viết sau tên của người sởhữu và phân cách với tên người sở hữu bởi dấu chấm:
Tên_người_sở _hữu tên_bảngMột số đối tượng cơ sở dữ liệu khác (như khung nhìn, thủ tục, hàm), việc sử dụng tên cũng tương tự như đối với bảng
Ta có thể sử dụng tên cột một cách bình thường trong các câu lệnh SQLbằng cách chỉ cần chỉ định tên của cột trong bảng Tuy nhiên, nếu trong câulệnh có liên quan đến hai cột trở lên có cùng tên trong các bảng khác nhau thìbắt buộc phải chỉ định thêm tên bảng trước tên cột, tên bảng và tên cột đượcphân cách nhau bởi dấu chấm
Trang 36SQL là ngôn ngữ thao tác dữ liệu (DML - Data Manipulation Language)
SQL là cú pháp để thực thi các câu truy vấn SQL cũng bao gồm cúpháp để cập nhật - sửa đổi, chèn thêm và xóa các mẩu tin
Sau đây là danh sách các lệnh và truy vấn dạng DML của SQL:
SELECT - lấy dữ liệu từ một bảng CSDL
Câu lệnh SELECT được sử dụng để truy xuất dữ liệu từ các dòng vàcác cột của một hay nhiều bảng, khung nhìn Câu lệnh này có thể dùng đểthực hiện phép chọn ( tức là truy xuất một tập con các dòng trong một haynhiều bảng), phép chiếu ( tức là truy xuất một tập con các cột trong một haynhiều bảng) và phép nối ( tức là liên kết các dòng trong hai hay nhiều bảng đểtruy xuất dữ liệu) Ngoài ra, câu lệnh này còn cung cấp khả năng thực hiệncác thao tác truy vấn và thống kê dữ liệu phức tạp khác
Điều cần lưu ý đầu tiên đối với câu lệnh này là các thành phần trongcâu lệnh SELECT nếu được sử dụng phải tuân theo đúng thứ tự như trong cúpháp Nếu không câu lệnh sẽ được xem là không hợp lệ
Câu lệnh SELECT được sử dụng để tác động lên các bảng dữ liệu vàkết quả của câu lệnh cũng được hiển thị dưới dạnh bảng, tức là một tập hợpcác dòng và các cột (ngoại trừ trường hợp sử dụng câu lệnh SELECT vớimệnh đề COMPUTE)
UPDATE - cập nhật/sửa đổi dữ liệu trong bảng
DELETE - xóa dữ liệu trong bảng
INSERT INTO - thêm dữ liệu mới vào bảng
Trong số các câu lệnh này, có thể nói SELECT là câu lệnh tương đối phức tạp
và được sử dụng nhiều trong cơ sở dữ liệu Với câu lệnh này, ta không chỉthực hiện các yêu cầu truy xuất dữ liệu đơn thuần mà còn có thể thực hiệnđược các yêu cầu thống kê dữ liệu phức tạp