Web nâng cao-1-comp - Báo cáo hết học phần của môn lập
trình web nâng cao, project được viết bằng
Lập trình web nâng cao (Đại học Điện lực)
Scan to open on Studeersnel
Studocu is not sponsored or endorsed by any college or university
Web nâng cao-1-comp - Báo cáo hết học phần của môn lập
trình web nâng cao, project được viết bằng
Lập trình web nâng cao (Đại học Điện lực)
Scan to open on Studeersnel
Studocu is not sponsored or endorsed by any college or university
Downloaded by Tr?ng Toàn Nguy?n (nguyentrongtoan954@gmail.com)
lOMoARcPSD|36892797
TRƯỜNG ĐẠI HỌC ĐIỆN LỰC
KHOA CÔNG NGHỆ THÔNG TIN
BÁO CÁO CHUYÊN ĐỀ HỌC PHẦN
LẬP TRÌNH WEB NÂNG CAO
Sinh viên thực hiện
: PHẠM TUẤN ANH, 21810310596
PHẠM THANH HẢI, 21810310175
HIẾU, 21810310654
NGUYỄN MINH DŨNG, 20810310596
Giảng viên hướng dẫn
: TRẦN TRUNG
Ngành
: CÔNG NGHỆ THÔNG TIN
Chuyên ngành
: CÔNG NGHỆ PHẦN MỀM
Lớp
: D16CNPM6
Khóa
: D16
Downloaded by Tr?ng Toàn Nguy?n (nguyentrongtoan954@gmail.com)
lOMoARcPSD|36892797
Nội, tháng 8 năm 2023
PHIẾU CHẤM ĐIỂM
Sinh viên thực hiện:
Họ Tên
Nội dung thực hiên
Chữ
Phạm Tuấn Anh
Source Code,Sơ đồ
Phạm Thanh Hải
Ni dung, hình nh
Hiếu
Source Code, sơ đồ
Nguyễn Minh
Dũng
Ni dung, hình nh
Giảng viên chấm:
Downloaded by Tr?ng Toàn Nguy?n (nguyentrongtoan954@gmail.com)
lOMoARcPSD|36892797
Họ tên
Chữ
Ghi chú
Giảng viên chấm 1 :
Giảng viên chấm 2 :
MỤC LỤC
LỜI MỞ ĐẦU 4
CHƯƠNG 1 5
CHƯƠNG 2 13
CHƯƠNG 3 32
CHƯƠNG 4 34
CHƯƠNG 5 39
CHƯƠNG 6 42
CHƯƠNG 7 49
CHƯƠNG 8 52
CHƯƠNG 9 59
CHƯƠNG 10 62
CHƯƠNG 11 66
Downloaded by Tr?ng Toàn Nguy?n (nguyentrongtoan954@gmail.com)
lOMoARcPSD|36892797
CHƯƠNG 12 70
CHƯƠNG 13 74
CHƯƠNG 14 90
CHƯƠNG 15 94
CHƯƠNG 16 98
KẾT LUẬN 109
LỜI MỞ ĐẦU
Lập trình web một lĩnh vực phát triển nhanh chóng, với những tiến bộ mới được thực hiện liên
tục. Để đáp ứng với những thay đổi này, sinh viên cần được trang bị những kiến thức kỹ năng
mới nhất trong lập trình web.
Báo cáo này tổng hợp về tất cả các kiến thức em đã học trong kỳ, bao gồm:
- Tổng quan về project ASP.NET
- Tổng quan về Web server
- Tổng quan về DB
- Tổng quan hình kiến trúc ( 3 tiers MVC )
- Tổng quan lập trình Ajax
- Kiểm soát truy cập ( author authen )
Ngoài ra còn những nội dung thực hành như:
- Thiết lập môi trường ASP.NET Core 6.0
- Thiết lập project MVC
- CRUD cổ điển
- CRUD Ajax
- Login
Sau đây bản báo cáo lược về báo cáo môn cùng những ưu điểm, thiếu sót cách cải thiện
để trở nên tốt hơn. Những chúng em tìm hiểu được còn khá hạn chế, mong thầy giáo xem
cho ý kiến đánh giá để em nhận ra những khiếm khuyết của mình.
Chúng em xin chân thành cảm ơn thầy luôn mong nhận được sự đóng góp của thầy
các bạn
Downloaded by Tr?ng Toàn Nguy?n (nguyentrongtoan954@gmail.com)
lOMoARcPSD|36892797
Sau cùng, chúng em xin kính chúc các thầy trong Khoa Công Nghệ Thông Tin dồi dào sức
khỏe, niềm tin để tiếp tục thực hiện sứ mệnh cao đẹp của mình truyền đạt kiến thức cho thế hệ
mai sau.
Trân trọng!
CHƯƠNG 1: TỔNG QUAN VỀ .NET FRAMEWORK/ .NET CORE/ .NET 6
A. .NET FRAMEWORK
1. .NET FRAMEWORK ?
- một nền tảng phát triển phần mềm do Microsoft phát triển. Framework này tạo ra các
ứng dụng chạy trên nền tảng Windows. Phiên bản đầu tiên của .NET framework được
phát hành vào năm 2002.
- Phiên bản đó được gọi .Net framework 1.0. .NET framework đã đi một chặng đường
dài kể từ đó, phiên bản hiện tại 4.7.1.
- .NET framework thể được sử dụng để tạo cả những ứng dụng dựa trên biểu mẫu
(Form-based) dựa trên Web (Web-based). Các web service cũng thể được phát triển
bằng cách sử dụng .NET framework.
- Framework cũng hỗ trợ các ngôn ngữ lập trình khác nhau như Visual Basic C#.
vậy, các nhà phát triển thể lựa chọn ngôn ngữ để phát triển ứng dụng cần thiết.
2. KIẾN THỨC CỦA .NET FRAMEWORK
Downloaded by Tr?ng Toàn Nguy?n (nguyentrongtoan954@gmail.com)
lOMoARcPSD|36892797
Kiến trúc của .NET framework dựa trên các thành phần chính sau:
* Thời gian chạy ngôn ngữ chung (Common Language Runtime)
"Cơ sở hạ tầng ngôn ngữ chung" hoặc CLI một nền tảng trên đó các chương trình .Net
được thực thi.
CLI các tính năng chính sau đây:
- Xử ngoại lệ
Ngoại lệ các lỗi xảy ra khi ứng dụng được thực hiện.
dụ về ngoại lệ là:
Nếu một ứng dụng cố mở một tệp trên local machine, nhưng tệp không có.
Nếu ứng dụng tìm nạp một số bản ghi từ sở dữ liệu, nhưng kết nối đến sở dữ liệu không
hợp lệ.
- Garbage Collection
Garbage Collection quá trình loại bỏ các tài nguyên không mong muốn khi chúng không còn
cần thiết nữa.
Downloaded by Tr?ng Toàn Nguy?n (nguyentrongtoan954@gmail.com)
lOMoARcPSD|36892797
dụ về Garbage Collection là:
Một xử tập tin không còn cần thiết: Nếu ứng dụng đã hoàn thành tất cả các thao tác trên một
tệp, thì trình xử tệp thể không còn cần thiết nữa.
Kết nối sở dữ liệu không còn cần thiết nữa: Nếu ứng dụng đã hoàn thành tất cả các hoạt động
trên sở dữ liệu, thì kết nối sở dữ liệu thể không còn cần thiết nữa.
- Làm việc với các ngôn ngữ lập trình khác nhau
Như đã nêu phía trên, một developer thể phát triển một ứng dụng bằng nhiều ngôn ngữ lập
trình .Net.
Ngôn ngữ: Cấp độ đầu tiên ngôn ngữ lập trình, phổ biến nhất VB.Net C #.
Trình biên dịch: một trình biên dịch sẽ được tách riêng cho từng ngôn ngữ lập trình. vậy,
bên dưới ngôn ngữ VB.Net, sẽ một trình biên dịch VB.Net riêng biệt. Tương tự, đối với C #,
bạn sẽ trình biên dịch khác.
Common Language Interpreter: Đây lớp cuối cùng trong .Net sẽ được sử dụng để chạy một
chương trình .net được phát triển bằng bất kỳ ngôn ngữ lập trình nào. vậy trình biên dịch tiếp
theo sẽ gửi chương trình tới lớp CLI để chạy ứng dụng .Net.
* Class Library
.NET Framework bao gồm một bộ các class libraries. Một class library một tập hợp các
phương thức các hàm thể được sử dụng cho mục đích cốt lõi.
dụ, một class library với các phương thức để xử tất cả các hoạt động cấp tệp. vậy,
một phương pháp thể được sử dụng để đọc văn bản từ một tập tin. Tương tự, một phương
pháp để viết văn bản vào một tập tin.
Hầu hết các phương thức được chia thành các vùng tên System. *Hoặc Microsoft.*. (Dấu hoa thị
* chỉ nghĩa tham chiếu đến tất cả các phương thức nằm trong vùng tên System hoặc
Microsoft). Một namespace một sự tách biệt logic của các phương thức.
* Ngôn ngữ
Các loại ứng dụng thể được xây dựng trong .NET framework được phân loại rộng rãi thành
các loại sau.
- WinForms
Downloaded by Tr?ng Toàn Nguy?n (nguyentrongtoan954@gmail.com)
lOMoARcPSD|36892797
Được sử dụng để phát triển các ứng dụng Forms-based, quá trình này chạy trên end user
machine. Notepad một dụ về ứng dụng dựa trên ứng dụng khách.
- ASP.Net
Được sử dụng để phát triển các ứng dụng dựa trên web, được tạo để chạy trên bất kỳ trình duyệt
nào như Internet Explorer, Chrome hoặc Firefox.
Ứng dụng Web sẽ được xử trên một máy chủ, sẽ được cài đặt Dịch vụ thông tin Internet.
Dịch vụ thông tin Internet hoặc IIS một thành phần của Microsoft được sử dụng để thực thi
một ứng dụng Asp.Net.
Kết quả của việc thực hiện sau đó được gửi đến các máy khách kết quả đầu ra được hiển thị
trong trình duyệt.
- ADO.Net
Công nghệ này được sử dụng để phát triển các ứng dụng tương tác với sở dữ liệu như Oracle
hoặc Microsoft SQL Server.
Microsoft luôn đảm bảo rằng các .NET framework tuân thủ tất cả các hệ điều hành Windows
được hỗ trợ.
3. Ưu, nhược điểm nổi bật của .NET framework
Một số ưu nhược điểm nổi bật của .NET framework gồm có:
a) Ưu điểm
* Thư viện lập trình lớn
Mộ trong những lợi ích lớn nhất của .NET framework chính việc tạo ra môi trường chung,
giúp cung cấp hiệu suất tối ưu cho việc tạo lập xây dựng các ứng dụng web. Đồng thời cho
phép truy cập, kết nối các sở dữ liệu cấu trúc dữ liệu, thực hiện việc lập trình giao diện,…
* Đa ngôn ngữ
ngôn ngữ C#, C++ hay Visual Basic, người dùng cũng thể thoải mái viết, trong khi vẫn
đảm bảo khả năng tích hợp. Các đoạn code này sẽ được sử dụng cho phần mềm tương thích với
các phần cứng .NET framework hỗ trợ.
* Nǎng suất làm việc cao
Lập trình, thiết kế ứng dụng với .NET framework không tiêu tốn nhiều thời gian do sẵn rất
nhiều yếu tố thể sử dụng trong thiết kế. Người dùng chỉ cần hiểu cách sử dụng tùy biến
Downloaded by Tr?ng Toàn Nguy?n (nguyentrongtoan954@gmail.com)
lOMoARcPSD|36892797
các đoạn code này sao cho tương thích với dự án của bạn, theo đó việc lập trình cũng trở nên
nhanh chóng dễ dàng hơn.
* Biến đổi linh hoạt nhờ kiến trúc “ghép nối lỏng”
.NET framework được tạo ra với khả năng tùy biến linh hoạt nhờ cấu trúc ‘ghép nối lỏng’. Tính
năng này giúp mang lại nhiều ưu điểm về mặt năng suất.
* Bảo mật cao
.NET framework phần kiến trúc bảo mật được xây dựng từ dưới lên, hỗ trợ bảo vệ dữ liệu
các ứng dụng khỏi hacker thông qua hình bảo mật evidence-based.
* Tận dụng các dịch vụ được tích hợp sẵn trong hệ điều hành
Windows nhiều loại dịch vụ vận hành trên các nền tảng gồm: truy cập dữ liệu, giao diện
người dùng tương tác, hình đối tượng thành phần, bảo mật tích hợp giám sát giao dịch. Từ
những lợi thế đó, .NET hỗ trợ đơn giản hóa cách sử dụng, giúp cho việc lập trình trên công cụ
này trở nên đơn giản hơn.
b) Nhược điểm
Cần phải cài đặt .NET framework trên PC để thể chạy những chương trình được thiết kế dựa
trên nền tảng .NET framework.
4. Nguyên tắc thiết kế .NET framework
* Khả năng tương tác
.NET framework vẫn cung cấp rất nhiều hỗ trợ cho các phiên bản hơn. Giả sử nếu bạn một
ứng dụng được xây dựng trên một phiên bản hơn của .NET framework như 2.0. nếu bạn
cố gắng chạy cùng một ứng dụng trên một máy phiên bản cao hơn của .NET framework
3.5. Ứng dụng sẽ vẫn hoạt động. Điều này bởi với mọi bản phát hành, Microsoft đảm bảo
rằng các phiên bản hơn của phiên bản này sẽ hiệu lực tốt với phiên bản mới nhất.
* Linh động
Các ứng dụng được xây dựng trên .NET framework thể được thực hiện để làm việc trên bất
kỳ nền tảng Windows nào. Trong thời gian gần đây, Microsoft cũng đang phát triển để làm cho
các sản phẩm của Microsoft hoạt động trên các nền tảng khác, chẳng hạn như iOS Linux.
* Bảo mật
Downloaded by Tr?ng Toàn Nguy?n (nguyentrongtoan954@gmail.com)
lOMoARcPSD|36892797
.NET Framework một chế bảo mật tốt. Các chế bảo mật sẵn giúp xác nhận xác
minh các ứng dụng. Mỗi ứng dụng thể xác định ràng chế bảo mật của chúng. Mỗi chế
bảo mật được sử dụng để cấp cho người dùng quyền truy cập vào hoặc chương trình đang
chạy.
* Quản bộ nhớ
Common Language runtime thực hiện tất cả công việc hoặc quản bộ nhớ. .NET framework
khả năng để xem các tài nguyên đang không được sử dụng bởi những chương trình đang chạy.
Sau đó, sẽ giải phóng các tài nguyên đó cho phù hợp. Điều này được thực hiện thông qua một
chương trình gọi "Garbage Collector" chạy trong .NET framework.
Garbage collector chạy theo chu kỳ đều đặn liên tục kiểm tra tài nguyên hệ thống nào không
được sử dụng giải phóng chúng tương ứng.
* Triển khai được đơn giản hóa
.NET framework các công cụ sử dụng để đóng gói các ứng dụng được xây dựng trên .NET
framework. Những gói này sau đó thể được phân phối cho các máy khách. Các gói sau đó sẽ
tự động cài đặt ứng dụng.
B. TỔNG QUAN VỀ .NET CORE
1. .NET CORE ?
.NET Core một nền tảng phát triển đa mục đích, nguồn mở được duy trì bởi Microsoft
cộng đồng .NET trên GitHub. Đó nền tảng chéo (hỗ trợ Windows, macOS Linux) thể
được sử dụng để xây dựng các ứng dụng thiết bị, đám mây IoT.
2. Ngôn ngữ hỗ trợ
.NET Core hỗ trợ các ngôn ngữ như: C # F # (và C ++ / CLI kể từ 3.1; chỉ được bật trên
Windows) còn hỗ trợ một phần của Visual Basic .NET.
Cụ thể:
C#: loại ngôn ngữ lập trình phát triển theo hướng đối tượng mục đích.
F# : loại ngôn ngữ lập trình cho chức năng đa nền tảng, nguồn mở. cũng
thường bao gồm lập trình cho hướng đối tượng mệnh lệnh.
Visual Basic: ngôn ngữ lập trình pháp đơn giản giúp xây dựng cho các ứng dụng
hướng tới đối tượng an toàn.
Downloaded by Tr?ng Toàn Nguy?n (nguyentrongtoan954@gmail.com)
lOMoARcPSD|36892797
Những công cụ (gọi tắt IDE) để lập trình với .NET core:
Visual Studio
Visual Studio Code
Sublime Text
Vim
Các phiên bản .Net Core được ra đời từ năm 2016 đã phát triển rất đều đặn nhận được những
sự tiếp đón từ phía cộng đồng lập trình viên. Trong đó bản được đánh giá ổn định được ưa
chuộng nhất chính 3.1.2.
3. .NET CORE ra đời trong hoàn cảnh nào ?
ASP.NET đã xuất hiện cách đây 15 năm trước. một phần của .NET Framework. đã
hàng triệu lập trình viên đã sử dụng để xây dựng những ứng dụng web. Microsoft đã phát
triển thêm nhiều tính năng mới qua từng năm.
ASP.NET Core một số thay đổi lớn. Từ việc học hỏi các framework module hóa khác.
ASP.NET Core không còn dựa trên System.Web.dll nữa. được dựa trên một tập hợp các gói,
các module hay cũng được gọi các Nuget packages.
Với ASP.NET Core bạn thể:
HTTP request được tối ưu nhẹ hơn.
Hợp nhất xây dựng web UI web APIs.
Tích hợp những client-side frameworks hiện đại những luồng phát triển.
Hệ thống cấu hình dựa trên môi trường đám mây thật sự.
Dependency injection được xây dựng sẵn.
thể host trên IIS hoặc self-host trong process của riêng bạn.
Được xây dựng trên .NET Core, hỗ trợ thực sự app versioning.
Những công cụ mới để đơn giản hóa quá trình phát triển web tối ưu.
Xây dựng chạy đa nền tảng(Windows, Mac Linux).
nguồn mở tập trung vào cộng đồng.
4. Thành phần của .Net Core
Downloaded by Tr?ng Toàn Nguy?n (nguyentrongtoan954@gmail.com)
lOMoARcPSD|36892797
.NET Core bao gồm các nền tảng: .NET Compiler Roslyn, .NET Core framework CoreFX, .NET
Core runtime CoreCLR, ASP.NET Core.
Cấu trúc của.Net Core chi tiết
CoreFX: được xem nền tảng thư viện dành cho .NET Core.
CoreCLR: Đây công cụ thực thi .Net trong .Net Core. hỗ trợ thực hiện một số chức
năng như thu gom biên dịch rác thành máy.
.Net Core runtime: Sẽ cung cấp một kiểu hệ thống, tải lắp ráp, trình thu gom rác các
dịch vụ bản khác.
Net Core runtime: Cung cấp framework để việc xây dựng các ứng dụng hiện đại tối ưu,
dựa trên đám mây, ứng dụng web, kết nối internet,…
.Net Core SDK trình biên dịch ngôn ngữ (Roslyn F#): giúp cho phép phát triển .Net
Core
Lệnh dotnet: Lệnh dùng cho việc khởi chạy ứng dụng .NET Core các lệnh CLI.
C. TỔNG QUAN VỀ .NET 6
.NET 6 phiên bản tiếp theo sau .NET Core, sự hội tụ của .NET Framework .NET
Core.
Ra mắt vào năm 2021 được hứa hẹn một phiên bản đa năng mạnh mẽ.
Downloaded by Tr?ng Toàn Nguy?n (nguyentrongtoan954@gmail.com)
lOMoARcPSD|36892797
Hỗ trợ đa nền tảng, bao gồm Windows, macOS Linux, cũng như các môi trường điện
toán đám mây.
Đem lại sự thống nhất cho các API thư viện, giúp đơn giản hóa việc phát triển ứng
dụng đa nền tảng.
Hỗ trợ phát triển các loại ứng dụng đa dạng, từ ứng dụng console đến ứng dụng web, di
động, nhúng, cả trò chơi.
D. PHÂN BIỆT .NET CORE/ .NET FRAMEWORK/ MONO
Với người mới làm quen với .NET hay kể cả một số người đã làm việc với .NET lâu năm.
Những thuật ngữ, khái niệm như .NET Framework, Mono hay .NET core vẫn hay gây ra nhầm
lẫn. Về bản thì .NET Framework, .NET core Mono ba phiên bản .NET khác nhau (có
nghĩa mỗi phiên bản Runtime, Libraries Toolings riêng).
.NET Framework: Được Microsoft đưa ra chính thức từ năm 2002. .NET Framework chỉ
hoạt động trên hệ điều hành Windows. Những nền tảng như: WPF, Winforms,
ASP.NET(1-4) hoạt động dựa trên .NET Framework.
Mono phiên bản cộng đồng giúp mang .NET đến những nền tảng ngoài Windows.
Mono được phát triển để xây dựng những ứng dụng với giao diện người dùng được sử
dụng rất rộng rãi như: Unity Game, Xamarin…
.NET core: Đến năm 2013, Microsoft định hướng đa nền tảng phát triển .NET core.
.NET core hiện được sử dụng trong các ứng dụng Universal Windows platform
ASP.NET Core.
CHƯƠNG 2: TỔNG QUAN VỀ KESTREL/ IIS/ NGINX/ APACHE
A. TỔNG QUAN VỀ KESTREL
1. Kestrel gì?
Kestrel một HTTP web server nguồn mở (open source), đa nền tảng (cross-platform),
hướng sự kiện (event-driven) bất đồng bộ (asynchronous I/O). được phát triển để chạy
Downloaded by Tr?ng Toàn Nguy?n (nguyentrongtoan954@gmail.com)
lOMoARcPSD|36892797
ứng dụng ASP.NET Core trên bất cứ nền tảng nào. được thêm vào mặc định trong ứng dụng
ASP.NET Core.
dựa trên Luv, Kestrel một nguồn mở trên Github
2. Tại sao sử dụng Kestrel
Ứng dụng ASP.NET thường dính chặt vào IIS (Internet Information Service). IIS một web
server với tất cả các tính năng đầy đủ cần có. được phát triển từ khá lâu rất trưởng thành,
nhưng cồng kềnh nặng. trở thành một trong những Web server tốt nhất thời điểm hiện
tại nhưng cũng một trong những thứ chậm nhất.
ASP.NET dính chặt vào IIS cũng gánh nặng cho IIS.
Thiết kế mới của ứng dụng ASP.NET Core giờ đây hoàn toàn tách rời khỏi IIS. Điều này tạo cho
ASP.NET Core thể chạy trên bất cứ nền tảng nào. Nhưng vẫn thể lắng nghe các HTTP
Request gửi lại response về cho client. Đó Kestrel.
3. Sử dụng Kestrel
Kestrel chạy in-process trong ứng dụng ASP.NET Core. thế chạy độc lập với môi trường.
Kestrel web server nằm trong thư viện Microsoft.AspNetCore.Server.Kestrel.
Chúng ta hãy xem 2 class Program Startup được giới thiệu trong bài: Khởi động ứng dụng
trong ASP.NET Core. Program class chứa một phương thức Main điểm khởi động của ứng
dụng.
public class Program
{
public static void Main(string[] args)
{
BuildWebHost(args).Run();
}
public static IWebHost BuildWebHost(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.UseStartup<Startup>()
Downloaded by Tr?ng Toàn Nguy?n (nguyentrongtoan954@gmail.com)
lOMoARcPSD|36892797
.Build();
}
Phương thức Main gọi đến CreateDefaultBuilder, trách nhiệm tạo một host cho ứng dụng.
(Host nơi chứa ứng dụng để chạy). CreateDefaultBuilder đăng ký Kestrel như server sẽ sử
dụng trong ứng dụng.
4. Các cách để sử dụng Kestrel
2 cách để sử dụng Kestrel
* Tự host (Self Hosting)
hình self hosting của ASP.NET Core lắng nghe trực tiếp các HTTP Request từ internet
như hình dưới đây:
Downloaded by Tr?ng Toàn Nguy?n (nguyentrongtoan954@gmail.com)
lOMoARcPSD|36892797
* Đằng sau Web Server khác
Kestrel không phải một web server đầy đủ tính năng. Nhưng nhanh. không đủ mạnh để
chạy Kestrel một mình trên môi trường Production. được đề xuất chạy đằng sau một Web
Server Fully Feature như IIS, Nginx hay Apache…Trong kịch bản này các web server khác như
một reverse proxy server (máy chủ ủy quyền). Các Reverse proxy server sẽ lấy HTTP Request
từ internet gửi sang Kestrel. IIS thể lấy HTTP Request thực hiện một số các xử như
ghi log, lọc request, rewrite-url trước khi gửi sang cho Kestrel.
nhiều do tại sao chúng ta sử dụng hình này cho môi trường Production.
Bảo mật: thể hạn chế việc phơi ra ngoài những không cần thiết cũng cho
chúng ta các tùy chọn về cấu hình bảo vệ ứng dụng.
Dễ dàng cài đặt cân bằng tải
Downloaded by Tr?ng Toàn Nguy?n (nguyentrongtoan954@gmail.com)
lOMoARcPSD|36892797
Cài đặt SSL: Chỉ các máy chủ ủy quyền cần các chứng chỉ SSL, còn các server này thể
làm việc với ứng dụng của bạn trên mạng nội bộ sử dùng HTTP thuần.
Chia sẻ một IP với nhiều địa chỉ
Lọc các Request, ghi log rewrite-URL…
thể restart ứng dụng nếu bị crash.
Phương thức CreateDefaultBuilder gọi UseIISIntegration, sẽ nói co ASP.NET rằng ứng dụng sử
dụng IIS như một reverse proxy server đằng trước Kestrel.
5. Thay thế cho Kestrel
Kestrel không phải cách duy nhất để host ứng dụng ASP.NET Core. một web server khác
triển khai sẵn trên Windows là HTTP.SYS.
HTTP.sys một HTTP Server dựa trên Http.Sys kernel driver và chỉ sử dụng trên Windows
B. TỔNG QUAN VỀ IIS
1. IIS gì?
- IIS (Internet Information Services) các dịch vụ dành cho máy chủ chạy trên Windows nhằm
cung cấp thông tin phân tán chúng lên hệ thống mạng. IIS bao gồm rất nhiều dịch vụ như:
FTP Server, Web Server,… Dịch vụ này được đính kèm những phiên bản hệ điều hành
Windows
- IIS thường được sử dụng với vai trò xuất bản các nội cho website đưa các nội dung lên nền
tảng Internet hoặc Intranet. Việc này được thực hiện dựa trên phương thức chuyển giao siêu văn
bản hay còn được gọi là HTTP (Hypertext Transport Protocol)
- Với vai trò đó, IIS một trong những thành phần không thể thiếu của một trang web. Các nội
dung trên trang web của bạn chỉ được đăng tải hiển thị trên Internet khi một trang web
server, cụ thể đây IIS. Nếu không sự tồn tại của IIS thì wesbite của bạn chỉ được hiển thị
trên máy tính của bạn hoặc chỉ hiển thị khi bạn chia sẻ tệp dữ liệu trong mạng nội bộ
2. Cách thức hoạt động của IIS
- IIS hoạt động dựa trên 2 giao thức mạng chính là HTTP và FPT. Nhờ đó, IIS đóng vai trò tiếp
nhận các yêu cầu truyền tải những thông tin trên Internet đi kèm với nhiều định dạng khác
nhau.
Downloaded by Tr?ng Toàn Nguy?n (nguyentrongtoan954@gmail.com)
lOMoARcPSD|36892797
- Trong số các dịch vụ của IIS, dịch vụ World Wide Web (WWW) dịch vụ phổ biến nhất
nhận được nhiều sự quan tâm nhất hiện nay. Để tiếp nhận các yêu cầu từ trình duyệt, dịch vụ
Web sử dụng giao thức mạng HTTP với thông tin dạng địa chỉ URL. Sau đó, IIS sẽ gửi nội
dung của website tương ứng về Web Browser để phản hồi lại những yêu cầu ban đầu.
Để tạo ra các tự, văn bản, vị trí, nút, các tương tác,… IIS đã sử dụng những ngôn ngữ lập
trình bản như HTML. Bên cạnh đó, IIS còn sử dụng một số giao thức khác như:
- Giao thức HTTP: Hỗ trợ quá trình trao đổi thông tin giữa người dùng với Web Server.
- Giao thức HTTPS: Giúp hóa quá trình giao tiếp giúp bảo mật dữ liệu bằng cách sử dụng
SSL hoặc Transport Layer Security.
- Giao thức FTP/FTPS: Giúp hỗ trợ trong việc truyền tệp tin, thúc đẩy việc truyền tải nhanh
chóng hơn.
- Giao thức SMTP: Để gửi nhận thư điện tử hay những tin tức mạng.
3. IIS làm việc với ASP.NET Core
ASP.NET Core được tạo ra giúp tạo nên những website tương tác dễ dàng hơn theo các quy trình
sau:
- ASP.NET Core sẽ xử các yêu cầu được gửi đến máy chủ thông qua trang web. Sau khi
thông tin được xử lý, hệ thống sẽ phản hồi lại các yêu cầu cho khách hàng.
- WebDav cung cấp khả năng tạo lập xuất bản các nội dung cho website IIS.
- Bên cạnh đó, các công cụ giúp phát triển tích hợp như Microsoft Visual Studio cũng được
người dùng ưa chuộng.
4. IIS những phiên bản nào?
IIS đã rất nhiều bảng nâng cấp trong quá trình ra đời phát triển phần mềm. mỗi phiên
bản mới đều được nâng cấp thêm các tính năng ưu việt. Tổng hợp các phiên bản IIS hiện là:
- IIS 1.0 được đi kèm cùng Windows NT 3.51
- IIS 2.0 được bao gồm trong Windows NT 4.0.
- IIS 3.0 được đi kèm với Service Pack 2 của Windows NT 4.0.
- IIS 4.0 được đi kèm cùng Option Pack của Windows NT 4.0.
- IIS 5.0 được đi kèm cùng với Windows 2000.
Downloaded by Tr?ng Toàn Nguy?n (nguyentrongtoan954@gmail.com)
lOMoARcPSD|36892797
- IIS 5.1 được phát hành cùng Windows XP Professional.
- IIS 6.0 được đi kèm cùng Windows Server 2003 Windows XP Professional x64 Edition.
- IIS 7.0 đi kèm cùng Windows Server 2008 Windows Vista.
- IIS 7.5 đã được đi kèm với Windows 7 Windows Server 2008 R2 .
- IIS 8.0 đi kèm với Windows Server 2012 Windows 8.
- IIS 8.5 được đi kèm cùng Windows Server 2012 R2 Windows 8.1.
- Không IIS 9.0.
- IIS 10 phiên bản 1607 hay còn được biết đến phiên bản 10.0.14393. Phiên bản này được ra
mắt đi kèm với Windows Server 2016 Windows 10.
- IIS 10.0 phiên bản 1709 đi kèm với Windows Server 2016 Windows 10 Fall Creators
Update.
- IIS 10.0 phiên bản 1809, còn được gọi phiên bản 10.0.17763 được đi kèm với Windows
Server 2019 Bản cập nhật Windows 10.
5. IIS 10 các tính năng nổi bật nào?
IIS 10 phiên bản mới nhất hiện nay, qua nhiều lần nâng cấp, IIS 10 được nhà sản xuất bổ sung
nhiều tính năng ưu việt mới như:
- Phiên bản này sử dụng giao thức HTTP/2 để hỗ trợ cho việc quản khai thác tài nguyên.
- IIS 10 hoạt động chủ yếu dựa trên hình Nano Server đi kèm với Windows Tomcat PHP,
nên mang lại hiệu quả rất cao.
- Hơn nữa, phiên bản IIS 10 còn hoạt động dựa trên Container và máy ảo để thực hiện các ứng
dụng web.
6. Thử nghiệm với IIS Express
Đây một phiên bản được ra đời giúp người dùng thể thử nghiệm những website độc quyền,
được sáng tạo bởi Microsoft. IIS Express cũng mang các chức năng tương tự như Web Server
IIS. Phiên bản thử nghiệm này cũng những tác vụ cùng hiện đại. Người dùng thể thực
hiện mọi thao tác không cần phải quyền quản trị.
7. Thiết lập an toàn bảo mật trong IIS như thế nào?
Downloaded by Tr?ng Toàn Nguy?n (nguyentrongtoan954@gmail.com)
lOMoARcPSD|36892797

Preview text:

lOMoARcPSD|36892797
Web nâng cao-1-comp - Báo cáo hết học phần của môn lập
trình web nâng cao, project được viết bằng
Lập trình web nâng cao (Đại học Điện lực) Scan to open on Studeersnel
Studocu is not sponsored or endorsed by any college or university
Downloaded by Tr?ng Toàn Nguy?n (nguyentrongtoan954@gmail.com) lOMoARcPSD|36892797
TRƯỜNG ĐẠI HỌC ĐIỆN LỰC
KHOA CÔNG NGHỆ THÔNG TIN
BÁO CÁO CHUYÊN ĐỀ HỌC PHẦN
LẬP TRÌNH WEB NÂNG CAO
Sinh viên thực hiện
: PHẠM TUẤN ANH, 21810310596
PHẠM THANH HẢI, 21810310175

LÊ BÁ HIẾU, 21810310654
NGUYỄN MINH DŨNG, 20810310596
Giảng viên hướng dẫn : TRẦN TRUNG Ngành
: CÔNG NGHỆ THÔNG TIN Chuyên ngành
: CÔNG NGHỆ PHẦN MỀM Lớp : D16CNPM6 Khóa : D16
Downloaded by Tr?ng Toàn Nguy?n (nguyentrongtoan954@gmail.com) lOMoARcPSD|36892797
Hà Nội, tháng 8 năm 2023 PHIẾU CHẤM ĐIỂM Sinh viên thực hiện: Họ và Tên Nội dung thực hiên Chữ ký Ghi chú Phạm Tuấn Anh Source Code,Sơ đồ Phạm Thanh Hải Nội dung, hình ảnh Lê Bá Hiếu Source Code, sơ đồ Nguyễn Minh Nội dung, hình ảnh Dũng Giảng viên chấm:
Downloaded by Tr?ng Toàn Nguy?n (nguyentrongtoan954@gmail.com) lOMoARcPSD|36892797 Họ và tên Chữ ký Ghi chú Giảng viên chấm 1 : Giảng viên chấm 2 : MỤC LỤC LỜI MỞ ĐẦU 4 CHƯƠNG 1 5 CHƯƠNG 2 13 CHƯƠNG 3 32 CHƯƠNG 4 34 CHƯƠNG 5 39 CHƯƠNG 6 42 CHƯƠNG 7 49 CHƯƠNG 8 52 CHƯƠNG 9 59 CHƯƠNG 10 62 CHƯƠNG 11 66
Downloaded by Tr?ng Toàn Nguy?n (nguyentrongtoan954@gmail.com) lOMoARcPSD|36892797 CHƯƠNG 12 70 CHƯƠNG 13 74 CHƯƠNG 14 90 CHƯƠNG 15 94 CHƯƠNG 16 98 KẾT LUẬN 109 LỜI MỞ ĐẦU
Lập trình web là một lĩnh vực phát triển nhanh chóng, với những tiến bộ mới được thực hiện liên
tục. Để đáp ứng với những thay đổi này, sinh viên cần được trang bị những kiến thức và kỹ năng
mới nhất trong lập trình web.
Báo cáo này tổng hợp về tất cả các kiến thức em đã học trong kỳ, bao gồm:
- Tổng quan về project ASP.NET - Tổng quan về Web server - Tổng quan về DB
- Tổng quan mô hình kiến trúc ( 3 tiers – MVC )
- Tổng quan lập trình Ajax
- Kiểm soát truy cập ( author – authen )
Ngoài ra còn có những nội dung thực hành như:
- Thiết lập môi trường ASP.NET Core 6.0 - Thiết lập project MVC - CRUD cổ điển - CRUD Ajax - Login
Sau đây là bản báo cáo sơ lược về báo cáo môn cùng những ưu điểm, thiếu sót và cách cải thiện
để trở nên tốt hơn. Những gì chúng em tìm hiểu được còn khá hạn chế, mong thầy cô giáo xem
và cho ý kiến đánh giá để em nhận ra những khiếm khuyết của mình.
Chúng em xin chân thành cảm ơn thầy cô và luôn mong nhận được sự đóng góp của thầy cô và các bạn
Downloaded by Tr?ng Toàn Nguy?n (nguyentrongtoan954@gmail.com) lOMoARcPSD|36892797
Sau cùng, chúng em xin kính chúc các thầy cô trong Khoa Công Nghệ Thông Tin dồi dào sức
khỏe, niềm tin để tiếp tục thực hiện sứ mệnh cao đẹp của mình là truyền đạt kiến thức cho thế hệ mai sau. Trân trọng!
CHƯƠNG 1: TỔNG QUAN VỀ .NET FRAMEWORK/ .NET CORE/ .NET 6 A. .NET FRAMEWORK 1. .NET FRAMEWORK LÀ GÌ ?
- Là một nền tảng phát triển phần mềm do Microsoft phát triển. Framework này tạo ra các
ứng dụng chạy trên nền tảng Windows. Phiên bản đầu tiên của .NET framework được phát hành vào năm 2002.
- Phiên bản đó được gọi là .Net framework 1.0. .NET framework đã đi một chặng đường
dài kể từ đó, và phiên bản hiện tại là 4.7.1.
- .NET framework có thể được sử dụng để tạo cả những ứng dụng dựa trên biểu mẫu
(Form-based) và dựa trên Web (Web-based). Các web service cũng có thể được phát triển
bằng cách sử dụng .NET framework.
- Framework cũng hỗ trợ các ngôn ngữ lập trình khác nhau như Visual Basic và C#. Vì
vậy, các nhà phát triển có thể lựa chọn ngôn ngữ để phát triển ứng dụng cần thiết.
2. KIẾN THỨC CỦA .NET FRAMEWORK
Downloaded by Tr?ng Toàn Nguy?n (nguyentrongtoan954@gmail.com) lOMoARcPSD|36892797
Kiến trúc của .NET framework dựa trên các thành phần chính sau:
* Thời gian chạy ngôn ngữ chung (Common Language Runtime)
"Cơ sở hạ tầng ngôn ngữ chung" hoặc CLI là một nền tảng mà trên đó các chương trình .Net được thực thi.
CLI có các tính năng chính sau đây: - Xử lý ngoại lệ
Ngoại lệ là các lỗi xảy ra khi ứng dụng được thực hiện.
Ví dụ về ngoại lệ là:
Nếu một ứng dụng cố mở một tệp trên local machine, nhưng tệp không có.
Nếu ứng dụng tìm nạp một số bản ghi từ cơ sở dữ liệu, nhưng kết nối đến cơ sở dữ liệu không hợp lệ. - Garbage Collection
Garbage Collection là quá trình loại bỏ các tài nguyên không mong muốn khi chúng không còn cần thiết nữa.
Downloaded by Tr?ng Toàn Nguy?n (nguyentrongtoan954@gmail.com) lOMoARcPSD|36892797
Ví dụ về Garbage Collection là:
Một xử lý tập tin không còn cần thiết: Nếu ứng dụng đã hoàn thành tất cả các thao tác trên một
tệp, thì trình xử lý tệp có thể không còn cần thiết nữa.
Kết nối cơ sở dữ liệu không còn cần thiết nữa: Nếu ứng dụng đã hoàn thành tất cả các hoạt động
trên cơ sở dữ liệu, thì kết nối cơ sở dữ liệu có thể không còn cần thiết nữa.
- Làm việc với các ngôn ngữ lập trình khác nhau
Như đã nêu ở phía trên, một developer có thể phát triển một ứng dụng bằng nhiều ngôn ngữ lập trình .Net.
Ngôn ngữ: Cấp độ đầu tiên là ngôn ngữ lập trình, phổ biến nhất là VB.Net và C #.
Trình biên dịch: Có một trình biên dịch sẽ được tách riêng cho từng ngôn ngữ lập trình. Vì vậy,
bên dưới ngôn ngữ VB.Net, sẽ có một trình biên dịch VB.Net riêng biệt. Tương tự, đối với C #,
bạn sẽ có trình biên dịch khác.
Common Language Interpreter: Đây là lớp cuối cùng trong .Net sẽ được sử dụng để chạy một
chương trình .net được phát triển bằng bất kỳ ngôn ngữ lập trình nào. Vì vậy trình biên dịch tiếp
theo sẽ gửi chương trình tới lớp CLI để chạy ứng dụng .Net. * Class Library
.NET Framework bao gồm một bộ các class libraries. Một class library là một tập hợp các
phương thức và các hàm có thể được sử dụng cho mục đích cốt lõi.
Ví dụ, có một class library với các phương thức để xử lý tất cả các hoạt động cấp tệp. Vì vậy, có
một phương pháp có thể được sử dụng để đọc văn bản từ một tập tin. Tương tự, có một phương
pháp để viết văn bản vào một tập tin.
Hầu hết các phương thức được chia thành các vùng tên System. *Hoặc Microsoft.*. (Dấu hoa thị
* chỉ có nghĩa là tham chiếu đến tất cả các phương thức nằm trong vùng tên System hoặc
Microsoft). Một namespace là một sự tách biệt logic của các phương thức. * Ngôn ngữ
Các loại ứng dụng có thể được xây dựng trong .NET framework được phân loại rộng rãi thành các loại sau. - WinForms
Downloaded by Tr?ng Toàn Nguy?n (nguyentrongtoan954@gmail.com) lOMoARcPSD|36892797
Được sử dụng để phát triển các ứng dụng Forms-based, quá trình này chạy trên end user
machine. Notepad là một ví dụ về ứng dụng dựa trên ứng dụng khách. - ASP.Net
Được sử dụng để phát triển các ứng dụng dựa trên web, được tạo để chạy trên bất kỳ trình duyệt
nào như Internet Explorer, Chrome hoặc Firefox.
Ứng dụng Web sẽ được xử lý trên một máy chủ, sẽ được cài đặt Dịch vụ thông tin Internet.
Dịch vụ thông tin Internet hoặc IIS là một thành phần của Microsoft được sử dụng để thực thi một ứng dụng Asp.Net.
Kết quả của việc thực hiện sau đó được gửi đến các máy khách và kết quả đầu ra được hiển thị trong trình duyệt. - ADO.Net
Công nghệ này được sử dụng để phát triển các ứng dụng tương tác với Cơ sở dữ liệu như Oracle hoặc Microsoft SQL Server.
Microsoft luôn đảm bảo rằng các .NET framework tuân thủ tất cả các hệ điều hành Windows được hỗ trợ.
3. Ưu, nhược điểm nổi bật của .NET framework
Một số ưu và nhược điểm nổi bật của .NET framework gồm có: a) Ưu điểm
* Thư viện lập trình lớn
Mộ trong những lợi ích lớn nhất của .NET framework chính là việc tạo ra môi trường chung,
giúp cung cấp hiệu suất tối ưu cho việc tạo lập và xây dựng các ứng dụng web. Đồng thời cho
phép truy cập, kết nối các cơ sở dữ liệu và cấu trúc dữ liệu, thực hiện việc lập trình giao diện,… * Đa ngôn ngữ
Dù là ngôn ngữ C#, C++ hay Visual Basic, người dùng cũng có thể thoải mái viết, trong khi vẫn
đảm bảo khả năng tích hợp. Các đoạn code này sẽ được sử dụng cho phần mềm tương thích với
các phần cứng mà .NET framework hỗ trợ.
* Nǎng suất làm việc cao
Lập trình, thiết kế ứng dụng với .NET framework không tiêu tốn nhiều thời gian do nó có sẵn rất
nhiều yếu tố có thể sử dụng trong thiết kế. Người dùng chỉ cần hiểu rõ cách sử dụng và tùy biến
Downloaded by Tr?ng Toàn Nguy?n (nguyentrongtoan954@gmail.com) lOMoARcPSD|36892797
các đoạn code này sao cho tương thích với dự án của bạn, theo đó việc lập trình cũng trở nên
nhanh chóng và dễ dàng hơn.
* Biến đổi linh hoạt nhờ kiến trúc “ghép nối lỏng”
.NET framework được tạo ra với khả năng tùy biến linh hoạt nhờ cấu trúc ‘ghép nối lỏng’. Tính
năng này giúp mang lại nhiều ưu điểm về mặt năng suất. * Bảo mật cao
.NET framework có phần kiến trúc bảo mật được xây dựng từ dưới lên, hỗ trợ bảo vệ dữ liệu và
các ứng dụng khỏi hacker thông qua mô hình bảo mật evidence-based.
* Tận dụng các dịch vụ được tích hợp sẵn trong hệ điều hành
Windows có nhiều loại dịch vụ vận hành trên các nền tảng gồm: truy cập dữ liệu, giao diện
người dùng tương tác, mô hình đối tượng thành phần, bảo mật tích hợp và giám sát giao dịch. Từ
những lợi thế đó, .NET hỗ trợ đơn giản hóa cách sử dụng, giúp cho việc lập trình trên công cụ
này trở nên đơn giản hơn. b) Nhược điểm
Cần phải cài đặt .NET framework trên PC để có thể chạy những chương trình được thiết kế dựa
trên nền tảng .NET framework.
4. Nguyên tắc thiết kế .NET framework
* Khả năng tương tác
.NET framework vẫn cung cấp rất nhiều hỗ trợ cho các phiên bản cũ hơn. Giả sử nếu bạn có một
ứng dụng được xây dựng trên một phiên bản cũ hơn của .NET framework như 2.0. Và nếu bạn
cố gắng chạy cùng một ứng dụng trên một máy có phiên bản cao hơn của .NET framework là
3.5. Ứng dụng sẽ vẫn hoạt động. Điều này là bởi vì với mọi bản phát hành, Microsoft đảm bảo
rằng các phiên bản cũ hơn của phiên bản này sẽ có hiệu lực tốt với phiên bản mới nhất. * Linh động
Các ứng dụng được xây dựng trên .NET framework có thể được thực hiện để làm việc trên bất
kỳ nền tảng Windows nào. Trong thời gian gần đây, Microsoft cũng đang phát triển để làm cho
các sản phẩm của Microsoft hoạt động trên các nền tảng khác, chẳng hạn như iOS và Linux. * Bảo mật
Downloaded by Tr?ng Toàn Nguy?n (nguyentrongtoan954@gmail.com) lOMoARcPSD|36892797
.NET Framework có một cơ chế bảo mật tốt. Các cơ chế bảo mật sẵn có giúp xác nhận và xác
minh các ứng dụng. Mỗi ứng dụng có thể xác định rõ ràng cơ chế bảo mật của chúng. Mỗi cơ chế
bảo mật được sử dụng để cấp cho người dùng quyền truy cập vào mã hoặc chương trình đang chạy. * Quản lý bộ nhớ
Common Language runtime thực hiện tất cả công việc hoặc quản lý bộ nhớ. .NET framework có
khả năng để xem các tài nguyên đang không được sử dụng bởi những chương trình đang chạy.
Sau đó, nó sẽ giải phóng các tài nguyên đó cho phù hợp. Điều này được thực hiện thông qua một
chương trình gọi là "Garbage Collector" chạy trong .NET framework.
Garbage collector chạy theo chu kỳ đều đặn và liên tục kiểm tra tài nguyên hệ thống nào không
được sử dụng và giải phóng chúng tương ứng.
* Triển khai được đơn giản hóa
.NET framework có các công cụ sử dụng để đóng gói các ứng dụng được xây dựng trên .NET
framework. Những gói này sau đó có thể được phân phối cho các máy khách. Các gói sau đó sẽ
tự động cài đặt ứng dụng.
B. TỔNG QUAN VỀ .NET CORE 1. .NET CORE là gì ?
.NET Core là một nền tảng phát triển đa mục đích, mã nguồn mở được duy trì bởi Microsoft và
cộng đồng .NET trên GitHub. Đó là nền tảng chéo (hỗ trợ Windows, macOS và Linux) và có thể
được sử dụng để xây dựng các ứng dụng thiết bị, đám mây và IoT. 2. Ngôn ngữ hỗ trợ
.NET Core hỗ trợ các ngôn ngữ như: C # và F # (và C ++ / CLI kể từ 3.1; chỉ được bật trên
Windows) và nó còn hỗ trợ một phần của Visual Basic .NET. Cụ thể:
• C#: Là loại ngôn ngữ lập trình phát triển theo hướng đối tượng và mục đích.
• F# : Là loại ngôn ngữ lập trình cho chức năng đa nền tảng, mã nguồn mở. Nó cũng
thường bao gồm lập trình cho hướng đối tượng và mệnh lệnh.
• Visual Basic: Là ngôn ngữ lập trình có cú pháp đơn giản giúp xây dựng cho các ứng dụng
hướng tới đối tượng an toàn.
Downloaded by Tr?ng Toàn Nguy?n (nguyentrongtoan954@gmail.com) lOMoARcPSD|36892797
Những công cụ (gọi tắt là IDE) để lập trình với .NET core: • Visual Studio • Visual Studio Code • Sublime Text • Vim
Các phiên bản .Net Core được ra đời từ năm 2016 đã phát triển rất đều đặn và nhận được những
sự tiếp đón từ phía cộng đồng lập trình viên. Trong đó bản được đánh giá là ổn định và được ưa
chuộng nhất chính là 3.1.2.
3. .NET CORE ra đời trong hoàn cảnh nào ?
ASP.NET đã xuất hiện cách đây 15 năm trước. Nó là một phần của .NET Framework. Nó đã có
hàng triệu lập trình viên đã sử dụng để xây dựng những ứng dụng web. Và Microsoft đã phát
triển thêm nhiều tính năng mới qua từng năm.
ASP.NET Core có một số thay đổi lớn. Từ việc học hỏi các framework module hóa khác.
ASP.NET Core không còn dựa trên System.Web.dll nữa. Mà được dựa trên một tập hợp các gói,
các module hay cũng được gọi là các Nuget packages.
Với ASP.NET Core bạn có thể:
• HTTP request được tối ưu nhẹ hơn.
• Hợp nhất xây dựng web UI và web APIs.
• Tích hợp những client-side frameworks hiện đại và có những luồng phát triển.
• Hệ thống cấu hình dựa trên môi trường đám mây thật sự.
• Dependency injection được xây dựng sẵn.
• Có thể host trên IIS hoặc self-host trong process của riêng bạn.
• Được xây dựng trên .NET Core, hỗ trợ thực sự app versioning.
• Những công cụ mới để đơn giản hóa quá trình phát triển web tối ưu.
• Xây dựng và chạy đa nền tảng(Windows, Mac và Linux).
• Mã nguồn mở và tập trung vào cộng đồng.
4. Thành phần của .Net Core
Downloaded by Tr?ng Toàn Nguy?n (nguyentrongtoan954@gmail.com) lOMoARcPSD|36892797
.NET Core bao gồm các nền tảng: .NET Compiler Roslyn, .NET Core framework CoreFX, .NET
Core runtime CoreCLR, và ASP.NET Core.
Cấu trúc của.Net Core chi tiết
CoreFX: Nó được xem là nền tảng thư viện dành cho .NET Core.
CoreCLR: Đây là công cụ thực thi .Net trong .Net Core. Nó hỗ trợ thực hiện một số chức
năng như thu gom và biên dịch rác thành mã máy.
.Net Core runtime: Sẽ cung cấp một kiểu hệ thống, tải lắp ráp, trình thu gom rác và các dịch vụ cơ bản khác.
Net Core runtime: Cung cấp framework để việc xây dựng các ứng dụng hiện đại tối ưu,
dựa trên đám mây, ứng dụng web, kết nối internet,…
.Net Core SDK và trình biên dịch ngôn ngữ (Roslyn và F#): giúp cho phép phát triển .Net Core
Lệnh dotnet: Lệnh dùng cho việc khởi chạy ứng dụng .NET Core và các lệnh CLI.
C. TỔNG QUAN VỀ .NET 6
• .NET 6 là phiên bản tiếp theo sau .NET Core, là sự hội tụ của .NET Framework và .NET Core.
• Ra mắt vào năm 2021 và được hứa hẹn là một phiên bản đa năng mạnh mẽ.
Downloaded by Tr?ng Toàn Nguy?n (nguyentrongtoan954@gmail.com) lOMoARcPSD|36892797
• Hỗ trợ đa nền tảng, bao gồm Windows, macOS và Linux, cũng như các môi trường điện toán đám mây.
• Đem lại sự thống nhất cho các API và thư viện, giúp đơn giản hóa việc phát triển ứng dụng đa nền tảng.
• Hỗ trợ phát triển các loại ứng dụng đa dạng, từ ứng dụng console đến ứng dụng web, di
động, nhúng, và cả trò chơi.
D. PHÂN BIỆT .NET CORE/ .NET FRAMEWORK/ MONO
Với người mới làm quen với .NET hay kể cả một số người đã làm việc với .NET lâu năm.
Những thuật ngữ, khái niệm như .NET Framework, Mono hay .NET core vẫn hay gây ra nhầm
lẫn. Về cơ bản thì .NET Framework, .NET core và Mono là ba phiên bản .NET khác nhau (có
nghĩa là mỗi phiên bản có Runtime, Libraries và Toolings riêng).
• .NET Framework: Được Microsoft đưa ra chính thức từ năm 2002. .NET Framework chỉ
hoạt động trên hệ điều hành Windows. Những nền tảng như: WPF, Winforms,
ASP.NET(1-4) hoạt động dựa trên .NET Framework.
• Mono là phiên bản cộng đồng giúp mang .NET đến những nền tảng ngoài Windows.
Mono được phát triển để xây dựng những ứng dụng với giao diện người dùng và được sử
dụng rất rộng rãi như: Unity Game, Xamarin…
• .NET core: Đến năm 2013, Microsoft định hướng đa nền tảng và phát triển .NET core.
.NET core hiện được sử dụng trong các ứng dụng Universal Windows platform và ASP.NET Core.
CHƯƠNG 2: TỔNG QUAN VỀ KESTREL/ IIS/ NGINX/ APACHE A. TỔNG QUAN VỀ KESTREL 1. Kestrel là gì?
Kestrel là một HTTP web server mã nguồn mở (open source), đa nền tảng (cross-platform),
hướng sự kiện (event-driven) và bất đồng bộ (asynchronous I/O). Nó được phát triển để chạy
Downloaded by Tr?ng Toàn Nguy?n (nguyentrongtoan954@gmail.com) lOMoARcPSD|36892797
ứng dụng ASP.NET Core trên bất cứ nền tảng nào. Nó được thêm vào mặc định trong ứng dụng ASP.NET Core.
Nó dựa trên Luv, và Kestrel là một mã nguồn mở trên Github
2. Tại sao sử dụng Kestrel
Ứng dụng ASP.NET cũ thường dính chặt vào IIS (Internet Information Service). IIS là một web
server với tất cả các tính năng đầy đủ cần có. Nó được phát triển từ khá lâu và rất trưởng thành,
nhưng nó cồng kềnh và nặng. Nó trở thành một trong những Web server tốt nhất ở thời điểm hiện
tại nhưng nó cũng là một trong những thứ chậm nhất.
ASP.NET dính chặt vào IIS cũng là gánh nặng cho IIS.
Thiết kế mới của ứng dụng ASP.NET Core giờ đây hoàn toàn tách rời khỏi IIS. Điều này tạo cho
ASP.NET Core có thể chạy trên bất cứ nền tảng nào. Nhưng nó vẫn có thể lắng nghe các HTTP
Request và gửi lại response về cho client. Đó là Kestrel. 3. Sử dụng Kestrel
Kestrel chạy in-process trong ứng dụng ASP.NET Core. Vì thế nó chạy độc lập với môi trường.
Kestrel web server nằm trong thư viện Microsoft.AspNetCore.Server.Kestrel.
Chúng ta hãy xem 2 class Program và Startup được giới thiệu trong bài: Khởi động ứng dụng
trong ASP.NET Core. Program class chứa một phương thức Main và là điểm khởi động của ứng dụng. public class Program {
public static void Main(string[] args) { BuildWebHost(args).Run(); }
public static IWebHost BuildWebHost(string[] args) =>
WebHost.CreateDefaultBuilder(args) .UseStartup()
Downloaded by Tr?ng Toàn Nguy?n (nguyentrongtoan954@gmail.com) lOMoARcPSD|36892797 .Build(); }
Phương thức Main gọi đến CreateDefaultBuilder, có trách nhiệm tạo một host cho ứng dụng.
(Host là nơi chứa ứng dụng để chạy). CreateDefaultBuilder đăng ký Kestrel như là server sẽ sử dụng trong ứng dụng.
4. Các cách để sử dụng Kestrel
Có 2 cách để sử dụng Kestrel
* Tự host (Self Hosting)
Mô hình self hosting của ASP.NET Core là lắng nghe trực tiếp các HTTP Request từ internet như hình dưới đây:
Downloaded by Tr?ng Toàn Nguy?n (nguyentrongtoan954@gmail.com) lOMoARcPSD|36892797
* Đằng sau Web Server khác
Kestrel không phải là một web server đầy đủ tính năng. Nhưng nó nhanh. Nó không đủ mạnh để
chạy Kestrel một mình trên môi trường Production. Nó được đề xuất chạy đằng sau một Web
Server Fully Feature như IIS, Nginx hay Apache…Trong kịch bản này các web server khác như
là một reverse proxy server (máy chủ ủy quyền). Các Reverse proxy server sẽ lấy HTTP Request
từ internet và gửi sang Kestrel. IIS có thể lấy HTTP Request và thực hiện một số các xử lý như
ghi log, lọc request, rewrite-url trước khi gửi sang cho Kestrel.
Có nhiều lý do tại sao chúng ta sử dụng mô hình này cho môi trường Production.
• Bảo mật: Nó có thể hạn chế việc phơi ra ngoài những gì không cần thiết và nó cũng cho
chúng ta các tùy chọn về cấu hình và bảo vệ ứng dụng.
• Dễ dàng cài đặt cân bằng tải
Downloaded by Tr?ng Toàn Nguy?n (nguyentrongtoan954@gmail.com) lOMoARcPSD|36892797
• Cài đặt SSL: Chỉ các máy chủ ủy quyền cần các chứng chỉ SSL, còn các server này có thể
làm việc với ứng dụng của bạn trên mạng nội bộ sử dùng HTTP thuần.
• Chia sẻ một IP với nhiều địa chỉ
• Lọc các Request, ghi log và rewrite-URL…
• Nó có thể restart ứng dụng nếu bị crash.
Phương thức CreateDefaultBuilder gọi UseIISIntegration, sẽ nói co ASP.NET rằng ứng dụng sử
dụng IIS như là một reverse proxy server đằng trước Kestrel. 5. Thay thế cho Kestrel
Kestrel không phải là cách duy nhất để host ứng dụng ASP.NET Core. Có một web server khác
triển khai có sẵn trên Windows là HTTP.SYS.
HTTP.sys là một HTTP Server dựa trên Http.Sys kernel driver và nó chỉ sử dụng trên Windows B. TỔNG QUAN VỀ IIS 1. IIS là gì?
- IIS (Internet Information Services) là các dịch vụ dành cho máy chủ chạy trên Windows nhằm
cung cấp thông tin và phân tán chúng lên hệ thống mạng. IIS bao gồm rất nhiều dịch vụ như:
FTP Server, Web Server,… Dịch vụ này được đính kèm ở những phiên bản hệ điều hành Windows
- IIS thường được sử dụng với vai trò xuất bản các nội cho website và đưa các nội dung lên nền
tảng Internet hoặc Intranet. Việc này được thực hiện dựa trên phương thức chuyển giao siêu văn
bản hay còn được gọi là HTTP (Hypertext Transport Protocol)
- Với vai trò đó, IIS là một trong những thành phần không thể thiếu của một trang web. Các nội
dung trên trang web của bạn chỉ được đăng tải và hiển thị trên Internet khi có một trang web
server, cụ thể ở đây là IIS. Nếu không có sự tồn tại của IIS thì wesbite của bạn chỉ được hiển thị
trên máy tính của bạn hoặc chỉ hiển thị khi bạn chia sẻ tệp dữ liệu trong mạng nội bộ
2. Cách thức hoạt động của IIS
- IIS hoạt động dựa trên 2 giao thức mạng chính là HTTP và FPT. Nhờ đó, IIS đóng vai trò tiếp
nhận các yêu cầu và truyền tải những thông tin trên Internet đi kèm với nhiều định dạng khác nhau.
Downloaded by Tr?ng Toàn Nguy?n (nguyentrongtoan954@gmail.com) lOMoARcPSD|36892797
- Trong số các dịch vụ của IIS, dịch vụ World Wide Web (WWW) là dịch vụ phổ biến nhất và
nhận được nhiều sự quan tâm nhất hiện nay. Để tiếp nhận các yêu cầu từ trình duyệt, dịch vụ
Web sử dụng giao thức mạng HTTP với thông tin có dạng địa chỉ URL. Sau đó, IIS sẽ gửi nội
dung của website tương ứng về Web Browser để phản hồi lại những yêu cầu ban đầu.
Để tạo ra các ký tự, văn bản, vị trí, nút, các tương tác,… IIS đã sử dụng những ngôn ngữ lập
trình cơ bản như HTML. Bên cạnh đó, IIS còn sử dụng một số giao thức khác như:
- Giao thức HTTP: Hỗ trợ quá trình trao đổi thông tin giữa người dùng với Web Server.
- Giao thức HTTPS: Giúp mã hóa quá trình giao tiếp và giúp bảo mật dữ liệu bằng cách sử dụng
SSL hoặc Transport Layer Security.
- Giao thức FTP/FTPS: Giúp hỗ trợ trong việc truyền tệp tin, thúc đẩy việc truyền tải nhanh chóng hơn.
- Giao thức SMTP: Để gửi và nhận thư điện tử hay những tin tức mạng.
3. IIS làm việc với ASP.NET Core
ASP.NET Core được tạo ra giúp tạo nên những website tương tác dễ dàng hơn theo các quy trình sau:
- ASP.NET Core sẽ xử lý các yêu cầu được gửi đến máy chủ và thông qua trang web. Sau khi
thông tin được xử lý, hệ thống sẽ phản hồi lại các yêu cầu cho khách hàng.
- WebDav cung cấp khả năng tạo lập và xuất bản các nội dung cho website IIS.
- Bên cạnh đó, các công cụ giúp phát triển tích hợp như Microsoft Visual Studio cũng được người dùng ưa chuộng.
4. IIS có những phiên bản nào?
IIS đã có rất nhiều bảng nâng cấp trong quá trình ra đời và phát triển phần mềm. Ở mỗi phiên
bản mới đều được nâng cấp thêm các tính năng ưu việt. Tổng hợp các phiên bản IIS hiện có là:
- IIS 1.0 được đi kèm cùng Windows NT 3.51
- IIS 2.0 được bao gồm trong Windows NT 4.0.
- IIS 3.0 được đi kèm với Service Pack 2 của Windows NT 4.0.
- IIS 4.0 được đi kèm cùng Option Pack của Windows NT 4.0.
- IIS 5.0 được đi kèm cùng với Windows 2000.
Downloaded by Tr?ng Toàn Nguy?n (nguyentrongtoan954@gmail.com) lOMoARcPSD|36892797
- IIS 5.1 được phát hành cùng Windows XP Professional.
- IIS 6.0 được đi kèm cùng Windows Server 2003 và Windows XP Professional x64 Edition.
- IIS 7.0 đi kèm cùng Windows Server 2008 và Windows Vista.
- IIS 7.5 đã được đi kèm với Windows 7 và Windows Server 2008 R2 .
- IIS 8.0 đi kèm với Windows Server 2012 và Windows 8.
- IIS 8.5 được đi kèm cùng Windows Server 2012 R2 và Windows 8.1. - Không có IIS 9.0.
- IIS 10 phiên bản 1607 hay còn được biết đến là phiên bản 10.0.14393. Phiên bản này được ra
mắt đi kèm với Windows Server 2016 và Windows 10.
- IIS 10.0 phiên bản 1709 đi kèm với Windows Server 2016 và Windows 10 Fall Creators Update.
- IIS 10.0 phiên bản 1809, còn được gọi là phiên bản 10.0.17763 được đi kèm với Windows
Server 2019 và Bản cập nhật Windows 10.
5. IIS 10 có các tính năng nổi bật nào?
IIS 10 là phiên bản mới nhất hiện nay, qua nhiều lần nâng cấp, IIS 10 được nhà sản xuất bổ sung
nhiều tính năng ưu việt mới như:
- Phiên bản này sử dụng giao thức HTTP/2 để hỗ trợ cho việc quản lý và khai thác tài nguyên.
- IIS 10 hoạt động chủ yếu dựa trên mô hình Nano Server đi kèm với Windows Tomcat và PHP,
nên mang lại hiệu quả rất cao.
- Hơn nữa, ở phiên bản IIS 10 còn hoạt động dựa trên Container và máy ảo để thực hiện các ứng dụng web.
6. Thử nghiệm với IIS Express
Đây là một phiên bản được ra đời giúp người dùng có thể thử nghiệm những website độc quyền,
được sáng tạo bởi Microsoft. IIS Express cũng mang các chức năng tương tự như Web Server
IIS. Phiên bản thử nghiệm này cũng có những tác vụ vô cùng hiện đại. Người dùng có thể thực
hiện mọi thao tác mà không cần phải có quyền quản trị.
7. Thiết lập an toàn bảo mật trong IIS như thế nào?
Downloaded by Tr?ng Toàn Nguy?n (nguyentrongtoan954@gmail.com)