Tải bản đầy đủ (.doc) (52 trang)

NGHIÊN CỨU KĨ THUẬT LẬP TRÌNH. NET VÀ XÂY DỰNG WEBSITE QUẢN LÝ PHÒNG GYM

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.11 MB, 52 trang )

LỜI CẢM ƠN
Trước hết, em xin bày tỏ lòng biết ơn sâu sắc tới ThS. Lê Thị Hằng Hải, người
đã trực tiếp hướng dẫn em làm báo cáo thực tập này.
Em xin chân thành cảm ơn sự giúp đỡ của tồn thể các giảng viên khoa cơng
nghệ thơng tin, trường Đại học Hải Phòng, cũng như sự chỉ bảo của các anh chị Công
ty VNPT IT khu vực 4 nơi em thực tập đã dìu dắt, dạy dỗ em cả về kiến thức chuyên
môn và tinh thần học tập độc lập, sáng tạo để em có được kiến thức thực hiện đồ án
của mình.
Cuối cùng, em xin bày tỏ lịng biết ơn sâu đậm của mình tới gia đình, bạn bè
những người luôn sát cánh bên em, tạo mọi điều kiện tốt nhất để em có thể thực hiện
bài báo cáo của mình.
Trong quá trình thực hiện báo cáo thực tập, mặc dù đã cố gắng hết sức song do
thời gian và khả năng có hạn nên em khơng thể tránh khỏi những thiếu sót. Vì vậy, em
rất mong nhận được sự thông cảm, chỉ bảo và giúp đỡ của các thầy giáo, cô giáo và
các bạn.
Một lần nữa em xin chân thành cảm ơn!

i


LỜI CAM ĐOAN
Tơi xin cam đoan đây là cơng trình nghiên cứu của riêng tôi. Các số liệu, kết
quả nêu trong báo cáo là trung thực và chưa từng được ai cơng bố trong bất kỳ cơng
trình nào khác. Tơi xin cam đoan rằng các thơng tin trích dẫn trong báo cáo đều đã
được chỉ rõ nguồn gốc.
Hải Phòng, ngày tháng năm 2021
Sinh viên thực hiện
Vũ Quang Huy

ii



DANH MỤC CÁC CHỮ VIẾT TẮT
Từ viết tắt
API
ASP
CSDL
CSS
HTML
IDE
MVC
NET
UC
GUI
VS

Giải thích
Application Programming Interface
Active Server Pages
Cơ sở dữ liệu
Cascading Style Sheets
HyperText Markup Language
Integrated Developement Enviroment
Model-View-Controller
Network Enabled Technologies
Use Case
Graphical User Interface
Visual Studio

iii



MỤC LỤC
LỜI CẢM ƠN...............................................................................................................i
LỜI CAM ĐOAN..........................................................................................................ii
DANH MỤC CÁC CHỮ VIẾT TẮT...........................................................................iii
MỤC LỤC.................................................................................................................... iv
DANH MỤC HÌNH ẢNH...........................................................................................vii
DANH MỤC CÁC BẢNG.........................................................................................viii
LỜI MỞ ĐẦU...............................................................................................................1
CHƯƠNG 1: CƠ SỞ LÝ THUYẾT..............................................................................3
1.1. Công nghệ ASP.NET MVC[1]................................................................................3
1.1.1. Lịch sử ra đời của MVC.......................................................................................3
1.1.2. Sự khác nhau giữa MVC và webform..................................................................4
1.1.3. Kiến trúc sử dụng ASP.NET MVC.......................................................................4
1.1.4. Đặc điểm ASP.NET MVC Framework.................................................................6
1.1.5. Ưu nhược điểm của mơ hình MVC......................................................................7
1.2. Công nghệ ASP.NET Core......................................................................................7
1.2.1. Giới thiệu tổng quan về ASP.NET Core...............................................................7
1.2.2. Sơ lượt về lịch sử của ASP.NET Core[4].............................................................8
1.2.3. ASP.NET Core là gì?............................................................................................8
1.2.4. Ưu điểm của ASP.NET Core................................................................................8
1.3. Cơng nghệ ASP.NET Core API...............................................................................9
1.3.1. REST API ...........................................................................................................9
1.3.2. REST API hoạt động như thế nào?......................................................................9
1.4. Cơng nghệ Angular...............................................................................................10
1.4.1. Angular là gì?.....................................................................................................10
1.4.2. Lịch sử Angular..................................................................................................10
1.4.3. Tại sao nên chọn Angular?.................................................................................11
1.5. Kiến trúc Microservice[5] ....................................................................................11
1.5.1. Tổng quát đặc điểm của Microservice ...............................................................11

1.5.2. Ưu điểm của Microservices...............................................................................12
1.5.3. Nhược điểm của Microservices..........................................................................12
CHƯƠNG 2: PHÂN TÍCH, THIẾT KẾ HỆ THỐNG..................................................14
iv


