Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 31 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
31
Dung lượng
1,32 MB
Nội dung
ĐẠ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 Email : thanhauco2002@yahoo.com GVHD : GS-TSKH HOÀNG VĂN KIẾM TPHCM, 3/2012 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com ĐẠI HỌC QUỐC GIA TPHCM CHƯƠNG TRÌNH THẠC SĨ CNTT Lời Mở Đầu Có thể nói, sống thời đại thay đổi vũ bão khoa học kỹ thuật công nghệ (KHCN), thành tựu KHCN làm thay đổi mặt giới suốt kỷ qua, góp phần trở thành động lực thúc đẩy tiến xã hội KHCN trở thành lĩnh vực mũi nhọn quốc gia thời đại tri thức ngày nay, lĩnh vực CNTT lĩnh vực có nhiều đóng góp sáng tạo cho giới Em có may mắn hoạt động lĩnh vực sản xuất phần mềm năm lĩnh vực chuyên sâu em công nghệ Microsoft đặc biệt NET Framework Trong khuôn khổ thu hoạch này, cho em xin mạn phép trình bày hiểu biết hạn hẹp em NET Framework phân tích sáng tạo đời phát triển NET Framework Phần em xin giới thiệu tóm tắt chung 40 phương pháp sáng tạo khoa học Phần sâu vào cơng nghệ NET phân tích phương pháp sáng tạo sử dụng suốt trình hình thành phát triển Microsoft NET Framework Trong suốt thu hoạch có thuật ngữ chuyên ngành dịch tiếng Việt, cho em xin giữ nguyên nghĩa tiếng Anh để đảm bảo tính sáng Bài thu hoạch có đính kèm theo sourcecode demo chương trình có sử dụng cơng nghệ Microsoft đề cập Thiếu sót điều khơng thể tránh khỏi, em mong nhận lời nhận xét đóng góp chân thành thầy Qua đây, em 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 kiến thức tảng cho chúng em môn học “Phương pháp nghiên cứu khoa học tin học” Trong trình làm thu hoạch giúp em củng cố thêm nhiều kiến thức NET Framework Em hy vọng thu hoạch tham khảo quý báu cho làm CNTT đặc biệt công nghệ NET Xin chân thành cám ơn ! Vũ Minh Thành – 3/2012 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com ĐẠI HỌC QUỐC GIA TPHCM CHƯƠNG TRÌNH THẠC SĨ CNTT NỘI DUNG PHẦN : CÁC PHƯƠNG PHÁP SÁNG TẠO CƠ BẢN 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9 1.10 1.11 1.12 1.13 1.14 1.15 1.16 1.17 1.18 1.19 1.20 1.21 1.22 1.23 1.24 1.25 1.26 1.27 1.28 1.29 1.30 1.31 1.32 1.33 1.34 1.35 1.36 1.37 1.38 1.39 1.40 Nguyên tắc phân nhỏ Nguyên tắc tách khỏi Nguyên tắc phẩm chất cục Nguyên tắc phản đối xứng Nguyên tắc kết hợp Nguyên tắc vạn Nguyên tắc chứa Nguyên tắc phản trọng lượng Nguyên tắc gây ứng xuất sơ Nguyên tắc thực sơ Nguyên tắc dự phòng Nguyên tắc đẳng Nguyên tắc đảo ngược Nguyên tắc cầu (trịn) hóa Nguyên tắc linh động Nguyên tắc giải thiếu thừa Nguyên tắc chuyển sang chiều khác Nguyên tắc sử dụng dao động học Nguyên tắc tác động theo chu kỳ Nguyên tắc liên tục tác động có ích Nguyên tắc vượt nhanh Nguyên tắc biến hại thành lợi Nguyên tắc quan hệ phản hồi Nguyên tắc sử dụng trung gian Nguyên tắc tự phục vụ Nguyên tắc chép (copy) Nguyên tắc rẻ thay cho đắt Nguyên tắc thay sơ đồ học Sử dụng kết cấu khí lỏng Sử dụng vỏ dẻo màng mỏng Sử dụng vật liệu nhiều lỗ Nguyên tắc thay đổi màu sắc Nguyên tắc đồng Nguyên tắc phân hủy tái sinh phần Thay đổi thơng số hố lý đối tượng Sử dụng chuyển pha Sử dụng nở nhiệt Sử dụng chất oxy hoá mạnh Thay đổi độ trơ Sử dụng vật liệu hợp thành (composite) PHẦN : QUÁ TRÌNH HÌNH THÀNH VÀ PHÁT TRIỂN CỦA MICROSOFT NET FRAMEWORK 10 2.1 2.2 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 KIẾN TRÚC CỦA NET FRAMEWORK (.NET ARCHITECTURE) .15 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com ĐẠI HỌC QUỐC GIA TPHCM 2.2.1 2.2.2 2.2.3 2.2.4 2.2.5 2.2.6 2.2.7 2.2.8 CHƯƠNG TRÌNH THẠC SĨ CNTT Common Language Runtime (CLR) 16 Common Language Infrastructure (CLI) 20 Common Type System (CTS) 20 Common Data Type (CDT) 21 Common Language Specification (CLS) 22 So sánh với Java .22 Base Class Library (BCL) 22 Intermediate Language (IL) .23 PHẦN : 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 3.2 3.3 3.4 3.5 3.6 3.7 3.8 3.9 3.10 3.11 3.12 3.13 3.14 3.15 3.16 3.17 NGUYÊN TẮC PHÂN NHỎ .24 NGUYÊN TẮC THU NHỎ 26 NGUYÊN TẮC KẾT HỢP 26 NGUYÊN TẮC TÁCH KHỎI .26 NGUYÊN TẮC ĐẢO NGƯỢC .26 NGUYÊN TẮC CHỨA TRONG 27 NGUYÊN TẮC LINH ĐỘNG .27 NGUYÊN TẮC THAY ĐỔI MÀU SẮC .27 NGUYÊN TẮC VƯỢT NHANH 28 NGUYÊN TẮC VẠN NĂNG .28 NGUYÊN TẮC DỰ PHÒNG 28 NGUYÊN TẮC TÁC ĐỘNG SƠ BỘ 29 NGUYÊN TẮC PHẢN TÁC ĐỘNG SƠ BỘ 29 NGUYÊN TẮC TRUNG GIAN 29 NGUYÊN TẮC TỰ PHỤC VỤ .29 NGUYÊN TẮC SAO CHÉP 30 NGUYÊN TẮC ĐỒNG NHẤT 30 PHẦN : KẾT LUẬN 31 TÀI LIệU THAM KHảO 31 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com ĐẠI HỌC QUỐC GIA TPHCM 1.1 CHƯƠNG TRÌNH THẠC SĨ CNTT PHẦN : CÁC PHƯƠNG PHÁP SÁNG TẠO CƠ BẢN Nguyên tắc phân nhỏ a) Chia đối tượng thành phần độc lập b) Làm đối tượng trở nên tháo lắp 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 “cần thiết” (tính chất “cần thiết”) khỏi đối tượng 1.3 Nguyên tắc phẩm chất cục a) Chuyển đối tượng (hay mơi trường bên ngồi, tác động bên ngồi) có cấu trúc đồng thành khơng đồng b) Các phần khác đối tượng phải có chức khác c) Mỗi phần đối tượng phải điều kiện thích hợp 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 đối tượng đồng đối tượng dùng cho hoạt động kế cận b) Kết hợp mặt thời gian hoạt động đồng kế cận 1.6 Nguyên tắc vạn Đối tượng thực số chức khác nhau, khơng cần tham gia đối tượng khác 1.7 Nguyên tắc chứa a) Một đối tượng đặt bên đối tượng khác thâ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 đối tượng khác 1.8 Nguyên tắc phản trọng lượng a) Bù trừ trọng lượng đối tượng cách gắn với đối tượng khác có lực nâng b) Bù trừ trọng lượng đối tượng tương tác với môi trường sử dụng lực thủy động, khí động LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com ĐẠI HỌC QUỐC GIA TPHCM 1.9 CHƯƠNG TRÌNH THẠC SĨ CNTT Nguyên tắc gây ứng xuất sơ Gây ứng suất trước với đối tượng để chống lại ứng suất không cho phép không mong muốn đối tượng làm việc (hoặc gây ứng suất trước để làm việc dùng ứng suất ngược lại ) 1.10 Nguyên tắc thực sơ a) Thực trước thay đổi cần có, hồn tồn phần, đối tượng b) Cần xếp đối tượng trước, cho chúng hoạt động từ vị trí thuận lợi nhất, khơng 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 đối tượng cách chuẩn bị trước phương tiện báo động, ứng cứu, an toàn 1.12 Nguyên tắc đẳng Thay đổi điều kiện làm việc để nâng lên hay hạ xuống đối tượng 1.13 Nguyên tắc đảo ngược a) Thay hành động u cầu tố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 đối tượng (hay mơi trường bên ngồi) thành đứng n 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 phần thẳng đố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 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 đặt trưng đối tượng hay mơi trường bên ngồi cho chúng tối ưu giai đoạn làm việc b) Phân chia đối tượng thành phần, có khả dịch chuyển với 1.16 Nguyên tắc giải thiếu thừa Nếu khó nhận 100% hiệu cần thiết, nên nhận nhiều “một chút” Lúc tốn trở nên đơn giản dễ giải 1.17 Nguyên tắc chuyển sang chiều khác a) Những khó khăn chuyển động (hay xếp) đối tượng theo đường (một chiều) khắc phục cho đối tượng khả di chuyển mặt phẳng (hai chiều) Tương tự, toán liên quan đến chuyển động (hay xếp) đối tượng mặt phẳng đơn giản hoá chuyển sang không gian (ba chiều) b) Chuyển đối tượng có kết cấu tầng thành nhiều tầng c) Đặt đối tượng nằm nghiêng LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com ĐẠI HỌC QUỐC GIA TPHCM CHƯƠNG TRÌNH THẠC SĨ CNTT d) Sử dụng mặt sau diện tích cho trước e) Sử dụng luồng ánh sáng tới diện tích bên cạnh tới mặt sau diện tích cho trước 1.18 Nguyên tắc sử dụng dao động 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 dùng rung học, dùng 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ỳ, thay đổi chu kỳ c) Sử dụng khoảng thời gian xung để thực tác động khác 1.20 Nguyên tắc liên tục tác động có ích a) Thực công việc cách liên tục (tất phần đối tượng cần luôn làm việc chế độ đủ tải) b) Khắc phục vận hành không tải 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 giai đoạn có hại nguy hiểm với vận tốc lớn b Vượt nhanh để 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 tác nhân có hại (thí dụ tác động có hại mơi trường) để thu hiệu ứng có lợi b Khắc phục tác nhân có hại cách kết hợp 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 khơng cịn có hại 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, thay đổi 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ụ cách thực thao tác phụ trợ, sửa chữa b Sử dụng phế liệu, chát thải, lượng dư 1.26 Nguyên tắc chép (copy) a Thay sử dụng không phép, phức tạp, đắt tiền, không tiện lợi dễ vỡ, sử dụng LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com ĐẠI HỌC QUỐC GIA TPHCM CHƯƠNG TRÌNH THẠC SĨ CNTT b Thay đối tượng hệ đối tượng quang học (ảnh, hình vẽ) với tỷ lệ cần thiết c Nếu sử dụng quang học vùng biẻu kiến (vùng ánh sáng nhìn thấy mắt thường), chuyển sang sử dụng hồng ngoại tử ngoại 1.27 Nguyên tắc rẻ thay cho đắt Thay đối tượng đắt tiền đối tượng rẻ có chất lượng (thí dụ tuổi thọ) 1.28 Nguyên tắc thay sơ đồ học a Thay sơ đồ học điện, quang, nhiệt, âm mùi vị b Sử dụng điện trường, từ trường điện từ trường tương tác với đối tượng c Chuyển trường đứng yên sang chuyển động, trường cố định sang thay đổi theo thời gian, trường đồng sang có cấu trúc định d Sử dụng trường kết hợp với hạt sắt từ 1.29 Sử dụng kết cấu khí lỏng Thay cho phần đối tượng thể rắn, sử dụng chất khí 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 màng mỏng a Sử dụng vỏ dẻo màng mỏng thay cho kết cấu khối b Cách ly đối tượng với môi trường bên vỏ dẻo màng mỏng 1.31 Sử dụng vật liệu nhiều lỗ a Làm đối tượng có nhiều lỗ sử dụng thêm chi tiết có nhiều lỗ (miếng đệm, phủ…) b Nếu đối tượng có nhiều lỗ, sơ tẩm chất 1.32 Nguyên tắc thay đổi màu sắc a Thay đổi màu sắc đối tượng hay môi trường bên b Thay đổi độ suốt của đối tượng hay mơi trường bên ngồi c Để quan sát đối tượng trình, sử dụng chất phụ gia màu, hùynh quang d Nếu chất phụ gia sử dụng, dùng nguyên tử đánh dấu e Sử dụng hình vẽ, ký hiệu thích hợp 1.33 Ngun tắc đồng Những đối tượng, tương tác với đối tượng cho trước, phải làm từ vật liệu (hoặc từ vật liệu gần 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 tái sinh phần a Phần đối tượng hoàn thành nhiệm vụ trở nên khơng càn thiết phải tự phân hủy (hồ tan, bay ) phải biến dạng b Các phần mát đối tượng phải phục hồi trực tiếp trình làm việc LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com ĐẠI HỌC QUỐC GIA TPHCM CHƯƠNG TRÌNH THẠC SĨ CNTT 1.35 Thay đổi thơng số hoá lý đố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 tượng nảy sinh 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 nở nhiệt a Sử dụng nở (hay co) nhiệt vật liệu b Nếu dùng nở nhiệt, sử dụng với vật liệu có hệ số nở nhiệt khác 1.38 Sử dụng chất oxy hoá mạnh a Thay khơng khí thường khơng khí giàu oxy b Thay khơng khí giàu oxy oxy c Dùng xạ ion hố tác động lên khơng khí oxy d Thay oxy giàu ozon (hoặc oxy bị ion hố) ozon 1.39 Thay đổi độ trơ a Thay môi trường thông thường môi trường trung hoà b Đưa thêm vào đối tượng phần , chất , phụ gia trung hoà c Thực q trình chân khơng 1.40 Sử dụng vật liệu hợp thành (composite) Chuyển từ vật liệu đồng sang sử dụng vật liệu hợp thành (composite) Hay nói chung sử dụng vật liệu LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com ĐẠI HỌC QUỐC GIA TPHCM CHƯƠNG TRÌNH THẠC SĨ CNTT PHẦN : 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 năm 90, công ty Sun Microsystems cho đời ngơn ngữ hồn tồn hướng đối tượng dễ sử dụng Java, cho phép ta viết chương trình chạy đa tảng (multiplatform) Sự đời Java cách mạng thật cho cộng đồng phát triển Bối cảnh lúc giờ, tảng phát triển Microsoft ( MFC, VS C++, VB6, VBScript, Javascript, …) mớ hỗn độn khó sử dụng thống cho phép viết ứng dụng lần, chạy nhiều nơi “Write once, run anywhere” Java Trước phát triển mạnh mẽ Java qua mặt Sun, Microsoft định cho đời tảng ngơn ngữ lập trình tương tự để cạnh tranh với trỗi dậy mạnh mẽ Sun Java Năm 1996, cha đẻ ngôn ngữ tiếng C++ kiến trúc sư trưởng Ander Hejlsberg rời khỏi công ty Borland gia nhập đội ngũ phát triển Microsoft Thành công Hejlsberg xây dựng thành công ngôn ngữ Visual J++, ngôn ngữ chép Java chạy Windows Nhưng sau Sun kiện vấn đề quyền Java ngôn ngữ J++ buộc Microsoft phải ngừng phát triển ngôn ngữ Vào tháng 1/1999, Ander Hejlsberg thành lập nên đội ngũ với mong muốn tạo ngơn ngữ mới, ban đầu gọi COOL (C like Object Oriented Language) Vào tháng 7/2000 hội nghị nhà phát triển PDC, ngôn ngữ đổi tên C# (đọc C Sharp) C# kết hợp điểm mạnh khắc phục khiếm khuyết ngôn ngữ C++, Java, Delphi Smalltalk Và kể từ năm 2000, Hejlsberg 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 tảng mới, Microsoft phát triển NET Framework vào cuối năm 90, ban đầu đặt tên Next Generation Windows Services (NGWS) Vào cuối năm 2000 beta version NET 1.0 công bố Và nay, NET Framework phát triển đến version 4.5 beta release năm 2012 Trên bối cảnh đời C# NET Framework 10 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com ĐẠI HỌC QUỐC GIA TPHCM CHƯƠNG TRÌNH THẠC SĨ CNTT Scheme, … - Rational làm việc tren Java compiler cho CLR Kiến trúc CLR : Mơ hình thực thi mã CLR : 17 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com ĐẠI HỌC QUỐC GIA TPHCM CHƯƠNG TRÌNH THẠC SĨ CNTT CLR hoạt động ? 18 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com ĐẠI HỌC QUỐC GIA TPHCM CHƯƠNG TRÌNH THẠC SĨ CNTT Bộ máy thực thi 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 việc kiểm tra (verification) : managed v unmanaged CLR JIT (Just-In-Time) compiling - Thực thi gián tiếp ứng dụng Net - Tất ngôn ngữ Net dịch sang ngôn ngữ trung gian (IL) - CLR chuyển đổi mã IL sang thành thị (instructions) assembly cho kiến trúc phần cứng riêng, việc gọi Jit’ing hay Just-in-time compiling + Jit vài chi phí performance lúc dịch ban đầu, mã Jit cached lại để dùng sau + CLR hoạt động kiến trúc riêng biệt mà mã thực thi, performance cải thiện Các ưu điểm CLR : - Hỗ trợ cho dịch vụ cho developers (debugging) - Cho phép liên tương tác (interoperation) managed code unmanaged code (COM, DLLs) - Môi trường managed code - Cải thiện xử lý nhớ (memory handling) - Cải thiện khả dọn rác (garbage collection) - JIT cho phép code chạy môi trường bảo vệ managed code - JIT cho phép mã trung gian IL độc lập với phần cứng - CLR cho phép đảm bảo an toàn mã 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) 19 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com ĐẠI HỌC QUỐC GIA TPHCM CHƯƠNG TRÌNH THẠC SĨ CNTT 2.2.2 Common Language Infrastructure (CLI) - CLI cho phép phát triển cross-language - 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 hành vi mà tất ngôn ngữ cần phải theo + Virtual Execution System (VES) 2.2.3 Common Type System (CTS) - Là hệ thống mô tả cách kiểu liệu định nghĩa cách chúng hoạt động - Chúng không mô tả cú pháp (syntax) - Một kiểu (type) chứa không nhiều thành phần sau : + Field + Method + Property + Event 20 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com ĐẠI HỌC QUỐC GIA TPHCM CHƯƠNG TRÌNH THẠC SĨ CNTT 2.2.4 Common Data Type (CDT) CLR cung cấp tập kiểu liệu (primitive types) mà tất ngôn ngữ phải hỗ trợ : - Integer : kiểu 16/32/64 bits - Float : kiểu 32/64 bits - Boolean Character - DateTime TimeSpan Các kiểu sử dụng - Kiểu mảng (Array) - Kiểu cấu trúc (Structures) - Kết hợp hai loại 21 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com ĐẠI HỌC QUỐC GIA TPHCM CHƯƠNG TRÌNH THẠC SĨ CNTT 2.2.5 Common Language Specification (CLS) Không phải tất ngôn ngữ hỗ trợ tất kiểu CTS tính - C# case-sensitive, cịn VB.NET khơng - C# hỗ trợ kiểu pointer (ở unsafe mode), VB.NET khơng - C# hỗ trợ operator overloading, VB.NET khơng CLS thiết kế nhằm mục đích thúc đẩy liên tương tác ngơn ngữ (language interoperability) Phần lớn lớp FCL tương thích với CLS 2.2.6 So sánh với Java 2.2.7 Base Class Library (BCL) 22 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com ĐẠI HỌC QUỐC GIA TPHCM CHƯƠNG TRÌNH THẠC SĨ CNTT - BCL tương tự Java System namespace - Được sử dụng tất ứng dụng Net - Cung cấp 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 ngôn ngữ Net 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 dịch lại sang mã máy thực thi Quá trình dịch lại gọi JIT compiling, nghĩa dịch hàm hay thủ tục gọi - Mã JIT nằm nhớ cho lần gọi sau, trường hợp khơng đủ nhớ bị loại bỏ làm cho trình JIT giống thông dịch 23 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com ĐẠI HỌC QUỐC GIA TPHCM 3.1 CHƯƠNG TRÌNH THẠC SĨ CNTT PHẦN : 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 NGUYÊN TẮC PHÂN NHỎ Nguyên tắc phân nhỏ ứng dụng nhiều Net, đơn cử ví dụ khái niệm Partial classes 3-layer applications Partial classes : - Khái niệm Partial classes xuất từ Net 2.0, cho phép chia nhỏ viết classes/struct/method hay nhiều file source khác nhau, không thiết phải định nghĩa file source code Các phần khác khai báo thêm từ khóa “partial” - Khi dịch trình biên dịch tự động tìm phần partial merge lại với thành class chung - Việc phân chia class lớn thành phần khác độc lập file sourcecode khác nhau, cho phép nhiều người tham gia implement classes/methods phát triển song song, giúp tăng hiệu suất tiết kiệm thời gian Ví dụ : Hình minh họa class Customer viết file khác customer1.cs customer2.cs File chứa hàm Add() file chứa hàm Delete() Khi biên dịch thành class Customer chứa hàm Add() Delete() 3-layer applications : Các ứng dụng lớn enterprise thường phân chia ứng dụng thành lớp (layer) độc lập để dễ quản lý, mở rộng maintain sau ứng dụng trở nên phức tạp Những ứng dụng gọi multi-layer apps (đa lớp), mà phổ biến dạng 3-layer apps (mơ hình ứng dụng lớp) 24 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com ĐẠI HỌC QUỐC GIA TPHCM CHƯƠNG TRÌNH THẠC SĨ CNTT Mơ hình tổng qt 3-layer apps Hình mơ hình tổng qt ứng dụng lớp + Presentation layer : tầng chịu trách nhiệm thể phần giao tiếp với người dùng (ví dụ WinForm, UI, WPF) Phần phần gần với User + Business layer : tầng tầng business domain logic ứng dụng, chứa business objects cho tầng Presentation sử dụng + Data Access layer : tầng chịu trách nhiệm truy xuất liệu cho tầng business sử dụng Tầng có nhiệm vụ đọc/ghi liệu xuống database hay service locator bên ngồi (như Web service, WCF…) Một ví dụ áp dụng 3-layer vào ứng dụng phức tạp thực tế nay, mơ hình kết hợp với thành phần khác hình sau 25 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com ĐẠI HỌC QUỐC GIA TPHCM 3.2 CHƯƠNG TRÌNH THẠC SĨ CNTT NGUYÊN TẮC THU NHỎ Nguyên tắc rõ việc Microsoft cho đời thu nhỏ NET Framework dùng thiết bị di động NET Compact Framework hay NET Micro Framework, hay NET 3.5 Client Profile Các phiên hạn chế số tính so với Full NET Framework, giúp giảm kích thước Net để hoạt động thiết bị di động (hand-held devices) 3.3 NGUYÊN TẮC KẾT HỢP Trong ứng dụng viết Net, module viết ngôn ngữ khác (C#, C++, VB.NET, JavaScript, Python,…) nhóm phát triển khác Do kiến trúc Net, dịch thực thi ứng dụng, trình biên dịch (compiler) biên dịch module viết ngôn ngữ khác thành mã trung gian (IL – Intermediate Language) Khi ứng dụng thực thi, mã IL dịch sang mã máy (machine code) thi hành ứng dụng Xem lại phần giới thiệu CLR để rõ cách biên dịch chương trình Net Tính kết hợp Net Framework giúp tăng khả cộng tác nhóm phát triển giúp Net Framework trở thành tảng thống mạnh mẽ ngôn ngữ khác viết cho Net 3.4 NGUYÊN TẮC TÁCH KHỎI Nguyên tắc tách khỏi áp dụng rõ nét MEF (Managed Extensibility Framework) Net Framework kể từ version 4.0 sau (http://msdn.microsoft.com/en-us/library/dd460648.aspx) MEF framework giúp xây dựng ứng dụng thành thành phần tách biệt có khả plugin tự động chương trình hoạt động Nó cho phép xây dựng ứng dụng linh hoạt với thành phần, chức riêng biệt phát triển độc lập nhóm khác nhau, cần tính ta cần copy assembly (dll) tương ứng vào folder ứng dụng tự động tính có mặt chương trình Nói cách khác, ứng dụng phân tách thành thành phần riêng biệt 3.5 NGUYÊN TẮC ĐẢO NGƯỢC Nguyên tắc rõ việc ứng dụng Design Patterns phổ biến Dependency Injection (DI) Inversion Of Control (IoC) việc xây dựng ứng dụng NET (http://msdn.microsoft.com/en-us/magazine/cc163739.aspx) DI giúp xây dựng ứng dụng loose-coupling Trước hết, ta cần hiểu Inversion of Control (IoC) IoC yêu cầu “instance class cần phải tạo bên từ class khác” (the instance of a class need creating outside of other class) Vậy khác biệt DI IoC ? IoC ngun lý (principle), cịn DI phương thức (methodology) thực Vì để đạt loose coupling ta thực DI cho application Ưu điểm chương trình có apply DI - Dễ unittest - Dễ tìm lỗi - Dễ maintain 26 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com ĐẠI HỌC QUỐC GIA TPHCM 3.6 CHƯƠNG TRÌNH THẠC SĨ CNTT NGUYÊN TẮC CHỨA TRONG Trong ứng dụng Net, ứng dụng bao gồm hay nhiều assembly (dll, exe), assembly lại bao gồm nhiều chương trình con, chương trình lại bao gồm chương trình khác 3.7 NGUYÊN TẮC LINH ĐỘNG Nguyên tắc thấy rõ chế Dynamic Binding Dynamic Language Runtime (DLR) NET 4.0 http://msdn.microsoft.com/en-us/vstudio/ff628440 Cơ chế Dynamic Binding cho ta phương cách thống để invoke thứ theo cách động Nhờ Dynamic Binding, ta có object tay, ta khơng phải lo lắng obj dạng COM, IronPython, HTML DOM, hay Reflection …, ta việc gọi hàm obj đó, cịn việc thực thi xảy lúc runtime Cơ chế đem lại linh động lớn đơn giản hóa code C# 4.0 giới thiệu kiểu dynamic Khi ta có obj kiểu dynamic ta làm việc mà resolve vào lúc runtime 3.8 NGUYÊN TẮC THAY ĐỔI MÀU SẮC Trong chương trình Net, ta thường dùng hộp thơng báo (MessageBox) để thông báo thông điệp khác (Warning, Error, Info) cách sử dụng biểu tượng màu sắc khác nhau, giúp người dùng hiểu họ thơng báo với tình trạng 27 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com ĐẠI HỌC QUỐC GIA TPHCM 3.9 CHƯƠNG TRÌNH THẠC SĨ CNTT NGUYÊN TẮC VƯỢT NHANH -Trong ngơn ngữ lập trình Net (C#, C++, VB.NET, …), cấu trúc rẽ nhánh giúp chương trình vượt nhanh qua phần không thỏa điều kiện - Hay NET, có tiện ích SqlBulkCopy cho phép copy data từ database sang database khác theo khối, giúp tăng tốc trình copy tối ưu hiệu hệ thống 3.10 NGUYÊN TẮC VẠN NĂNG Nguyên tắc vạn thấy rõ tính Generics Net 2.0 Generics cho phép ta viết hàm dùng cho nhiều loại (Type) khác Generics giúp type-safe, compile-time error checking, chương trình bớt lỗi runtime giảm số dịng code phải viết Ví dụ : xây dựng kiểu liệu Stack, item kiểu liệu bất kỳ, ta cần viết hàm tổng quát type T Khi sử dụng ta thay T kiểu liệu bất kỳ, T = int, ta define class Student xây dựng Stack 3.11 NGUYÊN TẮC DỰ PHÒNG Sử dụng giải thuật để xử lý tình xấu xảy ra, qua trì tính ổn định hệ thống, giúp hệ thống không bị crash Chẳng hạn, chế bẫy lỗi ngôn ngữ NET, sử dụng cấu trúc try …catch … finally để xử lý lỗi dọn dẹp (đóng connection, đóng file, thu hồi vùng nhớ, …) có lỗi xảy Ví dụ : 28 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com ĐẠI HỌC QUỐC GIA TPHCM 3.12 CHƯƠNG TRÌNH THẠC SĨ CNTT NGUYÊN TẮC TÁC ĐỘNG SƠ BỘ NET Framework biên dịch mã nguồn thành dạng ngôn ngữ trung gian (IL) trước dịch sang mã máy thực thi 3.13 NGUYÊN TẮC PHẢN TÁC ĐỘNG SƠ BỘ Trong ứng dụng NET, thực thao tác tiền xử lý hệ thống để nâng cao hiệu xử lý bước 3.14 NGUYÊN TẮC TRUNG GIAN Trong NET, người ta sử dụng lớp trung gian, tầng giao tiếp, trình điều khiển Vi dụ : Các trình điều khiển (driver) truy xuất liệu SQLite/MySQL Các chương trình khách (client) sử dụng giao diện để truy xuất nhiều loại liệu khác 3.15 NGUYÊN TẮC TỰ PHỤC VỤ Các chương trình tự động cập nhật nâng cấp (update), vá lỗi (patch) cho tính NET Framework Các chương trình theo định kỳ tự động kiểm tra cập nhật thay đổi cần thiết 29 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com ĐẠI HỌC QUỐC GIA TPHCM 3.16 CHƯƠNG TRÌNH THẠC SĨ CNTT NGUYÊN TẮC SAO CHÉP Trong NET, thay tạo đối tượng gây hao phí tài ngun, tạo đối tượng chép Ví dụ : NET, shallow copy đối tượng có chứa tham chiếu đến đối tượng cần sử dụng mà không cần tạo thêm đối tượng 3.17 NGUYÊN TẮC ĐỒNG NHẤT Trong NET, kiểu liệu ArrayList, Collection phải chứa phần tử kiểu để đảm bảo thao tác đồng 30 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com ĐẠI HỌC QUỐC GIA TPHCM CHƯƠNG TRÌNH THẠC SĨ CNTT PHẦN : 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” môn học vơ hay bổ ích cho hoạt động lĩnh vực khoa học, đặc biệt lĩnh vực CNTT Qua môn học giúp em hệ thống hóa lại nguyên tắc sáng tạo sống, giúp thay đổi cách suy nghĩ em vấn đề khoa học công việc, sống hàng ngày Nó giúp em suy nghĩ sáng tạo hơn, tránh ù lì, rập khn, thiếu sáng tạo Tài liệu tham khảo Bài giảng môn học “Phương pháp nhiên cứu khoa học 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 http://www.techrepublic.com/article/the-evolution-of-the-net-technologies/1045083 http://en.wikipedia.org/wiki/.NET_Framework_version_history http://stackoverflow.com/questions/1083368/whats-the-early-history-of-the-net-framework 31 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com ... em NET Framework phân tích sáng tạo đời phát triển NET Framework Phần em xin giới thiệu tóm tắt chung 40 phương pháp sáng tạo khoa học Phần sâu vào cơng nghệ NET phân tích phương pháp sáng tạo. .. HÌNH THÀNH VÀ PHÁT TRIỂN CỦA MICROSOFT NET FRAMEWORK 10 2.1 2.2 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... ĐẠI HỌC QUỐC GIA TPHCM CHƯƠNG TRÌNH THẠC SĨ CNTT PHẦN : 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