You are on page 1of 49

BỘ GIÁO DỤC VÀ ĐÀO TẠO

TRƯỜNG
Thái Bình Phương Vin
KHOA

--------------

BÁO CÁO CHUYÊN ĐỀ THỰC TẬP


XÂY DỰNG WEBSITE THUÊ XE

Sinh viên thực hiện:


Mã số sinh viên:

BỘ GIÁO DỤC VÀ ĐÀO TẠO


Tháng 12,2021
năm 2023
TRƯỜNG ĐẠI HỌC
KHOA
--------------

BÁO CÁO CHUYÊN ĐỀ TỐT NGHIỆP


XÂY DỰNG WEBSITE THUÊ XE

Sinh viên thực hiện:


Mã số sinh viên:

, tháng 12 năm 2023


LỜI CẢM ƠN 1
MỞ ĐẦU 2
CHƯƠNG 1: CƠ SỞ LÝ THUYẾT 4
1.1 Giới thiệu...............................................................................................................4
1.2 Tổng quan về C#:...................................................................................................4
1.2.1 Môi trường lập trình:.......................................................................................4
1.2.2 Ngôn ngữ lập trình C#:.................................................................................12
1.3 Tổng quan về hệ quản trị cơ sở dữ liệu SQL Server:...........................................14
1.4. Lập trình C#.NET-Mô hình MVC trong ASP.NET MVC..................................21
1.4.1. Khái niệm mô hình MVC.............................................................................21
1.4.2. Lựa chọn và áp dụng mô hình trong xây dựng ứng dụng.............................22
1.4.3. Các tính năng của nền tảng ASP.NET MVC...............................................23
CHƯƠNG 2: PHÂN TÍCH THIẾT KẾ HỆ THỐNG 24
2.1 Xác định yêu cầu:.................................................................................................24
1.2.1 Yêu cầu chức năng........................................................................................24
1.2.2 Yêu cầu phi chức năng.................................................................................24
2.3 Phân tích yêu cầu.................................................................................................24
2.2. Sơ đồ usecase hệ thống:......................................................................................29
2.3 Mô hình hóa chức năng........................................................................................30
2.3.1 Biểu đồ phân rã chức năng (Bussiness Functional Diagram – BFD)...........30
2.3.2 Biểu đồ dòng dữ liệu (Data Flow Diagram-DFD)........................................30
2.4 Thiết kế cơ sở dữ liệu...........................................................................................34
2.4.1. Bảng cơ sở dữ liệu vật lý..............................................................................34
2.4.2 Bảng user.......................................................................................................34
2.4.3 Bảng Role......................................................................................................34
2.4.4 Bảng Rental...................................................................................................35
2.4.5 Bảng Vehicle..................................................................................................35
2.4.6 Bảng Voucher................................................................................................35
CHƯƠNG 3: XÂY DỰNG WEBSITE THUÊ XE TRỰC TUYẾN 37
3.1. Trang chủ website...............................................................................................37
3.2. Giao diện đăng ký tài khoản...............................................................................38
3.3. Giao diện đăng nhập tài khoản...........................................................................38
3.4. Giao diện tìm kiếm sản phẩm.............................................................................39
3.5. Giao diện xem chi tiết xe về thuê xe...................................................................40
3.6. Giao diện quản trị viên........................................................................................41
3.7. Giao diện quản lý đơn thuê xe............................................................................41
3.8. Giao diện quản lý danh mục xe cho thuê............................................................42
3.9. Giao diện quản lý người dùng.............................................................................43
3.10. Giao diện quản lý chương trình khuyến mãi.....................................................43
CHƯƠNG 4: KẾT LUẬN.........................................................................................44
4.1 Kết quả đạt được..................................................................................................44
4.3. Hướng phát triển.................................................................................................44
TÀI LIỆU THAM KHẢO 45
LỜI CẢM ƠN
Lời nói đầu tiên em xin chân thành cảm ơn đến toàn thể thầy cô trong
Khoa................., Trường.........................., những người đã tận tình hướng dẫn,
dạy dỗ cho emcác kiến thức bổ ích cho em trong môn .........................
Trong quá trình thực hiện báo cáo này em đã nhận được sự giúp đỡ chỉ
bảo tận tình của các thầy, cô giáo, nhóm em xin chân thành cảm ơn thầy ........
đã hướng dẫn trong quá trình làm báo cáo Môn lập trình web nâng cao.

Tuy nhiên, Với kiến thức được trao dồi qua các môn học mà thầy cô đã
tận tình chỉ dạy, em đã cố gắng hoàn thành thật tốt bài tập lớn của mình nhưng
do bản thân vẫn chưa hoàn toàn nắm vững kiến thức mà các thầy cô đã truyền
dạy, thời gian thực hiện có hạn không tránh khỏi những thiếu sót. Em rất mong
nhận được sự thông cảm, những lời góp ý và chỉ bảo tận tình của quý Thầy Cô
và các bạn.

Em xin chân thành cảm ơn!

1
MỞ ĐẦU

1. Đặt vấn đề
Cùng với sự phát triển của các lĩnh vực, kinh tế, xã hội, nhu cầu ứng dụng
của công nghệ thông tin ngày càng cao và không ngừng biến đổi. khi hệ thống
ngày càng phát triển, càng ngày càng phức tạp thì các phương thức quản lý cổ
điển truyền thống sẽ trở nên cồng kềnh và khó có thể đáp ứng được yêu cầu
ngày càng cao của hệ thống. Để xử lý các thông tin một cách nhanh chóng,
chính xác và có hiệu quả, đòi hỏi phải có sự hỗ trợ của một công cụ hiện đại, đó
chính là công nghệ thông tin. Công nghệ thông tin dần bước vào đời sống và giữ
vai trò quan trọng trong đời sống của con người. Các ứng dụng của công nghệ
thông tin đã trở thành những công cụ đắc lực trong nghiên cứu và thực nghiệm.
Máy tính đã dần thay thế con người ở khá nhiều mặt và là người phụ tá hữu ích
trên nhiều công việc khác nhau, giúp con người quản lý dễ dàng hơn các hệ
thống từ đơn giản đến phức tạp.

Ngày nay, phương tiện truyền thông đã trở thành một phần thiết yếu trong
cuộc sống của mỗi chúng ta, đặc biệt là các thiết bị truyền thông phổ thông như
điện thoại di động. Cùng với sự phát triển rộng lớn của các mạng di động, điện
thoại di động đã làm cho cuộc sống của chúng ta trở nên dễ dàng hơn trong việc
trao đổi thông tin mọi lúc, mọi nơi.

Tại Việt Nam, với cuộc sống ngày càng hiện đại, nhu cầu trao đổi thông
tin qua thiết bị di động ngày càng tăng. Tận dụng được những cơ hội này, các
doanh nghiệp Việt Nam không ngừng mở rộng hoạt động kinh doanh trên mọi
lĩnh vực nhằm mong muốn đáp ứng nhu cầu của người tiêu dùng. Công ty
TNHH Thương Mại và Dịch Vụ kinh doanh cũng không phải là một ngoại lệ,
với qui mô rộng lớn nhưng hoạt động bán hàng, marketing, quảng cáo… vẫn
gặp phải những khó khăn nhất định: hoạt động kinh doanh hầu như dựa trên
phương pháp thủ công, truyền thống là chủ yếu: khi khách hàng có nhu cầu mua
sản phẩm thì trực tiếp đến công ty để liên hệ, chọn sản phẩm và thanh toán. Qua
đó cho ta thấy: cả doanh nghiệp và khách hàng phải mất một khoảng chi phí và
thời gian nhất định đáng lẻ không nên có. Doanh nghiệp phải tốn kém thời gian
và chi phí cho việc quảng cáo, marketing, bán hàng nhưng lại không thu hút
được đông đảo khách hàng. Về phía khách hàng thì phải mất thời gian, chi phí đi
lại mà đôi lúc không chọn được sản phẩm mình mong muốn.