2.1. Khảo sát và phân tích bài tốn Quản lý phịng Gym.............................................14
2.1.1. Mơ tả bài tốn....................................................................................................14
2.1.2. Mục tiêu xây dựng hệ thống...............................................................................14
2.1.3. Yêu cầu đặt ra....................................................................................................14
2.1.4. Chức năng chính của hệ thống...........................................................................14
2.2. Biểu đồ use case....................................................................................................16
2.2.1. Biểu đồ use case tổng quát.................................................................................16
2.2.2. Biểu đồ phân rã UC quản lý hệ thống................................................................17
2.2.3. Biểu đồ phân rã UC quản lý User......................................................................17
2.2.4. Biểu đồ phân rã UC quản lý thẻ tập...................................................................18
2.2.5. Biểu đồ phân rã UC quản lý phòng tập..............................................................18
2.2.6. Biểu đồ phân rã UC quản lý dịch vụ..................................................................19
2.3. Đặc tả use case......................................................................................................19
2.3.1. Đặc tả Use Case Đăng nhập...............................................................................19
2.3.2. Đặc tả Use Case Đăng ký...................................................................................20
2.3.3. Đặc tả Use Case quản lý người dùng.................................................................21
2.3.4 Đặc tả Use Case quản lý phòng tập.....................................................................22
2.3.5. Đặc tả Use Case quản lý thẻ tập.........................................................................23
2.3.6. Đặc tả Use Case quản lý hệ thống......................................................................24
2.3.7. Đặc tả Use Case quản lý dịch vụ........................................................................25
2.4. Biểu đồ tuần tự......................................................................................................26
2.4.1. Biểu đồ tuần tự của use case Đăng nhập............................................................26
2.4.2. Biểu đồ tuần tự của use case Đăng ký................................................................27
2.4.3. Biểu đồ tuần tự cho use case xem thông báo......................................................27

2.4.4. Biểu đồ tuần tự cho use case quản lý thẻ tập......................................................28
2.4.5 Biểu đồ tuần tự cho use case quản lý người dùng...............................................28
2.5. Thiết kế cơ sở dữ liệu............................................................................................29
2.5.1. Biểu đồ lớp.........................................................................................................29
2.5.2. Mô tả các bảng trong cơ sở dữ liệu ...................................................................30
CHƯƠNG 3: THỰC NGHIỆM HỆ THỐNG..............................................................36
3.1. Môi trường cài đặt................................................................................................36
3.1.1. Giới thiệu hệ quản trị SQL Server 2014..........................................................36
v


3.1.2. Giới thiệu về Visual studio 2019........................................................................38
3.1.3. Giới thiệu về Visual Code..................................................................................39
3.2. Hình ảnh phần mềm..............................................................................................39
3.2.1. Giao diện đăng nhập..........................................................................................39
3.2.2. Giao diện trang chủ cho hội viên.......................................................................40
3.2.3. Giao diện trang chủ cho người quản lý..............................................................41
3.2.4. Giao diện quản lý thẻ tập...................................................................................41
3.2.5. Giao diện thống kê.............................................................................................42
3.2.6. Giao diện báo cáo..............................................................................................42
KẾT LUẬN.................................................................................................................43
TÀI LIỆU THAM KHẢO...........................................................................................44

vi


DANH MỤC HÌNH ẢNH
Hình
1.1. Cấu trúc của REST API..........................................................................................9
Hình 1.2. Cách thức hoạt động của REST API..............................................................9

Hình 2.1. Biểu đồ use case tổng quát...........................................................................16
Hình 2.2. Biểu đồ phân rã use case quản lý hệ thống...................................................17
Hình 2.3. Biểu đồ use case quán lý User......................................................................17
Hình 2.4.Biểu đồ use case quản lý thẻ tập...................................................................18
Hình 2.5. Biểu đồ use case quản lý phịng tập.............................................................18
Hình 2.6. Biểu đồ use case quản lý dịch vụ.................................................................19
Hình 2.7. Biểu đồ tuần tự của use case Đăng nhập......................................................26
Hình 2.8. Biểu đồ tuần tự của use case Đăng ký..........................................................27
Hình 2.9. Biểu đồ tuần tự cho use case xem thơng báo...............................................27
Hình 2.10. Biểu đồ tuần tự cho use case quản lý thẻ tập..............................................28
Hình 2.11. Biểu đồ tuần tự cho use case quản lý người dùng......................................28
Hình 2.12. Biểu đồ lớp.................................................................................................29
Hình 3.1. Giao diện đăng nhập....................................................................................39
Hình 3.2. Giao diện trang chủ......................................................................................40
Hình 3.3. Giao diện trang chủ......................................................................................40
Hình 3.4. Giao diện người quản lý...............................................................................41
Hình 3.5. Giao diện quản lý thẻ tập.............................................................................41
Hình 3.6. Giao diện thống kê.......................................................................................42
Hình 3.7. Giao diện báo cáo.........................................................................................42

vii


DANH MỤC CÁC BẢNG
Bảng 1.1. Lịch sử ra đời MVC.......................................................................................3
Bảng 1.2. Sự khác nhau giữa MVC và Webform..........................................................4
Bảng 1.3. Lịch sử phiên bản của Angular....................................................................10
Bảng 2.1. Chức năng chi tiết của phần mềm................................................................14
Bảng 2.2. Các tác nhân của hệ thống...........................................................................16
Bảng 2.3. Thơng tin thuộc tính bảng User...................................................................30

Bảng 2.4. Thơng tin thuộc tính bảng Customer............................................................31
Bảng 2.5. Thơng tin thuộc tính bảng Service...............................................................31
Bảng 2.6. Thơng tin thuộc tính bảng CardType..........................................................32
Bảng 2.7. Thơng tin thuộc tính bảng Facility..............................................................32
Bảng 2.8. Thơng tin thuộc tính bảng Function.............................................................33
Bảng 2.9. Thơng tin thuộc tính bảng Role...................................................................33
Bảng 2.10. Thơng tin thuộc tính bảng Job...................................................................34
Bảng 2.11. Thơng tin thuộc tính bảng Card.................................................................34
Bảng 2.12. Thơng tin thuộc tính bảng KhachHangLog................................................35

