Chuyên đề Nguyên tắc sáng tạo khoa học trong sự phát triển của microsoft .net framework

3.12 NGUYÊN TẮC TÁC ĐỘNG SƠ BỘ .NET Framework biên dịch các mã nguồn thành dạng ngôn ngữ trung gian (IL) trước khi dịch sang mã máy và thực thi. 3.13 NGUYÊN TẮC PHẢN TÁC ĐỘNG SƠ BỘ Trong các ứng dụng .NET, chúng ta thực hiện các thao tác tiề n xử lý trong h ệ th ống để nâng cao hiệu quả xử lý các bước tiếp theo. 3.14 NGUYÊN TẮC TRUNG GIAN Trong .NET, người ta sử dụng các lớp trung gian, các tầng giao tiếp, các trình điều khiển Vi dụ : Các trình điề u khiển (driver) truy xuất dữ liệu SQLite/MySQL. Các chương trình khách (client) có thể sử dụng cùng 1 giao diện để truy xuất nhiều loại dữ liệu khác nhau 3.15 NGUYÊN TẮC TỰ PHỤC VỤ Các chương trình tự động cập nhật các nâng cấp (update), vá lỗi (patch) cho các tính năng của .NET Framework. Các chương trình này theo định kỳ sẽ tự động kiể m tra và cập nhật các thay đổi cần thiết.

