Tải bản đầy đủ (.pdf) (31 trang)

NGUYÊN TẮC SÁNG TẠO KHOA HỌC TRONG SỰ PHÁT TRIỂN CỦA MICROSOFT .NET FRAMEWORK

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

ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH
CHƯƠNG TRÌNH ĐÀO TẠO THẠC SĨ CNTT


BÁO CÁO CHUYÊN ĐỀ

NGUYÊN TẮC SÁNG TẠO KHOA
HỌC TRONG SỰ PHÁT TRIỂN CỦA
MICROSOFT .NET FRAMEWORK







Học viên : VŨ MINH THÀNH
MS : CH1101134
Lớp : Cao học khóa 6
Email :
GVHD : GS-TSKH HOÀNG VĂN KIẾM




TPHCM, 3/2012



ĐẠI HỌC QUỐC GIA TPHCM CHƯƠNG TRÌNH THẠC SĨ CNTT
2



Lời Mở Đầu

Có thể nói, chúng ta hiện đang sống trong thời đại thay đổi vũ bão của khoa học kỹ thuật và công
nghệ (KHCN), các thành tựu của KHCN đã làm thay đổi bộ mặt của thế giới trong suốt một thế
kỷ qua, nó cũng góp phần trở thành động lực thúc đẩy của sự tiến bộ xã hội. KHCN đã trở thành
lĩnh vực mũi nhọn của một quốc gia trong thời đại tri thức ngày nay, và lĩnh vực CNTT là một
trong những lĩnh vực có nhiều đóng góp sáng tạo nhất cho thế giới hiện nay.

Em có may mắn được hoạt động trong lĩnh vực sản xuất phần mềm đã 7 năm nay và lĩnh vực
chuyên sâu của em là các công nghệ của Microsoft và đặc biệt là .NET Framework.

Trong khuôn khổ của bài thu hoạch này, cho em xin mạn phép được trình bày những hiểu biết hạn
hẹp của em về .NET Framework cùng những phân tích sáng tạo về sự ra đời và phát triển của
.NET Framework cho tới hiện nay.

Phần 1 em xin được giới thiệu tóm tắt chung về 40 phương pháp sáng tạo khoa học. Phần 2 và 3
sẽ đi sâu vào công nghệ .NET và phân tích các phương pháp sáng tạo đã được sử dụng trong suốt
quá trình hình thành và phát triển của Microsoft .NET Framework. Trong suốt bài thu hoạch có
những thuật ngữ chuyên ngành không thể dịch ra tiếng Việt, cho em xin được giữ nguyên nghĩa
tiếng Anh để đảm bảo tính trong sáng.

Bài thu hoạch này có đính kèm theo sourcecode demo các chương trình có sử dụng các công nghệ
của Microsoft đã đề cập. Thiếu sót là điều không thể tránh khỏi, em rất mong nhận được những
lời nhận xét và đóng góp chân thành của thầy. Qua đây, em cũng xin gởi lời cám ơn chân thành
đến Giáo sư – Tiến sĩ Khoa Học Hoàng Văn Kiếm, người đã tận tâm truyền đạt những kiến thức
nền tảng cơ bản cho chúng em về môn học “Phương pháp nghiên cứu khoa học trong tin học”.

Trong quá trình làm bài thu hoạch này cũng giúp em củng cố thêm nhiều kiến thức của .NET
Framework. Em hy vọng bài thu hoạch này sẽ là một bài tham khảo quý báu cho những ai làm

CNTT đặc biệt là công nghệ .NET.
Xin chân thành cám ơn !

Vũ Minh Thành – 3/2012












ĐẠI HỌC QUỐC GIA TPHCM CHƯƠNG TRÌNH THẠC SĨ CNTT
3

NỘI DUNG
1 PHẦN 1 : CÁC PHƯƠNG PHÁP SÁNG TẠO CƠ BẢN 5
1.1 Nguyên tắc phân nhỏ 5
1.2 Nguyên tắc tách khỏi 5
1.3 Nguyên tắc phẩm chất cục bộ 5
1.4 Nguyên tắc phản đối xứng 5
1.5 Nguyên tắc kết hợp 5
1.6 Nguyên tắc vạn năng 5
1.7 Nguyên tắc chứa trong 5
1.8 Nguyên tắc phản trọng lượng 5
1.9 Nguyên tắc gây ứng xuất sơ bộ 6

1.10 Nguyên tắc thực hiện sơ bộ 6
1.11 Nguyên tắc dự phòng 6
1.12 Nguyên tắc đẳng thế 6
1.13 Nguyên tắc đảo ngược 6
1.14 Nguyên tắc cầu (tròn) hóa 6
1.15 Nguyên tắc linh động 6
1.16 Nguyên tắc giải thiếu hoặc thừa 6
1.17 Nguyên tắc chuyển sang chiều khác 6
1.18 Nguyên tắc sử dụng các dao động cơ học 7
1.19 Nguyên tắc tác động theo chu kỳ 7
1.20 Nguyên tắc liên tục tác động có ích 7
1.21 Nguyên tắc vượt nhanh 7
1.22 Nguyên tắc biến hại thành lợi 7
1.23 Nguyên tắc quan hệ phản hồi 7
1.24 Nguyên tắc sử dụng trung gian 7
1.25 Nguyên tắc tự phục vụ 7
1.26 Nguyên tắc sao chép (copy) 7
1.27 Nguyên tắc rẻ thay cho đắt 8
1.28 Nguyên tắc thay thế sơ đồ cơ học 8
1.29 Sử dụng các kết cấu khí và lỏng 8
1.30 Sử dụng vỏ dẻo và màng mỏng 8
1.31 Sử dụng các vật liệu nhiều lỗ 8
1.32 Nguyên tắc thay đổi màu sắc 8
1.33 Nguyên tắc đồng nhất 8
1.34 Nguyên tắc phân hủy hoặc tái sinh các phần 8
1.35 Thay đổi các thông số hoá lý của đối tượng 9
1.36 Sử dụng chuyển pha 9
1.37 Sử dụng sự nở nhiệt 9
1.38 Sử dụng các chất oxy hoá mạnh 9
1.39 Thay đổi độ trơ 9