viii


LỜI MỞ ĐẦU
Ngày nay, cùng với sự phát triển của đất nước ngành Cơng nghệ thơng tin đã có
những bước phát triển mạnh mẽ không ngừng và tin học đã trở thành chiếc chìa khóa
dẫn đến thành cơng cho nhiều cá nhân trong nhiều lĩnh vực, hoạt động. Với những ứng
dụng của mình, ngành Cơng nghệ thơng tin đã góp phần mang lại nhiều lợi ích mà
khơng ai có thể phủ nhận được. Đặc biệt là trong lĩnh vực quản lý kinh tế, tin học đã
góp phần tạo ra sự thay đổi nhanh chóng cho bộ mặt xã hội. Nhất là khi việc tin học
hóa vào cơng tác quản lý một trong những yêu cầu cần thiết đối với các doanh nghiệp
hiện nay.
Để đáp ứng các nhu cầu của cá nhân, tập thể về sức khỏe, thể chất , thể thao,
các phòng tập gym, yoga, erobic đang được thành lập ngày một nhiều ở các thành phố.
Số lượng thành viên tham gia các phòng tập ngày càng tăng, dẫn đến các phương pháp
quản lý thủ cơng khơng cịn hữu ích mà trở nên khó khăn, gặp nhiều sai sót; các thủ
tục đăng ký phức tạp, mất nhiều thời gian cho khách hàng; giảm doanh thu của phòng
tập,…
Dựa trên các vấn đó và giải pháp dành cho người dùng, em đã tìm hiểu và quyết
định xây dựng hệ thống phịng tập gym trực tuyến. Website này là một hình thức linh

hoạt, hỗ trợ cho khách hàng quá trình đăng ký thẻ tập trực tuyến và xem thơng tin
(phịng tập, thẻ tập và các thông tin cá nhân), dễ dàng trong việc quản lý, góp phần
nâng cao lợi nhuận, chi phí th nhân viên và tăng sự tiện lợi cho người dùng nói
chung.
Mục tiêu nghiên cứu
- Thu thập các thơng tin, các báo cáo và giấy tờ có liên quan đến việc quản lý sổ sách
của phịng , phân tích thiết kế hệ thống thơng tin quản lý phịng tập
- Tìm hiểu công nghệ ASP.NET Core và Angular, hệ quản trị cơ sở dữ liệu SQL
Sever, IDE Visual Studio 2019, IDE Visual Code
- Xây dựng hệ thống website quản lý phòng Gym.
Nội dung báo cáo gồm có 03 chương:
- Chương 1: Cơ sở lý thuyết
Tìm hiểu về các cơng nghệ, thương mại điện tử, khái quát lên được ưu nhược
điểm và tầm quan trọng của các công nghệ này trong việc xây dựng các hệ thống
website hiện nay.
- Chương 2: Phân tích, thiết kế hệ thống
1


Khảo sát thực trạng từ đó đề ra các mục tiêu cũng như các yêu cần mà hệ thống
cần đạt được
- Chương 3: Thực nghiệm xây dựng hệ thống
Từ dữ liệu có được qua phần phân tích, thiết kế hệ thống và ứng dụng từ việc
tìm hiểu các cơng nghệ, nội dung chương 3 tập trung xác định môi trường triển khai và
thiết kế hệ thống, đưa ra kết luận và rút kinh nghiệm.

2


CHƯƠNG 1: CƠ SỞ LÝ THUYẾT


1.1 . Công nghệ ASP.NET MVC [1].

1.1.1. Lịch sử ra đời của MVC.
Sự ra đời của giao diện đồ họa (GUI) và lập trình hướng đối tượng (Object
Oriented Programming) cho phép lập trình viên làm việc với những thành phần đồ họa
như những đối tượng đồ họa có thuộc tính và phương thức riêng của nó. Khơng dừng
lại ở đó, những nhà nghiên cứu ở Xerox PARC còn đi xa hơn khi cho ra đời cái gọi là
kiến trúc MVC (viết tắt của Model – View – Controller)
MVC được phát minh tại Xerox Parc vào những năm 70, bởi TrygveReenskaug.
MVC lần đầu tiên xuất hiện công khai là trong Smalltalk-79
Thế hệ tiếp theo của MVC xuất hiện cùng với hệ điều hành NeXT và các phần
mềm của nó. Kiến trúc này ngày càng được phát triển và hoàn thiện nhằm giải quyết
các vấn đề cũng như các giải pháp cho quá trình phát triển phần mềm
Vì vậy sau đó, lần lượt các MVC framework ra đời dựa trên mơ hình MVC
như: CodeIgniter, Zend, ASP.NET MVC …
Bảng 1.1 Lịch sử ra đời MVC
Thời gian phát hành

Phiên bản

2008

ASP.NET MVC 1.0

2008

ASP.NET MVC 2.0 (.NET 3.5)

1/2010


ASP.NET MVC 3.0 (.Net 4)

15/8/2012

ASP.NET MVC 4.0 (.Net 4.5)

