CHƯƠNG I: GIỚI THIỆU .NET Framework là một nền tảng lập trình và cũng là một nền tảng thực thi ứng dụng chủ yếu trên hệ điều hành Microsoft Windows được phát triển bởi Microsoft. Các chương trình được viết trên nền.NET Framework sẽ được triển khai trong môi trường phần mềm (ngược lại với môi trường phần cứng) được biết đến với tên Common Language Runtime (CLR). Môi trường phần mềm này là một máy ảo trong đó cung cấp các dịch vụ như an ninh phần mềm (security), quản lý bộ nhớ (memory management), và các xử lý lỗi ngoại lệ (exception handling).NET Framework là một công nghệ hỗ trợ việc xây dựng và chạy các thế hệ tiếp theo ứng dụng và dịch vụ web XML.NET Framework được thiết kế để hoàn thành các mục tiêu sau đây: Cung cấp môi trường lập trình hướng đối tượng phù hợp cho dù mã đối tượng được lưu trữ và thực thi cục bộ, tuy vậy có thể phân phối qua internet hoặc thực thi từ xa. Cung cấp môi trường thực thi sao cho giảm thiểu số chương trình được triển khai và xung đột các phiên bản.
Cung cấp môi trường thực thi mã đẩy mạnh sự an toàn của các đoạn mã thực thi, bao gồm các đoạn mã được tạo ra bởi bên thứ ba vô danh hoặc bán tin cậy. Cung cấp môi trường thực thi mã có thể loại bỏ được các vấn đề hiệu suất của cách viết và môi trường thông dịch. Giúp cho các nhà phát triển có kinh nghiệm nhất quán trên nhiều loại ứng dụng, chẳng hạn như các ứng dụng trên nền tảng Windows và các ứng dụng trên nền tảng web. Xây dựng tất cả các giao tiếp dựa trên tiêu chuẩn công nghiệp để chắc chắn rằng mã dựa trên .NET Framework có thể tích hợp với bất kì mã nào.NET Framework bao gồm bộ thực thi ngôn ngữ chung (Common Languge Runtime - CLR) và lớp thư viện.
CLR là nền tảng của. 5 Luan van Bạn có thể nghĩ runtime như là tác nhân quản lý mã tại thời gian thực hiện, cung cấp các ứng dụng cốt lỗi như quản lý bộ nhớ, quản lý luồng và remoting, xác nhận mã nguồn an toàn và các hình thức khác của việc chính xác mã nguồn. Trong thực tế, khái niệm về quản lý mã là nguyên tắc cơ bản của runtime. Trong lập trình, mục tiêu runtime được xem như quản lý mã (managed code), trong khi các mã không được thực thi bởi runtime được xem như mã không quản lý.
Thư viện là một bộ sưu tập toàn diện, hướng đối tượng mà bạn có thể tái sử dụng để phát triển các ứng dụng khác nhau, từ các ứng dụng dòng lệnh hoặc giao diện đồ họa (GUI) đến các ứng dụng dựa trên sự sáng tạo cung cấp bởi ASP.NET, chẳng hạn như biểu mẫu web, hoặc dịch vụ web XML.NET Framework được lưu trữ bởi các thành phần không quản lý, CLR được tải đến các processes của thành phần này và bắt đầu thực thi managed code, do đó tạo ra môi trường phần mềm có thể khai thác tính năng quản lý và không quản lý.NET Framework không chỉ cung cấp một số host runtime, tuy nhiên vẫn hỗ trợ sự phát triển các host runtime từ bên thứ ba. Ví dụ như các host ASP.NET runtime đảm bảo sự ổn định, môi trường máy chủ cho các mã quản lý.NET làm việc trực tiếp theo thời gian thực để phục vụ cho ứng dụng ASP.NET và dịch vụ web XML. Minh họa dưới đây cho thấy mối quan hệ giữa CLR và thư viện đến ứng dụng của bạn và hệ thống tổng thể. Đồng thời cho thấy mã quản lý hoạt động trong vòng kiến trúc lớn hơn: 6 Luan van Hình 1.2 Mối quan hệ giữa CLR và thư viện đến các úng dụng I.1 Common Language Runtime Common Language Runtime (gọi tắt là bộ thực thi - CLR) quản lý bộ nhớ, thực thi luồng, thực thi mã nguồn, xác nhận mã nguồn an toàn, biên dịch và các dịch vụ hệ thống khác.
Các tính năng này là yếu tố nội tại của mã quản lý chạy trên CLR. Liên quan đến vấn đề bảo mật, các thành phần quản lý (managed components) được cấp mức độ tin tưởng, tùy thuộc vào các yếu tố nguồn gốc (internet, mạng doanh nghiệp hay máy tính cục bộ). Điều này có nghĩa rằng một thành phần quản lý có thể hoặc không thể thực hiện hoạt đồng truy cập tập tin, hoạt động truy cập đăng ký hoặc chức năng nhạy cảm khác, ngay cả khi nó được dùng trong ứng dụng hoạt động tương tự. Runtime thực thi đoạn mã truy cập an toàn.
Ví dụ người dùng có thể tin tưởng rằng một tập tin thực thi được nhúng vào một trang web có thể chạy động trên màn hình, hoặc hát một bài hát, nhưng không thể truy cập dữ liệu cá nhân của họ, tập tin hệ thống, hoặc mạng. Các tính năng bảo mật của runtime như vậy cho phép chính đáng các phần mêm internet triển khai đem lại các tính năng đặc biệt phong phú. Runtime cũng thực thi mã mạnh mẽ bằng cách thực hiện cơ sở hạ tầng chặt chẽ và xác nhận mã nguồn gọi là common type system (CTS). CTS đảm bảo rằng tất cả các mã quản lý tự mô tả (self-describing).
Sự khác nhau trình biên dịch Microsoft và bên thứ ba tạo ra mã quản lý đều phù hợp cới CTS. Điều này có nghĩa rằng mã quản lý có thể 7 Luan van sử dụng cho các loại quản lý, trường hợp khác nhau, trong khi thực thi nghiêm túc yếu tố trung thực và an toàn. Ngoài ra, môi trường quản lý của runtime loại bỏ nhiều vấn đề phần mềm phổ biển. Ví dụ, runtime tự động xử lý đối tượng giao diện và quản lý tham chiếu đến đối tượng, giải phóng chúng khi không được sử dụng lại.
Quản lý bộ nhớ tự động xử lý 2 lỗi ứng dụng phổ biến, rò rỉ bộ nhớ và tham chiếu bộ nhớ không hợp lệ. Runtime cũng tăng tốc năng suất phát triển. Ví dụ, lập trình viên có thể viết chương trình trong ngôn ngữ phát triển mà họ chọn, nhưng có thể tận dụng thời runtime, lớp thư viện, và thành phần viết bằng ngôn ngữ khác của nhà phát triển khác. Bất kì nhà cung cấp trình biên dịch lựa chọn mục tiêu runtime đều có thể làm như vậy.
Mục tiêu của trình biên dịch ngôn ngữ của .NET Framework là làm cho các tính năng sẵn có của .NET Framework tồn tại mã được viết trong ngôn ngữ, giúp giảm bớt quá trình chuyển đổi cho các ứng dụng hiện có. Trong khi runtime được thiết kế cho các phần mềm tương lai, nó cũng hỗ trọ cho phần mềm hiện tại và quá khứ. Khả năng tương thích giữa mã quản lý và không quản lý cho phép nhà phát triển tiếp tục sử dụng các thành phần COM và DLL cần thiết. Runtime được thiết kế để nâng cao hiệu suất.
Mặc dù CLR cung cấp nhiều dịch vụ runtime tiêu chuẩn, managed code thì không bao giờ thông dịch. Một tính năng gọi là biên dịch (JIT) cho phép tất cả các mã quản lý chạy bằng ngôn ngữ máy mà nó thực hiện trên đó. Trong khi đó, quản lý bộ nhớ loại bỏ khả năng phân mảnh bộ nhớ và tăng tốc truy xuất bộ nhớ cục bộ để tăng hiệu suất. Cuối cùng, runtime có thể lưu trữ (hosted) bởi hiệu suất cao, phía máy chủ ứng dụng, như Microsoft SQL Server và Internet Information Services (IIS).
Cơ sở hạ tầng này cho phép bạn dùng mã quản lý để viết business logic của bạn, trong khi vẫn trải nghiệm hiệu suất vượt trội của ngành công nghiệp máy chủ doanh nghiệp hỗ trợ lưu trữ thời gian thực.NET Framework Class Library .NET Framework class library là một bộ sưu tập các loại có thể sử dụng nhiều lần được tích hợp vào CLR. Class library hướng đối tượng, cung cấp các loại mà bạn sở hữu mã quản lý nhằm khai thác chức năng. Điều này không chỉ làm cho .NET Framework dễ 8 Luan van sử dụng, mà còn giảm thời gian học tính năng mới của. Ngoài ra, các thành phần của bên thứ ba có thể tích hợp liền mạch với các class trong.
Ví dụ, bộ sưu tập các Class .NET Framework thực thi một giao diện mà bạn có thể sử dụng để phát triển bộ sưu tập class do bạn sở hữu. Bộ sưu tập class của bạn sẽ được pha trộn hoàn toàn với các class trong. Bạn mong chờ lớp thư viện hướng đối tượng, các loại .NET Framework cho phép bạn thực hiện một loạt các nhiệm vụ lập trình phổ biến, bao gồm các công việc như quản lý chuỗi, thu thập dữ liệu, kết nối cơ sở dữ liệu và truy cập tập tin. Ngoài các tác vụ chung, class library còn hỗ trợ các trường hợp phát triển đặt biệt.
Ví dụ bạn có thể sử dụng .NET Framework để phát triển các loại ứng dụng và dịch vụ sau đây: Console applications. Windows GUI applications (Windows Forms). Windows Presentation Foundation (WPF) applications. Ứng dụng định hướng ứng dụng dùng Windows Communication Foundation (WCF).
Ứng dụng cho phép làm việc theo luồng (workflow) dùng Windows Workflow Foundation (WF).3 Lịch sử phát triển .0 Đây là phiên bản đầu tiên của .NET Framework , nó được phát hành vào năm 2002 cho các hệ điều hành Windows 98, NT 4. Việc hỗ trợ chính thức từ Microsoft cho phiên bản này kết thúc vào 10/2007, tuy nhiên thời gian hỗ trợ mở rộng được kéo dài đến 14/7/2009.1 Phiên bản nâng cấp đầu tiên được phát hành vào 4/2003. Sự hỗ trợ của Microsoft kết thúc vào 14/10/2008 và hỗ trợ mở rộng đến 8/10/2013. 9 Luan van Những thay đổi so với phiên bản 1.0: Tích hợp hỗ trợ mobile ASP.NET (trước đây chỉ là phần mở rộng tùy chọn) Thay đổi về kiến trúc an ninh – sử dựng sandbox khi thực thi ứng dụng từ internet.
Tích hợp hỗ trợ ODBX và cơ sở dữ liệu Oracle.NET Compact Framework Hỗ trợ IPv6 (Internet Protocol version 6) Vài thay đổi khác trong API.0 Kể từ phiên bản này, .NET Framework hỗ trợ đầy đủ nền tảng 64-bit. Ngoài ra, cũng có một số thay đổi trong API; hỗ trợ các kiểu “generic”; bổ sung sự hỗ trợ cho ASP.NET Microsoft Framework – một phiên bản .NET Framework có quan hệ với Smart Personal Objects Technology.0 Đây không phải là một phiên bản mới hoàn toàn, thực tế chỉ là bản nâng cấp của .0 này còn có tên gọi khác là WinFX, nó bao gồm nhiều sự thay đổi nhằm hỗ trợ việc phát triển và chuyển đổi (porting) các ứng dụng trên Windows Vista. Tuy nhiên, không có sự xuất hiện của .NET Compact Framework 3.0 trong lần phát hành này. Bốn thành phần chính trong phiên bản 3.