pdf31 trang | Chia sẻ: lylyngoc | Lượt xem: 2467 | Lượt tải: 1download
Bạn đang xem trước 20 trang tài liệu Chuyên đề Nguyên tắc sáng tạo khoa học trong sự phát triển của microsoft .net framework, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
ĐẠ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 : thanhauco2002@yahoo.com 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 ĐẠI HỌC QUỐC GIA TPHCM CHƯƠNG TRÌNH THẠC SĨ CNTT 26 3.2 NGUYÊN TẮC THU NHỎ Nguyên tắc này rõ nhất trong việc Microsoft cho ra đời bản thu nhỏ của .NET Framework dùng trong các thiết bị di động là .NET Compact Framework hay .NET Micro Framework, hay trong .NET 3.5 Client Profile. Các phiên bản này là bản hạn chế một số tính năng so với bản Full .NET Framework, giúp giảm kích thước của .Net để hoạt động trên các thiết bị di động (hand-held devices). 3.3 NGUYÊN TẮC KẾT HỢP Trong 1 ứng dụng viết bằng .Net, các module có thể được viết bằng các ngôn ngữ khác nhau (C#, C++, VB.NET, JavaScript, Python,…) của các nhóm phát triển khác nhau. Do kiến trúc của .Net, khi dịch và thực thi ứng dụng, trình biên dịch (compiler) sẽ biên dịch các module viết bằng các ngôn ngữ khác nhau này thành mã trung gian (IL – Intermediate Language). Khi ứng dụng được thực thi, mã IL sẽ được dịch sang mã máy (machine code) và thi hành ứng dụng. Xem lại phần 2 giới thiệu về CLR để rõ hơn về cách biên dịch một chương trình trong .Net. Tính năng kết hợp này của .Net Framework giúp tăng khả năng cộng tác của các nhóm phát triển và giúp .Net Framework trở thành một nền tảng thống nhất và mạnh mẽ của các ngôn ngữ khác nhau được viết cho .Net. 3.4 NGUYÊN TẮC TÁCH KHỎI Nguyên tắc tách khỏi được áp dụng rõ nét nhất trong MEF (Managed Extensibility Framework) của .Net Framework kể từ version 4.0 về sau. ( MEF là một framework giúp chúng ta xây dựng 1 ứng dụng thành những thành phần tách biệt và có khả năng plugin tự động khi chương trình hoạt động. Nó cho phép chúng ta xây dựng ứng dụng linh hoạt với các thành phần, chức năng riêng biệt được phát triển độc lập bởi các nhóm khác nhau, khi cần tính năng nào ta chỉ cần copy assembly (dll) tương ứng vào folder ứng dụng chính là tự động tính năng đó có mặt trong chương trình. Nói cách khác, 1 ứng dụng chính được phân tách thành những thành phần con riêng biệt. 3.5 NGUYÊN TẮC ĐẢO NGƯỢC Nguyên tắc này rõ nhất trong việc ứng dụng 2 Design Patterns phổ biến hiện nay Dependency Injection (DI) và Inversion Of Control (IoC) trong việc xây dựng 1 ứng dụng .NET. ( DI giúp chúng ta xây dựng 1 ứng dụng loose-coupling. Trước hết, ta cần hiểu Inversion of Control (IoC) là gì. IoC yêu cầu “instance của 1 class cần phải được tạo bên ngoài từ 1 class khác” (the instance of a class need creating outside of other class). Vậy khác biệt giữa DI và IoC là gì ? IoC chính là nguyên lý (principle), còn DI chính là phương thức (methodology) thực hiện nó. Vì thế để đạt được loose coupling ta thực hiện DI cho application. Ưu điểm của 1 chương trình có apply DI - Dễ unittest - Dễ tìm lỗi - Dễ maintain ĐẠI HỌC QUỐC GIA TPHCM CHƯƠNG TRÌNH THẠC SĨ CNTT 27 3.6 NGUYÊN TẮC CHỨA TRONG Trong 1 ứng dụng .Net, 1 ứng dụng bao gồm 1 hay nhiều các assembly (dll, exe), mỗi assembly lại bao gồm nhiều chương trình con, 1 chương trình con lại bao gồm các chương trình con khác 3.7 NGUYÊN TẮC LINH ĐỘNG Nguyên tắc này thấy rõ trong cơ chế Dynamic Binding và Dynamic Language Runtime (DLR) của .NET 4.0 Cơ chế Dynamic Binding cho ta 1 phương cách thống nhất để invoke mọi thứ theo 1 cách động. Nhờ Dynamic Binding, nếu ta có 1 object trong tay, ta không phải lo lắng obj đó là dạng COM, IronPython, HTML DOM, hay Reflection …, ta chỉ việc gọi hàm của obj đó, còn việc thực thi xảy ra lúc runtime. Cơ chế này đem lại sự linh động rất lớn và có thể đơn giản hóa code. C# 4.0 cũng giới thiệu kiểu mới là dynamic . Khi ta có obj kiểu dynamic thì ta có thể làm các việc trên nó mà sẽ được resolve vào lúc runtime. 3.8 NGUYÊN TẮC THAY ĐỔI MÀU SẮC Trong các chương trình .Net, ta thường dùng hộp thông báo (MessageBox) để thông báo các thông điệp khác nhau (Warning, Error, Info) bằng cách sử dụng các biểu tượng và màu sắc khác nhau, giúp người dùng hiểu họ được thông báo với tình trạng gì. ĐẠI HỌC QUỐC GIA TPHCM CHƯƠNG TRÌNH THẠC SĨ CNTT 28 3.9 NGUYÊN TẮC VƯỢT NHANH -Trong các ngôn ngữ lập trình của .Net (C#, C++, VB.NET, …), cấu trúc rẽ nhánh giúp chương trình vượt nhanh qua các phần không thỏa điều kiện. - Hay trong .NET, có tiện ích SqlBulkCopy cho phép chúng ta copy data từ 1 database này sang database khác theo từng khối, giúp tăng tốc quá trình copy và tối ưu hiệu năng hệ thống. 3.10 NGUYÊN TẮC VẠN NĂNG Nguyên tắc vạn năng thấy rõ nhất trong tính năng Generics bắt đầu từ .Net 2.0. Generics cho phép ta viết chỉ 1 hàm nhưng dùng được cho nhiều loại (Type) khác nhau. Generics giúp type-safe, compile-time error checking, chương trình bớt lỗi runtime và giảm số dòng code phải viết. Ví dụ : xây dựng kiểu dữ liệu Stack, item là kiểu dữ liệu bất kỳ, ta chỉ cần viết 1 hàm tổng quát type T. Khi sử dụng ta thay T bằng kiểu dữ liệu bất kỳ, ở trên là T = int, ta có thể define một class là Student và có thể xây dựng Stack. 3.11 NGUYÊN TẮC DỰ PHÒNG Sử dụng giải thuật để xử lý các tình huống xấu xảy ra, qua đó duy trì tính ổn định của hệ thống, giúp hệ thống không bị crash. Chẳng hạn, cơ chế bẫy lỗi trong các ngôn ngữ của .NET, sử dụng cấu trúc try …catch … finally để xử lý lỗi và dọn dẹp (đóng connection, đóng file, thu hồi vùng nhớ, …) khi có lỗi xảy ra Ví dụ : ĐẠI HỌC QUỐC GIA TPHCM CHƯƠNG TRÌNH THẠC SĨ CNTT 29 3.12 NGUYÊN TẮC TÁC ĐỘNG SƠ BỘ .NET Framework biên dịch các mã nguồn thành dạng ngôn ngữ trung gian (IL) trước khi dịch sang mã máy và thực thi. 3.13 NGUYÊN TẮC PHẢN TÁC ĐỘNG SƠ BỘ Trong các ứng dụng .NET, chúng ta thực hiện các thao tác tiền xử lý trong hệ thống để nâng cao hiệu quả xử lý các bước tiếp theo. 3.14 NGUYÊN TẮC TRUNG GIAN Trong .NET, người ta sử dụng các lớp trung gian, các tầng giao tiếp, các trình điều khiển Vi dụ : Các trình điều khiển (driver) truy xuất dữ liệu SQLite/MySQL. Các chương trình khách (client) có thể sử dụng cùng 1 giao diện để truy xuất nhiều loại dữ liệu khác nhau 3.15 NGUYÊN TẮC TỰ PHỤC VỤ Các chương trình tự động cập nhật các nâng cấp (update), vá lỗi (patch) cho các tính năng của .NET Framework. Các chương trình này theo định kỳ sẽ tự động kiểm tra và cập nhật các thay đổi cần thiết. ĐẠI HỌC QUỐC GIA TPHCM CHƯƠNG TRÌNH THẠC SĨ CNTT 30 3.16 NGUYÊN TẮC SAO CHÉP Trong .NET, thay vì tạo ra 1 đối tượng có thể gây ra hao phí tài nguyên, chỉ tạo ra 1 đối tượng sao chép Ví dụ : trong .NET, shallow copy là 1 đối tượng trong đó có chứa tham chiếu đến đối tượng cần sử dụng mà không cần tạo thêm 1 đối tượng nữa. 3.17 NGUYÊN TẮC ĐỒNG NHẤT Trong .NET, các kiểu dữ liệu ArrayList, Collection phải chứa các phần tử cùng kiểu để đảm bảo các thao tác đồng nhất trên đó. ĐẠI HỌC QUỐC GIA TPHCM CHƯƠNG TRÌNH THẠC SĨ CNTT 31 4 PHẦN 4 : KẾT LUẬN Có thể nói môn học “Các phương pháp sáng tạo khoa học” là môn học vô cùng hay và bổ ích cho những ai hoạt động trong lĩnh vực khoa học, đặc biệt là lĩnh vực CNTT. Qua môn học này giúp em hệ thống hóa lại được các nguyên tắc sáng tạo trong cuộc sống, giúp thay đổi cách suy nghĩ của em về một vấn đề trong khoa học cũng như trong công việc, cuộc sống hàng ngày. Nó cũng giúp em suy nghĩ sáng tạo hơn, tránh sự ù lì, rập khuôn, thiếu sáng tạo. Tài liệu tham khảo 1. Bài giảng môn học “Phương pháp nhiên cứu khoa học trong tin học” . Giảng viên : GS.TSKH Hoàng Văn Kiếm Chương trình đào tạo thac sĩ CNTT qua mạng. Trung tâm phát triển CNTT ĐH Quốc gia TP.HCM - 2005. 2. 3. 4.

Các file đính kèm theo tài liệu này:

  • pdfnet_framework_2854.pdf