17/10/2013

ASP.NET MVC 5.0 (.Net 5.0)

1.1.2. Sự khác nhau giữa MVC và webform.
Bảng 1.2 Sự khác nhau giữa MVC và Webform
Thành phần

MVC
ASP.net MVC chia ra làm 3 phần:
3

ASP.net

Webform
WebForm sử

dụng


– Models

ViewState để quản lý các trang


– View

ASP.net

đều

– Controller.

postback



Mọi tương tác của người dùng với

controls, các event để thực hiện

Views sẽ được xử lý thông qua

các hành động cho UI (User

việc thực hiện các action hành

Interface). Khi có sự tương tác

động trong Controllers, khơng cịn

với người dùng nên hầu hết

postback, lifecycle và events.

Đối với MVC thì việc đó có thể sử

ASP.net WebForm xử lý chậm.
Với ASP.net WebForm đều phải

Việc kiểm tra

dụng các unit test có thể thẩm định

chạy tất cả các tiến trình của

(test), gỡ lỗi

rất dễ dàng các Controllers thực

ASP.net, và sự thay đổi ID của

hiện như thế nào

bất kỳ Controls nào cũng ảnh

(debug)


dùng

lifecycle,
các

web


hưởng đến ứng dụng
1.1.3. Kiến trúc sử dụng ASP.NET MVC.
Như tên gọi MVC gồm 3 thành phần với các chức năng khác nhau:
M (Model): là nơi chứa các nghiệp vụ tương tác với cơ sở dữ liệu. Nó bao gồm
các class/ function xử lý nhiều nghiệp vụ như kết nối database, truy vấn dữ liệu, thêm
– xóa – sửa dữ liệu…
V (View): Đảm nhận việc hiển thị thông tin, tương tác với người dùng, nơi chứa
tất cả các đối tượng GUI như textbox, images… Hiểu một cách đơn giản, nó là tập hợp
các form hoặc các file HTML.
C (Controller): Giữ nhiệm vụ nhận điều hướng các yêu cầu từ người dùng và
gọi đúng những phương thức xử lý chúng… Chẳng hạn thành phần này sẽ nhận yêu
cầu từ url và form để thao tác trực tiếp với Model.
1.1.3.1 Model.
Model là thành phần chủ yếu được sử dụng để thao tác xử lý dữ liệu. Trong các
framework, Model vẫn thường sử dụng theo phương thức Active Record, một trong
những design pattern. Chúng có tác dụng rút ngắn thời gian viết câu truy vấn cho
người sử dụng. Biến những câu truy vấn phức tạp trở nên gần gũi và thân thiện với
người sử dụng thông qua các thư viện được định nghĩa sẵn.
Model thường sẽ là các phương thức có trách nhiệm xử lý các tác vụ như:
select, insert, update, delete các record trong database. Ứng với các lấy dữ liệu, model

4


thường sử dụng mảng để gởi trả kết quả về. Vì mảng có thể cho phép model lưu trữ
nhiều thơng tin hơn, nên thường các bản ghi khi bóc tách chúng sẽ mang các dữ liệu
của cơ sở dữ liệu một cách chi tiết.
Khi sử dụng Model, ta cũng cần tn theo ngun tắc chính của chúng là khơng
xuất giá trị trực tiếp trong Model. Mà tất cả những dữ liệu ấy, phải đưa vào mảng và

trả về theo phương thức. Và tiếp tục ở View ta sẽ sử dụng nó để lấy dữ liệu ra.
1.1.3.2 View.
View là phần hiển thị thông tin tương phản khi gửi và nhận yêu cầu. Trước đây,
người ta thường sử dụng template để phân tách website thành 2 mảng riêng biệt. Một
là giao diện và một là core. Việc chỉnh sửa giao diện trở nên đơn giản hơn đối so với
cách viết thập cẩm lúc trước. Tuy nhiên, các thư viện này thực chất sẽ làm cho ứng
dụng của chúng ta trở nên chậm chạp hơn bao giờ hết. Bởi chúng phải phiên dịch
nhiều lần các kịch bản.
Vì vậy, View là một phần trong việc nâng cấp những hạn chế ấy. Chúng giúp
giảm thiểu tối đa quá trình biên dịch nhiều lần. Và làm cho ứng dụng trở nên mạnh mẽ
và chuyên nghiệp hơn nhiều so với cách lập trình thuần.
1.1.3.3 Controller.
Controller có trách nhiệm chính là điều hướng các yêu cầu của người sử dụng.
Như vậy trên toàn ứng dụng của ta, tất cả các yêu cầu đều sẽ phải đi tới Controller. Và
tại đây, ứng với các tham số người sử dụng truyền mà ta đưa họ đến một tác vụ nào đó
trên ứng dụng.
Tại các tác vụ này, chúng sẽ thơng qua lớp Model để làm việc và trả kết quả trở
về Controller. Cuối cùng controller sẽ đẩy dữ liệu thao tác tới view. View là thành
phần cuối cùng mà người sử dụng nhận được khi họ giở yêu cầu tới ứng dụng.
1.1.4. Đặc điểm ASP.NET MVC Framework.
 Tiếp tục hỗ trợ các tính năng trong ASP.NET
