Lịch sử phát triển .NET Framework

Ngày 12/2/2002 đánh dấu một mốc quan trọng trong ngành công nghệ thông tin khi Microsoft chính thức ra mắt nền tảng công nghệ mới có tên .NET Framework phiên bản 1.0 cùng với Visual Studio.NET 2002. Sau hơn 1 thập kỷ phát triển, .NET đã đi được những bước dài, trở thành một trong những nền tảng công nghệ mạnh mẽ và phổ biến nhất hiện nay. Tại sao Microsoft quyết định xây dựng mới lại từ đầu một nền tảng công nghệ mới là .NET, vậy trước khi có .NET thì các nhà phát triển sử dụng công nghệ gì để phát triển các ứng dụng chạy trên Windows?

Chúng ta quay lại một chút lịch sử, nhớ lại những năm cuối thế kỉ trước, Java làm mưa làm gió trên thị trường phần mềm với khẩu hiệu nổi tiếng “Write once, Run anywhere” tức là viết một lần, chạy mọi nơi. Không chỉ là một ngôn ngữ, Java còn là cả một nền tảng, thích hợp cho việc phát triển phần mềm từ đơn giản đến phức tạp, từ các ứng dụng chạy trên máy tính cá nhân đến các ứng dụng chạy trên máy chủ và các thiết bị di động. Khi đó, Microsoft cũng phải hợp tác với Sun Microsystem để đưa ra Visual J++, công cụ phát triển Java trên nền Windows cho bộ Visual Studio của mình. Microsoft thậm chí còn xây dựng hẳn thư viện WFC (Windows Foundation Classes), bên cạnh bộ thư viện MFC, để hỗ trợ cho Visual J++. Nhưng sự cố đã xảy ra khi Sun tố giác Microsoft tự ý sửa code của máy ảo Java cho Windows (Java Virtual Machine – JVM). Vụ việc nhanh chóng làm đổ vỡ mối quan hệ giữa hai ông lớn. Năm 1998, Microsoft đã mất quyền phát triển Java, và khi cả thế giới chuyển sang Java 1.2 (thường được biết đến với tên thương mại J2EE), Microsoft “ở lại” với Java 1.1. Và hệ quả tất yếu là Visual J++ “chết yểu”. Từ thế đối tác, Microsoft trở thành đối thủ của Sun về ngôn ngữ, cũng như về nền tảng lập trình.

Thời kỳ đó Microsoft chưa có sản phẩm nào tương xứng để cạnh tranh với Sun, mặc dù đã có đầy đủ nền tảng và công cụ cho người lập trình: Visual C++ với MFC/ATL và Visual Basic cho lập trình Windows, ASP với Javascript/VBScript cho lập trình web… nhưng chúng đều không phải là đối thủ đúng nghĩa của ngôn ngữ/nền tảng Java. Mỗi sản phẩm của Microsoft tương ứng với một môi trường nhất định, việc chuyển sang môi trường khác buộc lập trình viên phải học ngôn ngữ mới. Ngoài ra, các nền tảng của Microsoft đều ít nhiều có nhược điểm: Visual Basic thì tiện lợi và dễ dùng nhưng hiệu năng thấp, không thích hợp cho các ứng dụng tính toán phức tạp. MFC khai thác được sức mạnh của Windows API nhưng chưa đủ thân thiện. ASP với Jscript/VBScript thì quá rắc rối để có thể bẫy lỗi và phát triển các website lớn…Ngoài ra, việc hỗ trợ Unicode cũng là một điểm yếu của các công cụ Microsoft khi đó. Có thể nói, vào những năm cuối của thế kỉ trước, Microsoft thiếu một nền tảng thống nhất.

Ngay từ năm 1998, Microsoft đầu tư vào nghiên cứu trong dự án NGWS – Next Generation Windows Services, đồng thời chiêu mộ những nhân tài trong lĩnh vực phát triển phần mềm, có thể kể đến Anders Heijberg – tác giả nổi tiếng của Turbo Pascal và Delphi. Một kỉ nguyên mới bắt đầu.

