You are on page 1of 139

Fresher Review Checklist

Template version: v1.1

Guideline:
Sheet này hướng dẫn cách triển khai "Review Checklist" cho đối tượng Fresher .NET
1. Cách triển khai .
- Mỗi sheet Checklist sẽ dùng cho một khóa học tương ứng
- QLL/Mentor/Trainer sẽ copy từng cho mỗi học viên 1 file và đổi tên theo định dạng: <AccountID_NET_Review Checklist.xlsx>
(ví dụ: CongDX_NET_Review Checklist.xlsx - tên file bắt đầu bởi account của học viên)
- Triển khai đến học viên ngay sau khi Kick-off course đầu tiên
<ID>_NPL_Review Checklist Sheet review kiến thức khóa NET Programming Language
<ID>_SQL_Review Checklist Sheet review kiến thức khóa SQL
<ID>_FEE_Review Checklist Sheet review kiến thức khóa Frontend
<ID>_NWEB_Review Checklist Sheet review kiến thức khóa ASP.NET
<ID>_NEFW_Review Checklist Sheet review kiến thức khóa Entity Framework

2. Cách đánh giá


- Dự trên kết quả đánh giá và xếp loại học viên của Trainer/Mentor, học viên sẽ bị đánh giá CHECKPOINT
và quyết định giai đoạn học tập/lộ trình tiếp theo.
- Nếu 2 course liên tiếp bị Fail và Rank loại C trở xuống sẽ bị nhắc nhở, tự xây dựng plan học tập bổ sung và submit cho Trainer/
- Nếu course thứ 3 xếp bị Fail và Rank loại C trở xuống sẽ tạm thời dùng học và học cũng khóa sau
- Nếu 4 course bị Fail và loại C trở xuống sẽ dừng học
hecklist.xlsx>

bmit cho Trainer/Mentor


<<SQL Review Checklist>>
NO. Objective Topic Type
SI001 - Hiểu và thực hành:
+ Relational Database Concepts
+ Shema
+ What is RDBMS? DB Concepts and ER Model Theory
+ ER Model
+ Basic E-R Notation
+ Cardinality of Relationships
SI002 + Converting ER Model to DB Concepts and ER Model Theory
SI003 relational schema DB Concepts and ER Model Practice
SI004 DB Concepts and ER Model Theory
SI005

DB Concepts and ER Model Theory

SI006

DB Concepts and ER Model Theory

SI007 DB Concepts and ER Model Practice


SI008 -Hiểu và thực hành: DB Basic Theory
SI009 + Can categorize the main
database objects
+ Create a simple table
+ Understand how constraints are DB Basic Theory
created at the time of table
creation
+ Describe how schema objects
work
SI010 + Understand and use to
commands create, alter, drop,
truncate table DB Basic Theory

SI011
DB Basic Practice
SI012

DB Basic Theory

SI013

DB Basic Practice
SI014
DB Basic Theory

SI015 DB Basic Theory


SI016

DB Basic Practice

SI017

DB Basic Practice

SI018

DB Basic Theory

SI019

DB Basic Practice

SI020

DB Basic Practice

SI021
DB Basic Theory

SI022

DB Basic Theory
SI023

DB Basic Practice

SI024
DB Basic Theory

SI025

DB Basic Practice

SI026

DB Basic Theory

SI027
DB Basic Theory

SI028 DB Basic Theory


SI029

DB Basic Theory

SI030 DB Basic Practice


SI031

DB Basic Theory

SI032

DB Basic Theory

SI033

DB Basic Practice
SI034

DB Basic Theory

SI035
DB Basic Practice
SI036 -Hiểu và thực hành:
+ Understanding Data
Manipulation Language (DML)
statements
+ Insert rows into a table
+ Update rows in a table
+ Delete rows in a table SQL Basic Theory

SI037 SQL Basic Theory


SI038

SQL Basic Practice

SI039 SQL Basic Theory


SI040

SQL Basic Practice

SI041 SQL Basic Theory


SI042

SQL Basic Practice

SI043

SQL Basic Theory

SI044

SQL Basic Theory

SI045
SQL Basic Practice
SI046

SQL Basic Theory

SI047

SQL Basic Practice

SI048
SQL Basic Theory

SI049

SQL Basic Practice

SI050

SQL Basic Theory

SI051

SQL Basic Practice

SI052
SQL Basic Theory

SI053
SQL Basic Theory

SI054
SQL Basic Practice

SI055

SQL Basic Practice

SI056
SQL Basic Practice
SI057
SQL Basic Theory
SI058

SQL Basic Practice

SI059 SQL Basic Theory


SI060 SQL Basic Practice
SI061

SQL Basic Theory

SI062

SQL Basic Practice

SI063

SQL Basic Theory

SI064

SQL Basic Practice

SI065
SQL Basic Theory
SI066 - Hiểu và thực hành:
+ Understand the built-in
functions in SQL Server
+ Understand how to use built-in Built-in functions Theory
functions to perform operations
on data
+ Conversion Functions
SI067 + Date and Time Functions Built-in functions Theory
SI068 + String Functions

Built-in functions Theory

SI069 Built-in functions Theory


SI070
Built-in functions Theory
SI071

Built-in functions Practice

SI072

Built-in functions Theory

SI073

Built-in functions Practice

SI074
Built-in functions Practice

SI075

Built-in functions Practice

SI076 Built-in functions Theory


SI077

Built-in functions Theory

SI078

Built-in functions Practice

SI079
Built-in functions Theory

SI080

Built-in functions Practice


SI081

Built-in functions Theory

SI082

Built-in functions Practice

SI083 - Hiểu và thực hành


+ Understand about SQL joins, Advanced DML Theory
subqueries, common table
expressions and ranking functions
SI084 in SQL Server
Advanced DML Theory
SI085

Advanced DML Practice

SI086 Advanced DML Theory


SI087

Advanced DML Theory

SI088

Advanced DML Practice

SI089

Advanced DML Theory

SI090

Advanced DML Practice

SI091 Advanced DML Theory


SI092

Advanced DML Practice

SI093

Advanced DML Theory

SI094

Advanced DML Practice

SI095
Advanced DML Theory
SI096

Advanced DML Practice

SI097

Advanced DML Practice

SI098

Advanced DML Theory

SI099

Advanced DML Theory

SI100

Advanced DML Theory

SI101

Advanced DML Practice


SI102

Advanced DML Theory

SI103

Advanced DML Practice

SI104
Advanced DML Theory

SI105

Advanced DML Practice

SI106 - Hiểu và thực hành:


+ Có hiểu biết về SQL Language SQL Language Elements Practice
Elements trong SQL Sever

SI107
SQL Language Elements Theory
SI108

SQL Language Elements Practice

SI109 SQL Language Elements Theory


SI110

SQL Language Elements Practice

SI111 - Hiểu và thực hành :


+ Stored Procedure DB Objects Theory
+ Trigger trong SQL
+ Function trong SQL
- Hiểu và thực hành :
+ Stored Procedure
+ Trigger trong SQL
+ Function trong SQL
SI112

DB Objects Theory

SI113

DB Objects Practice

SI114

DB Objects Practice

SI115

DB Objects Theory

SI116

DB Objects Theory

SI117

DB Objects Practice

SI118

DB Objects Practice
SI119

DB Objects Theory

SI120 DB Objects Theory


SI121 DB Objects Theory
SI122
DB Objects Theory
SI123 DB Objects Theory
SI124

DB Objects Practice

SI125

DB Objects Practice

SI126
DB Objects Practice
SI127
DB Objects Theory
SI128

DB Objects Theory

SI129
DB Objects Theory
SI130

DB Objects Practice
Question Link ref (for Practice) Trainee Assessment

Đã hiểu khái niệm Cơ sở dữ liệu quan hệ chưa?

Hiểu khái niệm Entity relationship?


Đã thực hành tạo ERD?
Có bao nhiêu loại Relationship?

Hiểu khái niệm Relational Database schema?

Nắm được 'rule' chuyển đổi từ ERD sang Relational Database


schema?

Đã thực hành chuyển đổi từ ERD sang Relational DB Schema? https://1drv.ms/u/s!Ag0BoXOHguQV4kPjtk02ij0uUsah


Nắm được về các kiểu dữ liệu trong SQL Server?

Đã hiểu khái niệm DLL (Data Definition Language)?

Đã hiểu câu lệnh create, alter, drop?

Đã thực hành với câu lệnh create, alter, drop?


https://drive.google.com/file/d/1bjilmC09qImWczoZvvXKBm

Hiểu khái niện schema ?

https://
drive.google.com/file/
Thực hành tạo schema và tạo table với schema đó? d/
1KMKNGTsfsJV3xcufPw
q_epI8jrfYylgf/view?
usp=sharing
Hiểu khái niệm table, cách tạo ra 1 table?

Foreign key và Primary key là gì?


https://
drive.google.com/file/
Thực hành tạo Foreign key và primary key? d/
1js6g9eL_Zb2Q6DjpdXu
e2LQh4CnLP3l9/view?
usp=sharing

https://
Thực hành tạo table? drive.google.com/file/
d/
1MZ2T_SvV82Je_Oh_xR
SdiSS_VV1h0lzh/view?
usp=sharing

Nắm được các kiểu ràng buộc (constraints) trên table?

Đã thực hành với các ràng buộc NOT NULL, CHECK UNIQUE? https://
drive.google.com/file/
d/
1C3RbI53JhuYFmaXvo9
HeyKmR21yJYcav/view?
usp=sharing

Đã thực hành với PRIMARY KEY, DEFAULT, FOREIGN KEY? https://


drive.google.com/file/
d/
1C3RbI53JhuYFmaXvo9
HeyKmR21yJYcav/view?
usp=sharing

Hiểu Constraints Scope (table level and column level)?

Đã hiểu về từ khóa IDENTITY?


https://
Đã thực hành tạo table với bảng sử dụng IDENTITY? drive.google.com/file/
d/
1VD37xo1ne7_Y_obdNs
H1CYhACYNmNv-j/view?
usp=sharing

Hiểu về từ khóa TRUNCATE?

https://
drive.google.com/file/
Thực hành với từ khóa TRUNCATE? d/
1IuMXlPyapNXAaMUfX
oGT1wHBuJj8R8sg/
view?usp=sharing

Hiểu khái niệm Index trong SQL?

Nắm được mục đích phải dùng index?

Biết cách tạo ra index trên table?


https://
drive.google.com/file/
Phân loại index, điểm khác nhau giữa các loại đó? d/1dPBw7tEt-
Xq5U2usTkWWBMkBLA
SPTcYl/view?
usp=sharing
Đã thực hành sử dụng index?

Hiểu khái niệm về View?

Tại sao phải sử dụng view?

https://
drive.google.com/file/
Thực hành tạo/sử dụng và xóa view? d/1dPBw7tEt-
Xq5U2usTkWWBMkBLA
SPTcYl/view?
usp=sharing
Nắm được các quy tắc đặt tên (Naming Convention) và quy tắc viết
code (Coding Style) trong SQL?

Áp dụng quy tắc đặt tên (Naming Convention) và quy tắc viết code
(Coding Style) vào trong thực hành?

Hiểu khái niệm DML (Data Manipulation Language)?

Hiểu câu lện INSERT?


https://
drive.google.com/file/
Đã thực hành chèn dữ liệu vào bảng sử dụng câu lệnh INSERT? d/
1WeHJiS0cLRt5xx9uqX
VT1ZeqQJW8EbGl/view?
usp=sharing
Hiểu câu lệnh UPDATE?
https://
drive.google.com/file/
Thực hành chỉnh sửa dữ liệu sử dụng câu lệnh UPDATE? d/
1FovCCU96Gccbqj7Dlez
Sj18koZPaEsB5/view?
usp=sharing
Hiểu câu lệnh DELETE?
https://
drive.google.com/file/
Thực hành xóa với câu lệnh DELETE? d/
1Cxm0j8Vp5a1oWt1Qda
LNmw95SXBypHci/
view?usp=sharing

So sánh DELETE , TRUNCATE và DROP?

https://
drive.google.com/file/
Hiểu tác dụng và các thành phần trong câu lệnh SELECT? d/1ei-
e2S2UfWfmerGbHbPIZ4
_MFKSnF27U/view?
usp=sharing
Thực hành truy vấn dữ liệu sử dụng lệnh SELECT?
Hiểu syntax ALIAS (từ khóa AS)?

https://
drive.google.com/file/
Thực hành với ALIAS? d/1ei-
e2S2UfWfmerGbHbPIZ4
_MFKSnF27U/view?
usp=sharing

Hiểu về câu lệnh GROUP BY?

https://
drive.google.com/file/
Đã thực hành câu lệnh GROUP BY? d/
17Wy7_e7yD1n0OoqnJ
wPpVzavtXBi09bh/
view?usp=sharing

Hiểu mục đích của HAVING trong câu truy vấn?

Đã thực hành với câu lệnh HAVING? https://


drive.google.com/file/
d/1JB82BVWJ-
8RQIwgb5zzJ8efc3Xrw
kdWe/view?usp=sharing

So sánh được HAVING and WHERE?

Hiểu từ khóa ORDER BY?

Đã thực hành với từ khóa ORDER BY?

https://
drive.google.com/file/
Có thể sử dụng được 1 số hàm 'Conversion Functions' cơ bản? d/
1XRYR3_hSojICpawkhZ2
EYcw030jsgXOn/view?
usp=sharing
Có thể sử dụng 1 số hàm 'Date and Time Functions' cơ bản
(DATEDIFF, DATEADD, DATEPART, ...)

Hiểu về những hàm Aggregate là gì ?


Thực hành sử dụng các hàm Aggregate? https://
drive.google.com/file/
d/1GQ0Xe3cFD-1-
Mch4Twzy0EfUeRQOkf
1v/view?usp=sharing
Hiểu toán tử UNION và UNION ALL?
Thực hành sử dụng UNION và UNION ALL?
https://
drive.google.com/file/
Hiểu lệnh SELECT INTO? d/
1benmGY1aQbFbXA90l
wd9K3yFOk6dKMRn/
view?usp=sharing

Thực hành sử dụng lệnh SELECT INTO?

Hiểu lệnh INSERT INTO SELECT?

https://
drive.google.com/file/
Thực hành sử dụng lệnh INSERT INTO SELECT? d/
1F6ebfQddxaiaMyjeV3
Mr2qamh_kZkXIU/
view?usp=sharing
Hiểu chức năng và cách sử dụng của hàm CAST?

https://
drive.google.com/file/
Thực hành sử dụng CAST function d/
1KhY9Jpqmd9xyydx323
Yi13TqPnYVa2fq/view?
usp=sharing
Hiểu chức năng và cách sử dụng của Convert Function
https://
drive.google.com/file/
Thực hành sử dụng convert function d/
1K8ry7Jdn1ZyErQYYMC
002tJvxg6xQiWU/view?
usp=sharing
Hiểu chức năng và cách sử dụng date and time functions

Chức năng và cách sử dụng của GETDATE() và DATEPART()


https://
drive.google.com/file/
Thực hành sử dụng casc hàm GETDATE(), DATEPART d/
1ZYxNj4PGlhulsM0Cjwn
SjYdSV-gK7HLX/view?
usp=sharing

Hiểu chức năng và cách sử dụng các hàm DAY, MONTH, YEAR

https://
drive.google.com/file/
Thực hành sử dụng hàm DAY, MONTH, YEAR d/
1nHZgAAE92bdEZ3E4Pfj
9iVKH-icoqare/view?
usp=sharing

Hiểu chức năng và cách sử dụng DATEADD, DATEIFF function

https://
Thực hành sử dụng hàm DATEADD & DATEIFF drive.google.com/file/
d/1es1KgZ7L8YJiiiiuDAI-
4ElRi6BIhY1F/view?
usp=sharing
Hiểu các String function

Hiểu chức năng và cách sử dụng RTRIM, LTRIM Function

Thực hành chuẩn hóa String với RTRIM và LTRIM https://


drive.google.com/file/
d/1_sqIRSpH-7-
qAww2IqiPylN4aeN4AG
3K/view?usp=sharing

Hiểu chức năng và cách sử dụng hàm SUBSTRING

https://
drive.google.com/file/
Thực hành với hàm SUBSTRING d/
1q482Wef92KWNPZZPj
kGOVX9gYhZn5KHY/
view?usp=sharing
Hiểu chức năng và cách sử dụng hàm LEN, CHARINDEX, PATINDEX

https://
drive.google.com/file/
Thực hành với các hàm LEN, CHARINDEX, PATINDEX d/
1b5f6OJ8IZ_Qelmuzi7q
bPcAqp2Xu95vT/view?
usp=sharing

Đã hiểu về SQL Join? Có thể phân loại Join trong SQL?

Hiểu về INNER JOIN?

https://
drive.google.com/file/
Thực hành sử dụng INNER JOIN? d/
1AU0vMOsKc6xpHsrDsl
EGi4OWDWJy04yy/
view?usp=sharing
Các loại OUTER JOIN ?