- Hỗ trợ sử dụng các các tập tin:.ASPX, .ASCX, như là thành phần View.
- Hỗ trợ đầy đủ các tính năng bảo mật của ASP.net: Form/ Windows
authenticate, URL authorization, membership/roles, output và data caching, section/
profile state, configuration system, provider architecture.
 Tách rõ ràng các mối liên quan, mở ra khả năng test TDD (Test Driven
Developer).

5



- Có thể test unit trong ứng dụng mà khơng cần phải chạy Controllers cùng với
tiến trình của ASP.NET và có thể dùng bất kỳ một unit testing framework nào như
NUnit, MBUnit, MS Test, …
 Có khả năng mở rộng, mọi thứ trong MVC được thiết kế để dễ thay thế, dễ dàng
tùy biến. Ánh xạ URL mạnh mẽ, cho phép xây dựng ứng dụng với những URL sạch.
 Không sử dụng mơ hình post-back từ giao diện gửi đến server. Thay vào đó,
chủ động đưa những post-back từ View đến thẳng lớp Controller.
 Hỗ trợ nhiều công cụ tạo View (Support for Multiple View Engines)
- Cho phép chọn công cụ tạo view.
- Các loại view engine
oWeb Forms (ASPX)
oRazor
oHay một view engine nguồn mở như Spark, NHaml, NDjango.
 Hỗ trợ định tuyến
- ASP.NET MVC Framework có một bộ máy ánh xạ URL thật sự mạnh mẽ.
- Bộ máy này cung cấp phương pháp rất linh hoạt trong việc ánh xạ URL sang
các Controller Classes.
- Có thể dễ dàng định ra các quy luật, cài đặt đường đi, ASP.NET dựa vào các
quy luật đó để xác định Controller và action cần phải thực thi.
- ASP.NET cịn có khả năng phân tích URL, chuyển các thông số trong URL
thành các tham số trong lời gọi hàm của Controller.
 Model Binding
- Model Binding là tính năng thế mạnh của ASP.NET MVC (và bây giờ nó
cũng được áp dụng cho cả Web Forms trong phiên bản ASP.NET 4.5).
- Hỗ trợ viết phương thức nhận một đối tượng tùy biến như là một tham số
- Với sự hỗ trợ của Model Binding, bây giờ chỉ cần tập trung vào việc cài đặt
các nghiệp vụ logic, không cần phải bận tâm về việc suy nghĩ làm cách nào để ánh xạ
dữ liệu từ người dùng sang các đối tượng .NET.
 Filters

- Là tính năng mạnh trong ASP.NET MVC. Hỗ trợ cho việc kiểm tra tính hợp lệ
trước khi một action method được gọi hoặc sau khi một action method thi hành.

6


 Razor View.
Từ ASP.net MVC 3 đi kèm với một cơng cụ View mới có tên là Razor với
những lợi ích sau:
- Cú pháp Razor là sạch sẽ và súc tích, địi hỏi một số lượng tối thiểu các tổ hợp phím.
- Việc tìm hiểu Razor tương đối dễ dàng vì nó dựa trên ngơn ngữ C# và Visual Basic.
- Visual Studio bao gồm IntelliSense và mã cú pháp Razor được màu hóa.
- Với Razor views có thể kiểm tra từng đơn vị mà khơng địi hỏi phải chạy các
ứng dụng hoặc phải chạy website.
1.1.5. Ưu nhược điểm của mô hình MVC.
– Ưu điểm của MVC : Cho thấy sự chun nghiệp trong lập trình và phân tích
đối tượng, vì được chia các thành phần riêng biệt nên hoạt động độc lập tách biệt giúp
phát triển ứng dụng nhanh hơn, đơn giản hơn và dễ nâng cấp, bảo trì hơn.
– Nhược điểm của MVC: Là mơ hình làm việc rất bài bản nên với những ứng
dụng nhỏ, sử dụng MVC rất tốn nhiều thời gian và gây ra nhiều phức tạp.
1.2. Công nghệ ASP.NET Core.
1.2.1. Giới thiệu tổng quan về ASP.NET Core.
ASP.NET Core là một framework mới của Microsoft. Nó được thiết kế lại từ
đầu để trở nên nhanh chóng, linh hoạt và chạy trên được nhiều nền tảng khác nhau. Trong
bài viết này, ASP.NET Core là một framework có thể được sử dụng để phát triển web với
.NET. Nếu có kinh nghiệm làm việc với MVC hoặc Web API sẽ nhận thấy những tính năng
quen thuộc. Kết thúc khóa học ASP.NET Core của NET CORE VN, sẽ có những thứ cần
thiết để bắt đầu làm việc được với ASP.NET Core và viết 1 ứng dụng có thể thêm, sửa hay
xem dữ liệu từ database như các mơn lập trình khác đã từng học.
1.2.2. Sơ lượt về lịch sử của ASP.NET Core [4].

ASP.NET Core đã được sử dụng từ nhiều năm để phát triển các ứng dụng web.
Kể từ đó, framework này đã trải qua một sự thay đổi tiến hóa đều đặn và cuối cùng đã
đưa chúng ta đến với ASP.NET Core 1.0 hậu duệ mới gần đây nhất của nó.
ASP.NET Core khơng phải là phiên bản tiếp theo của ASP.NET 4.6
Đó là một framework hồn tồn mới, may mắn rằng nó một dự án side-by-side
tương tự với mọi thứ mà chúng ta biết.
Nó thực ra được viết lại trên framework ASP.NET 4.6 hiện tại những kích thước
nhỏ hơn và nhiều modular hơn.