Tháng 7 năm 2000, tại hội thảo dành cho các nhà phát triển chuyên nghiệp, Microsoft đã bắt đầu hé lộ về nền tảng .NET Framework, đồng thời cũng giới thiệu về ngôn ngữ mới của họ. Ban đầu, ngôn ngữ này được đặt tên là COOL – C-like Object Oriented Language, cùng với một vài cái tên tạm thời khác như COM3, Lightnight trước khi được đặt tên C#.

Sự ra đời của .NET Framework, lần đầu tiên Microsoft giới thiệu về “lập trình hợp nhất”, với việc lấy .NET Framework làm nền tảng. Với nền tảng của .NET, các nhà lập trình không còn bị phụ thuộc vào ngôn ngữ lập trình nữa, họ có thể viết bằng các ngôn ngữ khác nhau miễn là code được biên dịch ra ngôn ngữ trung gian CIL (Common Intermediate Language), được thực thi bởi CLR (Common Language Runtime) và sử dụng chung thư viện cơ sở BCL (Base Class Library). Hơn thế nữa, dù là một ứng dụng Winform đơn giản, một giải pháp doanh nghiệp phức tạp hay một trang web đầy đủ chức năng, tất cả đều có thể xây dựng trên nền .NET. Được trợ giúp bởi 2 ngôn ngữ hoàn toàn hướng đối tượng mới, C# và Visual Basic.NET, .NET Framework thực sự là một cuộc cách mạng của Microsoft.

Biên dịch code trong .NET

Phải nói một cách khách quan rằng rất nhiều ý tưởng quan trọng trong .NET Framework được vay mượn từ đối thủ Java. Tuy nhiên, điều may mắn là Microsoft đã bắt chước một cách “không tệ”. Ví dụ, kiểu dịch JIT (Just-in-time) trong .NET Framework hiệu quả hơn kiểu byte-code trong JVM. Điều này là bình thường trong thế giới hiện nay, vì ý tưởng thì chỉ có một, nhưng quan trọng là cách hiện thực như thế nào. Những bước đi đúng đắn của đội ngũ .NET ở Microsoft đã giúp cho .NET có những ưu thế không thể chối cãi trước các đối thủ cạnh tranh.

Một năm sau ngày .NET Framework 1.0 ra đời, ngày 24/4/2003, Microsoft đã có ngay bản cập nhật 1.1 ra mắt cùng với Visual Studio.NET 2003. Không có nhiều nâng cấp đáng chú ý trong lần ra mắt này, đáng kể nhất là sự ra đời của .NET Compact Framework, phiên bản thu gọn của .NET Framework cho các thiết bị di động. Điều đáng tiếc là mặc dù có nền tảng rất tốt, cùng với sự hỗ trợ mạnh mẽ từ Microsoft, cho đến nay, .NET Compact Framework vẫn chưa phát triển như “lẽ ra nó phải thế”. Hiện nay số thiết bị di động chạy Windows Mobile/Windows Phone khá khiêm tốn so với các hệ điều hành (HĐH) còn lại.

Từ phiên bản .NET Framework 1.1, các HĐH Windows đều được cài đặt sẵn phiên bản .NET Framework mới nhất. Windows Server 2003 tiên phong với phiên bản 1.1, sau đó là Windows Vista với .NET 3.0, và gần đây nhất là Windows 7/Server 2008 với .NET 3.5 SP1.

Microsoft mất đến hơn 2 năm để phát triển .NET Framework 2.0 và Visual Studio 2005, và thời gian bỏ ra là thật sự đáng giá. Tháng 11/2005, hai sản phẩm này ra mắt với hàng loạt tính năng mới, trong đó đáng kể nhất là việc hỗ trợ hoàn toàn cho tính toán 64-bit, .NET Microft Framework, bổ sung và nâng cấp nhiều control của ASP.NET và đặc biệt là hỗ trợ Generics.