1.40 Sử dụng các vật liệu hợp thành (composite) 9
2 PHẦN 2 : QUÁ TRÌNH HÌNH THÀNH VÀ PHÁT TRIỂN CỦA MICROSOFT .NET
FRAMEWORK 10
2.1 LỊCH SỬ RA ĐỜI VÀ PHÁT TRIỂN CỦA .NET FRAMEWORK 10
2.1.1 HOÀN CẢNH RA ĐỜI CỦA NGÔN NGỮ C# VÀ .NET FRAMEWORK 10
2.1.2 CÁC PHIÊN BẢN CỦA .NET FRAMEWORK 11
2.2 KIẾN TRÚC CỦA .NET FRAMEWORK (.NET ARCHITECTURE) 15


ĐẠI HỌC QUỐC GIA TPHCM CHƯƠNG TRÌNH THẠC SĨ CNTT
4

2.2.1 Common Language Runtime (CLR) 16
2.2.2 Common Language Infrastructure (CLI) 20
2.2.3 Common Type System (CTS) 20
2.2.4 Common Data Type (CDT) 21
2.2.5 Common Language Specification (CLS) 22
2.2.6 So sánh với Java 22
2.2.7 Base Class Library (BCL) 22
2.2.8 Intermediate Language (IL) 23
3 PHẦN 3 : PHÂN TÍCH CÁC PHƯƠNG PHÁP SÁNG TẠO ĐƯỢC ÁP DỤNG TRONG
QUÁ TRÌNH PHÁT TRIỂN CỦA .NET FRAMEWORK 24
3.1 NGUYÊN TẮC PHÂN NHỎ 24
3.2 NGUYÊN TẮC THU NHỎ 26
3.3 NGUYÊN TẮC KẾT HỢP 26
3.4 NGUYÊN TẮC TÁCH KHỎI 26
3.5 NGUYÊN TẮC ĐẢO NGƯỢC 26
3.6 NGUYÊN TẮC CHỨA TRONG 27
3.7 NGUYÊN TẮC LINH ĐỘNG 27
3.8 NGUYÊN TẮC THAY ĐỔI MÀU SẮC 27

3.9 NGUYÊN TẮC VƯỢT NHANH 28
3.10 NGUYÊN TẮC VẠN NĂNG 28
3.11 NGUYÊN TẮC DỰ PHÒNG 28
3.12 NGUYÊN TẮC TÁC ĐỘNG SƠ BỘ 29
3.13 NGUYÊN TẮC PHẢN TÁC ĐỘNG SƠ BỘ 29
3.14 NGUYÊN TẮC TRUNG GIAN 29
3.15 NGUYÊN TẮC TỰ PHỤC VỤ 29
3.16 NGUYÊN TẮC SAO CHÉP 30
3.17 NGUYÊN TẮC ĐỒNG NHẤT 30
4 PHẦN 4 : KẾT LUẬN 31
TÀI LIệU THAM KHảO 31




ĐẠI HỌC QUỐC GIA TPHCM CHƯƠNG TRÌNH THẠC SĨ CNTT
5


1 PHẦN 1 : CÁC PHƯƠNG PHÁP SÁNG TẠO CƠ BẢN
1.1 Nguyên tắc phân nhỏ
a) Chia đối tượng thành các phần độc lập.
b) Làm đối tượng trở nên tháo lắp được.
c) Tăng mức độ phân nhỏ đối tượng.
1.2 Nguyên tắc tách khỏi
a) Tách phần gây “phiền phức” (tính chất “phiền phức”) hay ngược lại tách phần duy nhất “cần
thiết” (tính chất “cần thiết”) ra khỏi đối tượng.
1.3 Nguyên tắc phẩm chất cục bộ
a) Chuyển đối tượng (hay môi trường bên ngoài, tác động bên ngoài) có cấu trúc đồng nhất thành
không đồng nhất.

b) Các phần khác nhau của đối tượng phải có các chức năng khác nhau.
c) Mỗi phần của đối tượng phải ở trong những điều kiện thích hợp nhất đối với công việc.
1.4 Nguyên tắc phản đối xứng
Chuyển đối tượng có hình dạng đối xứng thành không đối xứng (nói chung giãm bật đối xứng).
1.5 Nguyên tắc kết hợp
a) Kết hợp các đối tượng đồng nhất hoặc các đối tượng dùng cho các hoạt động kế cận.
b) Kết hợp về mặt thời gian các hoạt động đồng nhất hoặc kế cận
1.6 Nguyên tắc vạn năng
Đối tượng thực hiện một số chức năng khác nhau, do đó không cần sự tham gia của các đối tượng
khác.
1.7 Nguyên tắc chứa trong
a) Một đối tượng được đặt bên trong đối tượng khác và bản thân nó lại chứa đối tượng thứ ba
b) Một đối tượng chuyển động xuyên suốt bên trong đối tượng khác.
1.8 Nguyên tắc phản trọng lượng
a) Bù trừ trọng lượng của đối tượng bằng cách gắn nó với các đối tượng khác có lực nâng.
b) Bù trừ trọng lượng của đối tượng bằng tương tác với môi trường như sử dụng các lực thủy động,
khí động