2
Xuất phát từ nhu cầu trên, Em quyết định chọn đề tài “Xây dựng Website
thuê xe” nhằm giúp doanh nghiệp giảm thiểu chi phí, quảng bá hình ảnh, sản
phẩm doanh nghiệp mình trên mạng Internet. Bên cạnh đó, Website còn hỗ trợ
khách hàng trong việc đăng ký, đặt hàng qua Website, cập nhật thông tin về
những sản phẩm hiện có và sắp ra mắt trên thị trường một cách nhanh nhất và
đem lại sự hài lòng cao nhất từ phía khách hàng.
2. Nhiệm vụ của đề tài
Xây dựng “Website thuê xe” giúp dễ dàng trong hoạt động quản lý thông
tin và quản trị liên quan đến hoạt động cho thuê xe trang mạng được hoạt động
tiện ích và nhanh chóng.
3. Mục tiêu của đề tài
- Tìm hiểu một số công cụ và ngôn ngữ hỗ trợ quá trình xây dựng
Website.
- Các chức năng của Website thuê xe trực tuyến.
- Quy trình xây dựng Website thuê xe trực tuyến.
- Một số kỹ thuật trong áp dụng trong việc xây dựng Website thuê xe trực
tuyến.
- Xây dựng Demo Website thuê xe giao diện thân thiện với người dùng và
dễ quản lý vận hành.
4. Bố cục của đề tài
Chương 1: Cơ sở lý thuyết
Chương 2: Phân tích thiết kế hệ thống
Chương 3: Xây dựng Website thuê xe trực tuyến
Chương 4: Kết luận

3
CHƯƠNG 1: CƠ SỞ LÝ THUYẾT
1.1 Giới thiệu

Phần mềm hoạt động trên nền tảng môi trường lập trình với ngôn ngữ lập
trình C#, hệ cơ sở dữ liệu SQL Server.

+ Cấu trúc xây dựng Website thuê xe theo mô hình MVC.

1.2 Tổng quan về C#:


1.2.1 Môi trường lập trình:

.NET Framework của Microsoft là một nền tảng lập trình tập hợp các thư
viện lập trình có thể được cài thêm hoặc đã có sẵn trong các hệ điều hành
Windows. Nó cung cấp những giải pháp thiết yếu cho những yêu cầu thông
thường của các chương trình điện toán như lập trình giao diện người dùng, truy
cập dữ liệu, kết nối cơ sở dữ liệu, ứng dụng web, các giải thuật số học và giao
tiếp mạng. Ngoài ra, .NET Framework quản lý việc thực thi các chương trình
được viết dựa trên .NET Framework do đó người dùng cần phải cài
Framework để có thể chạy các chương trình được viết trên nền .NET.

Chẳng hạn, để thiết kế một trò chơi đua xe, nếu không có bộ Framework
chuyên dụng cho game, người lập trình game phải tự tạo ra khung xe, bánh xe,
người, đường đi, cây, biển báo... rồi mới tính đến chuyện lắp ghép chúng lại với
nhau để tạo ra không gian cho game trong khi cũng với dạng trò chơi này,
nhưng nếu dùng bộ Framework có sẵn đã được phát triển thì người lập trình viên
chỉ cần viết các lệnh để lấy chúng ra từ Framework và ghép chúng lại.

Không phải mọi ngôn ngữ lập trình đều khai thác được Framework, muốn
sử dụng các vật liệu trong bộ Framework, đòi hỏi người lập trình viên phải dùng
các ngôn ngữ lập trình có hỗ trợ .NET như VB.NET, C#.NET, ASP.NET...

Framework có 2 thành phần chính là:

1. Common Language Runtime (CLR)

4
CLR là thành phần kết nối giữa các phần khác trong .NET
Framework với hệ điều hành. CLR là chương trình viết bằng .NET, không được
biên dịch ra mã máy mà nó được dịch ra một ngôn ngữ trung gian Microsoft
Intermediate Language (MSIL). Khi chạy chương trình, CLR sẽ dịch MSIL ra
mã máy để thực thi các tính năng, đảm bảo ứng dụng không chiếm dụng và sử
dụng tràn lan tài nguyên của hệ thống. Nó cũng không cho phép các lệnh nguy
hiểm được thi hành. Các chức năng này được thực thi bởi các thành phần bên
trong CLR như Class loader, Just In Time compiler, Garbage
collector, Exception handler, COM marshaller, Security engine, …

Trong các phiên bản hệ điều hành Windows mới như XP.Net và Windows
2003, CLR được gắn kèm với hệ điều hành. Điều này đảm bảo ứng dụng viết ra
trên máy tính của bạn sẽ chạy trên các máy tính khác mà không cần cài đặt.

5
2. NET Framework class library

.NET Framework class library cung cấp thư viện lập trình để xây dựng
các ứng dụng trên nhiều nền tảng khác nhau, bao gồm cả Windows, Web và
thiết bị di động. Điều này cho phép các lập trình viên sử dụng các công cụ và
thư viện chung để phát triển các ứng dụng cho nhiều nền tảng một cách dễ dàng.

Ngoài ra, .NET Framework class library còn cung cấp các công cụ và thư
viện cho việc xử lý đa luồng, bao gồm cả các lớp Thread và ThreadPool để quản
lý các luồng trong ứng dụng. Các lớp và công cụ này giúp cho việc phát triển
các ứng dụng đa luồng trở nên dễ dàng hơn và hiệu quả hơn.

.NET Framework class library cũng cung cấp nhiều công cụ và lớp để xử lý
các tác vụ liên quan đến bảo mật, bao gồm cả các lớp Cryptography và các công
cụ để xử lý các chuỗi ký tự và mã hóa.

Tổng quan lại, .NET Framework class library là một bộ thư viện rất đầy đủ
và mạnh mẽ, cung cấp cho các lập trình viên nhiều công cụ và thư viện để xây
dựng các ứng dụng trên nhiều nền tảng khác nhau. Các lớp và công cụ trong thư
viện này giúp cho việc phát triển các ứng dụng trở nên dễ dàng hơn và hiệu quả
hơn, giúp cho các lập trình viên tiết kiệm thời gian và công sức trong quá trình
phát triển ứng dụng.

+ Base class library – thư viện các lớp cơ sở

Base class library là một trong những thư viện quan trọng nhất trong .NET
Framework class library. Nó chứa các lớp cơ bản và các thành phần cần thiết để
phát triển các ứng dụng .NET Framework. Các lớp trong thư viện này được sử
dụng rộng rãi trong quá trình lập trình, và cung cấp các tính năng cơ bản như xử
lý chuỗi, số, ngày tháng và xử lý ngoại lệ.

Các lớp trong Base class library bao gồm các lớp chuỗi, số, ngày tháng,
thời gian, ngoại lệ, và nhiều lớp khác. Ví dụ lớp String cung cấp các phương
thức và thuộc tính để xử lý chuỗi, lớp Integer cung cấp các phương thức và

6
thuộc tính để xử lý số nguyên, và lớp Exception cung cấp các phương thức và
thuộc tính để xử lý ngoại lệ.

Các lớp trong Base class library cũng cung cấp các tính năng cơ bản như
xử lý tệp, quản lý bộ nhớ, và xử lý đa luồng. Ngoài ra, các lớp trong thư viện
này cũng cung cấp các tính năng liên quan đến bảo mật, bao gồm các lớp mã
hóa và giải mã, và các lớp đối tượng xác thực và ủy quyền.

Tóm lại, Base class library là một phần quan trọng của .NET Framework
class library, cung cấp các lớp cơ bản và các tính năng cần thiết để phát triển các
ứng dụng .NET Framework. Các lớp trong thư viện này được sử dụng rộng rãi
trong quá trình lập trình và cung cấp các tính năng cơ bản như xử lý chuỗi, số,
ngày tháng và xử lý ngoại lệ.

+ ADO.NET và XLM

ADO.NET và XML là hai thư viện quan trọng trong .NET Framework
class library, được sử dụng để xử lý dữ liệu trong các ứng dụng .NET.

ADO.NET là một bộ thư viện được sử dụng để thao tác với các cơ sở dữ
liệu thông thường, bao gồm cả Microsoft SQL Server, Oracle và MySQL.
ADO.NET cung cấp các lớp đối tượng để kết nối và truy vấn cơ sở dữ liệu, bao
gồm các lớp SQLConnection, SQLCommand và SQLDataReader. Nó cũng cung
cấp các lớp để thao tác với dữ liệu dưới dạng bảng như DataSet và DataTable.

XML là một định dạng dữ liệu phổ biến trong các ứng dụng web và di
động. .NET Framework class library cung cấp các lớp đối tượng để xử lý dữ liệu
XML, bao gồm các lớp XmlReader và XmlWriter để đọc và ghi dữ liệu XML,
cùng với các lớp XmlDocument và XmlElement để xử lý các tài liệu XML.

Các lớp và công cụ trong ADO.NET và XML giúp cho việc xử lý dữ liệu
trong các ứng dụng .NET. Ví dụ, SQLDataAdapter và SQLCommand giúp cho
việc truy vấn cơ sở dữ liệu trở nên đơn giản và nhanh chóng hơn, trong khi
DataSet và DataTable giúp cho việc thao tác với dữ liệu dưới dạng bảng trở nên