Đã hiểu đặc điểm của LEFT JOIN?

https://
Thực hành sử dụng LEFT JOIN? drive.google.com/file/
d/
1pRmqcM7D6buH0wk3
BkHARUwbq_-NcZCE/
view?usp=sharing

Đã hiểu đặc điểm của RIGHT JOIN?

https://
drive.google.com/file/
Thực hành sử dụng RIGHT JOIN? d/
1_YQ79o_FdZtXzSsjciO
ow6QtYRyrnOfU/view?
usp=sharing
Đã hiểu đặc điểm của FULL JOIN?
https://
Thực hành sử dụng FULL JOIN? drive.google.com/file/
d/
1OeWYpTwnKibIKAPZa
mm-94TSJuw1RiR5/
view?usp=sharing

Hiểu tác dụng và syntax của CROSS JOIN?

https://
drive.google.com/file/
Đã thực hành với CROSS JOIN? d/
1zvdLYYJTiNyJ7jwIvP3v
gVCdcwhENUL-/view?
usp=sharing
Đã hiểu khái niệm self join?

https://
drive.google.com/file/
Đã thực hành với self join? d/
15RCBN6f7KxaGv2Ekef3
v_Dpy2_OFs0wH/view?
usp=sharing
https://
drive.google.com/file/
Có thể thực hành với các loại join trên 3 bảng trở lên? d/
1Lfm7REgL0a2TyMMO
QdMHMYNTRzP2ICoc/
view?usp=sharing

Đã hiểu về Sub-queries?

Khi nào/lợi ích của việc sử dụng Sub-queries?

https://
drive.google.com/file/
Có thể phân loại Sub-queries? d/
1vk0k5g_AU56ECTa3z5
CQsXRAJexYKcRN/
view?usp=sharing

Có thể thực hành truy vấn với Sub-queries?


Nắm được khái niệm Common Table Expressions (CTE)?

Thực hành sử dụng CTE?


https://
drive.google.com/file/
d/18oCbhe5Xy-
0ly86epeZZ6tEtgI5anp
ws/view?usp=sharing

Đã hiểu về các hàm Ranking?

https://
Thực hành paging với Row_Number() drive.google.com/file/
d/
13EoHv1AMGJfJHHULx
Bge44SL_eidw1Yo/
view?usp=sharing

Biết cách comment trong SQL sever?

Nắm được quy tắc đặt tên định danh (bảng, biến, hàm, thủ thục, ..)
trong SQL?

https://
drive.google.com/file/
Có thể khai báo biến (Varriables) trong SQL? d/1ePjrmP-
k3tkKCF4_1ZzM6Noubd
uGTfGD/view?
usp=sharing
Đã hiểu về Control - of - flow trong SQL Sever?

Có thể sử dụng các lệnh IF, WHILE?


https://
drive.google.com/file/
d/
1rioI1XSX0uO7srUgeHH
BJ6zPdZKBRPnt/view?
usp=sharing

Đã hiểu về User Store Procedure (USP)?


Hiểu được lợi ích của việc dùng Store Procedure ?

Có thể lấy giá trị trả về khi sử dụng Stored Procedure?

https://
drive.google.com/file/
Đã thực hành sử dụng Stored Procedure? d/
1CEKZB7YqK47bFVtVpQ
ZxR6BVCvht3p94/view?
usp=sharing
https://
drive.google.com/file/
Đã hiểu về User Defined-Function? d/
1dk5Y7Me2xo9bKN4_z
X75DIIJGi0UMfzb/view?
usp=sharing

How many type of UDF ?

Thực hành sử dụng function User Scalar-valued Function?


https://
drive.google.com/file/
d/
19EVG6CAOX_33wz7hC
5reDJVc8gflC_5g/view?
usp=sharing
https://
drive.google.com/file/
Thực hành sử dụng function User Table-valued Function? d/
1tu56acXf5a10E50rvBKa
ypcvzZqPkNXz/view?
usp=sharing
Điểm khác nhau giữa User Store Procedure và User Defined-
Functions

Hiểu được TRIGGER là gì ?


Hiểu khi nào sử dụng TRIGGER?

How many type of trigger ?

Hiểu về 2 bảng inserted và deleted?

Thực hành sử dụnd AFTER TRIGGER?


https://
drive.google.com/file/
d/1L6k-
LodFSyews_rty_Uxius_
RVj9RQgH/view?
usp=sharing

Thực hành sử dụng INSTEAD OF TRIGGER?

https://
drive.google.com/file/
d/
15GYKPgvsztXbwBTRr
MW6tINzAawFWsr_/
view?usp=sharing
Có thể disable và enable một trigger?

So sánh Trigger và Stored procedures?


Đã hiểu về Transaction?

Tại sao phải sử dụng transaction ?

Đã thực hành sử dụng Transaction?


https://
drive.google.com/file/
d/1k_ul66q4Ro-
r5izxIxqBODLPAZmI5_l
q/view?usp=sharing
Trainer Assessment
Note Priority Severity
P Audit Các bước chuyển đổi mô hình E­R sang mô hình
quan hệ:
Bước 1: Với mỗi entity type bình thường (bỏ qua
các subclasses / weak entities) tạo một relation

tương sở dữứng.liệu quan hệ là tổ chức dữ liệu theo
các bảng
Bước và mỗi
2: Với có quan hệ với nhau
ID-dependent để giảm
entity thiểu
tạo một
sự dư thừa
relation tươngdữ liệu
ứng.đồng thời này
Relation vẫn có
đảm bảochính
khóa sự
hiệugồm
bao quả trong lưu trữ
khóa chính củavàrelation
truy xuấtchadữvàliệmột
thuộc
Nhận thức tính thế
của giới
chính nó.thông qua tập các đối tượng được gọi
thực Mandatory
Bước
yes 3: Bước này xử lý cho các supertype và Mandatory
subtype nên tạm thời các relation sẽ không thay
1-1,gì1-N,
đổi (DoN-N,(
ví dụ0-N,
trên0-1)
khôngmở córộngsupertype và Mandatory
subtype) .
Bước 4: Đối với mỗi quan hệ Unary hoặc Binary
có kiểu 1-1. Tạo một Foreign key từ một entity và
Relational
tham chiếuDatabase
sang entity schema là một phác thảo
còn lại.
cho
Bước thấy cách
5: Với mỗicácquan
cônghệty1-n,
lưuđặttrữkhóa
và tổngoại
chức vào
thông tinphía
relation trong cơ sởchiếu
n tham dữ liệu.
khóa Nóchính
cũngcủa
hiển thị
những
relationkết phíanối1 nào tạo nên cơ sở dữ liệu
Bước 6: Với mỗi quan hệ N-M tạo ra một
relation mới, khóa chính của relation này bao
gồm các khóa ngoại tham chiếu tới các relation
tham gia vào quan hệ, nó cũng chứa luôn cả các
attribute của quan hệ như là attribute của chính
nó.
Bước 7 : Tương ứng với mỗi multi-valued
Câu lệnh DDL
attribute, ta sẽđược
tạo mộtdùngrelation
để địnhmới.hìnhPrimary
dữ liệu
của
Key bạn trông như
của relation nàythế
bao nào,
gồm tổprimary
chức ra key
sao.của
Một
số
bảng câugốclệnhvàDDL
value phổ biến mà chúng ta dễ bắt
attribute
gặp nhất chính là:
CREATE
yes – được dùng để tạo mới các đối tượng
trong cơ sở dữ liệu như database, table,
gồm chuỗi
function, kí tự(char,
stored nchar,
procedure, varchar, nvarchar, text, ntext...), số(bit, int decimal,money... ) và thời gian/ngà
trigger.
ALTER – được dùng để sửa đổi các đối tượng
như table (thêm cột), column (sửa đổi kiểu dữ
liệu), trigger (sửa đổi nội dung).
DROP – dùng để xóa các đối tượng trong cơ sở
dữ liệu. – được dùng để tạo mới các đối tượng
CREATE
TRUNCATE
trong cơ sở–dữ dùng
liệuđểnhư xóa tất cả dữtable,
database, liệu của
CREATE
bảng một
function, TABLE table_name
cách nhanh
stored chóng(trigger.
procedure,
column1
ALTER – đượcdatatype,
dùng để sửa đổi các đối tượng
như column2 datatype,
table (thêm cột), column (sửa đổi kiểu dữ
column3
liệu), triggerdatatype,
(sửa đổi nội dung).
.... – dùng để xóa các đối tượng trong cơ sở
DROP
);
dữ liệu. Mandatory
ALTER TABLE table_name
ADD column_name datatype;
DROP TABLE table_name; Mandatory

Schema là một khái niệm mới được đưa vào


SQL Server từ phiên bản 2005, nó là một
namespace dùng để gom nhóm các table có
chung một đặc điểm nào đó đễ dễ dàng quản lý.
Nếu bạn không sử dụng schema trong CSDL thì
nó sẽ lấy schema mặc định là dbo.

CREATE SCHEMA news;


CREATE SCHEMA sys;
table là các đối tượng cơ sở dữ liệu chứa tất cả
dữ liệu trong cơ sở dữ liệu, ta có thể dùng câu
lênh Create để tảo 1 bảng.
Mandatory
PRIMARY KEY là 1 trường trong1 bảng mà nhận diện 1 cách duy nhất mỗi hàng/bản ghi () một bảng dữ liệu. Các PK p

yes Mandatory

CREATE TABLE Persons (


ID int NOT NULL PRIMARY KEY,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Age int
); Mandatory

Ràng buộc trong SQL Server là các quy tắc và


hạn chế được xác định trước được thực thi
trong một cột hoặc nhiều cột, liên quan đến các
giá trị được phép trong các cột, để duy trì tính
toàn vẹn, chính xác và độ tin cậy của dữ liệu của
cột đó

CREATE TABLE Persons (


ID int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Age int,
CHECK (Age>=18),
Email varchar(255) UNIQUE
) Mandatory

Các ràngTABLE
CREATE buộc SQL có thể
Orders ( được áp dụng ở the
table or column
OrderID level.
int NOT NULL,
Table-level constraints:
OrderNumber int NOTbạn khai báo các ràng
NULL,
buộc mức bảng
PersonID int, áp dụng cho một hoặc nhiều
cột. Các ràngKEY
PRIMARY buộc mức bảng được khai báo độc
(OrderID),
lậpFOREIGN
với định KEY
nghĩa cột. Bạn thường
(PersonID) khai báo các
REFERENCES
ràng buộc cấp bảng ở cuối câu lệnh CREATE
Persons(PersonID)
TABLE
); Mandatory
Column-level constraints: bạn khai báo các ràng
buộc mức cột khi bạn xác định cột cho bảng.
Ràng buộc mức cột được áp dụng đặc biệt cho
cột mà nó được gắn vào.

IDENTITY hay còn gọi là thuộc tính nhận dạng


của SQL Server được sử dụng để tạo ra cột nhận
dạng, chúng chứa các giá trị tự động phát sinh
tuần tự để nhận dạng duy nhất mỗi hàng trong
một bảng. Mandatory
CREATE TABLE Persons (
Personid int IDENTITY(1,1) PRIMARY KEY,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Age int
); Mandatory
TRUNCATE TABLE trong SQL đc sd để xóa hoàn
toàn dữ liệu từ 1 bảng đang tồn tại. ( drop thì xóa
cả cấu trúc) Mandatory

TRUNCATE TABLE Categories; Mandatory

Là 1 con trỏ tới dữ liệu trong 1 bảng, mục đích để


nâng cao hiệu suất của Database(tương tự như
cách mà mục lục của một cuốn sách)
Mandatory
Các index có thể được tạo hoặc xóa mà không
ảnh hưởng tới dữ liệu. Ko dùng index trong bảng
nhỏ, dl hay thay đổi và cột có gtri NULL. Mandatory
CREATE INDEX ten_chi_muc ON ten_bang; Mandatory

index phân thành 2 loại là Clustered Index và


Non-Clustered Index( phân cụm và ko phân cụm)

Mandatory
CREATE INDEX ten_chi_muc ON ten_bang; Mandatory

View là 1 bảng ảo chưa kết quả từ câu lệnh


Select, ví dụ: CREATE VIEW SINHVIEN_VIEW AS
SELECT TEN, TUOI FROM SINHVIEN
WHERE TUOI IS NOT NULL
WITH CHECK OPTION; (đảm rằng tất cả UPDATE
và INSERT thỏa mãn các điều kiện trong định
nghĩa view)
Mandatory

mục đích xây dựng view:


1. tốc độ truy cập nhanh hơn
2. có thể 1 số bảng vật lý không cho quyền truy
cập với mọi người dùng
vì lý do bảo mật, --> viết các view cho phép
người dùng truy cập 1 số
thành phần dữ liệu.

CREATE VIEW view_name AS


SELECT column1, column2, ...
FROM table_name
WHERE condition; Mandatory
Sd alphabet đầu tiên, ko dùng _ or số, hạn chế
viết tắt, đặt tên có ý nghĩa với mục đích, ko dùng
space và ký tự đặc biệt, tên bảng theo quy tắc
Pascal số ít, đặt tên view = vw, tên rằng buộc, tên
PK thường có hậu tố Id, Fk trungf với PK, Viết hoa
các câu lệnh...
Mandatory

yes Mandatory

DML là viết tắt của Ngôn Ngữ Thao Tác Dữ liệu,


chính là những câu lệnh truy vấn, thêm xóa sửa
mà chúng ta thường dùng khi làm việc với dữ
liệu lưu trữ trong SQL Server. Một số câu lệnh
phổ biến như:
INSERT – thêm dữ liệu vào một bảng trong cơ
sở dữ liệu.
UPDATE – sửa đổi dữ liệu trong một bảng.
DELETE – xóa dòng dữ liệu trong bảng.
SELECT – truy vấn dữ liệu.
Câu INSERT INTOlệnh được sử dụng để chèn các bản ghi mới trong một bảng.

INSERT INTO table_name (column1, column2,


column3, ...)
VALUES (value1, value2, value3, ...); Mandatory
Câu UPDATElệnh được sử dụng để sửa đổi các bản ghi hiện có trong một bảng.

UPDATE table_name
SET column1 = value1, column2 = value2, ...
WHERE condition; Mandatory
Câu DELETElệnh được sử dụng để xóa các bản ghi hiện có trong một bảng.

DELETE FROM table_name WHERE condition; Mandatory

DELETE xóa 1 hoặc tất cả các hàng từ một bảng


dựa trên điều kiện và có thể được phục hồi
lại(Backup và RESTORE). TRUNCATE xóa tất cả các
hàng từ 1 bảng bằng cách phân bổ các trang bộ
nhớ và ko thể phục hồi lại, DROP xóa hoàn toàn 1
bảng từ CSDL.
Mandatory

Câu SELECTlệnh được sử dụng để chọn dữ liệu


từ cơ sở dữ liệu.

Dữ liệu trả về được lưu trữ trong một bảng kết


quả, được gọi là tập kết quả.
SELECT column1, column2, ...
FROM table_name;
SQL aliases được sử dụng để đặt tên tạm thời
cho một bảng hoặc một cột trong bảng.
Mandatory

SELECT column_name AS alias_name


FROM table_name; Mandatory

Câu GROUP BY lệnh nhóm các hàng có cùng giá


trị thành các hàng tóm tắt
Mandatory

SELECT column_name(s)
FROM table_name
WHERE condition
GROUP BY column_name(s) Mandatory

Mệnh HAVINGđề đã được thêm vào SQL vì


WHEREtừ khóa không thể được sử dụng với các
hàm tổng hợp.
Mandatory

SELECT column_name(s)
FROM table_name
WHERE condition
GROUP BY column_name(s)
HAVING condition
ORDER BY column_name(s); Mandatory

Having dùng trong Group By(so sánh theo nhóm),


WHERE dùng trong SELECT(so sánh theo cột)
Mandatory

Từ ORDER BYkhóa được sử dụng để sắp xếp


tập hợp kết quả theo thứ tự tăng dần hoặc
giảm dần. Mandatory

SELECT column1, column2, ...


FROM table_name
ORDER BY column1, column2, ... ASC|DESC; Mandatory

SELECT CONVERT(datetime, '2019-05-02');


Result: '2019-05-02 00:00:00.000' Mandatory
SELECT DATEDIFF(year, '2017/08/25',
'2011/08/25') AS DateDiff; Mandatory
Để thống kê dữ liệu. SUM(). AVG(), COUNT(),
MAX(), MIN() Mandatory
yes Mandatory
Mandatory
UNION sử dụng để kết hợp kết quả của hai hoặc nhiều lệnh SELECT mà ko trả về bất cứ bản sao nào của bản ghi. UN
yes Mandatory

Câu SELECT INTOlệnh sao chép dữ liệu từ một


bảng vào một bảng mới.

SELECT *
INTO newtable [IN externaldb]
FROM oldtable
WHERE condition; Mandatory