ĐẠI HỌC QUỐC GIA TPHCM CHƯƠNG TRÌNH THẠC SĨ CNTT
6

1.9 Nguyên tắc gây ứng xuất sơ bộ
Gây ứng suất trước với đối tượng để chống lại ứng suất không cho phép hoặc không mong muốn
khi đối tượng làm việc (hoặc gây ứng suất trước để khi làm việc sẽ dùng ứng suất ngược lại ).
1.10 Nguyên tắc thực hiện sơ bộ
a) Thực hiện trước sự thay đổi cần có, hoàn toàn hoặc từng phần, đối với đối tượng.
b) Cần sắp xếp đối tượng trước, sao cho chúng có thể hoạt động từ vị trí thuận lợi nhất, không
mất thời gian dịch chuyển

1.11 Nguyên tắc dự phòng
Bù đắp độ tin cậy không lớn của đối tượng bằng cách chuẩn bị trước các phương tiện báo động,
ứng cứu, an toàn
1.12 Nguyên tắc đẳng thế
Thay đổi điều kiện làm việc để không phải nâng lên hay hạ xuống các đối tượng
1.13 Nguyên tắc đảo ngược
a) Thay vì hành động như yêu cầu bài toán, hành động ngược lại (ví dụ, không làm nóng mà làm
lạnh đối tượng)
b) Làm phần chuyển động của đối tượng (hay môi trường bên ngoài) thành đứng yên và ngược
lại, phần đứng yên thành chuyển động.
1.14 Nguyên tắc cầu (tròn) hóa
a) Chuyển những phần thẳng của đối tượng thành cong, mặt phẳng thành mặt cầu, kết cấu hình
hộp thành kết cấu hình cầu.
b) Sử dụng các con lăn, viên bi, vòng xoắn.
c) Chuyển sang chuyển độg quay, sử dung lực ly tâm
1.15 Nguyên tắc linh động
a) Cần thay đổi các đặt trưng của đối tượng hay môi trường bên ngoài sao cho chúng tối ưu trong
từng giai đoạn làm việc.
b) Phân chia đối tượng thành từng phần, có khả năng dịch chuyển với nhau.
1.16 Nguyên tắc giải thiếu hoặc thừa
Nếu như khó nhận được 100% hiệu quả cần thiết, nên nhận ít hơn hoặc nhiều hơn “một chút”.
Lúc đó bài toán có thể trở nên đơn giản hơn và dễ giải hơn.
1.17 Nguyên tắc chuyển sang chiều khác
a) Những khó khăn do chuyển động (hay sắp xếp) đối tượng theo đường (một chiều) sẽ được
khắc phục nếu cho đối tượng khả năng di chuyển trên mặt phẳng (hai chiều). Tương tự, những
bài toán liên quan đến chuyển động (hay sắp xếp) các đối tượng trên mặt phẳng sẽ được đơn giản
hoá khi chuyển sang không gian (ba chiều).
b) Chuyển các đối tượng có kết cấu một tầng thành nhiều tầng.
c) Đặt đối tượng nằm nghiêng.



ĐẠI HỌC QUỐC GIA TPHCM CHƯƠNG TRÌNH THẠC SĨ CNTT
7

d) Sử dụng mặt sau của diện tích cho trước.
e) Sử dụng các luồng ánh sáng tới diện tích bên cạnh hoặc tới mặt sau của diện tích cho trước.
1.18 Nguyên tắc sử dụng các dao động cơ học
a) Làm đối tượng dao động. Nếu đã có dao động, tăng tầng số dao động ( đến tầng số siêu âm).
b) Sử dụng tầng số cộng hưởng.
c) Thay vì dùng các bộ rung cơ học, dùng các bộ rung áp điện.
d) Sử dụng siêu âm kết hợp với trường điện từ.
1.19 Nguyên tắc tác động theo chu kỳ
a) Chuyển tác động liên tục thành tác động theo chu kỳ (xung).
b) Nếu đã có tác động theo chu kỳ, hãy thay đổi chu kỳ.
c) Sử dụng các khoảng thời gian giữa các xung để thực hiện tác động khác.
1.20 Nguyên tắc liên tục tác động có ích
a) Thực hiện công việc một cách liên tục (tất cả các phần của đối tượng cần luôn luôn làm việc ở
chế độ đủ tải).
b) Khắc phục vận hành không tải và trung gian.
c) Chuyển chuyển động tịnh tiến qua lại thành chuyển động qua.
1.21 Nguyên tắc vượt nhanh
a. Vượt qua các giai đoạn có hại hoặc nguy hiểm với vận tốc lớn.
b. Vượt nhanh để có được hiệu ứng cần thiết.
1.22 Nguyên tắc biến hại thành lợi
a. Sử dụng những tác nhân có hại (thí dụ tác động có hại của môi trường) để thu được hiệu ứng
có lợi.
b. Khắc phục tác nhân có hại bằng cách kết hợp nó với tác nhân có hại khác.
c. Tăng cường tác nhân có hại đến mức nó không còn có hại nữa.
1.23 Nguyên tắc quan hệ phản hồi
a. Thiết lập quan hệ phản hồi

b. Nếu đã có quan hệ phản hồi, hãy thay đổi nó.
1.24 Nguyên tắc sử dụng trung gian
Sử dụng đối tượng trung gian, chuyển tiếp.
1.25 Nguyên tắc tự phục vụ
a. Đối tượng phải tự phục vụ bằng cách thực hiện các thao tác phụ trợ, sửa chữa.
b. Sử dụng phế liệu, chát thải, năng lượng dư.