7
dễ dàng hơn. Các lớp đối tượng XML cũng giúp cho việc xử lý dữ liệu XML trở
nên đơn giản và nhanh chóng hơn.

Tóm lại, ADO.NET và XML là hai bộ thư viện quan trọng trong .NET
Framework class library, được sử dụng để xử lý dữ liệu trong các ứng
dụng .NET. Các lớp và công cụ trong ADO.NET và XML giúp cho việc xử lý
dữ liệu trở nên dễ dàng hơn và hiệu quả hơn, và là một phần quan trọng trong
quá trình phát triển các ứng dụng .NET.

+ ASP.NET

Ứng dụng Web xây dựng bằng ASP.NET tận dụng được toàn bộ khả năng
của .NET Framework. Bên cạnh đó là một phong cách lập trình mới mà
Microsoft đặt cho nó một tên gọi là code behind. Đây là cách mà lập trình viên
xây dựng các ứng dụng Windows based thường sử dụng – giao diện và lệnh
được tách tiêng. Tuy nhiên, nếu bạn đã từng quen với việc lập trình ứng dụng
web, đây là việc mà bạn giải phóng khỏi các lệnh HTML.

Sự xuất hiện của ASP.NET làm cân xứng giữa quá trình xây dựng ứng
dụng trên Windows và Web. ASP.Net cung cấp một bộ các Server Control để
lập trình viên bắt sự kiện và xử lý dữ liệu của ứng dụng như đang làm việc với
ứng dụng của Windows. Nó cũng cho phép bạn chuyển một ứng dụng trước đây
viết chỉ chạy trên Windows thành một ứng dụng Web khá dễ dàng. Ví dụ cho
các lớp trong thư viện này là WebControl, HTML Control, …

ASP.NET là một trong những phần quan trọng nhất của .NET Framework
class library, được sử dụng để phát triển ứng dụng web trên nền tảng .NET. Nó
cung cấp các công cụ và lớp để phát triển các ứng dụng web, bao gồm các lớp
để xử lý yêu cầu HTTP, các lớp để tạo giao diện người dùng, và các lớp để truy
cập cơ sở dữ liệu.

ASP.NET có nhiều ưu điểm so với các công nghệ phát triển ứng dụng web
khác. Đầu tiên, nó cung cấp một phong cách lập trình mới gọi là code-behind,
cho phép lập trình viên tách phần giao diện người dùng và phần xử lý logic của
8
ứng dụng. Điều này giúp tăng tính bảo mật và quản lý mã nguồn trong quá trình
phát triển ứng dụng.

Thứ hai, ASP.NET cung cấp các Server Control để lập trình viên bắt sự
kiện và xử lý dữ liệu của ứng dụng, giúp cho việc phát triển ứng dụng web trên
nền tảng .NET trở nên dễ dàng hơn và hiệu quả hơn. Nó cũng cho phép lập trình
viên chuyển đổi các ứng dụng trước đây chỉ chạy trên Windows thành các ứng
dụng web một cách dễ dàng. Các Server Control cung cấp cho lập trình viên các
tính năng tương tự như các ứng dụng Windows, bao gồm các tính năng như
nhập liệu, kiểm tra dữ liệu, và phân trang.

Thứ ba, ASP.NET cung cấp tính năng caching để tăng tốc độ xử lý yêu cầu
và giảm tải cho máy chủ. Caching cho phép lưu trữ các trang web hoặc phần của
trang web trong bộ nhớ cache của máy chủ, giảm thời gian phản hồi cho các yêu
cầu tương tự.

Các lớp trong ASP.NET bao gồm các lớp WebControl, HTML Control, và
nhiều lớp khác. Ví dụ, lớp WebControl cung cấp các phương thức và thuộc tính
để tạo và quản lý các Server Control trên một trang web, trong khi lớp HTML
Control cung cấp các phương thức và thuộc tính để tạo và quản lý các phần tử
HTML trên một trang web.

Tóm lại, ASP.NET là một phần quan trọng của .NET Framework class
library, cung cấp các công cụ và lớp để phát triển các ứng dụng web trên nền
tảng .NET. Các lớp trong thư viện này giúp cho việc phát triển ứng dụng web
trở nên dễ dàng hơn và hiệu quả hơn, và cho phép lập trình viên chuyển đổi các
ứng dụng trước đây chỉ chạy trên Windows thành các ứng dụng web một cách
dễ dàng. ASP.NET cũng có nhiều tính năng tiên tiến, bao gồm code-behind,
Server Control, và caching, giúp tăng tính bảo mật, quản lý mã nguồn và tăng
tốc độ xử lý yêu cầu và giảm tải cho máy chủ.

+ Web services

9
Web services là các dịch vụ được cung cấp qua Web (hay Internet). Dịch
vụ được coi là Web service không nhằm vào người dùng mà nhằm vào người
xây dựng phần mềm. Web services có thể dùng để cung cấp các dữ liệu hay một
chức năng tính toán.

Web services là một công nghệ rất phổ biến trong việc phát triển các ứng
dụng web và phần mềm. Các dịch vụ Web service đang trở nên ngày càng phổ
biến vì chúng giúp cho việc tích hợp các ứng dụng và hệ thống trở nên dễ dàng
hơn.

Các dịch vụ Web service được thiết kế để cung cấp các chức năng hoặc dữ
liệu thông qua mạng Internet. Điều này có nghĩa là các ứng dụng và hệ thống có
thể kết nối và tương tác với nhau bằng cách sử dụng các giao thức và chuẩn
Web service như SOAP, REST, XML và JSON.

Một trong những ưu điểm của các dịch vụ Web service là tính độc lập với
ngôn ngữ lập trình. Nó có thể được sử dụng trong các ứng dụng được phát triển
bằng bất kỳ ngôn ngữ lập trình nào, miễn là các ứng dụng này có khả năng giao
tiếp với các giao thức và chuẩn Web service.

Các dịch vụ Web service có thể được sử dụng để cung cấp các dịch vụ như
xử lý thanh toán, xử lý giao dịch và truy xuất dữ liệu từ cơ sở dữ liệu. Chúng
cũng có thể được sử dụng để cung cấp các chức năng tính toán phức tạp như
việc tính toán khoảng cách giữa hai địa điểm dựa trên các tọa độ địa lý.

Các dịch vụ Web service được sử dụng rộng rãi trong các ứng dụng điện
toán đám mây và các hệ thống phân tán. Chúng cũng được sử dụng trong các
ứng dụng di động và IoT, nơi các thiết bị có thể truy cập và tương tác với các
dịch vụ Web service trên Internet.

Tóm lại, các dịch vụ Web service là các dịch vụ được cung cấp qua mạng
Internet và được sử dụng để cung cấp các chức năng hoặc dữ liệu cho các ứng
dụng và hệ thống khác. Chúng có tính độc lập với ngôn ngữ lập trình và được sử

10
dụng rộng rãi trong các ứng dụng điện toán đám mây, các hệ thống phân tán,
ứng dụng di động và IoT.

+ Windows form

Bộ thư viện về Windows form gồm các lớp đối tượng dành cho việc xây
dựng các ứng dụng Windows based. Việc xây dựng ứng dụng loại này vẫn được
hỗ trợ tốt từ trước đến nay bởi các công cụ và ngôn ngữ lập trình của Microsoft.
Giờ đây, ứng dụng chỉ chạy trên Windows sẽ có thể làm việc với ứng dụng Web
dựa vào Web service.

Windows Forms là một phần quan trọng của .NET Framework class
library, được sử dụng để phát triển các ứng dụng Windows-based. Nó cung cấp
các lớp đối tượng để xây dựng giao diện người dùng, xử lý sự kiện và tương tác
với hệ thống Windows.

Các lớp đối tượng trong Windows Forms bao gồm các lớp như Form,
UserControl, Button, Label, TextBox, ComboBox, ListBox, DataGridView và
nhiều lớp khác. Các lớp này cung cấp các phương thức và thuộc tính để tạo và
quản lý các thành phần giao diện người dùng trên một ứng dụng Windows-
based.

Việc xây dựng các ứng dụng Windows-based vẫn được hỗ trợ tốt từ trước
đến nay bởi các công cụ và ngôn ngữ lập trình của Microsoft như C# và Visual
Basic. Tuy nhiên, hiện nay, các ứng dụng Windows-based có thể kết nối và
tương tác với các ứng dụng web thông qua Web service như đã đề cập trước đó.