Câu INSERT INTO SELECTlệnh sao chép dữ liệu


từ một bảng và chèn nó vào một bảng khác.
Câu INSERT INTO SELECTlệnh yêu cầu các kiểu
dữ liệu trong bảng nguồn và bảng đích phải
khớp nhau.

INSERT INTO table2 (column1, column2,


column3, ...)
SELECT column1, column2, column3, ...
FROM table1
WHERE condition; Mandatory
Hàm CAST chuyển đổi một biểu thức từ một kiểu
dữ liệu này sang kiểu dữ liệu khác. Mandatory

SELECT CAST(14.85 AS int);


Result: 14 (kết quả cắt phần thập phân phía sau)

Mandatory
Hàm CONVERT () chuyển đổi một giá trị (thuộc bất kỳ loại nào) thành một kiểu dữ liệu được chỉ định.

SELECT CONVERT(datetime, '2019-05-02');


Result: '2019-05-02 00:00:00.000'

Mandatory

GETDATE () Trả về ngày và giờ hiện tại


DATEPART () Trả về một phần của ngày / giờ
SELECT GETDATE();
SELECT DATEPART(year, '2017/08/25') AS
DatePartInt; Mandatory

Hàm DAY () trả về ngày trong tháng (từ 1 đến


31) cho một ngày cụ thể.
Hàm MONTH () trả về phần tháng cho một ngày
cụ thể (một số từ 1 đến 12).
Hàm YEAR () trả về phần năm cho một ngày cụ
thể.

SELECT DAY('2017/08/13 09:08') AS


DayOfMonth;
SELECT MONTH('2017/05/25 09:08') AS Month;
SELECT YEAR('1998/05/25 09:08') AS Year; Mandatory

DATEADD () Thêm hoặc trừ một khoảng thời


gian cụ thể từ một ngày
DATEDIFF () Trả về thời gian giữa hai ngày Mandatory

SELECT DATEADD(year, 1, '2017/08/25') AS


DateAdd;
SELECT DATEDIFF(year, '2017/08/25',
'2011/08/25') AS DateDiff; Mandatory
yes

Hàm LTRIM () loại bỏ khoảng trắng đầu chuỗi.


Hàm RTRIM () loại bỏ dấu cách ở cuối chuỗi khỏi
một chuỗi.

SELECT LTRIM(' SQL Tutorial') AS


LeftTrimmedString;
SELECT RTRIM('SQL Tutorial ') AS
RightTrimmedString;

Hàm SUBSTRING () trích xuất một số ký tự từ


một chuỗi.
SUBSTRING(string, start, length) Mandatory

SELECT SUBSTRING('SQL Tutorial', 1, 3) AS


ExtractString; Mandatory
Hàm LEN () trả về độ dài của một
chuỗi.LEN(string)
Hàm CHARINDEX () tìm kiếm một chuỗi con
trong một chuỗi và trả về vị
trí.CHARINDEX(substring, string, start)
Hàm PATINDEX () trả về vị trí của một mẫu
trong một chuỗi.Nếu không tìm thấy mẫu, hàm
này trả về 0.PATINDEX(%pattern%, string)

SELECT LEN('W3Schools.com');
SELECT CHARINDEX('t', 'Customer') AS
MatchPosition;
SELECT PATINDEX('%schools%',
'W3Schools.com'); Mandatory

JOINmệnh đề được sử dụng để kết hợp các


hàng từ hai hoặc nhiều bảng, dựa trên một cột
có liên quan giữa chúng. Mandatory
Từ INNER JOINkhóa chọn các bản ghi có giá trị
phù hợp trong cả hai bảng. Mandatory

SELECT column_name(s)
FROM table1
INNER JOIN table2
ON table1.column_name = table2.column_name; Mandatory
LEFT JOIN, RIGHT JOIN, FULL JOIN Mandatory

Từ LEFT JOINkhóa trả về tất cả các bản ghi từ


bảng bên trái (table1) và các bản ghi phù hợp từ
bảng bên phải (table2). Kết quả là 0 bản ghi từ
phía bên phải, nếu không có bản ghi nào phù
hợp.

SELECT column_name(s)
FROM table1
LEFT JOIN table2
ON table1.column_name = table2.column_name; Mandatory

Từ RIGHT JOINkhóa trả về tất cả các bản ghi từ


bảng bên phải (table2) và các bản ghi phù hợp
từ bảng bên trái (table1). Kết quả là 0 bản ghi từ
phía bên trái, nếu không có bản ghi nào phù
hợp.

