Sự phát triển của công nghệ thông tin không chỉ bó hẹp trong một lĩnh vực cụ thể mà nó đã ứng dụng rộng rãi trong tất cả các lĩnh vực của xã hội.. Công nghệ LINQ : Từ trước tới nay khó
Trang 1HOÀNG HỮU TÍNH - LỚP 46K3 CNTT - ĐẠI HỌC VINH Trang 1
LỜI NÓI ĐẦU 2
CHƯƠNG 1 TÌM HIỂU VỀ CÔNG NGHỆ LINQ , HỆ QUẢN TRỊ CSDL SQL 2005 VÀ ASP.NET 3
1.1 Giới thiệu về công nghệ LINQ 3
1.2 Giới thiệu về hệ quản trị CSDL SQL 2005 6
1.3 Giới thiệu về ASP.NET 7
CHƯƠNG 2 PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG 9
2.1 Tổng quan về bài toán 9
2.2 Phân tích và thiết kế 9
CHƯƠNG 3 : GIỚI THIỆU WEBSITE SIÊU THỊ ONLINE 24
3.1 Giao diện người sử dụng 24
3.2 Giao diện của người quản trị 27
KẾT LU N 31
TÀI LIỆU THAM KHẢO 32
Trang 2LỜI NÓI ĐẦU
Ngày nay, công nghệ thông tin đã và đang là một trong những nghành mũi nhọn của đất nước Sự phát triển của công nghệ thông tin không chỉ bó hẹp trong một lĩnh vực cụ thể mà nó đã ứng dụng rộng rãi trong tất cả các lĩnh vực của xã hội Có thể nói công nghệ thông tin đã giúp con người giải quyết được nhiều bài toán phức tạp mà trước đây khi chưa xuất hiện máy tính con người khó có thể giải quyết được, nhưng điều quan trọng ở đây không chỉ đơn thuần là giải quyết bài toán mà là cách giải quyết bài toán đó như thế nào cho có hiệu quả và nhanh nhất Hầu hết các ứng dụng trong công nghệ phần mềm hiện nay đều ứng dụng công nghệ LINQ vào quá trình xây dựng Các ứng dụng website cũng không ngoại lệ, việc ứng dụng công nghệ LINQ vào thiết kế website làm cho việc lập trình trở nên đơn giản và hiệu quả hơn
Do đây là thời gian đầu tìm hiểu công nghệ mới nên chắc chắn không thể tránh khỏi những thiếu sót và hiệu quả đạt được chưa cao Rất mong được sự góp ý chân thành của các Thầy, Cô, và tất cả các bạn
Em xin chân thành cảm ơn các Thầy, Cô cùng tất cả các bạn, đặc biệt là sự hướng dẫn trực tiếp của thầy giáo TS Lê Ngọc Xuân ,em cũng xin cảm ơn các anh trong đội công nghệ công ty Cổ phần VTC và truyền thông trực tuyến (VTC-Online) đã tận tình chỉ bảo để em hoàn thành đề tài này
Nội dung đề tài gồm có 3 Chương
Chương 1 Giới thiệu về công nghệ LINQ, hệ quản trị CSDL SQL
2005 và ASP.NET
Chương 2 Phân tích và thiết kế hệ thống
Chương 3 Giới thiệu WEBSITE SIÊU THỊ ONLINE
Trang 3HOÀNG HỮU TÍNH - LỚP 46K3 CNTT - ĐẠI HỌC VINH Trang 3
CSDL SQL 2005 VÀ ASP.NET
1.1 Công nghệ LINQ :
Từ trước tới nay khó khăn lớn nhất cho các nhà phát triển là phải đối mặt với
sự khác biệt giữa ngôn ngữ lập trình hướng đối tượng và ngôn ngữ truy vấn dữ liệu Hiện tại, cách phổ biến nhất để ứng dụng lấy dữ liệu từ các hệ cơ sở dữ liệu là sử dụng SQL (Structure Query Language – ngôn ngữ truy vấn cấu trúc) SQL có cú pháp rất khác với những ngôn ngữ lập trình phổ dụng như C# và VB.NET, do vậy lập trình viên phải “hàn gắn” hai thực
thể khác biệt này với nhau trong mỗi dự án phần mềm
Để giảm gánh nặng thao tác trên nhiều ngôn ngữ khác nhau và cải thiện năng suất lập trình, Microsoft đã phát triển giải pháp tích hợp dữ liệu cho NET Framework có tên gọi là LINQ (Language Integrated Query): Ngôn ngữ kết hợp các câu lệnh truy vấn
LINQ to SQL là một phiên bản hiện thực hóa của O/RM (Object Relational Mapping) có bên trong Net Framework bản “Orcas” nay là NET 3.5, cho phép mô hình hóa một cơ sở dữ liệu dùng các lớp NET, truy vấn cơ sở dữ liệu (CSDL) dùng LINQ, cũng như cập nhật / thêm / xóa dữ liệu từ đó
LINQ to SQL hỗ trợ đầy đủ Transaction, View và các Stored procedure, Cung cấp thêm khả năng kiểm tra tính hợp lệ của dữ liệu và các quy tắc vào trong
mô hình dữ liệu
Mô hình hóa CSDL dùng LINQ to SQL
Visual Studio “Orcas” đã tích hợp thêm một trình thiết kế LINQ to SQL như
một công cụ dễ dàng cho việc mô hình hóa một cách trực quan các CSDL dùng LINQ to SQL
Trang 4Bằng cách dùng trình thiết kế LINQ to SQL, có thể tạo một mô hình cho CSDL mẫu “DataClasses1” giống như sau :
Mô hình LINQ to SQL ở trên định nghĩa bốn lớp thực thể: Product,
Category, Order và OrderDetail Các thuộc tính của mỗi lớp ánh xạ vào các cột
của bảng tương ứng trong CSDL Mỗi trường của một lớp biểu diễn một dòng trong bảng dữ liệu
Các mũi tên giữa bốn lớp thực thể trên biểu diễn quan hệ giữa các thực thể
khác nhau, chúng được tạo ra dựa trên các mối quan hệ Primary-key / Foreign-key trong CSDL Hướng của mũi tên chỉ ra mối quan hệ là một - một hay một - nhiều
Các thuộc tính tương ứng sẽ được thêm vào các lớp thực thể trong các trường hợp này
Trang 5HOÀNG HỮU TÍNH - LỚP 46K3 CNTT - ĐẠI HỌC VINH Trang 5
Product, nghĩa là 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 Lớp Product cũng sẽ có một thuộc tính
“Category” chỉ đến đối tượng “Category” chứa Product này bên trong Bảng các
phương thức bên tay phải bên trong trình thiết kế LINQ to SQL ở trên chứa một danh sách các Store Procedure để tương tác với mô hình dữ liệu của chúng ta
Tìm hiểu lớp DataContext :
Cứ mỗi một file LINQ to SQL thêm vào Solution, một lớp DataContext sẽ được tạo ra, nó sẽ được dùng khi cần truy vấn hay cập nhật lại các thay đổi Lớp DataContext được tạo sẽ có các thuộc tính để biểu diễn mỗi bảng được mô hình hóa
từ CSDL, cũng như các phương thức cho mỗi Store Procedure đã thêm vào
Dưới đây là lớp DataClasses1 được sinh ra dựa trên mô hình tạo ra ở trên:
Trang 6 Một số tính năng nổi bật của LINQ
Chạy cùng mã Code của chương trình -> Lỗi được phát hiện sớm không phải chờ hệ quản trị CSDL phản hồi
Có thể truy xuất nhiều loại dữ liệu hơn SQL (CSDL trong hệ CSDL, trong
bộ nhớ RAM của máy tính)
Điều quan trọng nhất, LINQ là tất cả về truy vấn, kết quả sau khi truy vấn có thể là tập hợp các đối tượng cùng loại, có thể là 1 đối tượng đơn, có thể là tập hợp
con của các trường từ 1 đối tượng Kết quả trả về của LINQ gọi là sequence Hầu hết sequence là IEnumerable<T> với T là kiểu dữ liệu của những đối tượng trong
sequence
LINQ là một giải pháp lập trình dữ liệu tích hợp cho Net Framework để giảm gánh nặng thao tác trên nhiều ngôn ngữ khác nhau và cung cấp khả năng truy vấn trực tiếp dữ liệu đối tượng, CSDL và XML
1.2 Hệ quản trị cơ sở dữ liệu SQL 2005
SQL là viết tắt của Structured Query Language – Ngôn ngữ truy vấn cấu trúc, 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âu lệnh SQL được
sử dụng để truy xuất và cập nhật dữ liệu trong một 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ụ Products hoặc Categorys) Ví dụ bảng Products:
Products ( ProductID, ProductName, CategoryID, Price, CreateDate, UserId)
Với SQL ta có thể truy vấn CSDL và nhận lấy kết quả trả về, cập nhật / sửa đổi, chèn thêm và xóa các mẩu tin thông qua các câu truy vấn
Danh sách các lệnh và truy vấn dạng DML (Data Manipulation Language):
o Select : Lấy dữ liệu từ một bảng CSDL
o Update : Cập nhật / sửa đổi dữ liệu trong bảng
Trang 7HOÀNG HỮU TÍNH - LỚP 46K3 CNTT - ĐẠI HỌC VINH Trang 7
o Insert into : Thêm dữ liệu vào bảng
1.3 Giới thiệu ASP.NET
ASP.NET là phiên bản kế tiếp của Active Server Page (ASP), nó là một nền phát triển ứng dụng Web hợp nhất, cung cấp nhiều dịch vụ cần thiết cho lập trình viên xây dựng các lớp ứng dụng chuyên nghiệp Cú pháp ASP.NET tương thích với
cú pháp ASP, ngoài ra ASP.NET còn cung cấp một mô hình lập trình mới, nền tảng
an toàn, linh hoạt và ổn định
ASP.NET là biên dịch, dựa trên môi trường NET và có thể xây dựng bằng bất cứ ngôn ngữ nào tương thích NET, bao gồm Visual Basic.NET, C#, và JScript NET
Lý do chọn ASP.NET :
Ta đã biết NET Framework và các ứng dụng của nó đã và đang tạo một cuộc cách mạng kỹ thuật trong công nghệ Tin Học (Information Technology), thay đổi tận gốc rễ các kiểu mẫu lập trình hay phát triển và triển khai mạng trên thế giới và do đó tạo một vận hội mới đáp ứng mọi yêu cầu khẩn thiết cho các ngành nghề kỹ thuật và thương mại hiện nay cũng như vạch một hướng đi vững chắc và dài lâu cho tương lai Tin Học ASP.NET chính là một trong những ứng dụng quan trọng nhất để phát triển và triển khai mạng một cách dễ dàng chưa từng thấy từ xưa đến nay
Không như ASP kiểu cổ điển chỉ giới hạn với VBScripts và JScripts, ASP NET
hỗ trợ trên 25 ngôn ngữ lập trình (ngoài các ngôn ngữ mới thiết lập đã cài sẵn hỗ trợ NET framework như là VB.NET, C# và JScript.NET )
Mặc dù có thể chỉ cần dùng tới Notepad để triển khai các trang ASP.NET nhưng Visual Studio NET giúp năng suất triển khai mạng thêm phần hiệu quả, có thể quan sát các kế hoạch của ta dễ dàng hơn khi phác họa (design) các thành phần của ASP.NET bằng hình ảnh với ASP.NET Web Forms hay Services theo phương pháp nhấn đúp chuột quen thuộc của nền Windows
Trang 8ASP.NET không những chạy nhanh hơn ASP cổ điển gấp 5 lần mà còn có thể duy trì kiểu mẫu cập nhật gọi là kiểu mẫu “just hit save”, nghĩa là ASP.NET tự động dò tìm mọi sự thay đổi và compile files khi cần thiết cũng như lưu trữ kết quả compile đó để cung ứng dịch vụ cho những yêu cầu tiếp theo sau, nhờ vậy ứng dụng luôn luôn cập nhật hóa và chạy nhanh hơn cả
Một số đối tƣợng trong ASP.NET :
Request :
o Trao đổi thông tin giữa Client và Server
o Dạng QueryString: Gửi thông tin kèm vào phần đuôi của URL
Response :
o Cho phép Server đáp ứng, trả lời hay thông tin với client
o Phương thức Write, Writeln: Viết dòng chữ
Trang 9HOÀNG HỮU TÍNH - LỚP 46K3 CNTT - ĐẠI HỌC VINH Trang 9
CHƯƠNG 2 : PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG
2.1 Tổng quan về bài toán
2.1.1 Lý do chọn đề tài
Trong thời đại bùng nổ của công nghệ thông tin, các công nghệ mới ngày càng giúp người lập trình làm việc nhanh,dễ dàng và thuận tiện hơn Công nghệ LINQ là một trong những công nghệ đó, vừa mới ra đời nó đã được đón nhận rộng rãi và đã đáp ứng được những yêu cầu của người sử dụng WEBSITE SIÊU THỊ ONLINE là ví dụ điển hình mà em chọn để áp dụng một phần nhỏ công nghệ mới
đó
2.1.2 Phạm vi của đề tài
Đề tài XÂY DỰNG WEBSITE SIÊU THỊ ONLINE
2.1.3 Nhiệm vụ của đề tài
Các bước tiến hành :
o Tìm hiểu cách xây dựng một trang web như thế nào
o Tìm hiểu việc ứng dụng công nghệ LINQ vào thiết kế website
o Tìm kiếm và tham khảo một số website siêu thị Online
o Tìm hiểu các hệ cơ sở dữ liệu hiện nay
o Tiến hành phân tích, thiết kế và lập chương trình
2.2 Phân tích và thiết kế hệ thống
2.2.1 Phân tích hệ thống về mặt chức năng
Trang 10Tên chức năng
a Biểu đồ phân cấp chức năng
b Biểu đồ luồng dữ liệu
Biểu đồ luồng dữ liệu là phương tiện diễn tả chức năng xử lý và việc trao đổi thông tin giữa các chức năng
Các ký hiệu đƣợc dùng trong biểu đồ
+ Luồng dữ liệu: Là một tuyến truyền dẫn thông tin vào hay ra một chức năng nào
Quản lý sản phẩm
Quản lý tin Xem giỏ hàng
Liên hệ góp ý
Quản lý phản hồi
Tên luồng dữ liệu
Trang 11HOÀNG HỮU TÍNH - LỚP 46K3 CNTT - ĐẠI HỌC VINH Trang 11
+ Các kho dữ liệu: Là một dữ liệu được lưu lại, để có thể được truy cập nhiều lần
về sau
Kí hiệu:
+ Tác nhân ngoài: Một tác nhân ngoài là một thực thể ngoài hệ thống, có trao đổi
thông tin với hệ thống
Kí hiệu:
Biểu đồ luồng dữ liệu mức khung cảnh
Tên kho dữ liệu
Tên tác nhân ngoài
Trang 12 Biểu đồ dữ liệu mức đỉnh
Góp ý Liên hệ
Phản hồi
Người quản trị
Kết quả tìm kiếm
Thông tin khách hàng
Thông tin tìm kiếm
Thông tin sản phẩm , giá cả
Thông tin yêu cầu Đáp ứng thông tin yêu cầu
Người quản trị
Đặt hàng
Quản lý đơn hàng
Tìm kiếm Sản phẩm
Khách hàng
Góp ý
Cập nhật Thông tin Khách hàng
Trang 13HOÀNG HỮU TÍNH - LỚP 46K3 CNTT - ĐẠI HỌC VINH Trang 13
Chú thích:
1) Thông tin về sản phẩm, nhóm sản phẩm
2) Thông tin về khách hàng, thông tin mua hàng
3) Thông tin yêu cầu xem, xóa đơn hàng.Thông tin giao hàng
4) Đáp ứng yêu cầu xem, xóa đơn hàng, giao hàng
5) Thông tin tìm kiếm sản phẩm
6) Kết quả tìm kiếm
7) Thông tin góp ý
8) Thêm vào giỏ hàng , đặt hàng
9) Đáp ứng yêu cầu
Biểu đồ dữ liệu mức dưới đỉnh
Chức năng cập nhật thông tin
Cập nhật Sản phẩm
Cập nhật Danh mục
Cập nhật Tin tức
Cập nhật khách hàng
Cập nhật đơn hàng
Trang 14Kho dữ liệu
Yêu cầu xem, xóa, giao hàng
Trang 15HOÀNG HỮU TÍNH - LỚP 46K3 CNTT - ĐẠI HỌC VINH Trang 15
Trang 16Mô tả thực thể:
Thực thể 1 : tblProduct
2 ProductsName nvarchar(255) Tên sản phẩm
4 QuantityPerUnit int Số lượng sản phẩm hiện đang có
6 Image nvarchar(255) Hình ảnh sản phẩm
7 Description nvarchar(MAX) Thông tin chi tiết sản phẩm
Thực thể 2 : tblCategory
2 CategoryName nvarchar(100) Tên danh mục sản phẩm
3 Description ntext Miêu tả chức năng của Category
Trang 17HOÀNG HỮU TÍNH - LỚP 46K3 CNTT - ĐẠI HỌC VINH Trang 17
2 UserName nvarchar(255) Tên đăng nhập khách hàng
3 Password nvarchar(255) Mật khẩu đăng nhập
4 Address nvarchar(255) Địa chỉ khách hàng
5 Phone nvarchar(50) Điện thoại khách hàng
6 Email nvarchar(255) Email khách hàng
7 FullName nvarchar(255) Họ tên đầy đủ khách hàng
Thực thể 4 : tblOrder
3 OrderDate datetime Ngày đặt hàng
4 RequiredDate datetime Ngày yêu cầu giao hàng
5 ShipedDate datetime Ngày giao hàng
6 ShipAddress nvarchar(400) Địa chỉ giao hàng
Thực thể 5 : tblOrderDetail
Trang 183 UnitPrice money Đơn giá sản phẩm
4 CountProducts int Số sản phẩm đặt hàng
Thực thể 6 : tblCart
6 UpdateDate datetime Ngày nhặt sản phẩm vào giỏ hàng
Thực thể 7 : tblNews
Trang 19HOÀNG HỮU TÍNH - LỚP 46K3 CNTT - ĐẠI HỌC VINH Trang 19
2 FullName nvarchar(200) Tên người phản hồi
3 Email nvarchar(200) Địa chỉ thư điện tử
4 Phone nvarchar(50) Điện thoại người gửi phản hồi
6 Command nvarchar(MAX) Nội dung phản hồi
Thực thể 9 : tblBEUser
2 UserName nvarchar(200) Tên người quản lý
3 Password nvarchar(255) Mật khẩu đăng nhập
4 Phone nvarchar(50) Điện thoại người quản lý
5 Email nvarchar(50) Email người quản lý
6 DonVi nvarchar(255) Địa chỉ nơi làm việc người quản lý
2.2.3 Phân tích thiết kế hệ thống mức logic
Chuyển từ mô hình thực thể kết hợp sang mô hình quan hệ
Từ mô hình khái niệm là mô hình biểu diễn tất cả các đối tượng, mỗi đối tượng là một thể hiện trong thế giới thực, tiến hành chuyển đổi nó sang mô hình quan hệ Ta được mô hình quan hệ như sau:
tblProduct (ProductsID, ProductsName, CategoryID, QuantityPerUnit, UnitPrice,
Image, Description, AddDate, Status, [View])
tblCategory (CategoryID,CategoryName,Description, Image, Status)
Trang 20tblCustomers (CustomersID, UserName, Password, Address, Phone, Email,
FullName, Gender, Birthday, Status)
tblOrder (OrderID, CustomsID, OrderDate, RequiredDate, ShipedDate,
ShipAddress, Status)
tblOrderDetail (OrderID, ProductsID, UnitPrice, CountProducts, Status)
tblCart (CartID, CustomersID, ProductsID, Count, Type, UpdateDate, Status)
tblNews (NewsID, Subject, Body, ShortOrder, Status)
tblReply (ReplyID, FullName, Email, Phone, Type, Command, CreateDate,
Status)
tblBEMenu (MenuID, Name, Link, Status)
tblBEUser (UserID, UserName, Password, Phone, Email, DonVi, Status)
Thiết kế các bảng dữ liệu :
Bảng tblCategory