7


1.2.3. ASP.NET Core là gì?
ASP.NET Core là một web framework mã nguồn và được tối ưu hóa cho
cloud để phát triển các ứng dụng web chạy trên nhiều nền tảng như Windows, Linux
và Mac. Hiện tại, nó bao gồm MVC framework được kết hợp các tính năng của MVC
và Web API thành một web framework duy nhất.
Các ứng dụng ASP.NET Core có thể chạy trên .NET Core hoặc trên .NET
Framework hồn chỉnh.
Nó đã được thiết kế để cung cấp một framework tối ưu cho các ứng dụng
để triển khai tới cloud hoặc chạy on-premises.
Nó bao gồm những modular với các thành phần tối thiểu, do đó giữ được tính
linh hoạt trong q trình xây dựng các giải pháp của mình.
Có thể phát triển và chạy các ứng dụng đa nền tảng từ ASP.NET Core trên
Windows, Mac và Linux.
1.2.4. Ưu điểm của ASP.NET Core.
ASP.NET Core đi kèm với những ưu điểm sau:
ASP.NET Core có một số thay đổi kiến trúc dẫn đến modular framework nhỏ hơn.
ASP.NET Core khơng cịn dựa trên System.Web.dll. Nó dựa trên một tập hợp
nhiều yếu tố của Nuget packages.

Điều này cho phép tối ưu ứng dụng của mình chỉ cần những NuGet packages
cần thiết.
Lợi ích của diện tích bề mặt ứng dụng nhỏ hơn thì bảo mật chặt chẽ hơn, giảm
dịch vụ, cải thiện hiệu suất và giảm chi phí.
Với ASP.NET Core, có thể nhận được các cải tiến sau:
Xây dựng và chạy các ứng dụng ASP.NET Core đa nền tảng trên Windows,
Mac và Linux.
Được xây dựng trên .Net Core, hỗ trợ side-by-side app versioning.
Công cụ mới giúp đơn giản hóa việc phát triển web hiện đại.
Liên kết đơn các web stack như Web UI và API Web.
Cấu hình dựa trên mơi trường đám mây sẵn có.
Được xây dựng dựa trên cho DI (Dependency Injection).
Tag Helpers làm cho các Razor makup trở nên tự nhiên hơn với HTML.
Có khả năng host trên IIS hoặc self-host.

8


1.3 . Công nghệ ASP.NET Core API.
1.3.1. REST API .
RESTful API là một tiêu chuẩn dùng trong việc thiết kế API cho các ứng dụng
web (thiết kế Web services) để tiện cho việc quản lý các resource. Nó chú trọng vào tài
nguyên hệ thống (tệp văn bản, ảnh, âm thanh, video, hoặc dữ liệu động…), bao gồm
các trạng thái tài nguyên được định dạng và được truyền tải qua HTTP.
1.1 Cấu trúc của REST API

1.3.2. REST API hoạt động như thế nào?

Hình 1.1 Cách thức hoạt động của REST API
REST hoạt động chủ yếu dựa vào giao thức HTTP. Các hoạt động cơ bản nêu

trên sẽ sử dụng những phương thức HTTP riêng.
GET (SELECT): Trả về một Resource hoặc một danh sách Resource.
POST (CREATE): Tạo mới một Resource.
PUT (UPDATE): Cập nhật thơng tin cho Resource.
DELETE (DELETE): Xố một Resource.
Những phương thức hay hoạt động này thường được gọi là CRUD tương ứng
với Create, Read, Update, Delete – Tạo, Đọc, Sửa, Xóa.
1.4. Cơng nghệ Angular.
1.4.1. Angular là gì?
Angular – ứng dụng là một tập hợp những component (thành phần) và một vài
services (dịch vụ) cung cấp chức năng trên những component đó:
Angular Application = Component + Component + Component … + services
Component = Template + Class + Metadata
9


Mỗi component bao gồm một mẫu HTML cái mà sẽ render ra một “frame” giao
diện người dùng.
Một Class để code những gì liên kết với view. Class chứa những thuộc tính,
những phần tử dữ liệu có sẵn để phục vụ cho các view và các phương thức thực hiện
những hành động cho view, chẳng hạn như sự phản hồi của một nút bấm.
Một component cũng có metadata cung cấp thêm những thông tin của
component cho Angular. Metadata này để xác định Class là một Angular component
1.4.2. Lịch sử Angular.
Bảng 1.3 Lịch sử phiên bản của Angular
PHIÊN BẢN ANGULAR
Angular 2
Angular 4
Angular 5
Angular 6

Angular 7
Angular 8
Angular 9

THỜI
GIAN
14.09.2016

MIÊU TẢ
Initial Version of

Angular
23.03.2017 Version 4
11.11.2017 Version 5
03-05Version 6
2018
18-10Version 7
2018
25-08Version 8
2019
13-119.0.0-rc.2
2019

1.4.3. Tại sao nên chọn Angular?
Angular làm cho HTML trở nên linh hoạt hơn.
Angular làm cho code HTML trở nên mạnh mẽ hơn với những đặc trưng như
điều kiện “if”, vòng lặp “for” và những biến địa phương “local variables”.
Angular có cơ chế binding data mạnh mẽ, chúng ta có thể dễ dàng hiển thị các
field từ data model, theo dõi những thay đổi và cập nhật lại từ người dùng.
Angular hoạt động theo thiết kế module (mô đun). Ứng dụng sẽ được xây dựng