SELECT column_name(s)
FROM table1
RIGHT JOIN table2
ON table1.column_name = table2.column_name;
Từ FULL OUTER JOINkhóa trả về tất cả các bản ghi khi có sự trùng khớp trong các bản ghi bảng bên trái (
SELECT column_name(s)
FROM table1
FULL OUTER JOIN table2
ON table1.column_name = table2.column_name
WHERE condition; Mandatory

cross JOIN hay có một tên khác là Cartesian


JOIN, mỗi hàng của bảng thứ nhất sẽ được kết
hợp với mỗi hàng của bảng thứ hai. Do vậy số
lượng các hàng trong bảng mới tạo ra bằng tích
số lượng hàng giữa các bảng. Mandatory

SELECT * FROM [ BANG1] , [BANG2] Mandatory


seft join là một tham gia thông thường, nhưng
bảng được kết hợp với chính nó. Mandatory

SELECT column_name(s)
FROM table1 T1, table1 T2
WHERE condition; Mandatory

yes Mandatory

Truy vấn con hoặc Truy vấn bên trong hoặc Truy
vấn lồng nhau là một truy vấn trong một truy
vấn SQL khác và được nhúng trong mệnh đề
WHERE. Mandatory

Truy vấn con được sử dụng để trả về dữ liệu sẽ


được sử dụng trong truy vấn chính như một
điều kiện để hạn chế hơn nữa dữ liệu được truy
xuất. Mandatory

Sử dụng dữ liêu bên trong, truy vấn cho bên


ngoài; và dữ liệu bên ngoài truy vấn cho bên
trong( exist)
Mandatory

SELECT column_name [, column_name ]


FROM table1 [, table2 ]
WHERE column_name OPERATOR
(SELECT column_name [, column_name ]
FROM table1 [, table2 ]
[WHERE]) Mandatory
CTE có thể được xem như một bảng chứa dữ
liệu tạm thời từ câu lệnh được định nghĩa trong
phạm vi của nó. CTE tương tự như một bảng
dẫn xuất (derived table) ở chỗ nó không được
lưu trữ như một đối tượng và chỉ kéo dài trong
suốt thời gian của câu truy vấn.

WITH expression_name [ ( column_name [,...n] )


]
AS
(
CTE_query_definition
)
SELECT
FROM expression_name;

Nó chỉ định số thứ hạng cho mỗi hàng trong


một phân vùng. Nó bỏ qua số cho các giá trị
tương tự.

SELECT Studentname,
Subject,
Marks,
ROW_NUMBER() OVER(ORDER BY Marks
desc) RowNumber
FROM ExamResult; Mandatory

Nhận xét dòng đơn bắt đầu bằng --


Nhận xét nhiều dòng bắt đầu bằng /*và kết thúc
bằng */

yes Mandatory

DECLARE @variable_name datatype [ =


initial_value ],
@variable_name datatype [ = initial_value ],
...; Mandatory
Là các câu lệnh điều hướng trong sql

IF EXISTS(SELECT au_fname FROM authors


WHERE au_lname = ‘Smith’)
PRINT ‘Found it’
SET @Count = 0
WHILE @Count < 100
BEGIN
PRINT ‘Hello World’
SET @Count = @Count + 1
END Mandatory
Stored Procedure là một nhóm các lệnh SQL được
lưu trong sql server, nó hoạt động tương tự một
hàm Mandatory
thực hiện một project lớn tốc độ thực thi( 2 bước
ko cần phân tích cú pháp, chạy code), giảm băng
thông, tái dử dụng; khó viết, tốn bộ nhớ lưu trữ,
khó bảo trì, khó debug
Mandatory

CREATE PROC sp_TestReturn


@n INT
AS
SET @n=@n+10;
RETURN @n --Luôn return về 1 giá trị integer
GO

DECLARE @n INT =10


EXEC @n= sp_TestReturn @n
SELECT @n Mandatory

CREATE PROCEDURE procedure_name


AS
sql_statement
GO;EXEC procedure_name; Mandatory

Function (Hàm) là một đối tượng trong cơ sở


dữ liệu bao gồm một tập nhiều câu lệnh được
nhóm lại với nhau và được tạo ra với mục đích
sử dụng lại

User Defined Function 3 loại: (1) scalar (hàm vô


hướng), (2) inline table-valued (hàm nội tuyến,
giá trị trả về dạng bảng), (3) multi -statement
table-valued (hàm bao gồm nhiều câu lệnh SQL
bên trong, trả về giá trị dạng bảng)
Mandatory

GO
CREATE FUNCTION udf_Add
(
@Number1 INT,
@Number2 INT
)
RETURNS INT
AS
BEGIN
RETURN (@Number1+@Number2)
END Mandatory

GO
CREATE FUNCTION udf_Products()
RETURNS TABLE
AS
RETURN SELECT * FROM Products Mandatory
Procedures có thể chấp nhận các tham số kiểu
đầu vào, parameters(Functions chỉ có thể chấp
nhận các tham số loại đầu vào). Procedures có
thể hoặc không thể trả về một giá trị hoặc có thể
trả về nhiều hơn một giá trị bằng cách sử dụng
các tham số OUTPUT và hoặc INOUT (Function
always returns only one value.) SUP trả về giá trị
nguyên theo mặc định bằng không(Function
return type could be scalar or table). Stored procs
can create a table but can’t return table.
Functions can create, update and delete the table
variable. It can return a table...

Mandatory
Trigger là một stored procedure không có tham số, dùng khi Mandatory
quản lí việc sửa dổi dữ liệu treen bảng, duy trì toàn vẹn
kiểm tra ràng buộc (check constraints) trên nhiều quan hệ ( Mandatory
DDL Triggers, DML Triggers, CLR Triggers, Logon
Triggers Mandatory
Mandatory

GO
CREATE TRIGGER tr_InsertIdLessThan20
ON Table1
FOR INSERT
AS
IF(SELECT i.Id FROM inserted i)>20
BEGIN
PRINT N'Bạn phải insert id nhỏ hơn
hoặc bằng 20'
ROLLBACK
END Mandatory

CREATE TRIGGER tr_InsertIdGreaterThan10


ON Table1
INSTEAD OF INSERT
AS
BEGIN
IF(SELECT i.Id FROM inserted i)<10
BEGIN
PRINT N'Bạn phải insert id>=10'
ROLLBACK
END
ELSE
INSERT Table1(Id) SELECT i.Id FROM
inserted i
END Mandatory
DISABLE TRIGGER tên_trigger
ON { tên_đối_tượng | DATABASE | SERVER } Mandatory
Trigger( tự đônngj gọi có thể chứ các lệnh truy
vấn từ các bảng khác hay những lệnh SQL phức
tạp hơn store procedure Mandatory
Transaction trong SQL là một đơn vị công việc
được thực hiện bởi một Database. Ví dụ, nếu bạn
tạo một bản ghi hoặc cập nhật một bản ghi hoặc
xóa một bản ghi từ một bảng, thì bạn đang thực
hiện transaction trên bảng đó. COMMIT: để lưu
các thay đổi.
ROLLBACK: để quay trở lại trạng thái trước khi có
thay đổi.
SAVEPOINT: tạo các điểm (point) bên trong các
nhóm transaction để ROLLBACK, tức là để quay
trở lại điểm trạng thái đó.
SET TRANSACTION: đặt một tên cho một
transaction.

Mandatory
Điều khiển các transaction để bảo đảm toàn vẹn
dữ liệu và để xử lý các Database Error. Mandatory

BEGIN { TRAN | TRANSACTION }


[ { transaction_name | @tran_name_variable }
[ WITH MARK [ 'description' ] ]
]
;
COMMIT { TRAN | TRANSACTION }
[ transaction_name | @tran_name_variable] ]; Mandatory
l,money... ) và thời gian/ngày tháng(date, datetime, ...).
iểu dữ liệu được chỉ định.
các bản ghi bảng bên trái (table1) hoặc bên phải (table2).
<<NPL Review Checklist>>

Topic Type

Theory

Theory

Theory
Practice

Theory

Theory
.NET
introduction
Theory

Practice

Theory

Theory
Practice
Practice

Theory

Theory

Theory

Theory
Theory
Theory

Theory

Declaration and Assignment


Declaration and Assignment

Theory

Theory
Theory
Practice
Theory

Theory

Theory
Theory
Practice

Theory

Theory
Operator
Theory

Theory
Operator

Theory

Conditional Controls
Theory
Theory
Theory
Theory
Theory
Theory
Loop Controls Theory

Theory
Theory

Theory
Array

Theory

Theory

DateTime
Theory

Theory

Theory
Practice

Theory
String
Theory
String

Theory

Theory

Theory

Theory
Other
Practice
Theory

Theory

Theory

Theory
Theory

Theory

Theory

Theory
Theory

Theory

Theory

Theory
Theory

OOP Part I
Theory

Theory

Theory

Theory

Theory

Theory

Theory

Theory

Theory

Theory

Theory

Theory

Theory

Theory

Theory

Theory
Theory

Theory

Theory

OOP Part II Theory

Theory

Theory

Theory

Theory

Theory

Theory

Theory

Theory

Theory

Theory
Theory

Theory

Theory

Theory

Theory
Advanced Concept
Theory

Theory
Theory

Theory

Theory

Theory

Theory

Theory

Theory
Theory
Theory
Theory
Practice
Theory
Theory
Theory

Theory
Theory
Theory
Theory
Theory

Theory
Theory

Theory
Theory

Theory
Theory
Collections and Generic

Theory

Theory

Theory

Theory
Theory
Theory

Theory
Theory
Theory

Theory

Theory

Theory
Exception

Theory
Theory
Theory

Theory
Theory
Theory
Theory
Theory

Theory
Theory

Theory

IO

Theory

Theory

Theory

Theory
Theory
Theory

Theory

Theory

Theory

Theory
Theory

Theory

Theory

MultiThreading & Asynchronous

Theory
Theory

Theory

Theory
Theory
Theory

Theory

Theory

Theory

Theory
Theory
Theory

Linq

Theory

Theory

Theory
Theory
Theory
Theory
Theory

Theory
Theory
Theory

Unit Test

Theory

Theory
Theory
Theory
Theory
Theory
Question

What is C#? Features of C# Programming Language?

What is Common Language Runtime (CLR)?

What is Just-In-Time (JIT) compiler?


Can you install visual studio on Windows or Mac OS?

What is NuGet and what does it do?

What are .NET Assemblies? Difference between Shared and Private Assemblies?

What is main method in C#?

How to create .NET Library in C# using Visual Studio?

Difference between .NET Core, .NET Standard and .NET Framework?

Difference between EXE and DLL?


How to write HelloWorld in C# using Visual Studio?
How to run HelloWorld application using CSC and msbuild command?

What are C# identifiers?

What are C# keywords? List of most common keyword with examples

What are scope of variables in C#?

Difference between Global and local variables?


What are value types?
What are reference types?
Difference between value type and reference type?

What are Casting and type conversions?

What are explicit, implicit casting? Examples


What are boxing and unboxing? How to use?

What is Garbage Collection(GC)? How GC works?


What are var and dynamic? How to use?
Difference between var and dynamic?
What are heap and stack? How heap and stack work?

What is the difference between Stack and Heap memory in C#?

How many types of values are passed to the method? Difference between them?

What are Ref and out keyword? How to use?


Difference between ref and out keywords? How to use it?

What are arithmetic operators? How to use it?

What are relational operators? How to use it?


What are relational operators? How to use it?

What are conditional operators? How to use it?


What are logical operators? How to use it?

What is the difference between == and .Equals method in c#?

What is if statement? How to use it?


What is switch statement? How to use?
Purposes of break statement in switch?
Structure of for loops? How to use?
Structure of while loops? How to use?
Structure of do-while loops? How to use?
Differences of while loop and do-while loop

Differences between break, continue and goto

What is array? How to declare, initial and use array

What is multidimension array? How to decare, initial and use it

What is datetime class? How to use it?

How to format datetime type?

What is TimeSpan class? How to use it?

What is string class? How to use it?

What is StringBuilder class? How to use it?

Differences between string class and StringBuilder class?


Passing String or StringBuilder to Function in C# (By Value or By Reference)?

What is tuples in c# 7.0? How to use it?

What is local function in c# 7.0? How to use it?

What is pattern matching? How to use it?

What is Regular Expression? How to use it

List commonly matches syntax of Regex?

List of Most Common Regular Expressions for validate email, phone, url, password.

How to use an enum? What is integral numeric of enum?


Difference between constant and enum?

Purposes of Optional & Named parameters?

What is namespace and their purposes?

What is a class? What is structure of the class?


What are class members?

What is constructor? How to use it?

What is defaut constructor?

What are properties? How to use it?


What is auto implement properties? How to use it?

What is Read-only Auto-properties?

What is Auto-Property Initializers?

What is struct? Difference between struct and class?

What is object? Difference between class and object?

What are OOP's features?

What is encapsulation in OOP and it's purpose?

What are access modifiers and their scopes

What is inheritance in OOP and it's purpose?

What are this and base keywords? How to use it?


What is sealed keyword? How to use it for class and method?

What is new keyword? How to use it?

What is abstraction in OOP and it's purpose?

What is abstract class and it's purpose?

What is abstract method? How to use it?

What is interface? How to use it?

What are Interface members and their features?


What is polymorphism in OOP and its purpose?

Difference between abstract class and interface

What is method overloading? How to use it?

What is method overriding? How to use it

Difference between abstract and virtual method?

What is constructor overloading? How to use it?

Purpose of static keyword? How to use it?

What is static constructor? How to user it?

What is static class? What are main features of a static class?

What are static member? How to use it?

What is extension method? How to use it?

What are attributes and their purposes?

What is the anonymous type

What is the delegate and its benefits? Why do we need C# delegates?


How to declare a delegate in C# ? How to use it?

What is Multicast Delegate in C#? Explain with one example.

What is the event and its benefits?

What is the anonymous method and its benefits?

What is the lambda expression? How to use it?

what is the query expression?

what is the system delegate?


How to use async and await with catch or finally blocks?

What is Nameof Expressions? How to use them?

How to use Nullable Types in .NET?

What all are the advantages of Partial class and when to use it?

How to return multiple values from a function in C#?

What is the use of the IDisposable interface in C#?

What are the differences between Dispose and Finalize ?


What is tuples in c# 7.0? How to use it?(Đã trả lời phía trên dòng 62)
What is local function in c# 7.0? How to use it?
What is pattern matching? How to use it?

What is Regular Expression? How to use it


List commonly matches syntax of Regex?
List of Most Common Regular Expressions for validate email, phone, url, password.

What is generic? Advantage and Disadvantage of generic?


How to use generic for methods? Examples
How to use generic for classes? Examples
How to use generic for interface? What is its benefits?
What is collection? How many collection types?

What is generic collection? Purposes of generic collection


What is non generic collection? Purposes of non generic collection

What is List collection? Advantage of list collection?


What is HashTable and its benefits?

What is SortList and its features?


What is Dictionary and its features?

What is ArrayList? Purposes?

Difference Array and ArrayList?

Difference Hashtable and Dictionary?

Difference List and ArrayList?


What is Stack and its features? How to use it?
What is Queue and its features? How to use it?

What is the exception. Its purposes


Difference between runtime exception and error(syntax, compile)?
What happens if an exception is raised in the program?

What are runtime exceptions? How to avoid it?

What are checked and uncheched exceptions? Difference between them?

What is try vs catch structure? Explain about try-catch implementation

How to catch multiple exceptions at once in C#?


What is the main use of a finally block in exception handling?
What is throw keyword? How to use it?

What is the difference between throw and throw ex?


What is custom exception? How to create a custom exception?
What is NullReferenceException and How to avoid it?
Define C# I/O classes? List the commonly used classes?
What is File Class? List the commonly used methods?

What is FileInfo Class? List the commonly used methods?


What is Path Class? List the commonly used methods?

What is Stream Class? List the commonly used methods?

What is StreamWriter Class? List the commonly used methods?

What is StreamReader Class? List the commonly used methods?

What is Directory Class? List the commonly used methods?

What are IO Exceptions? How to use them? (some cases)


What is the thread and its benefits?
What are the thread pools and their benefits?

What is the task? How to use it?

Difference between Threads and Tasks?

What is Multithreading?

What is Concurrency and its features?


What is Thread Class?

What is Thread Interruption?

What is the meaning of Thread Priority? How to use it?

What is the difference between a process and a thread?


What is Lock? How to use it?
How to avoid Deadlock in C#

Difference between Synchronous and Asynchronous?

What is the purpose of async/await keywords?

How can you cancel an Async operation in C#?


What's the difference between asynchronous programming and multithreaded programming?
What is LINQ? What are advantages of LINQ?

What is the difference between First() and Take(1)?

When to use First() and when to use FirstOrDefault() with LINQ?

What are LINQ Standard Query Operators? How standard query operators useful in LINQ?

What is lambda expressions in LINQ?


Can you provide a concise distinction between anonymous method and lambda expressions?
Difference between Select and SelectMany?

Difference between returning IQueryable vs. IEnumerable?

Difference between First and FirstOrDefault in LINQ

Difference between Single and SingleOrDefault in LINQ


What are different methods to write LINQ Query?
List the commonly used LinQ method and their purposes?
What is unit testing? Advantage of unit testing?
Difference between Automated and Manual Testing?

Difference between Black Box and White Box Testing?


Difference Unit, Integration and Funtional Testing?
What is Nunit and its features?

List the commonly used Nunit Attributes and their purposes?

List the commonly used Assert methods and their purposes?


Trainer Assessment
Link ref (for Practice) Trainee Assessment
P Audit
Note Priority Severity

C# is a simple, modern, object oriented language derived from C++ and Java.
MAIN FEATURES OF C#: SIMPLE, MODERN, OBJECT ORIENTED, TYPE SAFE, INTEROPERABILITY,
SCALABLE AND UPDATEABLE
.NET provides a run-time environment, called the common language runtime, that runs the
code and provides services that make the development process easier.

A Just-In-Time (JIT) compiler is a feature of the run-time interpreter, that instead of interpreting
bytecode every time a method is invoked, will compile the bytecode into the machine code
instructions of the running machine, and then invoke this object code instead
yes mandatory

NuGet provides the central nuget.org repository with support for private hosting.
NuGet provides the tools developers need for creating, publishing, and consuming packages.
Most importantly, NuGet maintains a reference list of packages used in a project and the ability
to restore and update those packages from that list.

.Net Assembly is a logical unit of code, that contains code which the Common Language
Runtime (CLR) executes. It is the smallest unit of deployment of a .net application and it can be
a .dll or an exe
A private assembly is normally used by a single application, and is stored in the application's
directory, or a sub-directory beneath. A shared assembly is intended to be used by multiple
applications, and is normally stored in the Global Assembly Cache (GAC), which is a central
repository
Add a new for .NETassemblies.
class library project named "StringLibrary" to the solution:
a, Right-click on the solution in Solution Explorer and select Add > New Project.
The
b, OnMain
the method
Add a new is the entrypage,
project pointenter
of a C# application.
library Whenbox.
in the search the application is started,
Choose C# or the
Visual Basic
Main Framework
.NET
from method
the is the
Language andfirst
.NET
list, method
and then that
Core is invoked.
choose All platforms from the Platform list. Choose the Class mandatory
Library template, and then choose Next.
The
c, On.NET
the Framework
Configure your andnew
.NETproject
Core are implementations
page, of .NET
enter StringLibrary in the Project name box, and
Both frameworks
then choose Next.have runtime which manages the execution of applications
The
d, Onbase
the class libraryinformation
Additional is also a partpage,
of both frameworks
select .NET 6 (Long-term support), and then choose
We can create different types of projects in either framework
Create. mandatory
.NET Standard
The .NET Standard is a specification and not a .NET implementation
It specifies a set of APIs that all the .NET implementations have to implement
We can create only class library type projects with it

1.EXE is an extension used for executable files while DLL is the extension for a dynamic link
library. 2.An EXE file can be run independently while a DLL is used by other applications. 3.A DLL
file can be reused by other applications while an EXE cannot. 4.Exe is for single use whereas you
can use Dll for multiple use 5.Dll is an In-Process Component whereas EXE is an OUt-Process
Component. 6.You can create an objects of Dll but not of the EXE.
using System;
namespace HelloWorld {
class Program {
static void Main(string[] args) {
Console.WriteLine("Hello C#");
}
}
}
if you use Visual studio to code C# then use CTRL + F5 instead of F5 to run

An identifier, in C#, is the user-defined name of a program element. It can be a namespace,


class, method, variable or interface.
Identifiers are symbols used to uniquely identify a program element in the code. mandatory

Modifier
keywords:abstract,async,const,event,extern,new,override,partial,readonly,sealed,static,unsafe,
virtual,volatile
Access Modifiers:public, private, internal, protected
Statement Keywords: if, else, switch case, do while, for, foreach, in, while, break, continue,
default, return, yield...
Method Parameter Keywords: params, ref,out
Access keywords: base, this

In simple terms, scope of a variable is its lifetime in the program.


This means that the scope of a variable is the block of code in the entire program where the
variable is declared, used, and can be modified. mandatory

Variables are classified into Global variables and Local variables based on their scope. The main
difference between Global and local variables is that global variables can be accessed globally in
the entire program, whereas local variables can be accessed only within the function or block in
which
A datathey
typeare adefined.
istypes,
value type if it holds a data value mandatory
Unlike value a reference type doesn't storewithin its own
its value memory
directly. space.
Instead, It means
it stores the the
variables
A
address where the value is being stored. In other words, a reference type contains a pointer toa
Value Type
of these
holdsdata
the types
data within
directly
its contain
own memory
values.allocation and a Reference Type contains mandatory
pointer
another to another memory location that holds the real data. Reference Type variables are
stored inmemory
the heaplocation that
while Value holds the data.
Type variables are stored in the stack. mandatory

In type casting, a data type is converted into another data type by a programmer using casting
operator.
Whereas in type conversion, a data type is converted into another data type by a compiler. mandatory

Implicit conversion is the conversion in which a derived class is converted into a base class like
int into a float type.
EX: int i = 75;
long j = i;
Explicit conversion is the conversion that may cause data loss. Explicit conversion converts the
base class into the derived class
EX: double d = 75.25;
int i;
i = (int)d;
Boxing is the process of converting a value type to the type object or to any interface type
implemented by this value type. When the common language runtime (CLR) boxes a value
type, it wraps the value inside a System.Object instance and stores it on the managed heap.
Unboxing extracts the value type from the object
EX boxing: int i = 123;
// The following line boxes i.
object o = i;
EX unboxing: o = 123;
i = (int)o; // unboxing

In the common language runtime (CLR), the garbage collector (GC) serves as an automatic
var is a statically typed variable. It results in a strongly typed variable, in other words the data
memory manager.
type of these The garbage
variables collector
are inferred manages
at compile time.the allocation
This and release
is done based on theof memory
type forthat
of value an
application. For developers working
these variables are initialized with. with managed code, this means that you don't have to
write code to perform memory management tasks
dynamic are dynamically typed variables. This means, their type is inferred at run-time and not
A stack
the
var: Theisvariables
a special
compile time inarea of computer’s
contrast
are declaredtousing memory
var type.
var keyword which stores temporary
are statically typed. variables created by a mandatory
function. In stack, variables are declared, stored and initialized during runtime.
dynamic:
The heap The variablesused
is a memory are declared using dynamic
by programming keyword
languages are dynamically
to store typed.
global variables. By default, all mandatory
global variable are stored in heap memory space. It supports Dynamic memory allocation.
-Stack is a linear data structure whereas Heap is a hierarchical data structure.
-Stack memory will never become fragmented whereas Heap memory can become fragmented
as blocks of memory are first allocated and then freed.
-Stack accesses local variables only while Heap allows you to access variables globally.
-Stack variables can’t be resized whereas Heap variables can be resized.
-Stack memory is allocated in a contiguous block whereas Heap memory is allocated in any
random order.
-Stack doesn’t require to de-allocate variables whereas in Heap de-allocation is needed.
-Stack allocation and deallocation are done by compiler instructions whereas Heap allocation
and deallocation is done by the programmer.'

Truyền tham trị: truyền giá trị của biến, mọi tính toán trong method khi kết thúc ko làm thay đổi
giá tị; Truyền Tham chiếu truyền địa chỉ ô nhớ của biến, mọi tính toán trong phương thức sẽ thay
đổi giá trị của biến tham số truyền vào khi phươgn thức k.thúc. mandatory

Cùng cho phép truyền vào 1 reference của 1 biến vào 1 hàm,
ref ko cần khởi tạo giá trị truyền vào, out cần khởi tạo gtri truyền vào

An arithmetic operator is a mathematical function that takes two operands and performs a
calculation on them. They are used in common arithmetic and most computer languages
contain a set of such operators that can be used within equations to perform a number of types
of sequential calculation. Basic arithmetic operators include:
Addition (+)
Subtraction (-)
Multiplication (×)
Division (÷) mandatory

In c#, Relational Operators are useful to check the relation between two operands like we can
determine whether two operand values equal or not, etc., based on our requirements.
Generally, the c# relational operators will return true only when the defined operands
relationship becomes true. Otherwise, it will return false.
For example, we have integer variables a = 10, b = 20. If we apply a relational operator >= (a >=
b), we will get the result false because the variable “a” contains a value that is less than
variable b. mandatory
mandatory
A conditional operator in C#, is an operator that takes three operands (conditions to be
checked), the value when the condition is true and value when the condition is false. mandatory
The following operators perform logical operations with bool operands:
Unary ! (logical negation) operator.
Binary & (logical AND), | (logical OR), and ^ (logical exclusive OR) operators. Those operators
always evaluate both operands.
Binary && (conditional logical AND) and || (conditional logical OR) operators. Those operators
evaluate the right-hand operand only if it's necessary.
For operands of the integral numeric types, the &, |, and ^ operators perform bitwise logical
operations. mandatory

The Equality Operator ( ==) is the comparison operator and the Equals() method in C# is used to
compare the content of a string.
The Equals() method compares only content.

bool condition = true;