1.26 Nguyên tắc sao chép (copy)
a. Thay vì sử dụng những cái không được phép, phức tạp, đắt tiền, không tiện lợi hoặc dễ vỡ, sử
dụng bản sao.


ĐẠI HỌC QUỐC GIA TPHCM CHƯƠNG TRÌNH THẠC SĨ CNTT
8

b. Thay thế đối tượng hoặc hệ các đối tượng bằng bản sao quang học (ảnh, hình vẽ) với các tỷ lệ
cần thiết.
c. Nếu không thể sử dụng bản sao quang học ở vùng biẻu kiến (vùng ánh sáng nhìn thấy được
bằng mắt thường), chuyển sang sử dụng các bản sao hồng ngoại hoặc tử ngoại.
1.27 Nguyên tắc rẻ thay cho đắt
Thay thế đối tượng đắt tiền bằng bộ các đối tượng rẻ có chất lượng kém hơn (thí dụ như về tuổi
thọ)
1.28 Nguyên tắc thay thế sơ đồ cơ học
a. Thay thế sơ đồ cơ học bằng điện, quang, nhiệt, âm hoặc mùi vị.
b. Sử dụng điện trường, từ trường và điện từ trường trong tương tác với đối tượng
c. Chuyển các trường đứng yên sang chuyển động, các trường cố định sang thay đổi theo thời
gian, các trường đồng nhất sang có cấu trúc nhất định .
d. Sử dụng các trường kết hợp với các hạt sắt từ.
1.29 Sử dụng các kết cấu khí và lỏng
Thay cho các phần của đối tượng ở thể rắn, sử dụng các chất khí và lỏng: nạp khí, nạp chất lỏng,

đệm không khí, thủy tĩnh, thủy phản lực.
1.30 Sử dụng vỏ dẻo và màng mỏng
a. Sử dụng các vỏ dẻo và màng mỏng thay cho các kết cấu khối.
b. Cách ly đối tượng với môi trường bên ngoài bằng các vỏ dẻo và màng mỏng.
1.31 Sử dụng các vật liệu nhiều lỗ
a. Làm đối tượng có nhiều lỗ hoặc sử dụng thêm những chi tiết có nhiều lỗ (miếng đệm, tấm
phủ…)
b. Nếu đối tượng đã có nhiều lỗ, sơ bộ tẩm nó bằng chất nào đó.
1.32 Nguyên tắc thay đổi màu sắc
a. Thay đổi màu sắc của đối tượng hay môi trường bên ngoài
b. Thay đổi độ trong suốt của của đối tượng hay môi trường bên ngoài.
c. Để có thể quan sát được những đối tượng hoặc những quá trình, sử dụng các chất phụ gia màu,
hùynh quang.
d. Nếu các chất phụ gia đó đã được sử dụng, dùng các nguyên tử đánh dấu.
e. Sử dụng các hình vẽ, ký hiệu thích hợp.
1.33 Nguyên tắc đồng nhất
Những đối tượng, tương tác với đối tượng cho trước, phải được làm từ cùng một vật liệu (hoặc từ
vật liệu gần về các tính chất) với vật liệu chế tạo đối tượng cho trước.
1.34 Nguyên tắc phân hủy hoặc tái sinh các phần
a. Phần đối tượng đã hoàn thành nhiệm vụ hoặc trở nên không càn thiết phải tự phân hủy (hoà
tan, bay hơi ) hoặc phải biến dạng.
b. Các phần mất mát của đối tượng phải được phục hồi trực tiếp trong quá trình làm việc.


ĐẠI HỌC QUỐC GIA TPHCM CHƯƠNG TRÌNH THẠC SĨ CNTT
9

1.35 Thay đổi các thông số hoá lý của đối tượng
a. Thay đổi trạng thái đối tượng.
b. Thay đổi nồng độ hay độ đậm đặc.

c. Thay đổi độ dẻo
d. Thay đổi nhiệt độ, thể tích.
1.36 Sử dụng chuyển pha
a. Sử dụng các hiện tượng nảy sinh trong quá trình chuyển pha như: thay đổi thể tích, toả hay hấp thu
nhiệt lượng
1.37 Sử dụng sự nở nhiệt
a. Sử dụng sự nở (hay co) nhiệt của các vật liệu.
b. Nếu đã dùng sự nở nhiệt, sử dụng với vật liệu có các hệ số nở nhiệt khác nhau.
1.38 Sử dụng các chất oxy hoá mạnh
a. Thay không khí thường bằng không khí giàu oxy.
b. Thay không khí giàu oxy bằng chính oxy.
c. Dùng các bức xạ ion hoá tác động lên không khí hoặc oxy.
d. Thay oxy giàu ozon (hoặc oxy bị ion hoá) bằng chính ozon.
1.39 Thay đổi độ trơ
a. Thay môi trường thông thường bằng môi trường trung hoà.
b. Đưa thêm vào đối tượng các phần , các chất , phụ gia trung hoà.
c. Thực hiện quá trình trong chân không.
1.40 Sử dụng các vật liệu hợp thành (composite)
Chuyển từ các vật liệu đồng nhất sang sử dụng những vật liệu hợp thành (composite). Hay nói
chung sử dụng các vật liệu mới.



ĐẠI HỌC QUỐC GIA TPHCM CHƯƠNG TRÌNH THẠC SĨ CNTT
10


2 PHẦN 2 : QUÁ TRÌNH HÌNH THÀNH VÀ PHÁT TRIỂN CỦA
MICROSOFT .NET FRAMEWORK
2.1 LỊCH SỬ RA ĐỜI VÀ PHÁT TRIỂN CỦA .NET FRAMEWORK