từ những khối module độc lập, làm cho việc xây dựng sẽ dễ dàng và có thể tái sử dụng
được nội dung.

10


Angular hỗ trợ việc giao tiếp với những back- end service. Điều này sẽ dễ dàng
cho việc tích hợp những back-end service để việc giải quyết các bài toán logic nhanh
chóng.
1.5. Kiến trúc Microservice [5].
1.5.1. Tổng quát đặc điểm của Microservice .
Nhiều tập đoàn như Amazon, eBay, Netflix đã giải quyết vấn đề ứng dụng một
khối bằng kiến trúc microservices (nhiều dịch vụ nhỏ). Ý tưởng là chia nhỏ ứng dụng
lớn ra thành các dịch vụ nhỏ kết nối với nhau.
Mỗi dịch vụ nhỏ thực hiện một tập các chức năng chuyên biệt. Mỗi dịch vụ là
một ứng dụng nhỏ có kiến trúc đa diện lõi là business logic kết nối ra các adapter khác
nhau. Một số dịch vụ nhỏ lộ ra giao tiếp lập trình API cho dịch vụ nhỏ khác hay ứng
dụng client gọi tới. Khi vận hành, mỗi dịch vụ nhỏ được chạy trong một máy ảo
(virtual machine) hoặc Docker container (ảo hóa tầng ứng dụng).
Mỗi vùng chức năng giờ được thực thị bởi một dịch vụ nhỏ. Ứng dụng web cũng
có thể chia nhỏ hơn chuyên cho từng đối tượng người dùng (một cho hành khách taxi,
một cho tài xế). Thiết kế giao diện cho từng đối tượng người dùng giúp tối ưu trải nghiệm
tốt hơn, tốc độ nhanh hơn, dễ tương thích hơn trong khi chức năng tối giản hơn.
Mỗi dịch vụ đằng sau (back end service) lộ ra REST API (hiện nay còn nhiều
lựa chọn khác như Google Protobuf, Apache Thrift, Apache Avro tốn ít băng thông
hơn REST JSON).
1.5.2. Ưu điểm của Microservices.
1- Mỗi dịch vụ nhỏ sẽ định ra ranh giới rõ ràng dưới dạng RPC hay API hướng
thông điệp.
2- Microservice thúc đẩy tách rạch ròi các khối chức năng (loose coupling high cohesion), điều rất khó thực hiện với ứng dụng một khối. Nếu muốn loose

coupling - high cohesion trong ứng dụng một khối, sẽ phải thiết kế theo Design Pattern
và liên tục tái cấu trúc (refactor)
3- Mỗi dịch vụ nhỏ sẽ phát triển dễ hơn, nhanh hơn, dễ viết mã kiểm thử tự
động.
4- Một số dịch vụ có th ngồi phát triển mà vẫn bảo mật hệ thống - mã nguồn
phần dịch vụ cịn lại. Đội phát triển có nhiều lựa chọn công nghệ mới, framework,
CSDL mới, đa dạng để nâng cấp từng dịch vụ nhỏ, chọn môi trường tối ưu nhất để

11


chạy. Các dịch vụ có thể bật tắt để kiểm nghiệm so sánh A|B, tăng tốc quá trình cải tiến
giao diện. Triển khai đều đặn khả thi với microservice. Dịch vụ nhỏ đóng gói trong
Docker container có thể chuyển từ môi trường phát triển sang môi trường chạy thật
không phải cấu hình thủ cơng lại, khơng phải copy file q lớn.
1.5.3. Nhược điểm của Microservices.
Nhược điểm đầu tiên của microservices cũng chính từ tên gọi của nó.
Microservice nhấn mạnh kích thước nhỏ gọn của dịch vụ. Một số lập trình đề xuất dịch
vụ siêu nhỏ cỡ dưới 100 dòng code. Chia quá nhiều sẽ dẫn đến manh mún, vụn vặt,
khó kiểm soát. Việc lưu dữ liệu cục bộ bên trong những dịch vụ quá nhỏ sẽ khiến dữ
liệu phân tán quá mức cần thiết.
Nhược điểm tiếp của microservice đến từ đặc điểm hệ thống phân tán
(distributed system):
- Phải xử lý sự cố khi kết nối chậm, lỗi khi thông điệp khơng gửi được hoặc
thơng điệp gửi đến nhiều đích đến vào các thời điểm khác nhau.
- Đảm bảo giao dịch phân tán (distributed transaction) cập nhật dữ liệu đúng đắn (all
or none) vào nhiều dịch vụ nhỏ khác nhau khó hơn rất nhiều, đôi khi là không thể so với
đảm bảo giao dịch cập nhật vào nhiều bảng trong một cơ sở dữ liệu trung tâm.
- Theo nguyên tắc CAP (CAP theorem) thì giao dịch phân tán sẽ khơng thể
thỏa mãn cả 3 điều kiện: consistency (dữ liệu ở điểm khác nhau trong mạng phải giống

nhau), availablity (yêu cầu gửi đi phải có phúc đáp), partition tolerance (hệ thống vẫn
hoạt động được ngay cả khi mạng bị lỗi). Những công nghệ cơ sở dữ liệu phi quan hệ
(NoSQL) hay môi giới thông điệp (message broker) tốt nhất hiện nay cũng chưa vượt
qua nguyên tắc CAP.
- Kiểm thử tự động một dịch vụ trong kiến trúc microservices đôi khi yêu cầu
phải chạy cả các dịch vụ nhỏ khác mà nó phụ thuộc. Do đó khi phân rã ứng dụng một
khối thành microservices cần luôn kiểm tra mức độ ràng buộc giữa các dịch vụ mềm
dẻo hơn hay cứng nhắc - lệ thuộc hơn. Nếu ràng buộc ít đi, lỏng leo hơn, đi đúng
hướng và ngược lại.
- Nếu các dịch vụ nhỏ thiết kế phục thuộc vào nhau theo chuỗi. A gọi B, B gọi
C, C gọi D. Nếu một mắt xích có giao tiếp API thay đổi, liệu các mắt xích khác có phải
thay đổi theo khơng? Nếu có thì việc bảo trì, kiểm thử sẽ phức tạp tương tự ứng dụng