if (condition)
{ Console.WriteLine("The variable is set to true.");}
else{Console.WriteLine("The variable is set to false.");} mandatory
switch(biểu thức){ case giá trị 1: câu lệnh 1; break; ... mandatory
Nếu chương trình chạy đến biểu thức đúng, thì break sẽ thoát ra khỏi vòng lặp mandatory
for ([Khởi tạo]; [Điều kiện lặp]; [Bước lặp lại]) mandatory
while (<Điều kiện lặp>){ // khối lệnh lặp lại } mandatory
do { // khối lệnh lặp lai } while (<Điều kiện lặp>); mandatory
Khác nhau là while: lặp rồi kiểm tra, do-while thì làm xong mới kiểm tra điều kiện mandatory
Break: thoát ra khỏi vòng lặp nếu biểu thức đúng; Continue: dùng để bỏ qua bước lặp (iteration)
hiện tại để tiếp tục sang bước lặp tiếp theo.goto điều hướng đến một lable mandatory
mandatory

mảng là một cấu trúc đại diện cho một tập hợp các giá trị hoặc đối tượng có cùng kiểu có độ dài
cố định được sắp xếp theo thứ tự.
ex: string[] cars = {"Volvo", "BMW", "Ford", "Mazda"}; mandatory

Mảng nhiều chiều trong C # là mảng chứa nhiều hơn một hàng để lưu trữ dữ liệu.
Dưới đây là một số thông tin về mảng đa chiều:
-Mảng đa chiều còn được gọi là mảng hình chữ nhật trong C #
-Mỗi hàng trong mảng có cùng số phần tử (độ dài).
Ex: int [,] _MultiDimentionArray = new int [4, 2] {{3, 7}, {2, 9}, {0, 4}, {3, 1}}; mandatory

DateTime là cấu trúc để làm việc với ngày và giờ trong c#


Example: Create DateTime Object
DateTime dt = new DateTime(); mandatory

ví dụ: DateTime aDate = DateTime.Now;


Console.WriteLine(aDate.ToString("MM/dd/yyyy"));
Console.WriteLine(aDate.ToString("dddd, dd MMMM yyyy")); mandatory

TimeSpan biểu thị khoảng thời gian là hiệu số giữa hai thời điểm được đo bằng số ngày, giờ,
phút và giây. C # TimeSpan được sử dụng để so sánh hai đối tượng C # DateTime nhằm tìm ra
sự khác biệt giữa hai ngày.
String là một kiểu dữ liệu tham chiếu được dùng để lưu trữ chuỗi ký tự, string class là một alias
của String mandatory
mandatory

Lớp StringBuilder thao tác trực tiếp với chuỗi gốc và giúp tiết kiệm bộ nhớ hơn so với lớp
String. mandatory

String Builder dùng để thao tác với các chuỗi cần thay đổi, tốn ít bộ nhớ so với String phải tạo
nhiều vùng nhớ mandatory
Trong C #, chuỗi là một kiểu tham chiếu nhưng nó được truyền theo giá trị.
Phần sau không thể thay đổi giá trị vì s được truyền theo giá trị:
static void processString ( ref String s )
{
s = "change" ;
}
bạn có thể bỏ qua ref từ khóa và chúng sẽ được chuyển qua tham chiếu, ví dụ:
static void processStringBuilder ( StringBuilder sb )
{
sb . Rõ ràng ( ) ;
sb . AppendLine ( "đã thay đổi" ) ;
} mandatory
Tuple là một chuỗi các đối tượng không đồng nhất có thứ tự. Chúng ta có thể thường viết các
phương thức trả về nhiều giá trị, vì vậy chúng ta cần tạo một cấu trúc đơn giản chứa nhiều hơn
một phần tử dữ liệ

Tính năng chức năng cục bộ được giới thiệu trong C # 7.0. Nó cho phép bạn khai báo một
phương thức bên trong phần thân của một phương thức đã được xác định. Hay nói cách khác,
chúng ta có thể nói rằng một hàm cục bộ là một hàm riêng của một hàm mà phạm vi của nó
được giới hạn trong hàm mà nó được tạo ra.

là một kỹ thuật trong đó bạn kiểm tra một biểu thức để xác định xem biểu thức đó có các đặc
điểm nhất định hay không. Đối sánh mẫu C # cung cấp cú pháp ngắn gọn hơn để kiểm tra các
biểu thức và thực hiện hành động khi một biểu thức khớp
mandatory
Trong C #, Biểu thức chính quy là một mẫu được sử dụng để phân tích cú pháp và kiểm tra xem mandatory
văn bản đầu vào đã cho có khớp với mẫu đã cho hay không. Trong C #, Biểu thức chính quy
thường được gọi là C # Regex. .Net Framework cung cấp công cụ biểu thức chính quy cho phép
đối sánh mẫu.

\d đại diện kí tự số; \D kí tự ko phải số; \s kí tự khoảng trắng; \S kí tự ko phải space; \w kí tự


word. \W
email: ko phải word
/^\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/
url: /(http(s)?://)?([\w-]+\.)+[\w-]+[.com]+(/[/?%&=]*)?/
pass: / ^[a-z0-9\.@#\$%&]+$/
phone: / ^((\+){0,1}91(\s){0,1}(\-){0,1}(\s){0,1}){0,1}9[0-9](\s){0,1}(\-){0,1}(\s){0,1}[1-9]{1}[0-9]{7}$/ mandatory

enum là gom nhóm các hằng số lại với nhau và có chung một tên gọi, Là một kiểu dữ liệu tham trị,
mqh enum và int: RED, BLUE, YELLOW đại diện cho các số nguyên lần lượt là 0, 1, 2 mandatory
Hằng số có thể là bất kỳ loại dữ liệu nào nhưng enum là enum. mandatory
Optional param là những tham số được gán giá trị default của method. Khi gọi method có thể
không cần truyền giá trị. Optional param bắt buộc phải đứng sau những tham số cố định.
Named param là kiểu truyền tham số cho method bằng cách truyền
<tên tham số được đặt trong method> : <giá trị của tham số>

Namespace được thiết kế để phân nhóm toàn bộ các kiểu dữ liệu theo một cấu trúc phân cấp.
Giúp tránh hiện tượng xung đột tên.

Trong lập trình hướng đối tượng, lớp (class) là một kiểu dữ liệu tham chiếu nó định nghĩa một
tập hợp các biến (trường dữ liệu, thuộc tính) và phương thức (gọi chúng là các member - thành
viên lớp). mandatory
gồm các thuộc tính , phương thức.

Constructor là hàm dựng, nó có nhiệm vụ khởi tạo các biến, đối tượng, thuộc tính... được khai
báo trong cái class đó. Hàm này được gọi ngay khi new class mandatory

Default constructor là hàm tạo không được khai báo trong class (nếu khai báo sẽ gọi là hàm tạo
không tham số)
Hàm tạo mặc định sẽ gán giá trị mặc định cho các biến (0 cho kiểu giá trị, null cho kiểu tham
chiếu) mandatory

Thuộc tính là một method đặc biệt của lớp chứa 2 method set và get thao tác với một field của
class
Thuộc tính có cách gọi ngắn gọn như một field mandatory
những property được viết ngắn gọn {get;set;}. Backed field được sinh ra tự động mà không cần
khai báo

Read-only auto-properties cung cấp 1 cú pháp rõ ràng để tạo ra 1 thuộc tính không thể thay đổi
(immutable).

những property được viết ngắn gọn {get;set;}. Backed field được sinh ra tự động mà không cần
khai báo

Struct là một kiểu dữ liệu có cấu trúc, được kết hợp từ các kiểu dữ liệu nguyên thuỷ do người
lập trình định nghĩa để thuận tiện trong việc quản lý dữ liệu và lập trình

Class là một nguyên mẫu xác định biến và phương thức chung cho tất cả các đối tượng.
Đối tượng là một thể hiện cụ thể của class

Tính kế thừa, tính đóng gói, tính trừu tượng, tính đa hình mandatory

Cho phép bảo toàn dữ liệu trong một lớp, giới hạn phạm vi truy cập giữa các lớp và các name
space. mandatory

public, protected, internal, private

Cho phép lớp con có thể kế thừa lại các trường hoặc các phương thức của lớp cha. Tuy nhiên
trong c# không có tính đa kế thừa do vậy 1 lớp con chỉ kế thừa đc 1 lớp cha và triển khai được
nhiều interface. mandatory

this truy cập các thành viên của lớp , base truy cập các thành viên của lớp cha mà lớp kế thừa
sealed : cấm kế thừa. Những sealed member không thể được kế thừa. Sealed không cho phép
kế thừa
khi lớp con kế thừa lớp cha nhưng không muốn override method của lớp cha (có thể có virtual
hoặc không), ta dung từ khóa new để tạo method mới cùng signature vs method của lớp cha.
Obj khởi tạo ở lớp con khi gọi đến method đó:
+ nếu obj được khai báo thuộc lớp cha nó sẽ dùng phương thức của lớp cha
+ nếu obj được khai báo thuộc lớp con , nó sẽ dùng phương thức của lớp con

Lớp trừu tượng: che giấu chi tiết ko cần thiết(design), thể hiện ra bên ngoài những đặc tính cơ
bản của 1 object cụ thể mandatory

Abstract Class là hình mẫu chung hướng về các lớp con là tập hợp của các lớp con chứa các
trường và các phương thức mà các lớp con đều có thể kế thừa.

Là phương thức của lớp cha có thể được kế thừa và triển khai ở lớp con.

Interface là muột khuân mẫu chung chứa các khai báo phương thức nhưng không triển khai
chúng, interface cho phép nhiều lớp triển khai

instance methods, properties, events, indexers, or any combination of those four member
types
Tính đa hình trong C# là khi một method hoặc property có thể thực thi theo nhiều cách khác
nhau.
Đa
chứahình tĩnh là method
abstract đa hình trong compile time hay overloading.
Đa hình động
abstract class đa
chohình
lớptrong runtime
khác kế hayinterface
thừa còn overriding.
cho lớp khác triển khai (kế thừa thì phải mandatory
override còn implement thì không)
1 lớp chỉ có thể kế thừa 1 abstract class, tuy nhiên có thể thực thi nhiều interface.
abstract class và các thành phần của nó có thể chứa các acess modifier, interface và các method
của nó chỉ có thể là public hoặc internal mandatory

Là một phương pháp cho phép tạo nhiều phương thức trong một class có cùng tên nhưng
khác nhau về số lượng hay kiểu dữ liệu parameters mandatory

Là một phương pháp được sử dụng khi một lớp con kế thừa từ lớp cha và muốn định nghĩa lại
một phương thức đã có mặt ở lớp cha. mandatory

Các phương thức ảo có một triển khai và cung cấp cho các lớp dẫn xuất tùy chọn ghi đè nó. Các
phương thức trừu tượng không cung cấp một triển khai và buộc các lớp dẫn xuất ghi đè
phương thức

Là một phương pháp cho phép tạo nhiều constructor với các tập hợp parameter khác nhau.
Cho phép chúng ta sử dụng class theo nhiều cách khác nhau. mandatory

static class là class chỉ chứa các thành viên tĩnh. Static class là abstract ( không thể khởi tạo đối
tượng) và sealed (không thể kế thừa)
static method là những method được truy cập thông qua tên class, static method chỉ có thể
truy cập vào các static member của class mandatory

static constructor là constructor được gọi 1 lần duy nhất, dùng để khởi tạo các static field của
class
static class là class chỉ chứa các thành viên tĩnh. Static class là abstract ( không thể khởi tạo đối
tượng) và sealed (không thể kế thừa)
static method là những method được truy cập thông qua tên class, static method chỉ có thể
truy cập vào các static member của class

static là những thành phần tĩnh của một class, được cấp phát bộ nhớ một lần duy nhất khi tạo
class
static không cần khởi tạo obj để truy cập mà truy cập thông qua tên lớp
Những static method thuộc static class nhưng lại sử dụng thông qua các obj thuộc class khác
params của method cần phải có [ this <tên class của obj sử dụng extension> <tên params>] là
tham số đầu tiên

là một thẻ khai báo, được sử dụng để truyền thông tin tới runtime về các hành vi của các phần
tử khác nhau như các lớp, phương thức, cấu trúc, enum, assembly… trong chương trình của
bạn.
Anonymous Type dùng để đóng gói cách thuộc tính
chỉ đọc (read-only properties) vào một đối tượng mà
không cần xác định rõ ràng loại (type) của nó.

Delegate trong C# là tương tự như con trỏ tới các hàm, Một Delegate là một biến kiểu tham
chiếu mà giữ tham chiếu tới một phương thức. Tham chiếu đó có thể được thay đổi tại
runtime. mandatory
{
Console.WriteLine(@"Perimeter is {0}", (2 * (Width + Height)));
delegate
} void Del(string str);
static void Main(string[] args)
// Declare
{ a method with the same signature as the delegate.
static void Notify(string
Rectangle name)
rect = new Rectangle();
{ RectangleDelete rectDelegate = new RectangleDelete(rect.GetArea);
Console.WriteLine($"Notification
//RectangleDelete rectDelegate received for: {name}");
= rect.GetArea;
} //binding a method with delegate object
// In this example rectDelegate is a multicast delegate. You use += operator
// to chain delegates together and -= operator to remove.
Del del3 = delegate(string
rectDelegate name)
+= rect.GetPerimeter;
{ Console.WriteLine($"Notification
rectDelegate(23.45, 67.89); received for: {name}"); };
Console.WriteLine();
// Instantiate Del by using a lambda
rectDelegate.Invoke(13.45, expression.
76.89);
Del del4 = name => { Console.WriteLine($"Notification received for: {name}"); };
Console.WriteLine();
//Removing a method from delegate object
rectDelegate -= rect.GetPerimeter;
rectDelegate.Invoke(13.45, 76.89);
Console.ReadKey();
}
}

Event là Delegate với mục đích để cho lớp khác hoặc đối tượng cha của đối tượng hiện tại ủy
thác(định nghĩa) hàm vào trong đó. mandatory

anonymous method được sử dụng để định nghĩa các đại biểu và viết các hàm nội tuyến. Lợi ích
của các phương pháp ẩn danh là cải thiện trải nghiệm phát triển so với việc sử dụng các đại
biểu. Lợi ích chính của các phương pháp ẩn danh là triển khai các đại biểu với ít mã hơn.

Biểu thức lambda là một khối mã ngắn lấy tham số và trả về giá trị. Các biểu thức Lambda
tương tự như các phương thức, nhưng chúng không cần tên và chúng có thể được triển khai
ngay trong phần thân của một phương thức.
parameter -> expression
là một biểu thức được viết bằng cách sử dụng cú pháp truy vấn LINQ. LINQ (Truy vấn tích hợp
ngôn ngữ) là một ngôn ngữ được sử dụng để tạo truy vấn.

là một cấu trúc dữ liệu tham chiếu đến một phương thức tĩnh hoặc một thể hiện của lớp và một
phương thức thể hiện của lớp đó.

Một nameofbiểu thức tạo ra tên của một biến, kiểu hoặc thành viên dưới dạng hằng số chuỗi:
Console.WriteLine(nameof(List<int>)); // output: List
Console.WriteLine(nameof(List<int>.Count)); // output: Count

kiểu nullable cho phép bạn gán giá trị null cho các biến kiểu giá trị. Bạn có thể khai báo kiểu
nullable bằng cách sử dụng Nullable<t> T là một kiểu.

Advantages of a partial class


Bạn có thể tách mã thiết kế giao diện người dùng và mã logic nghiệp vụ để dễ đọc và dễ hiểu
Khi làm việc với nguồn được tạo tự động, mã có thể được thêm vào lớp mà không cần phải tạo
lại tệp nguồn
Nhiều nhà phát triển có thể đồng thời làm việc mã cho cùng một lớp
Bạn có thể duy trì ứng dụng của mình tốt hơn bằng cách thu gọn các lớp lớn.

Chúng ta có thể trả về nhiều hơn một giá trị từ một hàm bằng cách sử dụng phương thức được
gọi là “gọi theo địa chỉ” hoặc “gọi theo tham chiếu”

IDisposable là một giao diện chứa một phương thức duy nhất, Dispose (), để giải phóng các tài
nguyên không được quản lý, như tệp, luồng, kết nối cơ sở dữ liệu, v.v.

Finalize cung cấp quyền kiểm soát ngầm đối với việc giải phóng tài nguyên. Nó được gọi bởi
người thu gom rác. Loại bỏ là một cách để cung cấp quyền kiểm soát rõ ràng đối với việc giải
phóng tài nguyên và có thể được gọi trực tiếp.
mandatory
mandatory

mandatory

Generic là lập trình tổng quát hóa hay tham số kiểu dữ liệu.
Khi cần thao tác với các đối tượng hay tạo ra một lớp có thành viên là các đối tượng chưa xác
định kiểu dữ liệu, ta sẽ sử dụng generic mandatory
[access modifier] (static) [return type] [method name]<T> ([params])
[access modifier] (static) [return type] [class name]<T>

Collection giúp lưu trưc và thao tác với dữ liệu.

A generic collection gets all the benefit of generics.


It doesn't need to do boxing and unboxing while storing or retrieving
items and so performance is improved. mandatory
mandatory

List Generic Collections giúp lưu trữ và quản lý một danh sách các
đối tượng theo kiểu mảng (truy cập các phần tử bên trong thông qua
chỉ số index).
Là một Collections lưu trữ dữ liệu dưới dạng cặp Key - Value mandatory
SortedList cũng là một Collections lưu trữ dữ liệu dưới dạng cặp
Key - Value, được sắp xếp theo Key tự động mandatory
Dictionary trong C# là một Collections lưu trữ dữ liệu dưới dạng cặp Key - Value mandatory

Là một Collections giúp lưu trữ và quản lý một danh sách các đối tượng theo
kiểu mảng (truy cập các phần tử bên trong thông qua chỉ số index),
có thể thêm hoặc xoá các phần tử mandatory

Array có kích thước cố định, lưu trữ dữ liệu kiểu nguyên thủy và đối tượng,
Không hỗ trợ kiểu Generic;
ArrayList Kích thước có thể thay đổi được,
Chỉ có thể lưu trữ dữ liệu kiểu đối tượng, Hỗ trợ kiểu Generic mandatory

Dictionary is generic in nature, When a request is made to the dictionary and


if the key does not exists , you get an exception When a request is made to the
Hashtable and if the key does not exist , null is returned. Doesn’t require boxing
and unboxing; Hashtable is non generic in nature, if the key does not exist , null
is returned, Requires boxing and unboxing mandatory

ArrayList là một tập (collection) của kiểu Object, khi chúng ta thêm bất kì một
item (thuộc bất kì kiểu dữ liệu) nào vào, nó tự động upcasting và convert về
kiểu Object rồi sau đó add vào Object collection của nó, ArrayList không phải là
generic class; List có thể tạo ra collection của bất kì data type nào, List là
generic class; lợi ích của việc dùng List so với ArrlayList là tiết kiệm thời gian
truy xuất (boxing and unboxing the object) mandatory
Stack là một loại bộ sưu tập đặc biệt lưu trữ các yếu tố theo phong cách LIFO mandatory
Queue là một loại bộ sưu tập đặc biệt lưu trữ các yếu tố theo phong cách FIFO
Exception là một loại lỗi đặc biệt. Lỗi này xuất hiện vào lúc thực thi,
không được biết trước trong khi ta đang xây dựng chương trình mandatory
Lỗi syntax , compile thì có thể dễ dàng phát hiện khi biên dịch còn lỗi runtime
chỉ được phát hiện khi chạy chương trình. mandatory
Chương trình sẽ chết.
The errors that occur during the execution of a program are called the
runtime errors
Điểm khác biệt giữa các lớp checked và unchecked expcetion chính là thời điểm
xác định được expcetion có thể xảy ra.

try: Một khối try nhận diện một khối code mà ở đó các exception cụ thể được kích hoạt. Nó
được theo sau bởi một hoặc nhiều khối catch.
catch: Một chương trình bắt một Exception với một Exception Handler tại vị trí trong một
chương trình nơi bạn muốn xử lý vấn đề đó. mandatory

try
{// các lệnh có thể gây ra ngoại lệ (exception)}
catch( tên_ngoại_lệ e1 ){// phần code để xử lý lỗi}
catch( tên_ngoại_lệ e2 ){// phần code để xử lý lỗi}
catch( tên_ngoại_lệ eN ){ // phần code để xử lý lỗi}
finally{// các lệnh được thực thi} mandatory
Thực hiện khối lệnh bên trong ngay cả khi chương trình k xảy ra ngoại lệ. mandatory
throw: Một chương trình ném một exception khi có một vấn đề xuất hiện mandatory

The main difference between throw and throw ex in C# is that throw provides
information about from where the exception was thrown and also about the
actual exception while throw ex provides information only about from where
the exception was thrown
Là ngoại lệ do người dùng tự định nghĩa.

Là loại lỗi xuất
lớp được sửhiện
dụngkhi
đểsử dụng
thực một
hiện cácbiến
hoạtmàđộng
biếnkhác
đó không
nhau trỏ
với vào
tệp,object nào.
chẳng hạn như tạo và xóa tệp, đọc hoặc ghi vào tệp, đóng tệp, v.v.
File là tập dữ liệu được lưu trữ trên ổ đĩa.

FileInfo là một class đại diện cho một file, nó cung cấp các thuộc tính,
phương thức cho việc tạo, copy, xóa, di chuyển và mở file.
Nó hỗ trợ tạo đối tượng FileStream. Class này không cho phép có class con.
cho phép chúng ta thực hiện các thao tác lấy tên tệp, định dạng tệp, v.v…

.Stream là một lớp trừu tượng cung cấp các phương thức tiêu chuẩn để chuyển byte (đọc, viết,
v.v.) sang nguồn. Nó giống như một lớp trình bao bọc để chuyển byte. Các lớp cần đọc / ghi
byte từ một nguồn cụ thể phải thực hiện lớp luồng.
List methods: FILESTREAM, MemoryStream, BufferedStream, NetworkStream, Pipestream,
CryptosTream

Lớp StreamWriter trong C # ghi các ký tự vào một luồng trong một bảng mã được chỉ định.
Phương thức StreamWriter.Write () chịu trách nhiệm ghi văn bản vào một luồng
Write – Writes data to the stream.
WriteAsync - Writes data to the stream asynchronously.
WriteLine – Writes a line terminator to the text string or stream.
WriteLineAsync - Writes a line terminator to the text string or stream asynchronously.
Creating a StreamWriter using a Filename

Lớp C # StreamReader được sử dụng để đọc chuỗi từ luồng. Nó kế thừa lớp TextReader. Nó cung cấp các phương thức Read () và Rea

Directory class trong C # hiển thị các phương thức tạo, xóa, di chuyển các hoạt động, v.v. đến các thư mục và thư mục con. Vì bản chất

IOException là lớp cơ sở cho các ngoại lệ được ném ra trong khi truy cập thông tin bằng cách sử dụng luồng, tệp và thư mục.
Các luồng cung cấp một cách để cải thiện hiệu suất ứng dụng thông qua song song. Luồng thể
hiện một cách tiếp cận phần mềm để cải thiện hiệu suất của hệ điều hành bằng cách giảm luồng
chi phí tương đương với một quy trình cổ điển.

Mỗi luồng thuộc chính xác một quy trình và không có luồng nào có thể tồn tại bên ngoài một
quy trình.
Nhóm luồng trong C # không là gì ngoài một tập hợp các luồng có thể được sử dụng lại để thực hiện không có tác vụ nào trong nền.

Task là một đối tượng đại diện cho một số công việc cần được thực hiện. Task có thể cho bạn biết nếu công việc đã hoàn thành và nếu

Một task là một cái gì đó bạn muốn hoàn thành.


Một thread là một trong nhiều công nhân có thể thực hiện nhiệm vụ đó.

là một quá trình trong đó nhiều luồng hoạt động đồng thời. Đó là một quá trình để đạt được đa nhiệm. Nó tiết kiệm thời gian vì nhiều

Concurrency là việc thực hiện nhiều chuỗi lệnh cùng một lúc. Nó xảy ra trong hệ điều hành khi có một số luồng tiến trình chạy song son
Lớp Thread là class cung cấp các thuộc tính và phương thức để tạo và điều khiển các luồng. Nó được tìm thấy trong không gian tên Sy

nó ngắt một chuỗi từ trạng thái bị chặn, tức là trạng thái WaitSleepJoin, bằng cách ném ngoại lệ ThreadInterruptException.

Mức độ ưu tiên của một luồng cho biết tần suất một luồng có được quyền truy cập vào tài
nguyên CPU. Bất cứ khi nào chúng ta tạo một luồng trong C #, nó luôn có một số ưu tiên được
gán cho nó.
public ThreadPriority Priority{ get; set; }

-Quy trình có nghĩa là một chương trình đang được thực thi, trong khi luồng có nghĩa là một
phân đoạn của một quy trình.
-Quy trình không nhẹ, ngược lại Luồng nhẹ hơn.
-Một Quy trình mất nhiều thời gian hơn để kết thúc và luồng mất ít thời gian hơn để kết thúc.
-Quá trình mất nhiều thời gian hơn để tạo, trong khi Luồng mất ít thời gian hơn để tạo.
-Quá trình có thể mất nhiều thời gian hơn để chuyển đổi ngữ cảnh trong khi Luồng mất ít thời
gian hơn để chuyển đổi ngữ cảnh.
-Một Tiến trình chủ yếu bị cô lập, trong khi Luồng chia sẻ bộ nhớ.
-Quy trình không chia sẻ dữ liệu và Luồng chia sẻ dữ liệu với nhau.'
Từ khóa Lock đảm bảo rằng một luồng đang thực thi một đoạn mã tại một thời điểm. Từ khóa khóa đảm bảo rằng một luồng không n
Cách đơn giản nhất để tránh bế tắc là sử dụng giá trị thời gian chờ. Lớp Màn hình (system.Threading.Monitor) có thể đặt thời gian chờ

Đồng bộ đại diện cho một tập hợp các hoạt động bắt đầu xảy ra cùng một lúc.Một lệnh gọi
đồng bộ chờ phương thức hoàn tất trước khi tiếp tục với luồng chương trình
Một lệnh gọi phương thức không đồng bộ (sáng tạo của một luồng) sẽ trả về ngay lập tức để
chương trình có thể thực hiện các hoạt động khác trong khi phương thức được gọi hoàn thành
công việc của nó trong một số tình huống nhất định

Từ asynckhóa biến một phương thức thành một phương thức không đồng bộ, cho phép bạn
sử dụng awaittừ khóa trong nội dung của nó.
Khi awaittừ khóa được áp dụng, nó sẽ tạm dừng phương thức gọi và trả lại quyền điều khiển
cho người gọi của nó cho đến khi tác vụ chờ hoàn tất.
awaitchỉ có thể được sử dụng bên trong một phương thức không đồng bộ.

Bạn có thể hủy một hoạt động không đồng bộ sau một khoảng thời gian bằng cách sử dụng
phương thức CancelTokenSource.CancelAfter nếu bạn không muốn đợi hoạt động kết thúc.
Phương thức này lập lịch trình hủy bỏ bất kỳ nhiệm vụ liên quan nào không hoàn thành trong
khoảng thời gian được CancelAfterbiểu thức chỉ định.
lập trình không đồng bộ là về trình tự không đồng bộ của Nhiệm vụ, trong khi đa luồng là về
nhiều luồng chạyIntegrated
LINQ (Language song song.Query) - ngôn ngữ truy vấn tích hợp - nó tích hợp
Đa
cú luồng là
phápđồng một
truybộ cách
vấnđơn
(gầnkhông
giống đồng bộlệnh
các câu trong lập vào
SQL) trìnhbên
nhưng chúng
trong ngônta cũng
ngữ lậpcó thể có các tác vụ
không luồng.
trình C#, cho nó khả năng truy cập các nguồn dữ liệu khác nhau
(SQL Db, XML, List ...) với cùng cú pháp.

first()ngụ ý rằng nó sẽ trả về chính xác một phần tử. Phần tử đầu tiên trong bộ sưu tập.

take(x)ngụ ý rằng nó sẽ trả về một tập hợp các phần tử.

Dùng first khi biết chắc khả năng tìm được phần tử cần tìm , firstOrDefault khi
chưa biết chắc đc việc tìm đc phần tử thỏa mãn , trả về giá trị null khi không tìm
được phần tử cần tìm.

LINQ (Language Integrated Query) - ngôn ngữ truy vấn tích hợp - nó tích hợp cú pháp truy vấn
(gần giống các câu lệnh SQL) vào bên trong ngôn ngữ lập trình C#, cho nó khả năng truy cập
các nguồn dữ liệu khác nhau (SQL Db, XML, List ...) với cùng cú pháp.
Các toán tử truy vấn tiêu chuẩn cung cấp các khả năng truy vấn bao gồm lọc, chiếu, tổng hợp,
sắp xếp và hơn thế nữa.
Một biểu thức lambda là một hàm nặc danh (anonymous function)
dùng để tạo các kiểu delegates
Biểu thức lambda có thể được chuyển đổi thành cây biểu thức, trong khi các đại biểu ẩn danh thì không thể.
Toán tử Select tạo ra một giá trị kết quả cho mọi giá trị nguồn trong khi SelectMany tạo ra một kết quả duy nhất có chứa giá trị được n

IEnumerable tồn tại trong Không gian tên System.Collections.


IQueryable tồn tại trong System. Linq Namespace..
Cả IEnumerable và IQueryable đều là bộ sưu tập chuyển tiếp.
IEnumerable không hỗ trợ tải chậm
Hỗ trợ IQueryable lười biếng tải
Truy vấn dữ liệu từ cơ sở dữ liệu, IEnumerable thực hiện một truy vấn chọn lọc ở phía máy chủ,
tải dữ liệu trong bộ nhớ ở phía máy khách và sau đó lọc dữ liệu.
Truy vấn dữ liệu từ cơ sở dữ liệu, IQueryable thực hiện truy vấn chọn ở phía máy chủ với tất cả
các bộ lọc.
Các phương thức mở rộng IEnumerable lấy các đối tượng chức năng.
Các phương thức mở rộng IQueryable lấy đối tượng biểu thức có nghĩa là cây biểu thức.
First trả về phần tử đầu tiên của danh sách , trả về ngoại lệ nếu không tìm được phần tử ,
FirstOrDefault sẽ trả về giá trị null nếu không tìm được phần tử.

Single trả về phần tử duy nhất của danh sách thỏa mãn điều kiện, trả về ngoại lệ
nếu không tìm được phần tử. SingleOrDefault trả về giá trị null nếu không tìm
được phần tử.
Sử dụng lambda expression.
Unit Test là một loại kiểm thử phần mềm trong đó các đơn vị hay thành phần
Sử dụng
riêng cú pháp
lẻ của phầntruy
mềmvấn LINQ
được , sửthử.
kiểm dụng cú pháp
Kiểm phương
thử đơn thức
vị được LINQ
thực hiện
trong quá trình phát triển ứng dụng.
Trong thử nghiệm thủ công (như tên cho thấy), các trường hợp thử nghiệm được thực thi theo cách thủ công (bởi con người) mà khô

Kiểm thử hộp đen là phương pháp kiểm thử Phần mềm được sử dụng để kiểm tra phần mềm
mà không cần biết cấu trúc bên trong của mã hoặc chương trình.
Kiểm thử hộp trắng là phương pháp kiểm thử phần mềm trong đó cấu trúc bên trong được biết
đối với người kiểm thử sẽ kiểm tra phần mềm.
-Kiểm thử đơn vị có nghĩa là kiểm tra các mô-đun riêng lẻ của một ứng dụng một cách riêng biệt
(không có bất kỳ tương tác nào với các phần phụ thuộc) để xác nhận rằng mã đang hoạt động
đúng.
-Kiểm tra tích hợp có nghĩa là kiểm tra xem các mô-đun khác nhau có hoạt động tốt hay không
khi được kết hợp với nhau thành một nhóm.
-Kiểm tra chức năng có nghĩa là kiểm tra một phần chức năng trong hệ thống (có thể tương tác
với các phần phụ thuộc) để xác nhận rằng mã đang hoạt động đúng.'
NUnit có 1 bộ runner riêng, có thể chạy UnitTest độc lập không cần VisualStudio, ngoài ra nó cũng hỗ trợ một số tính năng mà MSTest

Thuộc tính TestCase Đánh dấu một phương thức với các tham số là một bài kiểm tra và
cung cấp các đối số nội tuyến.
Thuộc tính TestCaseSource Đánh dấu một phương thức với các tham số làm phép thử và cung
cấp nguồn đối số.
Thuộc tính TestFixture Đánh dấu một lớp là một đối tượng kiểm tra và có thể cung cấp các đối
số của hàm tạo nội tuyến.
Thuộc tính TestFixtureSetup Từ đồng nghĩa không được chấp nhận choThuộc tính
OneTimeSetUp.
Thuộc tính TestFixtureSource Đánh dấu một lớp là một vật cố định kiểm tra và cung cấp
nguồn cho các đối số của phương thức khởi tạo.
Thuộc tính TestFixtureTeardown Từ đồng nghĩa không được chấp nhận choThuộc tính
OneTimeTearDown.
Thuộc tính TestOf Cho biết tên hoặc Loại của lớp đang được kiểm tra.

fail(String): Let the method fail. Might be used to check that a certain part of the code is not
reached. Or to have a failing test before the test code is implemented. The String parameter is
optional.
assertTrue([message], boolean condition): Checks that the boolean condition is true.
assertFalse([message], boolean condition): Checks that the boolean condition is false.
assertEquals([String message], expected, actual): Tests that two values are the same. Note: for
arrays the reference is checked, not the content of the arrays.
assertEquals([String message], expected, actual, tolerance): Test that float or double values
match. The tolerance is the number of decimals which must be the same.
assertNull([message], object): Checks that the object is null.
assertNotNull([message], object): Checks that the object is not null.
assertSame([String], expected, actual): Checks that both variables refer to the same object.
assertNotSame([String], expected, actual): Checks that both variables refer to different
objects.
phương thức Read () và ReadLine () để đọc dữ liệu từ luồng.

c và thư mục con. Vì bản chất tĩnh của lớp Thư mục C #, chúng ta không cần phải khởi tạo lớp đó.

ng, tệp và thư mục.


g có tác vụ nào trong nền.

ng việc đã hoàn thành và nếu hoạt động trả về một kết quả, thì task sẽ cung cấp cho bạn kết quả.

ó tiết kiệm thời gian vì nhiều tác vụ đang được thực hiện cùng một lúc

uồng tiến trình chạy song song. Các luồng tiến trình đang chạy luôn giao tiếp với nhau thông qua bộ nhớ được chia sẻ hoặc thông báo đi qua.
thấy trong không gian tên System.Threading.

terruptException.

bảo rằng một luồng không nhập phần mã quan trọng trong khi một luồng khác nằm trong phần quan trọng đó.
itor) có thể đặt thời gian chờ trong khi lấy khóa.
y nhất có chứa giá trị được nối cho mọi giá trị nguồn.

công (bởi con người) mà không có bất kỳ sự hỗ trợ nào từ các công cụ hoặc tập lệnh. Nhưng với kiểm thử tự động, các trường hợp kiểm thử được
một số tính năng mà MSTest không có (parameter test, Assert Throw).
ặc thông báo đi qua.
rường hợp kiểm thử được thực hiện với sự hỗ trợ của các công cụ, tập lệnh và phần mềm.
<<FrontEnd_Review Checklist>>

NO. Objective Topic Type


- Hiểu và thực hành:
+ Có kiến thức cơ bản về
Html
FI001 + Có khả năng thiết kế Html Theory
màn hình sử dụng layout
cơ bản
+ Có thể thực hành màn
hình sử dụng thẻ <form>
phối hợp các loại thẻ và
các phần tử trong form.
FI002 Html Theory

FI003 Html Theory

FI004 Html Theory

FI005 Html Theory

FI006 Html Practice

FI007 Html Practice

FI008 Html Practice

FI009 Html Theory


FI010 Html Theory

FI011 Html Practice

FI012 Html Practice

FI013 Html Practice

FI014 Html Practice

FI015 Html Theory

FI016 Html Theory

FI017 Html Practice


FI018 Html Practice

FI019 Html Practice

FI020 Html Theory

FI021 Html Theory

FI022 Html Practice

FI023 Html Theory

FI024 Html Theory

FI025 Html Theory

FI026 Html Practice


FI027 Html Theory

FI028 Html Practice

FI029 Html Practice

FI030 Html Practice


- Hiểu và thực hành:
FI031 + Hiểu khái niệm và mục Css Theory
đích của css
+ Có khả năng sử dụng
FI032 những thuộc tính css đơn Css Theory
giản
+ Có thể tạo selector và
thực hành thay đổi trên
FI033 đó Css Theory
+ Phân biệt được các loại
selector
FI034 Css Practice

FI035 Css Theory

FI036 Css Theory

FI037 Css Practice


FI038 Css Practice
FI039 Css Practice

Css Practice
FI040 Css Theory

FI041 Css Theory

FI042 Css Practice

FI043 Css Practice

FI044 Css Theory

FI045 Css Theory

FI046 Css Practice

FI047 Css Theory

FI048 Css Theory

FI049 Css Practice

FI050 Css Practice

Css Practice

FI051 Css Practice


FI052 Css Theory
- Hiểu và thực hành
+ Hiểu được ý nghĩa thư
FI053 viện bootstrap Bootstrap Theory
+ Nắm được cách chia
màn hình thành 12 cột
trong bootstrap
FI054 + Chia màn hình thành Bootstrap Theory
các cột khác nhau sử
dụng bootstrap
FI055 + Sử dụng 1 số class Bootstrap Theory
thông dụng trong
bootstrap
FI056 Bootstrap Practice

FI057 Bootstrap Theory

FI058 Bootstrap Theory

FI059 Bootstrap Theory

FI060 Bootstrap Theory

FI061 Bootstrap Practice

FI062 Bootstrap Theory


FI063 Bootstrap Practice

FI064 Bootstrap Practice

FI065 Bootstrap Theory

FI066 Bootstrap Practice

FI068 Bootstrap Practice


- Hiểu và thực hành
FI053 + Hiểu khái niệm và mục Javascript Theory
đích của js
+ Tạo form validate đơn
FI054 giản sử dụng javascripts Javascript Theory

FI055 Javascript Theory

FI056 Javascript Theory


FI057 Javascript Theory

FI058 Javascript Theory

FI059 Javascript Theory

FI060 Javascript Theory

FI061 Javascript Practice

FI062 Javascript Practice

FI063 Javascript Practice

FI064 Javascript Practice

FI065 Javascript Practice

FI066 Javascript Practice

FI067 Javascript Theory

Javascript Practice

FI068 Javascript Practice

- Hiểu và thực hành


FI069 + Tạo form validate đơn jQuery Theory
giản sử dụng javascripts

FI070 jQuery Theory

FI071 jQuery Theory

FI072 jQuery Theory


FI073 jQuery Theory

FI074 jQuery Theory

FI075 jQuery Theory

FI076 jQuery Practice

jQuery Theory

FI077 jQuery Practice

FI078 jQuery Practice

jQuery Practice

FI079 jQuery Practice


Trainer Assessment
Question Link ref (for Practice) Trainee Assessment
P2 Audit

Cấu trúc 1 trang HTML gồm những gì?

Đã hiểu các thẻ HTML cơ bản (tag basic)?

Nắm được các attributes của các thẻ HTML cơ


bản?

Phân biệt được 'id' và 'class'?

Đã hiểu về thuộc tính styles (HTML Styles)?

Thực hành sử dụng thuộc tính styles (inline


styles) trong HTML?

Đã sử dụng các thẻ heading (HTML Headings)?

Đã sử dụng thẻ HTML Paragraphs?

Nắm được các thuộc tính định dạng text đơn


giản (Text Formatting)?
Đã hiểu cơ chế định dạng màu (HTML Color)
gồm: Background Color, Text Color, Border
Color?

Đã hiểu về thẻ HTML Links? Có thể tạo


bookmark? Local link? External Link? Và Image as
Link?
Đã hiểu và sử dụng thẻ <img>, các thuộc tính cơ
bản?
Đã hiểu và sử dụng thẻ <table> để hiển thị dữ liệu
dạng bảng?

Đã hiểu và sử dụng thẻ HTML Lists (<ul> và <ol>)?

Hiểu về thẻ <div>?

Hiểu khái niệm HTML Layout là gì?

Đã sử dụng thẻ <div> để thiết kế layout?


Đã sử dụng thẻ <table> để thiết kế layout?
Đã sử dụng các thẻ HTML5 (<header>, <nav>,
<section>, <article>, <aside>, <footer>) để thiết
kế layout?

Hiểu khái niệm Responsive trong thiết kế web?

Hiểu khái niệm HTML Charset?

Đã sử dụng thẻ <meta> để định nghĩa charset?

Đã nắm được mục đích của thẻ <form> (HTML


Form) và các thuộc tính cơ bản?

Phân biệt được phương thức GET và POST trong


form?

Nắm được các phần tử trong form (Form


Elements)?

Thực hành với thẻ <input> với các thuộc tính


type = text, radio, checkbox?
Nắm được những thuộc tính cơ bản của thẻ
<input> (id, name, value, ...)?

Thực hành được với thẻ select như đặt thuộc


tính name, set giá trị cho thuộc tính value thẻ
option
So sánh HTML và HTML5?
Tạo được form sử dụng các thẻ input text, radio,
checkbox, dropdown, text area?

Các cách thêm style sheet cho 1 trang HTML?

Đã hiểu cú pháp và CSS Rules?

Đã hiểu các cách áp dụng css vào trang web?

Hiểu được thứ tự ưu tiên của những các cách


apply CSS?

Những ưu điểm khi sử dụng External Style


Sheets?

What does CSS selector mean? What is type


selector?

Đã sử dụng 'element' selector?


Đã thực hành sử dụng 'id' selector?
Đã thực hành sử dụng 'class' selector?
Thực hành kết hợp giữa các selector (id/class/tên
thẻ…)
Nắm được độ ưu tiên của những loại CSS selector
?

Hiểu các thuộc tính thiết kế layout sau: width,


height, border, margin, padding, float, clear?

Đã thực hành sử dụng: width, height, border,


margin, padding, float, clear để thiết kế layout?

Đã thiết kế Web Responsive sử dụng @media?

Nắm được các display block, inline, inline-block

Nắm được các thuộc tính format text cơ bản?

Thực hành sử dụng các thuộc tính format text?

So sánh padding và margin?

What is difference between the Pseudo-elements


and Pseudo-class?

Thực hành sử dụng các Pseudo trong các thẻ <a>,


<div>, <table>?
What is CSS Box Model and what are its
elements?
Thực hành định vị thẻ div sử dụng position
relative/absolute
Thực hành chia cột sử dụng float?
What is difference between css and css3

Thư viện bootstrap dùng để làm gì?

Nắm được bootstrap chia màn hình như thế nào?

Nắm được cách chia màn hình thành 2/3/4/5/6


column như thế nào?

Thực hành chia màn hình thành 2/3/4/5/6 column?

Nắm được các class cho button btn prefix?

Nắm được các class cho icon trong bootstrap


glyphicon- prefix?
Thực hành được với class btn- và glyphicon-

Nắm được các class cho form trong bootstrap?

Thực hành sử dụng các class cho form trong


bootstrap
Biết tạo modal form trong bootstrap
Thực hành tạo from sử dụng modal
Nắm được một số class phổ biến như text-center,
pull-right, pull-left

Nắm được các class cho các chế độ màn hình


khác nhau xs, sm, md, lg

Thực hành sử dụng các class xs, sm,md, lg và test


trên chế độ responsvie
Sử dụng bộ icon fontawesome

Hiểu javascrip dùng để làm gì?

Javascript có phải là ngôn ngữ lập trình không?

Nêu một số ví dụ javascript có thể làm?

How many way to insert js code into html file ?


What is the JS variable ? How can declare a
variable ?

What is the expression ?

What is the function in JS ? How can implement a


function ?

What is the DOM ?

Understand how can get value from a input tag ?

Write a function Validating Form Fields?


Có thể phân biệt và sử dụng các phương thức
getElementById, getElementsByName,
getElementByTagName?
Đã hiểu và có thể thay đổi style css của các thẻ
html sử dụng js?
Đã hiểu và có thể thay đổi 'class' của các thẻ html
sử dụng js?
Đã hiểu và có thể debug trong JS (JavaScript
Debugging)?

Cách implement các events trong JavaScript?

Create a login form including user name input,


password input, submit button. If user and
password fill out, then submit button is active
and show content of input

Thực hành validate form bất kỳ sử dụng các thẻ


input với các kiểu type, thẻ select, thẻ textarea.
Validate form sử dụng các 1 thẻ span ẩn khi lỗi
hiện lên hoặc tạo red border trên field bị lỗi.

Nắm được cách thêm thư viện JQuery vào HTML,


có thể thêm nhiều JQuery version vào 1 file?

Nắm được cú pháp của jQuery?

Biết cách sử dụng các selector khác nhau?

Hiểu khái niệm event trong jQuery?


Nắm được cách lấy value của các thẻ input dùng
jquery?
Nắm được cách lấy value của các thẻ không phải
input (div, span, p ...) dùng jquery

Các cách validate dữ liệu trên form dùng Jquery?

Biết handle sự kiện trong jquery (click,


submit ...)?

Nắm được các tham số của 1 ajax call sử dụng


Jquery

Hiểu và sử dụng phương thức jQuery ajax Get?

Hiểu và sử dụng phương thức jQuery ajax Post?

Hiểu và sử dụng phương thức jQuery Ajax?

Thực hành validate form bất kỳ sử dụng các thẻ


input với các kiểu type, thẻ select, thẻ textarea.
Validate form sử dụng các 1 thẻ span ẩn khi lỗi
hiện lên hoặc tạo red border trên field bị lỗi.
Note Priority Severity
Cấu trúc cơ bản của trang HTML có dạng như sau, thường gồm 3 phần:

<!Doctype>: Phần khai báo chuẩn của html hay xhtml.


<head></head>: Phần khai báo ban đầu, khai báo về meta, title, css, javascript… Mandatory
<body></body>: Phần chứa nội dung của trang web, nơi hiển thị nội dung.

<h> : Thẻ tiêu đề , gồm có 6 cỡ khác nhau


<p> : Thẻ biểu diễn đoạn văn
<br />: Thẻ ngắt dòng
<center> : Thẻ căn chỉnh nội dung trung tâm
<hr> : Thẻ hiển thị dòng ngang.
<pre>: Thẻ giữ nguyên định dạng

Thẻ a:
href: Chỉ định URL của trang mà liên kết đến
Thẻ img:
src: Chỉ định đường dẫn của hình ảnh sẽ được hiển thị
width, height: Chỉ định chiều rộng , cao của hình ảnh
alt: Chỉ định văn bản thay thế cho hình ảnh nếu hình ảnh không hiển thị được
style: Thêm kiểu vào một phần tử

ID trong HTML là một chuỗi xác định và duy nhất, dùng để gắn cho một thẻ HTML nào
đó. Trong một file HTML thì ID là duy nhất
Nếu ID là duy nhất trong một file tài liệu HTML thì class thì lại khác, Mandatory
nó được dùng để thiết lập một lớp các đối tượng có chung một đặc điểm.

Thuộc tính style trong HTML được sử dụng để thay đổi hoặc thêm kiểu cách (style)
cho các thành phần HTML đang tồn tại. Mandatory
Yes.
Mandatory
Yes.
Mandatory
Yes. Mandatory
Thuộc tính color được sử dụng để thiết lập màu cho văn bản.
Thuộc tính direction được sử dụng để thiết lập hướng cho văn bản.
Thuộc tính letter-spacing được sử dụng để thêm hoặc bớt khoảng cách giữa các chữ
cái trong một từ.
Thuộc tính word-spacing được sử dụng để tăng hoặc giảm khoảng cách giữa các từ
trong một câu.
Thuộc tính text-indent được sử dụng để tạo độ thụt của văn bản trong một đoạn văn.
Thuộc tính text-align được sử dụng để căn chỉnh văn bản trong một tài liệu.
Thuộc tính text-decoration được sử dụng để tạo cách dấu gạch ở chân, ở trên, ở giữa
văn bản.
Thuộc tính text-transform được sử dụng để chuyển văn bản thành chữ hoa hoặc chữ
thường.
Thuộc tính white-space được sử dụng để định dạng và điều khiển phần khoảng trắng
của văn bản.
Thuộc tính text-shadow được sử dụng để thiết lập hình bóng (shadow như trong
word) xung quanh văn bản.
Thuộc tính background-color đặt màu nền của một phần tử. Nền của một phần tử là
tổng kích thước của phần tử, bao gồm phần đệm và đường viền (nhưng không phải
lề).
Thuộc tính border-color đặt màu cho bốn đường viền của một phần tử

Yes.
Mandatory

Yes.

Yes.
Mandatory
Yes.
Mandatory
Thẻ HTML <div> được sử dụng để định nghĩa một khu vực trong tài liệu của bạn.
Mandatory
Layout là một phần trong thiết kế đồ họa liên quan đến việc sắp xếp các yếu tố trực
quan hiển thị trên trang web. Về cơ bản layout được sử dụng để thiết lập giao diện
tổng thể và mối quan hệ giữa các yếu tố đồ họa, làm cho trang web trở nên bắt mắt Mandatory
hơn.

Yes. Mandatory
Yes. Mandatory
Yes.
Mandatory

Responsive là một thuật ngữ hay tính từ chỉ một website có thể hiển thị và tương
thích với mọi trình duyệt (co dãn theo kích thước trình duyệt). Mandatory
Charset là một bộ ký tự giúp trang HTML hiển thị một cách chính xác.
Yes.
Mandatory
Thẻ form có chức năng tạo một mẫu HTML để người dùng nhập, sau đó gửi dữ liệu
lên phía server bằng cách tạo ra một hành động submit form. Mandatory
Với phương thức GET thì dữ liệu được thấy trên URL thì phương thức POST thì hoàn
toàn ngược lại, POST sẽ gửi dữ liệu qua một cái form HTML và các giá trị sẽ được định Mandatory
nghĩa trong các input

Phần tử <input> dùng để tạo biểu mẫu trong HTML


Phần tử <select> dùng để định nghĩa một danh sách xổ xuống Mandatory
Phần tử <button> dùng để định nghĩa nút bấm được.

Yes.
Mandatory
Thuộc tính value được sử dụng để thiết lập giá trị cho thẻ input.
Thuộc tính readonly quy định giá trị trong thẻ input chỉ được dùng để hiển thị (không
thể thay đổi).
Thuộc tính disabled được sử dụng để vô hiệu hóa một thẻ input.
Thuộc tính size được sử dụng để thiết lập chiều dài (đơn vị là ký tự) của một thẻ
input.
Thuộc tính maxlength được sử dụng để thiết lập số ký tự tối đa cho một thẻ input.
Thuộc tính placeholder được sử dụng để đưa ra những gợi ý cho người dùng trước
khi nhập liệu vào thẻ. Mandatory
Thuộc tính required được sử dụng để quy định một thẻ bắt buộc phải nhập nội dung
trước khi submit form.
Thuộc tính name được sử dụng để chỉ định tên cho thẻ input.

Yes.
Mandatory

Yes. Mandatory
Yes.
Mandatory
CSS chèn từ bên ngoài html
CSS được chèn ở bên trong html
CSS được chèn nội tuyến trong phần tử cần css đó

Mandatory
3 cách
Internal CSS
External CSS Mandatory
Inline CSS

Yes.
Mandatory
Kích thước trang HTML nhỏ hơn cấu trúc gọn hơn.
Tốc độ load trang nhanh hơn.
Một file .css có thể được dùng cho nhiều.

Trong CSS, selector (tạm gọi là bộ chọn) là mẫu để chọn phần tử HTML mà bạn muốn
định nghĩa phong cách.
Các loại selector:
Element Selector
ID Selector
Class Selector
Universal Selector Mandatory
CSS Grouping Selector

Yes. Mandatory
Yes. Mandatory
Yes. Mandatory
Yes.
Mandatory
1/ Inline CSS.
2/ ID.
3/ Class. Mandatory
4/ Element.

height và width được sử dụng để đặt chiều cao và chiều rộng tương ứng cho một
phần tử trong CSS.
thuộc tính border trong CSS được sử dụng để thiết lập đường viền trên một phần tử.
Thẻ Margin là thuộc tính canh lề giữa 2 phần tử HTML. Nó sẽ tạo ra khoảng cách với
các phần tử xung quanh (top, right, bottom và left).
Thuộc tính padding trong CSS cho phép bạn xác định khoảng không gian giữa nội
dung hiển thị của một phần tử với đường viền (border) của nó.
Thuộc tính float trong CSS để thiết lập phần tử HTML trôi về trái, về phải trong dàn
trang web. Mandatory
Thuộc tính clear trong CSS có tác dụng loại bỏ các thuộc tính float (left - right) trên
một thành phần.

Yes.
Mandatory

Yes.
Mandatory
Inline: không thể set width và height.
Block: luôn được xuống dòng và chiếm toàn bộ width nếu width không được set.
Inline-Block: các items sẽ được xếp cùng nhau trên một dòng . Tuy nhiên các items sẽ
có thuộc tính của display: block như là có set width, height, margin, padding đủ 4
hướng. Mandatory

Text-color:Là thuộc tính chọn màu cho chữ khi hiển thị.
Text-align: Là thuộc tính quen thuộc giúp bạn căn giữa, trái hay phải các đoạn text
trong trang web.
Text-transform: là thuộc tính giúp bạn định dạng kiểu chữ hoa hay chữ thường.
Text-decoration: Dùng để gạch chân dưới chữ trong bài viết.
Text-Indent: hiển thị chữ theo một vị trí nào đó tính từ góc trái trên cùng.

Yes.
Mandatory
Margin là đẩy các phần tử liền kề ra xa khỏi phần tử có chứa thuộc tính margin.
Padding : Nó là khoảng trống giữa phần tử và nội dung liên quan bên trong nó. Mandatory

Pseudo-classes được sử dụng để định nghĩa một trạng thái đặc biệt nào đó của một
phần tử được chọn. Pseudo-elements có thể hiểu là phần tử giả , được sử dụng để Mandatory
tạo một số style đặc biệt của element được chọn.

Yes.
Mandatory
Yes.
Mandatory
Yes.

Yes. Mandatory
CSS3 có thêm các mô-đun. Mandatory
Bootstrap là một framework bao gồm các HTML, CSS và JavaScript template dùng để
phát triển website chuẩn responsive, chứa các class đại diện cho các thuộc tính về
giao diện được quy định sẵn như kích thước, màu sắc, độ cao, độ rộng… Mandatory

Boostrap chia màn hình thành 12 cột.

Yes.

Yes.
Mandatory
btn-default
btn-primary
btn-success
btn-info
btn-warning Mandatory
btn-danger
btn-link

Glyphicon

Yes. Mandatory
form-group, form-inline,form-control

Yes.
Mandatory
Yes. Mandatory
Yes. Mandatory
Yes.
Mandatory
col-xs: phù hợp với màn hình smart phone.
Col-sm: phù hợp với màn hình table.
Col-md: phù hợp với màn hình laptop,desktop. Mandatory
col-lg: Phù hợp với màn hình desktop.

Yes.
Mandatory
Yes. Mandatory
Javascript được tích hợp và nhúng trong HTML và giúp cho website trở nên sống
động hơn. Mandatory
Javascript là ngôn ngữ lập trình.

Bắt sự kiện onlick cho button. Mandatory


Trong thẻ HTML <head>...</head>
Trong thẻ HTML <body>...</body>
Liên kết với file .js từ bên ngoài, đường dẫn của file .js được khai báo trong thẻ HTML Mandatory
Biến (variable) là nơi để bạn có thể lưu trữ thông tin.
let: Cách khai báo thông dụng cho javascript hiện tại.
Các cách khai báo biến:
var: Một kiểu thông báo cũ trong javascript
const: Giống như cách khai báo let nhưng giá trị không thể thay đổi được

Hàm giúp chương trình trở nên rõ ràng, dễ hiểu bằng cách gộp những đoạn code lặp
lại. Nhờ vậy mà việc bảo trì phần mềm cũng dễ dàng hơn.
Để khai báo hàm, chúng ta dùng từ khóa function, theo sau nó là:
Tên hàm
Danh sách các tham số truyền vào hàm, được đặt trong ngoặc đơn và cách nhau bởi
dấu phẩy.
Các câu lệnh của JavaScript để tạo ra một hàm, được đặt trong ngoặc nhọn

DOM trong JavaScript chính là những phần tử biểu diễn cấu trúc dữ liệu của một
trang web.
Yes.
Mandatory
Yes. Mandatory
Yes.
Mandatory

Yes.
Mandatory
Yes.
Mandatory
Yes.

Bắt sự kiện trực tiếp trong thẻ HTML


Bắt sự kiện cho một thẻ HTML bằng javascript
Yes.

Mandatory

Yes.

Mandatory

Yes.
Mandatory

Với jQuery, bạn chọn (query) phần tử HTML và thực hiện các "actions - tác vụ" lên
chúng. Cú pháp jQuery được thiết kế riêng cho việc lựa chọn các phần từ HTML và
thực hiện các tác vụ nào đó lên các thẻ đó. jQuery sử dụng cú pháp CSS để chọn các Mandatory
phần tử.

Yes. Mandatory
Tất cả các hành động của người truy cập mà trang web có thể trả lời được gọi là
event (sự kiện)
Sử dụng .val()
Mandatory
Sử dụng .each()
Mandatory
Sử dụng jquery validation.
Mandatory
Yes.
Mandatory
accepts: Nội dung được gửi trong request header giúp server biết được kiểu
response server sẽ chấp nhận khi trả về.
async: Thiết lập giá trị false để thực hiện một request đồng bộ.
beforeSend: Một hàm pre-request gọi lại có thể dùng để điều chỉnh object jqXHR
trước khi nó được gửi.
cache: Thiết lập giá trị false để buộc browser không lưu cache các trang được
request.
complete: Một hàm được thực thi khi request kết thúc (sau khi hàm gọi lại success và
error được thực thi).
contents: Một object của string hoặc REGEX dùng để xác định xem JQuery sẽ phân
tích response như thế nào.
contentType: Kiểu nội dung của dữ liệu được gửi lên server.
context: Một object được dùng làm ngữ cảnh (this) của tất cả các hàm gọi lại liên
quan đến Ajax.
crossDomain: Thiết lập thuộc tính này là true để buộc thực hiện request chéo giữa các
domain (như là JSONP) trên cùng một domain.
data: Dữ liệu được gửi lên server khi thực thi một request Ajax.
dataFilter: Một hàm được dùng để xử lý các dữ liệu response thuần của một
XMLHttpRequest.
dataType: Kiểu của dữ liệu mong muốn được trả về từ server.
error: Một hàm sẽ được gọi khi request fails. Mandatory
global: Dùng để thiết lập xem có gọi các hàm xử lý sự kiện Ajax toàn cục cho request
này hay không.
headers: Một object để viết thêm vào các header gửi lên server.
ifModified: Thiết lập giá trị này là true nếu bạn muốn buộc JQuery nhận diện môi
trường hiện tại là "local".
jsonp: Một chuỗi dùng để override tên hàm gọi lại trong một request JSONP.
jsonpCallback: Chỉ định tên hàm gọi lại cho một request JSONP.
mimeType: Một chuỗi chỉ định kiểu mime dùng để override lại kiểu mime của XHR.
password: Mật khẩu được sử dụng với XMLHttpRequest cho response của một
request yêu cầu xác thực truy nhập HTTP.
processData: Set giá trị này là false nếu bạn không muốn dữ liệu được truyền vào
thiết lập data sẽ được xử lý và biến thành một query kiểu chuỗi.
scriptCharset: Thiết lập thuộc tính charset của một thẻ script dùng cho một request
nhưng chỉ áp dụng khi transport script (ví dụ: request chéo giữa các domain với
jsonp) được sử dụng.
statusCode: Một object chứa các mã HTTP ở dạng số và các hàm được gọi khi
response trả về có chứa một mã tương ứng.
success: Một hàm được gọi khi request thành công.
timeout: Số được thiết lập chỉ định thời gian hết hạn cho một request.
traditional: Thiết lập giá trị true nếu bạn mong muốn param được serialize theo kiểu
Yes.
Mandatory
Yes.
Mandatory
Yes. Mandatory
Yes.

Mandatory
<<Java Review Checklist>>
NO. Objective Topic Type
ADOEF015 EF Theory
ADOEF016 EF Practice
ADOEF017 EF Theory
ADOEF018 EF Practice
ADOEF019 EF Theory
ADOEF020 EF Practice
ADOEF021 EF Theory
ADOEF022 EF Practice
ADOEF023 EF Practice
ADOEF024 EF Theory
ADOEF025 EF Theory
ADOEF026 EF Practice
ADOEF027 EF Theory
ADOEF028 EF Theory
ADOEF029 EF Theory
ADOEF030 EF Theory
ADOEF031 EF Theory
ADOEF032 EF Theory
ADOEF033 EF Theory
Question
Hiểu về các relationship trong EF?
Hiểu cách triển khai các relationship (One-One, One-Many, Many-Many) trong EF?
Hiểu khái niệm Lazy loading và Eagle loading trong EF?
Nắm được cách triển khai và sử dụng Ealge và Lazy loading?
Hiểu LINQ trong EF (dùng LINQ 2 Entity dạng query và dạng lambda)?
Thực hành truy vấn sử dụng LINQ to Entity?
Thêm 1 trường trong DB sử dụng DB first?
Thực hành CRUD với EF
Thực hành truy vấn sử dụng Stored Procedure ?
Thêm 1 trường trong DB sử dụng Code first?
Sử dụng Strategy pattern thay thế giữa ADO.NET và EF
Thực hành truy vấn excecute trực tiếp câu SQL ?
Các trạng thái của 1 object trong EF ?
So sánh giữa Code First / DB First / Model first
Seed Data trong EF 6 Code-First
Database Initialization trong EF
Define Custom Code-First Conventions in EF
Cascade Delete in Entity Framework
Giải thích các bước làm việc với EF Codefirst ?
Trainer Assessment
Link ref (for Practice) Trainee Assessment Note Priority
Audit
Severity
Mandatory
Mandatory
Mandatory
Mandatory
Mandatory
Mandatory
Mandatory
Mandatory
Mandatory
Mandatory
Mandatory
Mandatory
Mandatory
Mandatory

Mandatory
<<Web Review Checklist>>

NO. Objective Topic Type


- Hiểu và thực hành : ASP.NET
MVC001 + Mô hình MVC Theory
MVC
+ Các thành phần trong
mô hình MVC ASP.NET
MVC002 - Nắm được cú pháp MVC Theory
Razor
- Hiểu và áp dụng thực ASP.NET
MVC003 MVC Theory
hành được các HTML
Helper
- Nắm được các scope ASP.NET
MVC004 MVC Practice
trong MVC
- Session Tracking ASP.NET
MVC005 - Nắm được Fillter là gì MVC Theory
và cách sử dụng Fillter
trong MVC ASP.NET
MVC006 Theory
MVC

MVC007 ASP.NET Practice


MVC
ASP.NET
MVC008 MVC Theory

ASP.NET
MVC009 Practice
MVC

MVC010 ASP.NET Theory


MVC

MVC011 ASP.NET Theory


MVC
ASP.NET
MVC012 MVC Practice

MVC013 ASP.NET Theory


MVC

MVC014 ASP.NET Theory


MVC
ASP.NET
MVC015 MVC Practice

ASP.NET
MVC016 MVC Practice

ASP.NET
MVC017 MVC Practice

MVC018 ASP.NET Theory


MVC
ASP.NET
MVC019 MVC Theory

ASP.NET
MVC020 MVC Practice

ASP.NET
MVC021 MVC Theory

MVC022 ASP.NET Theory


MVC

MVC023 ASP.NET Theory


MVC
MVC024 ASP.NET Practice
MVC

MVC025 ASP.NET Theory


MVC

MVC026 ASP.NET Theory


MVC

MVC027 ASP.NET Practice


MVC
ASP.NET
MVC028 MVC Practice

MVC029 ASP.NET Practice


MVC

MVC030 ASP.NET Theory


MVC
ASP.NET
MVC031 MVC Practice

ASP.NET
MVC032 MVC Theory

MVC033 ASP.NET Practice


MVC

MVC034 ASP.NET Theory


MVC
ASP.NET
MVC035 MVC Theory

ASP.NET
MVC036 MVC Theory

ASP.NET
MVC037 MVC Practice

MVC038 ASP.NET Theory


MVC
ASP.NET
MVC039 MVC Theory

ASP.NET
MVC040 MVC Theory

ASP.NET
MVC041 Practice
MVC

MVC042 ASP.NET Theory


MVC

MVC043 ASP.NET Practice


MVC
ASP.NET
MVC044 MVC Theory

MVC045 ASP.NET Practice


MVC

MVC046 ASP.NET Practice


MVC
ASP.NET
MVC047 MVC Theory
MVC048 ASP.NET Practice
MVC

MVC049 ASP.NET Theory


MVC

MVC050 ASP.NET Theory


MVC

MVC051 ASP.NET Theory


MVC
ASP.NET
MVC052 MVC Theory

MVC053 ASP.NET Theory


MVC

MVC054 ASP.NET Theory


MVC
ASP.NET
MVC055 MVC Theory

ASP.NET
MVC056 MVC Theory

MVC057 ASP.NET Theory


MVC

MVC058 ASP.NET Practice


MVC
ASP.NET
MVC059 MVC Practice

ASP.NET
MVC060 MVC Practice

ASP.NET
MVC061 MVC Practice
Question

Nắm được kiến trúc ASP.NET MVC ?

Nắm được ASP.NET MVC Folder Structure ?

Nắm được Routing trong MVC?

Thực hành Routing với RoutingConfig và Routing Attribute

Biết setup IIS để deploy ứng dụng MVC ?

Nắm được về các loại HTML Helper?

Đã thực hành với các HTML Helper trong MVC Html.BeginForm(), Html.LabelFor, Html.EditorFor,
Html.ValidationMessageFor, Html.DropDownList ?

Cách tạo 1 custom HTML Helper

Thực hành tạo 1 custom HTML Helper ?

Nắm được các tham số truyền vào HTML Helper qua các hàm overloading (truyền các html attribute)

Nắm được action GET và POST trong controller

Thực hành CRUD trong MVC

Trong controller có thể overloading action không?

Các loại return type (ActionResult) trong Action method

Thực hành mapping dữ liệu từ form xuống action thông qua parameters

Thực hành mapping dữ liệu từ form xuống action thông qua Model

Thực hành mapping dữ liệu từ form xuống action qua FormCollection

Nắm được các cách mapping dữ liệu từ View xuống controller

Các loại action selector (ActionName/NonAction/ActionVerbs)

Có thể đặt nhiều ActionVerbs trong 1 action không?

Cách tạo và mapping giữa Model và ViewModel

Nắm được Razor Syntax

Nắm được cách validation trong MVC


Thực hành valdiation trong MVC với các model attribute (DataAnnotations)

Nắm được Layout view trong MVC (_layout.cshtml, _viewstart.csthml)

Nắm được hàm RenderBody và RenderSection trong layout

Biết cách tạo layout trong MVC và sử dụng layout trong page

Biết cách tách các phần dùng chung ra partial view

Biết cách thêm script, css dùng chung vào BundleConfig

Nắm được cách render partial view qua các hàm Html.Partial, Html.RenderPartial, Html.RenderAction

Thực hành render partial view với các hàm Html.Partial, Html.RenderPartial, Html.RenderAction

Nắm được cách dùng ViewBag/ViewData chuyển dữ liệu từ Controller lên View

Thực hành sử dụng ViewBag/ViewData chuyển dữ liệu từ Controller lên View

So sánh khác nhau giữa ViewBag và ViewData

Nắm được cách sử dụng TempData chuyển dữ liệu giữa các request

Thực hành sử dụng TempData chuyển dữ liệu giữa các action

So sánh TempData và ViewData/ViewBag

Nắm được các loại Filters trong MVC

Cách tạo Authorization filter cho chức năng liên quan tới phân quyền

Phân biệt được session và cookie?

Thực hành session Tracking với Cookies ?

Ưu và nhược điểm của việc sử dụng Cookies

Thực hành session tracking với hidden form field ?

Ưu và nhược điểm của hidden form field ?

Thực hành session trackking với HttpSession ?

Custom url (url rewrite) trong MVC ?

Nắm được OutputCache ActionFilter


Tạo được Custom ActionFilter cho Logging

Đã thực hành áp dụng filter trong project?

Cách cấu hình Fillter trong FilterConfig

Area là gì? Vì sao sử dụng Area

Cách nhúng script vào page sử dụng RenderSection scripts

Cách sử dụng Unity trong MVC

Thực hành config Unity trong MVC

Cách cấu hình Log4NET trong MVC

Thực hành cấu hình Log4NET trong MVC

Hiểu được mô hình N-layer

Áp dụng mô hình N-Layer với UI layer là MVC

Thực hành phân trang trong MVC

Thực hành được CRUD sử dụng AJAX trong MVC

Thực hành được upload file (image) trong MVC


Trainer Assessment
Link ref (for Practice) Trainee Assessment
P2 Audit
Note Priority Severity

Mandatory

Mandatory

Mandatory

Mandatory

Mandatory

Mandatory

Mandatory

Mandatory

Mandatory

Mandatory

Mandatory

Mandatory

Mandatory

Mandatory

Mandatory

Mandatory

Mandatory

Mandatory

Mandatory

Mandatory
Mandatory

Mandatory

Mandatory

Mandatory

Mandatory

Mandatory

Mandatory

Mandatory

Mandatory

Mandatory

Mandatory

Mandatory

Mandatory

Mandatory

Mandatory

Mandatory

Mandatory

Mandatory

Mandatory

Mandatory

Mandatory

Mandatory
Mandatory

Mandatory

Mandatory

Mandatory

Mandatory

Mandatory

Mandatory

Mandatory

Mandatory

Mandatory

Mandatory

Mandatory

Mandatory

Mandatory

You might also like