Điều này có nghĩa là các ứng dụng Windows-based có thể sử dụng các dịch
vụ Web service để truy xuất dữ liệu từ các nguồn khác nhau trên Internet hoặc
để cung cấp các chức năng của ứng dụng cho các ứng dụng web khác.

Tóm lại, bộ thư viện Windows Forms cung cấp các lớp đối tượng để xây
dựng các ứng dụng Windows-based. Việc xây dựng các ứng dụng này vẫn được
hỗ trợ tốt bởi các công cụ và ngôn ngữ lập trình của Microsoft. Tuy nhiên, hiện

11
nay, các ứng dụng này có thể kết nối và tương tác với các ứng dụng web thông
qua Web service, mở ra những cơ hội mới cho việc phát triển các ứng dụng
tương tác giữa Windows-based và Web-based.

1.2.2 Ngôn ngữ lập trình C#:

Ngôn ngữ C# khá đơn giản, khoảng 80 từ khóa và khoảng hơn mười kiểu
dữ liệu được soạn sẵn. 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 gì hỗ trợ cho cấu trúc, thành phần
component, lập trình hướng đối tượng. Những tính chất đó hiện diện trong một
ngôn ngữ lập trình hiện đại. C# được xây dựng trên 2 nền tảng ngôn ngữ mạnh
nhất là C++ và Java.

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. Phần cốt lõi của cá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 cho
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, đa hình, ba thuộc tính cơ bản của ngôn ngữ lập trình hướng đối tượng.

Trong ngôn ngữ C# mọi thứ liên quan đến khai báo đều được tìm thấy
trong phần khai báo của nó. Định nghĩa một lớp của C# không đòi hỏi phải chia
ra tập tin header và tập tin nguồn giống như ngôn ngữ C++. 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ột lớp cho những dịch vụ mà giao diện quy định. Trong ngôn ngữ C#, một lớp
chỉ có thể kế thừa duy nhất từ một lớp cha, tức là không cho đa kế thừa như
trong ngôn ngữ C++, tuy nhiên một lớp có thể thực thi nhiều giao diện.

12
Trong ngôn ngữ C#, những cấu trúc đượ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ói hạ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ể được kế thừa từ một lớp.
Metadata mô tả cho một lớp, bao gồm những phương thức và những thuộ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ính khác. Mã
nguồn chứa đựng những logic cần thiết để thực hiện những chức nă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 Matadata của một lớp và mã nguồn cần thiết mà
không cần những thông tin khác để sử dụng nó.

Ngôn ngữ này hỗ trợ việc truy cập bộ nhớ trực tiếp sử dụng kiểu con trỏ
của C++ và từ khóa cho dấu ngoặc trong toán tử. Các mã nguồn này là không an
toàn. Và bộ giải phóng bộ nhớ tự động của CLR sẽ không thực hiện việc giải
phóng những đối tượng tham chiếu bằng sử dụng con trỏ cho đến khi chúng
được giải phóng.

Ưu điểm của ngôn ngữ C#:

+ Ngôn ngữ đơn giản.

+ Ngôn ngữ hiện đại.

+ Ngôn ngữ hướng đối tượng.

+ Ngôn ngữ mạnh mẽ và mềm dẻo.

+ Ngôn ngữ có ít từ khóa.

+ Ngôn ngữ hướng module.

+ Ngôn ngữ phổ biến.

13
1.3 Tổng quan về hệ quản trị cơ sở dữ liệu SQL Server:

Phiên bản đầu tiên của Microsoft SQL Server ra đời đầu tiên vào năm 1989
cho các hệ điều hành chạy 16 bít với SQL Server phiên bản 1.0 và tiếp tục phát
triển cho tới ngày nay.

SQL Server của Microsoft được thị trường chấp nhận rộng rãi kể từ version
6.5. Sau đó Microsoft đã cải tiến và hầu như viết lại một engine mới cho SQL
Server 7.0. Cho nên có thể nói từ version 6.5 lên version 7.0 là một bước nhảy
vọt. Có một số đặc tính của SQL Server 7.0 không tương thích với version 6.5.
Trong khi đó từ Version 7.0 lên version 8.0 (SQL Server 2000) thì những cải
tiến chủ yếu là mở rộng các tính năng về web và làm cho SQL Server 2000 đáng
tin cậy hơn.

Một điểm đặc biệt đáng lưu ý ở phiên bản 2000 là Multiple-Instance. Tức
là bạn có thể cài dặt phiên bản 2000 chung với các phiên bản trước mà không
cần phải gỡ chúng. Nghĩa là bạn có thể chạy song song version 6.5 hoặc 7.0 với
phiên bản 2000 trên cùng một máy (điều này không thể xảy ra với các phiên bản
trước đây). Khi đó phiên bản cũ trên máy bạn là Default Instance còn phiên bản
2000 mới vừa cài sẽ là Named Instance.

Từ tháng 10 năm 2016, các phiên bản sau được Microsoft hỗ trợ:

+ SQL Server 2008 R2.

+ SQL Server 2012.

+ SQL Server 2014.

+ SQL Server 2016.

+ SQL Server 2019.

Phiên bản hiện tại là Microsoft SQL Server 2022, xuất bản vào ngày 16
tháng 11 năm 2022..

14
SQL Server 2022 chỉ hỗ trợ cho các bộ vi xử lý 64 bít bao gồm AMD
Opteron, AMD Athlon 64, Intel Xeon với hỗ trợ Intel EM64T và Intel Pentium
IV với hỗ trợ EM64T. + Tốc độ CPU: Yêu cầu tối thiểu là 1.4 GHz (mức tối ưu
là 2.0 GHz hoặc nhanh hơn)