12


một khối. Thiết kế dịch vụ tốt sẽ giảm tối đa ảnh hưởng lan truyền đến các dịch vụ
khác.

13


CHƯƠNG 2: PHÂN TÍCH, THIẾT KẾ HỆ THỐNG

2.1. Khảo sát và phân tích bài tốn Quản lý phịng Gym.
2.1.1. Mơ tả bài toán.
TK-GYM and Fitness là một trong những chuỗi phòng tập hàng đầu tại khu
vực Tứ Kỳ Hải Dương. Đối tượng khách hàng phần lớn là người dân lân cận, các học
sinh của các trường THPT, THCS, các công ty lân cận. Vì vậy phịng cần có website
quản lý online cũng như đáp ứng nhu cầu tìm hiểu trực tiếp của hội viên.

2.1.2. Mục tiêu xây dựng hệ thống.
- Xây dựng nên 1 website thân thiện đơn giản và dễ tiếp cận. Giúp việc hội viên
dễ tiếp cận với chuỗi phòng tập, mang lại lợi nhuận cho các phòng tập.
- Thông tin và thông báo luôn được cập nhật.
- Giúp người quản lý của phòng tập theo dõi hội viên và thẻ tập một cách đơn
giản và chính xác nhất.
2.1.3. Yêu cầu đặt ra.

 Yêu cầu chung
- Mọi người đều có thể xem thơng tin phịng tập và các dịch vụ trên website
- Người dùng có tài khoản có thể đăng nhập và thực hiện các chức năng ứng với
quyền được cấp.
 Đối với người quản lý
- Có thể thực hiện quản lý thông tin của, các dịch vụ của phịng tập
- Có thể thực hiện quản lý website online cần xử lý, cập nhật thông báo trạng
thái của phịng tập cho khách hàng.
2.1.4. Chức năng chính của hệ thống.
Bảng chi tiết chắc năng đề ra:
Bảng 2.1 Chức năng chi tiết của phần mềm
STT
1. Admin

Yêu cầu chức năng
1.1: Phân quyền tài khoản
1.2: Admin có quyền xem thơng
tin người dùng, chỉnh sửa, thêm
mới, xóa các dữ liệu thuộc danh
mục, báo cáo thống kê

14


Ghi chú
Admin có thể nâng cấp tài
khoản


1.3: Admin có quyền thêm
khách hàng, chỉnh sửa thơng tin,
tìm kiếm, xuất excel
1.4: Quản lý thẻ tập, khách
hàng,
2.1: Ban lãnh đạo có quyền xem
thơng tin người dùng, chỉnh sửa,
thêm mới, xóa các dữ liệu thuộc
danh mục,
2.2: Ban lãnh đạo có quyền
thêm khách hàng, chỉnh sửa
2. Ban lãnh đạo

thơng tin, tìm kiếm, xuất excel
2.3: Quản lý thơng tin tài khoản
của mình
2.4: Quản lý thẻ tập, khách hàng
2.5: Xem báo số lượng khách
hàng thêm vào của từng nhân
viên hay tất cả nhân viên, thống
kê doanh thu, thẻ tập
4.1: Nhân viên kinh doanh đăng
nhập vào hệ thống
4.2: Nhân viên kinh doanh có

quyền thêm thẻ tập của khách
hàng, thêm các phần trong danh

3. Nhân viên kinh
doanh

mục, thêm mới khách hàng
4.3: Nhân viên kinh doanh
thống



số

lượng

khách

hàng,thẻ tập của minh
4.4: Nhân viên kinh doanh có
thể xem báo cáo của mình theo
năm, tháng
4.5: Quản lý thơng tin cá nhân
2.2. Biểu đồ use case.
Bảng 2.2 Các tác nhân của hệ thống
STT

Tên Actor

15


Giải thích


1
2

Admin

Quản lý hệ thống và User

Nhân viên quản lý

Quản lý phịng tập
Quản lý thẻ tập
Quản lý dịch vụ

3

User

Xem thơng tin, thơng báo,
đăng kí thẻ tập

2.2.1. Biểu đồ use case tổng quát.

Hình 2.2 Biểu đồ use case tổng quát
2.2.2. Biểu đồ phân rã UC quản lý hệ thống.

16



Hình 2.3 Biểu đồ phân rã use case quản lý hệ thống
2.2.3. Biểu đồ phân rã UC quản lý User.

Hình 2.4 Biểu đồ use case quán lý User

17


×