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

ĐẠ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

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.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

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


ĐẠ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

đệ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.

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.


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.


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-


- 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
ĐẠ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

+ 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

- 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().


Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status