Quay lại trước đó một năm. .NET Framework thật sự là sức ép lớn đối với Sun khi họ phải nâng cấp nền tảng Java cho xứng tầm với đối thủ mới. Tuy nhiên, việc hỗ trợ Generics giữa .NET và Java gần như trái ngược. Generics trong Java hoàn toàn ở cấp độ ngôn ngữ, còn bản thân JRE không biết gì đến khái niệm này. Trình dịch đảm nhận toàn bộ công việc dịch Generics ra mã mà JRE “hiểu được”. Điều này cũng có nghĩa một chương trình Java sử dụng Generics vẫn có thể chạy trên các nền tảng Java cũ hơn, miễn là có các thư viện cần thiết. Còn ở .NET, CLR 2.0 – “người đồng cấp” với JRE – lại hỗ trợ hoàn toàn Generics, thậm chí, còn hỗ trợ tốt hơn cả các ngôn ngữ như C# hay Visual Basic. Nếu như 3 phiên bản trước đó, .NET Framwork đều gắn liền với một phiên bản Visual Studio nào đó, thì .NET Framework 3.0 đã “phá” truyền thống này khi ra mắt cùng với hệ điều hành Windows Vista vào cuối năm 2006. Ba “điểm nhấn” trong lần nâng cấp này là thành phần được kỳ vọng thay thế Winform – Windows Presentation Foundation – WPF, Windows Communitcation Foundation – WCF, Windows Workflow Foundation – WF, và Windows Card Space.

.NET Framework 3.0 không phải là một phiên bản mới hoàn toàn, thực tế là một bản nâng cấp của .NET 2.0, hay đúng hơn là một bản nâng cấp cho thư viện của .NET 2.0. Có thể minh hoạ bằng công thức:

.NET 3.0 = .NET 2.0 + WPF + WCF + WF + WCS

Chính vì không có Visual Studio “đi kèm”, mà .NET 3.0 đành phải “ký gửi” vào Visual Studio 2005 với một bộ công cụ mở rộng. Người dùng phải đợi đến tháng 11 năm 2007 mới được sử dụng một phiên bản Visual Studio hỗ trợ đầy đủ và toàn diện cho .NET 3.0, và hơn thế nữa. Vâng, chúng ta đang nói đến VS 2008 và .NET Framework 3.5. Cũng như phiên bản 3.0, .NET 3.5, là một mở rộng trên nền .NET 2.0. Chúng ta có thể hình dung điều này bằng công thức:

.NET 3.5 = .NET 3.0 + LINQ + ASP.NET 3.5 + REST

LINQ là phần nổi bật và đáng chú ý nhất trong .NET 3.5. Để phục vụ cho thành phần mới này, một loạt các tính năng đã được bổ sung cho các ngôn ngữ như C# 3.0 và Visual Basic 9.0, như Automatic Implemented Properties, Anomynous Varibles…Các tính năng này cho phép các nhà phát triển viết các câu truy vấn trên LINQ tiện lợi hơn hẳn so với dùng các thư viện như ADO.NET. Ngày 12/4/2010 Microsoft lại nâng cấp .NET Framework 4.0 và Visual Studio 2010. Đây là phiên bản có một CLR hoàn toàn mới: CLR 4.0. Cũng cần nhắc lại là cả .NET 3.0 và 3.5 đều sử dụng CLR 2.0, và không có CLR 3.0. Việc Microsoft chuyển thẳng lên 4.0 không chỉ để “đồng bộ” phiên bản, mà còn nhằm khẳng định đây là một bước tiến lớn. 15/08/2012 Microsoft ra mắt phiên bản .NET Framework 4.5 và Visual Studio 2012. Kể từ phiên bản này Microsoft bắt đầu cung cấp hai gói cài đặt riêng biệt, gói đầy đủ và gói giản chức năng.

Microsoft vẫn tiếp tục tiến hành nâng cấp các phiên bản .NET Framework và Visual Studio để tăng tính hiệu năng và linh động cho người phát triển.

Có thể bạn sẽ thích…

Trả lời

EnglishVietnamese