2.1.1 HOÀN CẢNH RA ĐỜI CỦA NGÔN NGỮ C# VÀ .NET FRAMEWORK
Vào khoảng những năm 90, công ty Sun Microsystems đã cho ra đời một ngôn ngữ hoàn toàn hướng
đối tượng và dễ sử dụng là Java, cho phép ta viết chương trình chạy trên đa nền tảng (multi-
platform). Sự ra đời của Java là một cuộc cách mạng thật sự cho cộng đồng phát triển.
Bối cảnh lúc bấy giờ, các nền tảng phát triển của Microsoft ( MFC, VS C++, VB6, VBScript,
Javascript, …) là một mớ hỗn độn rất khó sử dụng và không thể thống nhất cho phép chúng ta viết
ứng dụng 1 lần, chạy nhiều nơi “Write once, run anywhere” như Java.
Trước sự phát triển mạnh mẽ của Java và sự qua mặt của Sun, Microsoft quyết định sẽ cho ra đời
1 nền tảng và ngôn ngữ lập trình tương tự để cạnh tranh với sự trỗi dậy mạnh mẽ của Sun Java.
Năm 1996, cha đẻ của ngôn ngữ nổi tiếng C++ và là kiến trúc sư trưởng Ander Hejlsberg đã rời
khỏi công ty Borland và gia nhập đội ngũ phát triển của Microsoft.
Thành công đầu tiên của Hejlsberg là xây dựng thành công ngôn ngữ Visual J++, một ngôn ngữ sao
chép của Java nhưng chạy trên Windows. Nhưng sau đó Sun đã kiện vấn đề bản quyền Java của
ngôn ngữ J++ này buộc Microsoft phải ngừng phát triển ngôn ngữ này.
Vào tháng 1/1999, Ander Hejlsberg đã thành lập nên một đội ngũ với mong muốn tạo ra 1 ngôn
ngữ mới, ban đầu nó được gọi là COOL (C like Object Oriented Language). Vào tháng 7/2000
tại hội nghị các nhà phát triển PDC, ngôn ngữ được đổi tên là C# (đọc là C Sharp). C# là sự kết
hợp những điểm mạnh và khắc phục những khiếm khuyết của các ngôn ngữ C++, Java, Delphi và
Smalltalk. Và kể từ năm 2000, Hejlsberg được bổ nhiệm làm kiến trúc sư trưởng dự án phát triển
C#.
Cùng song song phát triển ngôn ngữ chủ lực C# cho nền tảng mới, Microsoft cũng phát triển .NET
Framework vào cuối những năm 90, ban đầu được đặt tên là Next Generation Windows Services
(NGWS). Vào cuối năm 2000 bản beta version của .NET 1.0 được công bố. Và cho đến nay, .NET
Framework đã phát triển đến version 4.5 beta 2 và sẽ được release trong năm 2012.

Trên đây là bối cảnh ra đời của C# và .NET Framework.


ĐẠI HỌC QUỐC GIA TPHCM CHƯƠNG TRÌNH THẠC SĨ CNTT
11

2.1.2 CÁC PHIÊN BẢN CỦA .NET FRAMEWORK
Version

Version Number

Release Date Visual Studio Default in Windows
1.0 1.0.3705.0 13 February 2002 Visual Studio .NET

1.1 1.1.4322.573 24 April 2003
Visual Studio .NET
2003
Windows Server 2003
2.0 2.0.50727.42 7 November 2005 Visual Studio 2005 Windows Server 2003 R2
3.0 3.0.4506.30 6 November 2006

Windows Vista, Windows Server
2008
3.5 3.5.21022.8 19 November 2007

Visual Studio 2008 Windows 7, Windows Server 2008 R2

4.0 4.0.30319.1 12 April 2010 Visual Studio 2010

4.5 4.5.?????.? 2012 Visual Studio 11 Windows 8, Windows Server 8


2.1.2.1 .NET Framework 1.0 :
Đây là phiên bản đầu tiên của .NET Framework, trình làng vào ngày 13-02-2002 và xuất hiện
trong các HĐH Win 98, Me, NT 4.0, 2000, và XP. Microsoft ngừng hỗ trợ cho phiên bản này
vào 10-07-2007
Một số điểm nổi bật trong .NET 1.0
+ Giới thiệu Web Services và XML
+ ADO.NET 1.0 (DataSet)
+ ASP.NET
2.1.2.2 .NET Framework 1.1
Đây là bản nâng cấp lớn cho 1.0, xuất hiện vào 24-04-2003, đây cũng là một phần tích hợp trong
phiên bản release của Visual Studio .NET 2003. Đây là bản .NET Framework tích hợp sẵn với
Windows OS là Windows Server 2003. Phiên bản này được hỗ trợ đến ngày 14-10-2008.
 Những thay đổi trong .NET 1.1 so với 1.0 :
- Hỗ trợ mobile ASP.NET controls
- Những thay đổi về security : cho phép Windows Form assemblies được chạy semi-trusted trên
internet, và cho phép Code Access Security trong các ứng dụng ASP.NET
- Hỗ trợ sẵn (Built-in) ODBC và Oracle database
- Cung cấp .NET Compact Framework cho các thiết bị di động


ĐẠI HỌC QUỐC GIA TPHCM CHƯƠNG TRÌNH THẠC SĨ CNTT
12

- Hỗ trợ IP v6
- Một số thay đổi của API
2.1.2.3 .NET Framework 2.0
Ra đời cùng với Visual Studio 2005, MS SQL Server 2005 và BizTalk 2006. Bản 2.0
Redistribute Package cho download từ ngày 22-01-2006.


 Những thay đổi trong NET 2.0 :