SQL Server là một hệ quản trị cơ sở dữ liệu quan hệ (Relational Database


Management System (RDBMS) sử dụng câu lệnh SQL (Transact-SQL) để trao
đổi dữ liệu giữa máy Client và máy cài SQL Server. Một RDBMS bao gồm
databases, database engine và các ứng dụng dùng để quản lý dữ liệu và các bộ
phận khác nhau trong RDBMS.

SQL Server được tối ưu để có thể chạy trên môi trường cơ sở dữ liệu rất
lớn (Very Large Database Environment) lên đến Tera-Byte và có thể phục vụ
cùng lúc cho hàng ngàn user. SQL Server có thể kết hợp “ăn ý” với các server
khác như Microsoft Internet Information Server (IIS)…..

Một vài ấn bản SQL Server:

+ Enterprise: là phiên bản SQL Server có tính năng cao nhất và được thiết
kế để đáp ứng nhu cầu của các doanh nghiệp lớn và khó tính. Nó cung cấp các
tính năng nâng cao như AlwaysOn Availability Groups, chế độ xem bản ghi và
mã hóa dữ liệu trong khi lưu trữ. Nó cũng cung cấp các công cụ quản lý phức
tạp để giúp quản trị viên quản lý các cơ sở dữ liệu lớn và phức tạp.

Các tính năng AlwaysOn Availability Groups của Enterprise cho phép các
cơ sở dữ liệu được sao chép và đồng bộ hóa, đảm bảo tính khả dụng và khả năng
phục hồi nhanh chóng của các cơ sở dữ liệu quan trọng. Nó cũng cung cấp chế
độ xem bản ghi để đảm bảo tính toàn vẹn của dữ liệu và mã hóa dữ liệu trong
khi lưu trữ để bảo vệ dữ liệu quan trọng khỏi các cuộc tấn công từ bên ngoài.

Ngoài ra, Enterprise còn hỗ trợ tới 640 bộ vi xử lý, cho phép nó xử lý các
tác vụ phức tạp và đa nhiệm một cách hiệu quả. Nó cũng có thể quản lý các
CSDL lớn tới 524 petabytes và đánh địa chỉ 12 terabytes bộ nhớ, đảm bảo khả
năng mở rộng và tối đa hóa hiệu suất của các cơ sở dữ liệu lớn.
15
Tóm lại, Enterprise là phiên bản SQL Server có tính năng cao nhất và được
thiết kế để đáp ứng nhu cầu của các doanh nghiệp lớn và khó tính. Nó cung cấp
các tính năng nâng cao như AlwaysOn Availability Groups, chế độ xem bản ghi
và mã hóa dữ liệu trong khi lưu trữ, cùng với các công cụ quản lý phức tạp để
giúp quản trị viên quản lý các cơ sở dữ liệu lớn và phức tạp.

+ Standard: Standard là phiên bản SQL Server phù hợp cho các doanh
nghiệp vừa và nhỏ, với mức giá rẻ hơn nhiều so với Enterprise Edition. Tuy
nhiên, nó có một số giới hạn về tính năng so với Enterprise, nhưng vẫn cung cấp
đầy đủ các tính năng cơ bản để quản lý các cơ sở dữ liệu.

Standard có thể chạy trên hệ thống lên đến 4 bộ vi xử lý và 2 GB RAM,


điều này thích hợp cho các ứng dụng có quy mô nhỏ và độ phức tạp thấp. Nó
cũng hỗ trợ các tính năng như AlwaysOn Availability Groups và giám sát hiệu
suất, giúp quản trị viên quản lý các cơ sở dữ liệu một cách hiệu quả.

Tuy nhiên, Standard bị giới hạn một số chức năng cao cấp như Partitioning
và Transparent Data Encryption, những tính năng này chỉ có sẵn trong
Enterprise. Nếu doanh nghiệp có nhu cầu sử dụng các tính năng cao cấp này, họ
cần phải nâng cấp lên phiên bản Enterprise.

Tóm lại, Standard là phiên bản SQL Server phù hợp cho các doanh nghiệp
vừa và nhỏ, với mức giá rẻ hơn nhiều so với Enterprise Edition và cung cấp đầy
đủ các tính năng cơ bản để quản lý các cơ sở dữ liệu. Mặc dù bị giới hạn một số
chức năng cao cấp, nó vẫn có thể đáp ứng nhu cầu của các ứng dụng có quy mô
nhỏ và độ phức tạp thấp

+ Developer: SQL Server Developer Edition là một phiên bản của SQL
Server được thiết kế đặc biệt để phục vụ cho mục đích phát triển và kiểm tra ứng
dụng. Nó bao gồm đầy đủ các tính năng của SQL Server Enterprise Edition,
nhưng được giới hạn số lượng người kết nối vào server cùng một lúc.

SQL Server Developer Edition thường được sử dụng bởi các nhà phát triển
và các tổ chức để xây dựng và kiểm tra ứng dụng trước khi triển khai chúng trên
16
các phiên bản cao cấp hơn của SQL Server. Nó cũng cho phép các nhà phát triển
phát triển và thử nghiệm các tính năng mới của SQL Server trước khi chúng
được triển khai trên các phiên bản cao cấp hơn.

SQL Server Developer Edition cũng có giá thành thấp hơn so với các phiên
bản cao cấp hơn của SQL Server, nhưng vẫn cung cấp đầy đủ các tính năng của
SQL Server để đảm bảo khả năng phát triển và kiểm tra ứng dụng một cách hiệu
quả.

Tóm lại, SQL Server Developer Edition là một phiên bản của SQL Server
được thiết kế đặc biệt để phục vụ cho mục đích phát triển và kiểm tra ứng dụng.
Nó bao gồm đầy đủ các tính năng của SQL Server Enterprise Edition, nhưng
được giới hạn số lượng người kết nối vào server cùng một lúc và có giá thành
thấp hơn để phù hợp với các nhu cầu của các nhà phát triển và tổ chức.

+ Workgroup: SQL Server Workgroup là một phiên bản SQL Server đã bị


loại bỏ kể từ SQL Server 2012. Nó đã được thay thế bằng phiên bản SQL Server
Standard, với giá thành tương đương nhưng cung cấp nhiều tính năng hơn.

Tuy nhiên, trước khi bị loại bỏ, SQL Server Workgroup là một phiên bản
SQL Server phù hợp cho các doanh nghiệp nhỏ với mức giá rẻ hơn so với các
phiên bản cao cấp hơn. Nó cung cấp các tính năng cơ bản của SQL Server như
quản lý cơ sở dữ liệu, xử lý dữ liệu và bảo mật dữ liệu.

Tuy nhiên, một điểm khác biệt của SQL Server Workgroup so với các
phiên bản cao cấp hơn là nó không bao gồm các dịch vụ đi kèm, chẳng hạn như
SQL Server Reporting Services và SQL Server Analysis Services. Do đó, nó
thường được sử dụng cho các ứng dụng đơn giản và không yêu cầu các tính
năng phức tạp.

Tóm lại, SQL Server Workgroup đã bị loại bỏ kể từ SQL Server 2012 và đã


được thay thế bằng phiên bản SQL Server Standard. Trước khi bị loại bỏ, nó là
một phiên bản SQL Server phù hợp cho các doanh nghiệp nhỏ với mức giá rẻ

17
hơn, nhưng không bao gồm các dịch vụ đi kèm và chỉ cung cấp các tính năng cơ
bản của SQL Server.

+ Express: SQL Server Express dễ sử dụng và quản trị cơ sở dữ liệu đơn


giản. Được tích hợp với Microsoft Visual Studio, nên dễ dàng để phát triển các
ứng dụng dữ liệu, an toàn trong lưu trữ, và nhanh chóng triển khai. SQL Server
Express là phiên bản miễn phí, không giới hạn về số cơ ở dữ liệu hoặc người sử
dụng, nhưng nó chỉ dùng cho 1 bộ vi xử lý với 1 GB bộ nhớ và 10 GB file cơ sở
dữ liệu. SQL Server Express là lựa chọn tốt cho những người dùng chỉ cần một
phiên bản SQL Server 2005 nhỏ gọn, dùng trên máy chủ có cấu hình thấp,
những nhà phát triển ứng dụng không chuyên hay những người yêu thích xây
dựng các ứng dụng nhỏ.

SQL Server cấu tạo bởi nhiều thành phần như Database Engine, Reporting
Services, Notification Services, Integration Services, Full Text Search
Service…. Các thành phần này khi phối hợp với nhau tạo thành một giải pháp
hoàn chỉnh giúp cho việc lưu trữ và phân tích dữ liệu một cách dễ dàng.

Database Engine

18
Database Engine là trái tim của SQL Server và là nơi lưu trữ và quản lý dữ
liệu. Nó có khả năng chứa dữ liệu trong các bảng và hỗ trợ tất cả các kiểu kết
nối thông dụng của Microsoft như ADO, OLE DB và ODBC.
Ngoài ra, Database Engine còn có khả năng tự điều chỉnh (tune up) để tối
ưu hóa hiệu suất và sử dụng tài nguyên hiệu quả hơn. Ví dụ, nó có thể sử dụng
thêm tài nguyên (resource) của máy tính khi cần thiết và trả lại tài nguyên cho
hệ điều hành khi một người dùng đăng xuất hoặc kết thúc phiên làm việc.
Database Engine cũng cung cấp các tính năng bảo mật, bao gồm kiểm soát
truy cập, mã hóa dữ liệu và đăng nhập an toàn, để bảo vệ dữ liệu của doanh
nghiệp khỏi các mối đe dọa bên ngoài.
Tóm lại, Database Engine là trái tim của SQL Server và có khả năng chứa
dữ liệu trong các bảng và hỗ trợ tất cả các kiểu kết nối thông dụng của
Microsoft. Nó còn có khả năng tự điều chỉnh để tối ưu hóa hiệu suất và sử dụng
tài nguyên hiệu quả hơn, cùng với các tính năng bảo mật để bảo vệ dữ liệu của
doanh nghiệp.

Replication

+ Cơ chế tạo bản sao (Replica):


+ Giả sử bạn có một database dùng để chứa dữ liệu được các ứng dụng
thường xuyên cập nhật. Một ngày đẹp trời bạn muốn có một cái database giống
y hệt như thế trên một server khác để chạy báo cáo (report database) (cách làm
này thường dùng để tránh ảnh hưởng đến performance của server chính). Vấn đề
là report server của bạn cũng cần phải được cập nhật thường xuyên để đảm bảo
tính chính xác của các báo cáo. Bạn không thể dùng cơ chế back up and restore
trong trường hợp này. Thế thì bạn phải làm sao? Lúc đó cơ chế replication của
SQL Server sẽ được sử dụng để bảo đảm cho dữ liệu ở 2 database được đồng bộ
(synchronized). Replication sẽ được bàn kỹ trong bài 12

Integration Services (DTS)

19
+ Integration Services là một tập hợp các công cụ đồ họa và các đối tượng
lập trình cho việc di chuyển, sao chép và chuyển đổi dữ liệu.
+ Nếu bạn làm việc trong một công ty lớn trong đó data được chứa trong
nhiều nơi khác nhau và ở các dạng khác nhau cụ thể như chứa trong Oracle,
DB2 (của IBM), SQL Server, Microsoft Access….Bạn chắc chắn sẽ có nhu cầu
di chuyển data giữa các server này (migrate hay transfer) và không chỉ di chuyển
bạn còn muốn định dạng (format) nó trước khi lưu vào database khác, khi đó
bạn sẽ thấy DTS giúp bạn giải quyết công việc trên dễ dàng.

Analysis Services

+ Một dịch vụ phân tích dữ liệu rất hay của Microsoft


+ Dữ liệu (Data) chứa trong database sẽ chẳng có ý nghĩa gì nhiều nếu như
bạn không thể lấy được những thông tin (Information) bổ ích từ đó. Do đó
Microsoft cung cấp cho bạn một công cụ rất mạnh giúp cho việc phân tích dữ
liệu trở nên dễ dàng và hiệu quả bằng cách dùng khái niệm hình khối nhiều
chiều (multi-dimension cubes) và kỹ thuật “khai phá dữ liệu” (data mining).

Notification Services

+ Dịch vụ thông báo Notification Services là nền tảng cho sự phát triển và
triển khai các ứng dụng tạo và gửi thông báo. Notification Services có thể gửi
thông báo theo địch thời đến hàng ngàn người đăng ký sử dụng nhiều loại thiết
bị khác nhau.

Reporting Services

+ Reporting Services bao gồm các thành phần server và client cho việc tạo,
quản lý và triển khai các báo cáo. Reporting Services cũng là nền tảng cho việc
phát triển và xây dựng các ứng dụng báo cáo.

Full Text Search Service

+ Dịch vụ SQL Server Full Text Search là một dịch vụ đặc biệt cho đánh
chỉ mục và truy vấn cho dữ liệu văn bản không cấu trúc được lưu trữ trong các

20
CSDL SQL Server. Đánh chỉ mục với Full Text Search có thể dduwowcj tạo
trên bất kỳ cột dựa trên dữ liệu văn bản. Nó sẽ rất hiệu quả cho việc tìm các sử
dụng toán tử LIKE trong SQL với trường hợp tìm văn bản.

Service Broker

+ Được sử dụng bên trong mỗi Instance, là môi trường lập trình cho việc
các ứng dụng nhảy qua các Instance. Service Broker giao tiếp qua giao thức
TCP/IP và cho phép các component khác nhau có thể được đồng bộ cùng nhau
theo hướng trao đổi các message. Service Broker chạy như một phần của bộ
máy cơ sở dữ liệu, cung cấp một nền tảng truyền message tin cậy và theo hàng
đợi cho các ứng dụng SQL Server.
1.4. Lập trình C#.NET-Mô hình MVC trong ASP.NET MVC
ASP.NET MVC là công nghệ sau ASP.NET Web Form cho phép ta phát
triển ứng web gồm ba thành phần chính: Model, View và Controller. Với ưu
điểm nổi bật là nhẹ hơn (lighweigt), dễ kiểm thử giao diện và thừa hưởng các
tính năng có sẵn của ASP.NET đã khiến cho công nghệ này ngày càng phát
triển.
Về bản chất thì đây là phần mở rộng của namespace System.Web được
đặt trong namespace System.Web.Mvc.
Hiện nay đa số framework về web (PHP, Java…) điều sử dụng mô hình
MVC như một mẫu thiết kế chuẩn (Design Pattern). Tùy theo đặc điểm của ứng
dụng mà bạn chọn cấu trúc cho trang web của mình theo ASP.NET Web Forms
hay theo kiến trúc MVC, đôi khi ta có thể kết hợp cả hai. Các bạn có thể xem lại
các bài viết về mô hình MVC trong PHP trong mục PHP để hiểu rõ hơn. Sau
đây chúng ta sẽ xem lại một số khái niệm.
1.4.1. Khái niệm mô hình MVC
MVC là viết tắt của 3 từ M - Model, V - View, C - Controller. Mô hình
MVC là một kiến trúc phần mềm hay mô hình thiết kế phần mềm giúp chúng ta
tách ứng dụng của chúng ta thành những phần độc lập có những nhiệm vụ riêng
biệt.
21
- Model: Model là thành phần chứa các phương thức xử lý logic, kết nối
và truy xuất database, mô tả dữ liệu,...
- View: View là thành phần hiển thị thông tin, tương tác với người dùng.
- Controller: Controller là thành phần điều hướng, là chất kết dính giữa
model và view, có nhiệm vụ nhận những request từ người dùng, tương tác với
model để lấy thông tin và gửi cho view để hiển thị lại cho người dùng.
Mô hình MVC giúp bạn tạo được các ứng dụng phân tách rạch ròi các
khía cạnh (logic về nhập liệu, logic xử lý tác vụ và logic về giao diện). Mô hình
MVC chỉ ra mỗi loại logic kể trên nên được thiếp lập ở đâu trên ứng dụng.
Logic giao diện (UI logic) thuộc về views. Logic nhập liệu (input logic) thuộc
về controller. Và logic tác vụ (Business logic – là logic xử lý thông tin, mục đích
chính của ứng dụng) thuộc về model. Sự phân chia này giúp bạn giảm bớt được
sự phức tạp của ứng dụng và chỉ tập trung vào mỗi khía cạnh cần được cài đặt ở
mỗi thời điểm.
Mô hình MVC giúp thực hiện dự án một cách dể dàng và nhanh chóng,
trong lúc HTML designer thiết kế giao diện ở tần view thì hai lập trình viên còn
lại sẻ đảm nhận logic ở tầng controller và các tác vụ ở tầng model.
1.4.2. Lựa chọn và áp dụng mô hình trong xây dựng ứng dụng
 Lợi ích của ứng dụng web dựa trên nền tảng ASP.NET MVC mang
lại những lợi ích sau:
- Thích hợp cho các ứng dụng lớn có tích chất phức tạp bằng cách chia
ứng dụng thành ba thành phần model, view, controller
- Loại bỏ view state hoặc server-based form. Điều này tốt cho sẻ khiến
lập trình viên tốn nhiều thời gian hơn nhưng sẻ quản lý tốt ứng dụng của mình.
- Nó sử dụng mẫu Front Controller, mẫu này giúp quản lý các requests
(yêu cầu) chỉ thông qua một Controller do đó việc định tuyến dễ dàng.
- Hổ trợ tốt cho việc test từng phần.
- Nó hỗ trợ tốt cho các ứng dụng có nhiều lập trình viên và thiết kế mà
vẫn quản lý được tính năng của ứng dụng

22
 Lợi ích của ứng dụng được xây dựng trên nền tảng Web Forms
- Dễ dàng cho những bạn đi từ nền tảng lập trình Winform với hàng trăm
controls hỗ trợ kéo thả và các sự kiện serverside được hỗ trợ.
- Mô hình này sử dụng view state hoặc server-based form, nhờ đó sẽ giúp
cho việc quản lý trạng thái các trang web dễ dàng.
- Phù hợp với các nhỏ và các thiết kế và lập trình viên là một, những
người muốn tận dụng các thành phần giúp xây dựng ứng dụng một cách nhanh
chóng.
- Tóm lại khi áp dụng Web Forms sẻ giảm bớt sự phức tạp trong xây dựng
ứng dụng.
1.4.3. Các tính năng của nền tảng ASP.NET MVC
- Thừa hưởng tính minh bạch và cấu trúc rõ ràng của mô hình MVC
- MVC là một nền tảng khả mở rộng (extensible) & khả nhúng
(pluggable). Các thành phần của ASP.NET MVC được thiết kể để chúng có thể
được thay thế một cách dễ dàng hoặc dễ dàng tùy chỉnh.
- ASP.NET MVC có cấu trúc URL tốt cho phép bạn xây dựng những ứng
dụng có các địa chỉ URL súc tích và dễ tìm kiếm. Các địa chỉ URL không cần
phải có phần mở rộng của tên tập tin.
- Hỗ trợ sử dụng các thẻ của các trang ASP.NET(.aspx) Usercontrol
(.ascx) và trang master page (.marter).
- Hỗ trợ khá đầy đủ các tính năng của ASP.NET như data caching,
seession và profile…
- ASP.NET MVC 3 bổ sung một view engine mới là Razor View Engine
cho phép thiết lập các view nhanh chóng, dễ dàng.
- ASP.NET MVC 4 hỗ trợ tốt hơn cho các thiết bị di động bổ sung
ASP.NET Web API.
- ASP.NET MVC 5 hỗ trợ chứng thực qua các API khác (facebook,
google+..) , Bootstrap được thêm vào hổ trợ phần thiết kế giao diện.

23
CHƯƠNG 2: PHÂN TÍCH THIẾT KẾ HỆ THỐNG
2.1 Xác định yêu cầu:

1.2.1 Yêu cầu chức năng

- Website hỗ trợ khách hàng trong việc tìm kiếm, tra cứu theo nhiều tiêu
chí như: tìm kiếm theo tên, theo giá của sản phẩm (SP)… , lựa chọn sản phẩm,
chọn hình thức thanh toán, đăng ký thành viên và đăng nhập một cách nhanh
chóng, dễ dàng.

- Website có khả năng lưu trữ, quản lý những thông tin về khách hàng, về
đơn đặt hàng, những khách hàng tiềm năng, thông tin phản hồi của khách hàng
qua dịch vụ Email…hỗ trợ cho việc đánh giá nhu cầu và tâm lý khách hàng.

- Website có khả năng hỗ trợ nhà quản trị trong việc cập nhật thông tin
sản phẩm, danh mục sản phẩm (DMSP), cập nhật thông tin về đơn đặt thuê xe,
xem các loại xe cho thuê.

- Website có khả năng tổng hợp, thống kê, báo cáo giúp nhà quản trị biết
được số lượng xe cho thuê, số lượng xe đã được thuê, quản lý được đơn đặt thuê
xe, tình trạng đơn thuê (đã thanh toán thuê xe hay chưa thanh toán), thông tin về
khách hàng.

1.2.2 Yêu cầu phi chức năng


- Website đáp ứng được khả năng truy cập nhanh, thông tin tin cậy, chính
xác.

- Giao diện thân thiện, dễ sử dụng, tính thẩm mỹ và tính ổn định cao.

- Website đảm bảo được tính bảo mật cao, phân quyền một cách hợp lý.

- Website có thể hoạt động 24/7/365.

- Website có khả năng lưu trữ, xử lý khối lượng lớn thông tin nhưng
chiếm dung lượng nhỏ trong máy tính.
2.3 Phân tích yêu cầu
- Chức năng tìm kiếm thông tin sản phẩm

BẢNG 2.1: CHỨC NĂNG TÌM KIẾM THÔNG TIN THUÊ XE

24
Mô tả Chức năng tìm kiếm thuê xe theo từ khóa được nhập vào.

Đầu vào Tên loại xe, giá.

Quá trình Kiểm tra sự tương thích của tên, giá thuê xe được nhập vào.
xử lý Kết nối đến cơ sở dữ liệu.
Tìm kiếm thông tin theo tên, giá của phương tiện thuê xe.

Đầu ra Hiển thị sản phẩm hoặc thông báo không tìm thấy.

- Chức năng đăng ký thành viên/tài khoản

Bảng 2.2: Chức năng đăng ký thành viên/tài khoản

Mô tả Cho phép đăng ký thành viên

Đầu vào Khi đăng ký, khách hàng phải điền đầy đủ các thông tin:
+ Email
+ Họ tên
+ Mât khẩu
+ Điền lại mật khẩu
+ Số điện thoại

Quá trình Kiểm tra đúng tính hợp lệ của form.


xử lý Kết nối cơ sở dữ liệu, kiểm tra khách hàng vừa nhập từ form đăng
ký có hợp lệ trong cơ sở dữ liệu (CSDL) không?
Lưu thông tin khách hàng vào trong CSDL nếu đăng ký thành công.

Đầu ra Thông báo về việc đăng ký đã thành công hay chưa.

- Chức năng đăng nhập

Bảng 2.3: Chức năng đăng nhập

Mô tả Đăng nhập khi đã có tài khoản.

Đầu vào Thông tin đăng nhập


+ Email
+ Mật khẩu

25
Quá trình xử lý Kết nối cơ sở dữ liệu so sánh thông tin đăng nhập có
đúng không?
Tạo phiên truy cập cho người dùng đăng nhập.

Đầu ra Thông báo kết quả đăng nhập.

- Chức năng hiển thị danh mục xe cho thuê

Bảng 2.4: Chức năng hiển thị danh mục xe cho thuê

Mô tả Hiển thị sản phẩm theo từng danh mục xe cho thuê.

Đầu vào Đường link danh mục xe cho thuê.

Quá trình xử lý Lấy tất cả các xe cho thuê có trong cơ sở dữ liệu theo danh
mục.

Đầu ra Hiện thị danh sách xe cho thuê.

- Chức năng chi tiết xe cho thuê

Bảng 2.5: Chức năng chi tiết xe cho thuê

Mô tả Hiển thị chi tiết xe cho thuê.

Đầu vào Đường link tên xe cho thuê, click vào chi tiết.

Quá trình xử lý Truy xuất vào cơ sở dữ liệu để lấy thông tin chi tiết
xe cho thuê.

Đầu ra Hiện thị thông tin chi tiết xe cho thuê.

- Thuê xe

Bảng 2.6 : Phân tích chức năng thuê

Mô tả Cho phép thuê xe khi lựa chọn chi tiết xe cho thuê.

Đầu vào Sau khi đã chọn xe khách hàng có thể đặt thuê xe.

Quá trình xử lý Kiểm tra xe có trong csdl.

Đầu ra Danh sách các xe thuê mà khách hàng đã chọn và


tổng giá tiền thuê xe.

26
- Chức năng quản lý xe cho thuê (thêm, xóa, sửa)

+ Thêm mới
Bảng 2.8: Chức năng thêm xe cho thuê

Mô tả Thêm mới một xe cho thuê.

Đầu vào + Tên xe cho thuê


+ Thuộc danh mục xe cho thuê
+ Giá
+ Số lượng
+ Mô tả
+ Thông tin xe cho thuê
+ Trạng thái

Quá trình xử lý Kiểm tra dữ liệu form có đúng không?

Đầu ra Hiện thị thông tin về xe cho thuê.

+ Sửa thông tin xe cho thuê


Bảng 2.9: Chức năng sửa thông tin xe cho thuê

Mô tả Dùng để thay đổi thông tin một xe cho thuê.

Đầu vào Chọn xe cho thuê cần thay đổi.

Quá trình xử lý Kiểm tra dữ liệu form có đúng không, kết nối đến
CSDL để cập nhật thông tin.

Đầu ra Hiện thị thông tin mới về xe cho thuê.

+ Xóa loại xe cho thuê


Bảng 2.10: Chức năng xóa xe cho thuê

Mô tả Dùng để xóa thông tin một xe cho thuê

Đầu vào Chọn xe cho thuê cần xóa.

Quá trình xử lý Kết nối đến CSDL cho phép xóa dữ liệu

Đầu ra Hiện thị thông báo.

27
- Chức năng quản lý đơn đặt thuê xe
Bảng 2.11: Chức năng quản lý đơn hàng

Mô tả Liệt kê danh sách các đơn đặt thuê xe của khách


hàng đã đặt.

Đầu vào Thông tin về xe cho thuê và khách hàng.

Quá trình xử lý Kết nối đến CSDL.

Đầu ra Hiện thị thông tin về đơn thuê xe

- Chức năng quản lý người dùng


Bảng 2.12: Chức năng quản lý người dùng

Mô tả Thông tin về người dùng.

Đầu vào Các thông tin người dùng được đăng ký

Quá trình xử lý Kết nối đến cơ sở dữ liệu.

Đầu ra Hiển thị thông tin người dùng.

- Chức năng quản lý voucher


Bảng 2.12: Chức năng quản lý người dùng

Mô tả Thông tin về voucher.

Đầu vào Các thông tin voucher đã được phát hành

Quá trình xử lý Kết nối đến cơ sở dữ liệu.

Đầu ra Hiển thị thông tin voucher.

28
2.2. Sơ đồ usecase hệ thống:

Xem, tìm kiếm các loại xe

Đánh giá về loại xe,


chất lượng

Đặt thuê xe

Thanh toán

KHÁCH HÀNG Đăng nhập

Đăng ký

Quản lý người dùng

Quản lý hệ thống

QUẢN TRỊ VIÊN

29
2.3 Mô hình hóa chức năng
2.3.1 Biểu đồ phân rã chức năng (Bussiness Functional Diagram – BFD)

WEBSITE

QUẢN LÝ QUẢN LÝ QUẢN LÝ QUẢN LÝ THỐNG KÊ


THUÊ XE VOUCHER
XE NGƯỜI
DÙNG TIN TỨC
CẬP NHẬT CẬP NHẬP THỐNG KÊ
CẬP ĐĂNG KÝ
VOUCHER
NHẬT DM XE XE CHO
TÀI
ĐẶT THUÊ
KHOẢN
THUÊ XE
CẬP NHẬT TÌM KIẾM
XE CHO THỐNG KÊ

THANH THUÊ ĐĂNG ĐƠN ĐẶT


TOÁN NHẬP THUÊ XE
TÌM KIẾM

THỐNG KÊ
NGƯỜI
DÙNG

2.3.2 Biểu đồ dòng dữ liệu (Data Flow Diagram-DFD)


(*) Bộ ký hiệu sử dụng trong quá trình phân tích và thiết kế hệ thống

Ký hiệu Ví dụ

Xử lý 1.0
Cập nhật
đơn hàng

Dòng dữ liệu TT khách hàng

30
Kho dữ liệu D1 Danh sách đơn hàng

Tác nhân ngoài


Khách hàng
2.3.2.1 Mức ngữ cảnh

Gửi yêu cầu Gửi yêu cầu

Khách hàng Ban quản trị


Website

Đáp ứng yêu cầu Đáp ứng yêu cầu

3.3.2.3 Biểu đồ phân rã


- Quản lý cho thuê xe
Yêu cầu cập nhật thuê xe

Cung cấp thông tin thuê xe


Thông tin mới về thuê xe
Thông tin thuê xe

Khách hàng Cập nhật Ban quản trị


đơn hàng
Thông tin thuê xe

Danh sách thuê xe

Lưu thông tin thuê xe

31
- Quản lý xe thuê

Yêu cầu xem xe Yêu cầu cập nhật xe

Hiển thị xe Thông tin mới về xe

Khách hàng Cập nhật Quản trị

sản phẩm Thông tin xe

Danh sách xe
Lưu thông tin xe

Yêu cầu tìm kiếm

Tìm kiếm Danh sách xe


Kết quả tìm kiếm

- Quản lý người dùng

Yêu cầu đăng ký tài khoản


Đáp ứng yêu cầu đăng ký tài khoản

Thông tin kiểm tra người dùng

Danh sách người dùng Đăng ký


tài khoản

Lưu thông tin người dùng mới

Khách hàng Ban quản trị

Danh sách người dùng

Thông tin phân quyền người dùng

Tài khoản khách hàng Tài khoản quản trị

Xác nhận khách hàng Đăng nhập


Xác nhận quản trị

32
- Quản lý voucher

Yêu cầu xem voucher


Yêu cầu cập nhật voucher

Hiển thị voucher Thông tin mới về voucher

Khách hàng Cập nhật Quản trị

sản phẩm Thông tin voucher

Danh sách voucher


Lưu thông tin vocuher

Yêu cầu tìm kiếm

Tìm kiếm Danh sách voucher


Kết quả tìm kiếm

33
2.4 Thiết kế cơ sở dữ liệu
2.4.1. Bảng cơ sở dữ liệu vật lý

2.4.2 Bảng user

Thuộc tính Chú thích Kiểu dữ liệu Kích thước

User_id Mã người dùng Int 50

Role_id Mã quyền Int 50

Fullname Tên NVarchar 255

Phonenumber Số điện thoại NVarchar 255

Email Email NVarchar 255

Password Mật khẩu NVarchar 255

2.4.3 Bảng Role

Thuộc tính Chú thích Kiểu dữ liệu Kích thước

Role_id Mã quyền Int 50

34
Name Tên quyền NVarchar 255

2.4.4 Bảng Rental

Thuộc tính Chú thích Kiểu dữ liệu Kích thước

Rental_id Mã cho thuê Int 50

User_id Mã người dùng Int 50

Vehicle_id Mã phương tiện Int 50

Date_rental Ngày thuê NVarchar 255

Numberday Số ngày thuê NVarchar 255

Amount Giá NVarchar 255

Status Mô tả NVarchar 255

Number_vehicle Số phương tiện NVarchar 255

2.4.5 Bảng Vehicle

Thuộc tính Chú thích Kiểu dữ liệu Kích thước

Vehicle_id Mã phương tiện Int 50

Name Tên NVarchar 255

Image Ảnh NVarchar 255

Type_ vehicle Loại phương tiện NVarchar 255

Price Giá NVarchar 255

Description Mô tả NVarchar 255

Quantity Số lượng NVarchar 255

2.4.6 Bảng Voucher

Thuộc tính Chú thích Kiểu dữ liệu Kích thước

Voucher_id Mã giảm giá Int 50

35
Name Tên NVarchar 255

Discount Giảm giá NVarchar 255

Status Mô tả NVarchar 255

Quantity Số lượng NVarchar 255

Date_expire Hết hạn NVarchar 255

36
CHƯƠNG 3: XÂY DỰNG WEBSITE THUÊ XE TRỰC TUYẾN

3.1. Trang chủ website


Trang chủ website là trang mặc định ban đầu khi khách hàng truy cập vào
Website với chức năng trình diễn toàn bộ xe khác nhau. Khi muốn thuê xe nào
đó, khách hàng có thể xem và chọn sản phẩm trên Trang chủ, hoặc duyệt qua
danh mục xe của Website, hoặc có thể tìm kiếm theo tên, theo danh mục xe.

37
3.2. Giao diện đăng ký tài khoản

Giao diện đăng ký tài khoản cho khách hàng đơn giản và dễ dàng.

3.3. Giao diện đăng nhập tài khoản


Người dùng đăng nhập website để thuê xe.

38
3.4. Giao diện tìm kiếm sản phẩm

Với giao diện tìm kiếm xe khách hàng có thể nhanh chóng tìm kiếm xe
mong muốn và thêm thuê xe một cách nhanh chóng.

39
3.5. Giao diện xem chi tiết xe về thuê xe
Khi muốn xem thông tin chi tiết của xe, khách hàng có thể click chuột vào
phần chi tiết. Trang này có chức năng mô tả rõ về xe và các dịch vụ kèm theo.

Khi muốn thuê xe nào đó, khách hàng có thể click chuột vào dòng “Thuê
xe” để đến phần khai báo thông tin thuê xe.

40
3.6. Giao diện quản trị viên

3.7. Giao diện quản lý đơn thuê xe


Quản lí đơn thuê nhằm mục đích giúp cho người quản lí biết được số đơn nào
nào giao không thành công, đơn hàng nào đã giao hoàn thành.

41
3.8. Giao diện quản lý danh mục xe cho thuê
Tại đây quản trị viên có thể thêm, xóa, sửa danh mục xe cho thuê.

42
3.9. Giao diện quản lý người dùng
Người quản lí có thể kiểm tra thông tin người dùng đã đăng ký trên
website của mình. Có thể thêm mới hoặc xóa bỏ những tài khoản khi không còn
sử dụng.

3.10. Giao diện quản lý chương trình khuyến mãi

Tại đây quản trị viên có thể thêm, xóa, sửa chương trình khuyễn mãi cho
các xe.

43
CHƯƠNG 4: KẾT LUẬN

4.1 Kết quả đạt được


- Hệ thống Website phần lớn cung cấp được thông tin về việc cho thuê xe,
đăng ký tài khoản khi khách hàng thuê xe tại Website.
- Xây dựng các module cho admin như: Quản lý xe, đơn đặt xe, quản lý
tài khoản, quản lý voucher
- Hệ thống hỗ trợ nhà quản trị trong việc chỉnh sửa, đăng thêm xe cho
thuê, cập nhật danh mục xe, xem thông tin liên hệ, đơn đặt xe của khách hàng
một cách dễ dàng.
4.2. Hạn chế
- Kiến thức thực tế và kiến thức lập trình còn hạn chế, nên việc nghiên
cứu chưa đầy đủ.
- Chương trình chưa đầy đủ như mong muốn
- Giao diện trình bày thiếu nhân viên và một số tính năng của khách hàng.
- Hệ thống chưa có chức năng thống kê chung.
- Chưa có chức năng thanh toán qua Internet Banking.
4.3. Hướng phát triển
- Xây dựng thêm nhiều tiêu chí tìm kiếm.
- Thêm các chức năng hỗ trợ ngôn ngữ, đơn vị tiền tệ.
- Xây dựng giao diện đẹp hơn với các công cụ điều hướng hợp lý, thân
thiện với người sử dụng.
- Xây dựng chức năng cho phép khách hàng cập nhật thông tin người
dùng.
- Về phía quản trị: xây dựng thêm thống kê, chức năng đăng nhập bằng
mail, quên mật khẩu, thanh toán online.

44
TÀI LIỆU THAM KHẢO
[1]. Hà Thị Thanh Ngà, “Bài giảng phân tích thiết kế hệ thống thông tin”,
Trường Đại học Nha Trang, 2019.
[2]. Phạm Thị Thu Thúy, Nguyễn Hữu Khôi, “Hệ quản trị cơ sở dữ liệu”,NXB
KH&KT, 2019.
[3]. Video hướng dẫn khóa học xây dựng website với mô hình MVC C# https:
//www.youtube.com/watch?v=2ejbIeQe2H0

45

You might also like