Professional Documents
Culture Documents
HoangN73 NET Review Checklist v2.0
HoangN73 NET Review Checklist v2.0
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
SI006
SI011
DB Basic Practice
SI012
DB Basic Theory
SI013
DB Basic Practice
SI014
DB Basic Theory
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
DB Basic Theory
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
SI043
SI044
SI045
SQL Basic Practice
SI046
SI047
SI048
SQL Basic Theory
SI049
SI050
SI051
SI052
SQL Basic Theory
SI053
SQL Basic Theory
SI054
SQL Basic Practice
SI055
SI056
SQL Basic Practice
SI057
SQL Basic Theory
SI058
SI062
SI063
SI064
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
SI072
SI073
SI074
Built-in functions Practice
SI075
SI078
SI079
Built-in functions Theory
SI080
SI082
SI088
SI089
SI090
SI093
SI094
SI095
Advanced DML Theory
SI096
SI097
SI098
SI099
SI100
SI101
SI103
SI104
Advanced DML Theory
SI105
SI107
SQL Language Elements Theory
SI108
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
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
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?
https://
Thực hành tạo table? drive.google.com/file/
d/
1MZ2T_SvV82Je_Oh_xR
SdiSS_VV1h0lzh/view?
usp=sharing
Đã 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
https://
drive.google.com/file/
Thực hành với từ khóa TRUNCATE? d/
1IuMXlPyapNXAaMUfX
oGT1wHBuJj8R8sg/
view?usp=sharing
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?
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
https://
drive.google.com/file/
Đã thực hành câu lệnh GROUP BY? d/
17Wy7_e7yD1n0OoqnJ
wPpVzavtXBi09bh/
view?usp=sharing
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, ...)
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
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
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
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
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 ?
https://
Thực hành sử dụng LEFT JOIN? drive.google.com/file/
d/
1pRmqcM7D6buH0wk3
BkHARUwbq_-NcZCE/
view?usp=sharing
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
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?
https://
drive.google.com/file/
Có thể phân loại Sub-queries? d/
1vk0k5g_AU56ECTa3z5
CQsXRAJexYKcRN/
view?usp=sharing
https://
Thực hành paging với Row_Number() drive.google.com/file/
d/
13EoHv1AMGJfJHHULx
Bge44SL_eidw1Yo/
view?usp=sharing
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?
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
https://
drive.google.com/file/
d/
15GYKPgvsztXbwBTRr
MW6tINzAawFWsr_/
view?usp=sharing
Có thể disable và enable một trigger?
yes 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.
Mandatory
CREATE INDEX ten_chi_muc ON ten_bang; Mandatory
yes Mandatory
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.
SELECT column_name(s)
FROM table_name
WHERE condition
GROUP BY column_name(s) Mandatory
SELECT column_name(s)
FROM table_name
WHERE condition
GROUP BY column_name(s)
HAVING condition
ORDER BY column_name(s); Mandatory
SELECT *
INTO newtable [IN externaldb]
FROM oldtable
WHERE condition; Mandatory
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.
Mandatory
SELECT LEN('W3Schools.com');
SELECT CHARINDEX('t', 'Customer') AS
MatchPosition;
SELECT PATINDEX('%schools%',
'W3Schools.com'); 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
SELECT column_name(s)
FROM table1
LEFT JOIN table2
ON table1.column_name = table2.column_name; Mandatory
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
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
SELECT Studentname,
Subject,
Marks,
ROW_NUMBER() OVER(ORDER BY Marks
desc) RowNumber
FROM ExamResult; Mandatory
yes 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
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
Topic Type
Theory
Theory
Theory
Practice
Theory
Theory
.NET
introduction
Theory
Practice
Theory
Theory
Practice
Practice
Theory
Theory
Theory
Theory
Theory
Theory
Theory
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
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
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 are .NET Assemblies? Difference between Shared and Private Assemblies?
How many types of values are passed to the method? Difference between them?
List of Most Common Regular Expressions for validate email, phone, url, password.
What all are the advantages of Partial class and when to use it?
What is Multithreading?
What are LINQ Standard Query Operators? How standard query operators useful in LINQ?
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
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
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.
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
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.
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
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.
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>
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
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à
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
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.
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
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 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>>
Css Practice
FI040 Css Theory
Css Practice
Javascript Practice
jQuery Theory
jQuery Practice
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
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
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.
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.
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>>
ASP.NET
MVC009 Practice
MVC
ASP.NET
MVC016 MVC Practice
ASP.NET
MVC017 MVC Practice
ASP.NET
MVC020 MVC Practice
ASP.NET
MVC021 MVC Theory
ASP.NET
MVC032 MVC Theory
ASP.NET
MVC036 MVC Theory
ASP.NET
MVC037 MVC Practice
ASP.NET
MVC040 MVC Theory
ASP.NET
MVC041 Practice
MVC
ASP.NET
MVC056 MVC Theory
ASP.NET
MVC060 MVC Practice
ASP.NET
MVC061 MVC Practice
Question
Đã thực hành với các HTML Helper trong MVC Html.BeginForm(), Html.LabelFor, Html.EditorFor,
Html.ValidationMessageFor, Html.DropDownList ?
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)
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
Biết cách tạo layout trong MVC và sử dụng layout trong page
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
Nắm được cách sử dụng TempData chuyển dữ liệu giữa các request
Cách tạo Authorization filter cho chức năng liên quan tới phân quyền
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