- Hỗ trợ tổng quát hóa Generics (giống hàm template trong C++), và nó được tích hợp sẵn trong
.NET CLR
- Hỗ trợ hoàn toàn phần cứng 64bit
- Một số thay đổi trong các API
- Tích hợp với SQL Server 2005
- Bổ sung mới và cải thiện 1 số ASP.NET web controls
- Một số data controls mới với cơ chế data binding
- Tính năng Personalization cho ASP.NET : như hỗ trợ theme, skins, master pages và webparts.
- .NET Micro Framework
- Membership provider
- Partial classes
- Nullable types
- Anonymous methods
- Iterators
- Data tables
2.1.2.4 .NET Framework 3.0
.NET Framework 3.0, tên trước đây là WinFX, được ra mắt vào ngày 21-11-2006. Nó bao
gồm 1 tập những hàm API mới, một phần tích hợp của Windows Vista và Windows Server
2008. Không có 1 sự thay đổi kiến trúc lớn nào trong bản 3.0, nó vẫn sử dụng CLR của .NET
2.0, không có .NET Compact Framework trong bản 3.0 này.

Những thay đổi trong NET 3.0 :
- Windows Presentation Foundation (WPF) : tên mã trước đây là Avalon, đây là một hệ
thống giao diện và API mới dựa trên XML và vector graphics, sử dụng phần cứng đồ họa 3D
và Direct3D
- Windows Communication Foundation (WCF) : tên mã là Indigo, đây là một hệ thống giao
tiếp hướng đến dịch vụ (service-oriented messaging system), cho phép các chương trình giao
tiếp với nhau ở gần hay từ xa, tương tự như web services.
- Windows Workflow Foundation (WF) : cho phép xây dựng nên hệ thống tự động của các

tác vụ và các giao dịch tích hợp, hay gọi là các workflow
- Windows CardSpace : tên trước đây là InfoCard, đây là thành phần giúp lưu trữ an toàn
các chứng minh số (digital itentities), và cung cấp 1 giao diện thống nhất chọn lựa chứng minh
số cho 1 giao dịch, như việc đăng nhập vào 1 website.


ĐẠI HỌC QUỐC GIA TPHCM CHƯƠNG TRÌNH THẠC SĨ CNTT
13

2.1.2.5 .NET Framework 3.5
Phiên bản .NET 3.5 được công bố ngày 19-11-2007, nhưng không được tích hợp trong Windows
Server 2008, giống như .NET 3.0, .NET 3.5 sử dụng CLR của 2.0. Phiên bản 3.5 bổ sung tính
năng mới là LINQ (Language Integrated Query). Phiên bản .NET Compact Framework 3.5 cũng
được trình làng hỗ trợ các tính năng mới cho Windows Mobile và Windows Embedded CE
devices.
 Các tính năng mới bổ sung trong .NET 3.5 SP1 :
- Cải thiện performance cho WPF
- Giới thiệu ADO.NET Entity Framework và ADO.NET Data Services
- 2 assembly mới : System.Web.Abstraction và System.Web.Routing dùng trong ASP.NET
MVC Framework
- .NET 3.5 SP1 tích hợp trong SQL Server 2008 và VS 2008 SP1, nó cũng được tích hợp sẵn
trong Windows 7 và Windows Server 2008 R2
 Các tính năng trong .NET 3.5 SP1 Client Profile :
.NET 3.5 SP1 Client Profile là 1 phiên bản thu nhỏ của .NET Framework, chỉ có dung lượng
28MB, nhỏ hơn rất nhiều so với .NET Framework đầy đủ, nó chỉ cài đặt những thành phần
cần thiết cho ứng dụng desktop.
2.1.2.6 .NET Framework 4.0
Trình làng vào ngày 12-04-2010, cùng với Visual Studio 2010. Một số tính năng mới thêm
vào .Net 4.0 :
- Xử lý song song (Parallel Extensions) : dành cho xử lý trên những máy tính đa lõi multi-

core hay hệ phân tán (distributed systems). Giới thiệu PLINQ (Parallel LINQ) và Task
Parallel Library
- Bổ sung tính năng cho VB.NET và C#, như dynamic dispatch, named parameters, và
optional parameters
- Hỗ trợ Code-Contract
- Bổ sung kiểu mới : System.Numerics.BigInteger và số phức System.Numerics.Complex
- Giới thiệu Windows Server AppFabric
2.1.2.7 .NET Framework 4.5

Bản Developer Preview (4.5.40805) release vào ngày 14-09-2011, phiên bản này là một tập hợp
những tính năng nâng cấp/thay đổi mới :
- Support viết ứng dụng Metro-style cho Windows 8 bằng C# hay VB.NET. Gọi là tập .NET
API for Metro style apps.
- Tất cả thư viện mới này nằm trong Windows Runtime (WinRT) : một hệ sinh thái mới cho
phép sử dụng nhiều nền tảng và ngôn ngữ khác nhau: .NET, C++, và HTML5/JavaScript.
WinRT cho phép ta dễ dàng sử dụng code-cross platform.
- Nâng cấp tính năng cho MEF (Managed Extensibility Framework) : support generics type,
convention-based programming, multiple-scopes support
- Thao tác file bất đồng bộ (Asynchronous File Operations)
- ASP.NET :
+ Hỗ trợ những kiểu form mới HTML5
+ Model binders cho Web form
+ Hỗ trỡ giao thức WebSockets.
+ Đọc và ghi HTTP requests và responses bất đồng bộ
+ Hỗ trợ modules và handlers bất đồng bộ
+ Hỗ trợ Content Distribution Network (CDN) fallback trong ScriptManager control


