Để xây dựng tất cả các thông tin dựa triên tiêu chuẩn công nghiệp để đảm bảo rằng mã nguồn trên .NET có thể tích hợp với bất cứ mã nguồn khác. .NET Framework có hai thành phần chính: Common Language Runtime (CLR) và thư viện lớp .NET Framework. CLR là nền tảng của .NET Framework. Chúng ta có thể hiểu runtime như là một agent quản lý mã nguồn khi nó được thực thi, cung cấp các dịch vụ cốt lõi như: quản lý bộ nhớ, quản lý tiểu trình, và quản lý từ xa....
h a n g e Vi e N y to k lic c Để xây dựng tất thông tin dựa triên tiêu chuẩn công nghiệp để đảm bảo mã nguồn NET tích hợp với mã nguồn khác .NET Framework có hai thành phần chính: Common Language Runtime (CLR) thư viện lớp NET Framework CLR tảng NET Framework Chúng ta hiểu runtime agent quản lý mã nguồn thực thi, cung cấp dịch vụ cốt lõi như: quản lý nhớ, quản lý tiểu trình, quản lý từ xa Ngồi cịn thúc đẩy việc sử dụng kiểu an tồn hình thức khác việc xác mã nguồn, đảm bảo cho việc thực bảo mật mạnh mẽ Thật vậy, khái niệm quản lý mã nguồn nguyên lý tảng runtime Mã nguồn mà đích tới runtime biết mã nguồn quản lý (managed code) Trong mã nguồn mà khơng có đích tới runtime biết mã nguồn không quản lý (unmanaged code) Thư viện lớp, thành phần khác NET Framework tập hợp hướng đối tượng kiểu liệu dùng lại, cho phép phát triển ứng dụng từ ứng dụng truyền thống command-line hay ứng dụng có giao diện đồ họa (GUI) đến ứng dụng cung cấp ASP.NET, Web Form dịch vụ XML Web Hình 1.1: Mơ tả thành phần NET Framework 12 Microsoft NET d o m o o c u -tr a c k C w w w d o m C lic k to Ngơn Ngữ Lập Trình C# w w w w bu bu y N O W ! XC er O W F- w PD h a n g e Vi e ! XC er PD F- c u -tr a c k c h a n g e Vi e N y to k lic c Common Language Runtime (CLR) Như đề cập CLR thực quản lý nhớ, quản lý thực thi tiểu trình, thực thi mã nguồn, xác nhận mã nguồn an toàn, biên bịch dịch vụ hệ thống khác Những đặc tính tảng cho mã nguồn quản lý chạy CLR Do trọng đến bảo mật, thành phần quản lý cấp mức độ quyền hạn khác nhau, phụ thuộc vào nhiều yếu tố nguyên thủy chúng như: liên quan đến Internet, hệ thống mạng nhà máy, hay máy tính cục Điều có nghĩa rằng, thành phần quản lý có hay khơng có quyền thực thao tác truy cập tập tin, thao tác truy cập registry, hay chức nhạy cảm khác CLR thúc đẩy việc mã nguồn thực việc truy cập bảo mật Ví dụ, người sử dụng giới hạn việc thực thi nhúng vào trang web chạy hoạt hình hình hay hát nhạc, khơng thể truy cập liệu riêng tư, tập tin hệ thống, hay truy cập mạng Do đó, đặc tính bảo mật CLR cho phép phần mềm đóng gói Inernet có nhiều đặc tính mà khơng ảnh hưởng đến việc bảo mật hệ thống CLR thúc đẩy cho mã nguồn thực thi mạnh mẽ việc thực thi mã nguồn xác xác nhận mã nguồn Nền tảng việc thực Common Type System (CTS) CTS đảm bảo mã nguồn quản lý tự mơ tả (selfdescribing) Sự khác Microsoft trình biên dịch ngôn ngữ hãng thứ ba việc tạo mã nguồn quản lý thích hợp với CTS Điều mã nguồn quản lý sử dụng kiểu quản lý khác thể hiện, thúc đẩy nghiêm ngặt việc sử dụng kiểu liệu xác an tồn Thêm vào đó, mơi trường quản lý runtime thực việc tự động xử lý layout đối tượng quản lý tham chiếu đến đối tượng, giải phóng chúng chúng khơng sử dụng Việc quản lý nhớ tự động giải hai lỗi chung ứng dụng: thiếu nhớ tham chiếu nhớ không hợp lệ Trong runtime thiết kế cho phần mềm tương lai, hỗ trợ cho phân mềm ngày trước Khả hoạt động qua lại mã nguồn quản lý mã nguồn không quản lý cho phép người phát triển tiếp tục sử dụng thành phần cần thiết COM DLL Rutime thiết kế để cải tiến hiệu suất thực Mặc dù CLR cung cấp nhiều tiêu chuẩn dịch vụ runtime, mã nguồn quản lý khơng dịch Có đặc tính gọi Just-in-Time (JIT) biên dịch tất mã nguồn quản lý vào ngôn ngữ máy hệ thống vào lúc mà thực thi Khi đó, trình quản lý nhớ xóa bỏ phân mảnh nhớ gia tăng tham chiếu nhớ cục bộ, kết gia tăng hiệu thực thi 13 Microsoft NET d o m o o c u -tr a c k C w w w d o m C lic k to Ngơn Ngữ Lập Trình C# w w w w bu bu y N O W ! XC er O W F- w PD h a n g e Vi e ! XC er PD F- c u -tr a c k c h a n g e Vi e N y to k lic c Thư viện lớp NET Framework Thư viện lớp NET Framework tập hợp kiểu liệu dùng lại kết hợp chặt chẽ với Common Language Runtime Thư viện lớp hướng đối tượng cung cấp kiểu liệu mà mã nguồn quản lý dẫn xuất Điều khơng làm cho kiểu liệu NET Framework dễ sử dụng mà làm giảm thời gian liên quan đến việc học đặc tính NET Framework Thêm vào đó, thành phần hãng thứ ba tích hợp với lớp NET Framework Cũng mong đợi người phát triển với thư viện lớp hướng đối tượng, kiểu liệu NET Framework cho phép người phát triển thiết lập nhiều mức độ thơng dụng việc lập trình, bao gồm nhiệm vụ như: quản lý chuỗi, thu thập hay chọn lọc liệu, kết nối với cở liệu, truy cập tập tin Ngồi nhiệm vụ thơng dụng Thư viện lớp đưa vào kiểu liệu để hỗ trợ cho kịch phát triển chun biệt khác Ví dụ người phát triển sử dụng NET Framework để phát triển kiểu ứng dụng dịch vụ sau: Ứ ng dụng Console Ứ ng dụng giao diện GUI Windows (Windows Forms) Ứ ng dụng ASP.NET Dịch vụ XML Web Dịch vụ Windows Trong lớp Windows Forms cung cấp tập hợp lớn kiểu liệu nhằm làm đơn giản việc phát triển ứng dụng GUI chạy Windows Còn viết ứng dụng ASP.NET sử dụng lớp Web Forms thư viện NET Framework Phát triển ứng dụng Client Những ứng dụng client gần với ứng dụng kiểu truyền thống lập trình dựa Windows Đây kiểu ứng dụng hiển thị cửa sổ hay form desktop cho phép người dùng thực thao tác hay nhiệm vụ Những ứng dụng client bao gồm ứng dụng xử lý văn bản, xử lý bảng tính, ứng dụng lĩnh vực thương mại công cụ nhập liệu, công cụ tạo báo cáo Những ứng dụng client thường sử dụng cửa sổ, menu, toolbar, button hay thành phần GUI khác, chúng thường truy cập tài nguyên cục tập tin hệ thống, thiết bị ngoại vi máy in Một loại ứng dụng client khác với ứng dụng truyền thống ActiveX control (hiện thay Windows Form control) nhúng vào trang web Internet Các ứng dụng giống ứng dụng client khác truy cập tài nguyên cục Trong khứ, nhà phát triển tạo ứng dụng sử dụng C/C++ thông qua kết nối với MFC sử dụng môi trường phát triển ứng dụng nhanh (RAD: Rapid 14 Microsoft NET d o m o o c u -tr a c k C w w w d o m C lic k to Ngôn Ngữ Lập Trình C# w w w w bu bu y N O W ! XC er O W F- w PD h a n g e Vi e ! XC er PD F- c u -tr a c k c h a n g e Vi e N y to k lic c Application Development) .NET Framework tích hợp diện mạo sản phẩm thành Môi trường phát triển cố định làm đơn giản mạnh mẽ phát triển ứng dụng client Những lớp NET Framework chứa NET Framework thiết kế cho việc sử dụng phát triển GUI Điều cho phép người phát triển nhanh chóng dễ dàng tạo cửa sổ, button, menu, toolbar, thành phần khác ứng dụng viết phục vụ cho lĩnh vực thương mại Ví dụ như, NET cung cấp thuộc tính đơn giản để hiệu chỉnh hiệu ứng visual liên quan đến form Trong vài trường hợp hệ điều hành khơng hỗ trợ việc thay đổi thuộc tính cách trực tiếp, trường hợp NET tự động tạo lại form Đây nhiều cách mà NET tích hợp việc phát triển giao diện làm cho mã nguồn đơn giản mạnh mẽ Khơng giống ActiveX control, Windows Form control có truy cập giới hạn đến máy người sử dụng Điều có nghĩa mà nguồn thực thi nhị phân truy cập vài tài nguyên máy người sử dụng (như thành phần đồ họa hay số tập tin giới hạn) mà truy cập đến tài nguyên khác Nguyên nhân bảo mật truy cập mã nguồn Lúc ứng dụng cài đặt máy người dùng an tồn để đưa lên Internet Biên dịch MSIL Trong NET Framework, chương trình khơng biên dịch vào tập tin thực thi mà thay vào chúng biên dịch vào tập tin trung gian gọi Microsoft Intermediate Language (MSIL) Những tập tin MSIL tạo từ C# tương tự tập tin MSIL tạo từ ngôn ngữ khác NET, platform không cần biết ngôn ngữ mã nguồn Điều quan trọng yếu CLR chung (common), runtime hỗ trợ phát triển C# VB.NET Mã nguồn C# biên dịch vào MSIL build project Mã MSIL lưu vào tập tin đĩa Khi chạy chương trình, MSIL biên dịch lần nữa, sử dụng trình biên dịch Just-In-Time (JIT) Kết mã máy thực thi xử lý máy Trình biên dịch JIT tiêu chuẩn thực theo yêu cầu Khi phương thức gọi, trình biên dịch JIT phân tích MSIL tạo sản phẩm mã máy có hiệu cao, mã chạy nhanh Trình biên dịch JIT đủ thơng minh để nhận mã biên dịch, ứng dụng chạy việc biên dịch xảy cần thiết, tức biên dịch mã MSIL chưa biên dịch mã máy Khi ứng dụng NET thực hiện, chúng có xu hướng chạy nhanh nhanh nữa, mã nguồn biên dịch dùng lại Do tất ngôn ngữ NET Framework tạo sản phẩm MSIL giống nhau, nên kết đối tượng tạo từ ngôn ngữ truy cập hay dẫn xuất từ 15 Microsoft NET d o m o o c u -tr a c k C w w w d o m C lic k to Ngôn Ngữ Lập Trình C# w w w w bu bu y N O W ! XC er O W F- w PD h a n g e Vi e ! XC er PD F- c u -tr a c k c h a n g e Vi e N y to k lic c đối tượng ngôn ngữ khác NET Ví dụ, người phát triển tạo lớp sở VB.NET sau dẫn xuất C# cách dễ dàng Ngơn ngữ C# Ngôn ngữ C# đơn giản, khoảng 80 từ khóa mười kiểu liệu xây dựng sẵn Tuy nhiên, ngơn ngữ C# có ý nghĩa cao thực thi khái niệm lập trình đại C# bao gồm tất hỗ trợ cho cấu trúc, thành phần component, lập trình hướng đối tượng Những tính chất diện ngơn ngữ lập trình đại Và ngơn ngữ C# hội đủ điều kiện vậy, xây dựng tảng hai ngôn ngữ mạnh C++ Java Ngôn ngữ C# phát triển đội ngũ kỹ sư Microsoft, người dẫn đầu Anders Hejlsberg Scott Wiltamuth Cả hai người điều người tiếng, Anders Hejlsberg biết đến tác giả Turbo Pascal, ngơn ngữ lập trình PC phổ biến Và ơng đứng đầu nhóm thiết kế Borland Delphi, thành công việc xây dựng mơi trường phát triển tích hợp (IDE) cho lập trình client/server Phần cốt lõi hay gọi trái tim ngơn ngữ lập trình hướng đối tượng hỗ trợ cho việc định nghĩa làm việc với lớp Những lớp định nghĩa kiểu liệu mới, cho phép người phát triển mở rộng ngơn ngữ để tạo mơ hình tốt để giải vấn đề Ngôn ngữ C# chứa từ khóa cho việc khai báo kiểu lớp đối tượng phương thức hay thuộc tính lớp, cho việc thực thi đóng gói, kế thừa, đa hình, ba thuộc tính ngơn ngữ lập trình hướng đối tượng Trong ngôn ngữ C# thứ liên quan đến khai báo lớp điều tìm thấy phần khai báo Định nghĩa lớp ngơn ngữ C# khơng đòi hỏi phải chia tập tin header tập tin nguồn giống ngôn ngữ C++ Hơn nữa, ngôn ngữ C# hỗ trợ kiểu XML, cho phép chèn tag XML để phát sinh tự động document cho lớp C# hỗ trợ giao diện interface, xem cam kết với lớp cho dịch vụ mà giao diện quy định Trong ngơn ngữ C#, lớp kế thừa từ lớp cha, tức không cho đa kế thừa ngôn ngữ C++, nhiên lớp thực thi nhiều giao diện Khi lớp thực thi giao diện hứa cung cấp chức thực thi giao diện Trong ngôn ngữ C#, cấu trúc hỗ trợ, khái niệm ngữ nghĩa thay đổi khác với C++ Trong C#, cấu trúc giới hạn, kiểu liệu nhỏ gọn, tạo thể u cầu hệ điều hành nhớ so với lớp Một cấu trúc khơng thể kế thừa từ lớp hay kế thừa cấu trúc thực thi giao diện Ngơn ngữ C# cung cấp đặc tính hướng thành phần (component-oriented), thuộc tính, kiện Lập trình hướng thành phần hỗ trợ CLR cho phép lưu trữ metadata với mã nguồn cho lớp Metadata mô tả cho lớp, bao gồm 16 Microsoft NET d o m o o c u -tr a c k C w w w d o m C lic k to Ngơn Ngữ Lập Trình C# w w w w bu bu y N O W ! XC er O W F- w PD h a n g e Vi e ! XC er PD F- c u -tr a c k c ... nghĩa rằng, thành phần quản lý có hay khơng có quyền thực thao tác truy cập tập tin, thao tác truy cập registry, hay chức nhạy cảm khác CLR thúc đẩy việc mã nguồn thực việc truy cập bảo mật Ví dụ,... control có truy cập giới hạn đến máy người sử dụng Điều có nghĩa mà nguồn thực thi nhị phân truy cập vài tài nguyên máy người sử dụng (như thành phần đồ họa hay số tập tin giới hạn) mà truy cập đến... menu, toolbar, button hay thành phần GUI khác, chúng thường truy cập tài nguyên cục tập tin hệ thống, thiết bị ngoại vi máy in Một loại ứng dụng client khác với ứng dụng truy? ??n thống ActiveX control