ĐẠI HỌC QUỐC GIA TPHCM CHƯƠNG TRÌNH THẠC SĨ CNTT
14


- Thêm System.Net.Http và System.Net.Http.Headers
- WPF :
+ Ribbon control
+ INotifyDataErrorInfo interface, hỗ trợ đồng bộ và bất đồng bộ data validation
+ cải thiện performance
+ support weak event patterns, và events bây giờ có thể support markup extension
+ data binding to static properties or custom types


ĐẠI HỌC QUỐC GIA TPHCM CHƯƠNG TRÌNH THẠC SĨ CNTT
15

2.2 KIẾN TRÚC CỦA .NET FRAMEWORK (.NET ARCHITECTURE)
Sau đây chúng ta sẽ đi sâu hơn về kiến trúc bên trong của .NET Framework, và các thành phần cơ bản cấu
thành
- .NET cho phép viết ứng dụng cross-platform


- Vị trí của .NET Framework trong ứng dụng .NET apps


- Vài điểm chính của kiến trúc .NET :
+ Đa ngôn ngữ (multi-language)
+ Đa nền tảng (multi-platform)
+ Dựa trên CLR, FCL (Framework Class Library) và công nghệ JIT (Just-In-Time)
+ Các thành phần .NET được đóng gói thành các assemblies


ĐẠI HỌC QUỐC GIA TPHCM CHƯƠNG TRÌNH THẠC SĨ CNTT

16

- Kiến trúc các thành phần chức năng của .NET :


- Kiến trúc các thành phần kỹ thuật của .NET:


2.2.1 Common Language Runtime (CLR)
 CLR là thư viện chung cho tất cả các ngôn ngữ trên .NET bao gồm
- Hệ thống kiểu chung - Common Type System (CTS)
- Metadata chung
- Ngôn ngữ trung gian - Intermediate Language (IL)
- Thành phần cấp phát bộ nhớ và dọn dẹp rác (memory allocation and garbage collector)
- Thực thi mã và kiểm tra an toàn mã (code execution and security)
- Hơn 15 ngôn ngữ được hỗ trợ trong .Net ngày nay : C#, VB, JScript, Visual C++, Perl,
Python, Ruby, Smalltalk, Cobol, Haskell, Mercury, Eiffel, Oberon, Oz, Pascal, APL, CAML,


ĐẠI HỌC QUỐC GIA TPHCM CHƯƠNG TRÌNH THẠC SĨ CNTT
17

Scheme, …
- Rational đang làm việc tren Java compiler cho CLR.
Kiến trúc của CLR :


Mô hình thực thi mã của CLR :





ĐẠI HỌC QUỐC GIA TPHCM CHƯƠNG TRÌNH THẠC SĨ CNTT
18



CLR hoạt động như thế nào ?




ĐẠI HỌC QUỐC GIA TPHCM CHƯƠNG TRÌNH THẠC SĨ CNTT
19



Bộ máy thực thi của CLR (execution engine) có nhiệm vụ :
- Dịch mã trung gian IL sang mã máy (native code)
- Xử lý dọn dẹp rác (garbage collection)
- Xử lý lỗi (exceptions)
- Đảm bảo mã thực thi an toàn (code access security)
- Thực hiện việc kiểm tra (verification) : managed v. unmanaged
CLR và JIT (Just-In-Time) compiling
- Thực thi gián tiếp các ứng dụng .Net
- Tất cả ngôn ngữ .Net được dịch sang cùng ngôn ngữ trung gian (IL)
- CLR chuyển đổi mã IL sang thành những chỉ thị (instructions) của assembly cho 1 kiến trúc phần
cứng riêng, việc này gọi là Jit’ing hay Just-in-time compiling.
+ Jit mất vài chi phí performance lúc dịch ban đầu, nhưng mã Jit được cached lại để dùng về
sau

+ CLR có thể hoạt động trên một kiến trúc riêng biệt mà mã được thực thi, vì thế performance
được cải thiện

Các ưu điểm của CLR :
- Hỗ trợ cho các dịch vụ cho developers (debugging)
- Cho phép liên tương tác (interoperation) giữa các managed code và unmanaged code (COM,
DLLs)
- Môi trường managed code
- Cải thiện xử lý bộ nhớ (memory handling)
- Cải thiện khả năng dọn rác (garbage collection)
- JIT cho phép code chạy trong môi trường được bảo vệ như managed code
- JIT cho phép mã trung gian IL độc lập với phần cứng
- CLR cũng cho phép đảm bảo an toàn mã khi thực thi (code access security)
- Kiểm tra an toàn kiểu (verification of type safety)
- Truy cập Metadata (enhanced Type Information)




ĐẠI HỌC QUỐC GIA TPHCM CHƯƠNG TRÌNH THẠC SĨ CNTT
20

2.2.2 Common Language Infrastructure (CLI)

- CLI cho phép phát triển cross-language
- 4 thành phần :
+ Common Type System (CTS)
+ Metadata theo mô hình độc lập ngôn ngữ
+ Common Language Specification (CLS) : bao gồm các hành vi mà tất cả ngôn ngữ cần
phải theo

+ Virtual Execution System (VES)

2.2.3 Common Type System (CTS)
- Là 1 hệ thống mô tả cách các kiểu dữ liệu được định nghĩa và cách chúng hoạt động.
- Chúng không mô tả cú pháp (syntax).
- Một kiểu (type) có thể chứa không hoặc nhiều thành phần sau :

+ Field
+ Method
+ Property
+ Event


ĐẠI HỌC QUỐC GIA TPHCM CHƯƠNG TRÌNH THẠC SĨ CNTT
21




2.2.4 Common Data Type (CDT)
CLR cung cấp một tập các kiểu dữ liệu cơ bản (primitive types) mà tất cả các ngôn ngữ phải hỗ
trợ :
- Integer : 3 kiểu 16/32/64 bits
- Float : 2 kiểu 32/64 bits
- Boolean và Character
- DateTime và TimeSpan
Các kiểu cơ bản có thể sử dụng trong
- Kiểu mảng (Array)
- Kiểu cấu trúc (Structures)
- Kết hợp cả hai loại



ĐẠI HỌC QUỐC GIA TPHCM CHƯƠNG TRÌNH THẠC SĨ CNTT
22

2.2.5 Common Language Specification (CLS)
Không phải tất cả ngôn ngữ hỗ trợ tất cả kiểu CTS và tính năng
- C# là case-sensitive, còn VB.NET thì không
- C# hỗ trợ kiểu pointer (ở unsafe mode), VB.NET thì không
- C# hỗ trợ operator overloading, VB.NET thì không
CLS được thiết kế nhằm mục đích thúc đẩy liên tương tác các ngôn ngữ (language
interoperability). Phần lớn các lớp trong FCL là tương thích với CLS
2.2.6 So sánh với Java


2.2.7 Base Class Library (BCL)



ĐẠI HỌC QUỐC GIA TPHCM CHƯƠNG TRÌNH THẠC SĨ CNTT
23

- BCL tương tự như Java System namespace
- Được sử dụng bởi tất cả ứng dụng .Net
- Cung cấp các lớp cho : IO, Threading, Database, Text, Graphics, Console,
Sockets/Web/Mail, Security, Cryptography, COM, Runtime type discovery/Invocation, Assembly
Generation
Ví dụ :

2.2.8 Intermediate Language (IL)

- Tất cả các ngôn ngữ trong .Net không phải được dịch trực tiếp sang mã máy mà dịch sang mã
trung gian (IL)
- CLR chấp nhận mã IL và dịch lại nó sang mã máy thực thi. Quá trình dịch lại gọi là JIT
compiling, nghĩa là nó được dịch ngay khi hàm hay thủ tục được gọi.
- Mã JIT nằm trong bộ nhớ cho những lần gọi sau, trong trường hợp không đủ bộ nhớ nó bị loại
bỏ và vì thế làm cho quá trình JIT giống như thông dịch.


ĐẠI HỌC QUỐC GIA TPHCM CHƯƠNG TRÌNH THẠC SĨ CNTT
24


3 PHẦN 3 : PHÂN TÍCH CÁC PHƯƠNG PHÁP SÁNG TẠO ĐƯỢC ÁP
DỤNG TRONG QUÁ TRÌNH PHÁT TRIỂN CỦA .NET FRAMEWORK
3.1 NGUYÊN TẮC PHÂN NHỎ
Nguyên tắc phân nhỏ được ứng dụng nhiều trong .Net, đơn cử 2 ví dụ đó là khái niệm Partial
classes và 3-layer applications
1. Partial classes :
- Khái niệm Partial classes xuất hiện từ .Net 2.0, nó cho phép chúng ta chia nhỏ và viết các
classes/struct/method trên 2 hay nhiều file source khác nhau, không nhất thiết phải định
nghĩa trong 1 file source code duy nhất. Các phần khác nhau được khai báo thêm từ khóa
“partial”
- Khi dịch trình biên dịch sẽ tự động đi tìm những phần partial và merge lại với nhau thành
1 class chung.
- Việc phân chia 1 class lớn thành ra những phần khác nhau độc lập trên các file
sourcecode khác nhau, cho phép nhiều người cùng tham gia implement classes/methods và
phát triển song song, giúp tăng hiệu suất và tiết kiệm thời gian.
Ví dụ : Hình dưới minh họa là class Customer được viết trên 2 file khác nhau là customer1.cs
và customer2.cs. File 1 chứa hàm Add() và file 2 chứa hàm Delete(). Khi biên dịch sẽ thành 1
class duy nhất là Customer chứa cả 2 hàm Add() và Delete().



2. 3-layer applications :
Các ứng dụng lớn và enterprise thường phân chia ứng dụng thành những lớp (layer) độc lập
để dễ quản lý, mở rộng và maintain sau này khi ứng dụng trở nên phức tạp. Những ứng
dụng này được gọi là multi-layer apps (đa lớp), mà phổ biến nhất là dạng 3-layer apps (mô
hình ứng dụng 3 lớp)


ĐẠI HỌC QUỐC GIA TPHCM CHƯƠNG TRÌNH THẠC SĨ CNTT
25


Mô hình tổng quát của 3-layer apps
Hình trên là mô hình tổng quát của ứng dụng 3 lớp
+ Presentation layer : tầng này chịu trách nhiệm thể hiện phần giao tiếp với người dùng
(ví dụ như các WinForm, UI, WPF). Phần này là phần gần với User nhất.
+ Business layer : tầng này là tầng business domain và logic của ứng dụng, chứa các
business objects cho tầng Presentation sử dụng.
+ Data Access layer : tầng này chịu trách nhiệm truy xuất dữ liệu cho tầng business sử
dụng. Tầng này có nhiệm vụ đọc/ghi dữ liệu xuống database hay một service locator bên
ngoài (như Web service, WCF…)

Một ví dụ áp dụng 3-layer vào 1 ứng dụng phức tạp thực tế hiện nay, mô hình kết hợp với
những thành phần khác như hình sau


×