Giã từ .NET

21/03/2013 16:54

Được công bố chính thức vào tháng 2/2002, nền tảng .NET (dotnet) hiện nay hết sức quen thuộc đối với người lập trình Windows. Nền tảng .NET đã hoàn thành sứ mệnh.

Kỷ niệm mười năm .NET được đánh dấu bởi việc phát hành phiên bản thử nghiệm .NET 4.5. Thế nhưng kể từ Windows 8, mười năm tới sẽ chứng kiến... sự phai tàn của .NET.


Tại hội thảo Microsoft BUILD tháng 9/2011 dành cho những người lập trình sử dụng công nghệ Microsoft, kiến trúc của công nghệ lập trình mới trên Windows 8 được trình bày bằng một sơ đồ, theo đó người lập trình sử dụng nền tảng .NET hoặc Win32 (còn gọi là WinNT) vẫn có thể tiếp tục xây dựng ứng dụng trên Windows 8 với giao diện Desktop.

Tuy nhiên, ứng dụng với giao diện mới Metro trên Windows 8 chỉ được tạo ra trên nền tảng mới WinRT (Windows Runtime), thay cho Win32. Người làm phần mềm Metro có thể lập trình bằng ngôn ngữ C, C++ (quen thuộc đối với người lập trình trên Win32) hoặc bằng ngôn ngữ C#, VB (quen thuộc đối với người lập trình trên .NET). Trên WinRT, Microsoft dùng tên VB, không dùng tên VB.NET. Người viết phần mềm Metro bằng C, C++, C# hoặc VB có thể mô tả giao diện người dùng (user interface) bằng ngôn ngữ XAML.

Đặc biệt, người lập trình Web cũng có thể tạo ra phần mềm Metro: xây dựng giao diện người dùng bằng ngôn ngữ HTML/CSS và lập trình bằng ngôn ngữ JavaScript. Mã JavaScript tương tác với WinRT thông qua guồng máy Chakra - guồng máy JavaScript dùng cho trình duyệt Internet Explorer 10 (IE 10).Microsoft đã vận dụng ý tưởng của hệ điều hành WebOS.

Kiến trúc lập trình của Windows 8 do Microsoft công bố.

Kiến trúc lập trình trên Windows 8 không làm thỏa mãn giới lập trình .NET.Tại sao không có nền tảng .NET trên WinRT?Tại sao không có công nghệ Silverlight để ứng dụng .NET chạy trong trình duyệt IE 10 có giao diện Metro? Vì sao công cụ lập trình miễn phí Visual Studio 2012 Express chỉ tạo ra phần mềm Metro, không tạo ra phần mềm Desktop thông dụng? Tại sao phần lớn mã nguồn mẫu của phần mềm Metro do Microsoft công bố được viết bằng C++ và JavaScript, chỉ một số ít được viết bằng C# và VB?

Các hiện tượng nêu trên dường như cùng nói lên một điều quan trọng: .NET không còn là mũi nhọn công nghệ của Microsoft và đang lùi dần vào quá khứ.

Trước khi .NET chào đời vào năm 2002, trong thập niên 1990, người lập trình Windows sử dụng nền tảng Win32 và dùng ngôn ngữ C hoặc C++. Đó là cách thức để tạo ra những phần mềm lớn như Office, Photoshop, Navigator,...Nền tảng Win32 rộng lớn nhưng lại không có sẵn phương thức chuẩn để truy cập cơ sở dữ liệu. Với Win32, việc xây dựng giao diện người dùng cho phần mềm cũng khá rắc rối: người lập trình phải tự quy định vị trí trên màn hình của từng linh kiện và tự lo toan việc chuyển dịch vị trí linh kiện khi cửa sổ được phóng to hay thu nhỏ. Hai nhược điểm lớn của việc lập trình trên Win32 được khắc phục với Visual Basic (VB).Hầu hết phần mềm doanh nghiệp được tạo ra bằng VB vì nhiệm vụ chủ yếu của phần mềm doanh nghiệp là hiển thị giao diện để người dùng làm việc với cơ sở dữ liệu.Tuy nhiên, người tạo ra phần mềm hệ thống (điều khiển phần cứng) vẫn phải dùng C hoặc C++ trên Win32 vì VB không thể đáp ứng mọi nhu cầu.

Khi xuất hiện vào năm 1995, nền tảng Java của Công ty Sun Microsystems thu hút mạnh mẽ giới lập trình vì cho phép tạo ra phần mềm độc lập với hệ điều hành (chạy được trên Windows, Mac OS, Linux). Phần mềm Java cũng dễ dàng chạy trong trình duyệt (Navigator và IE).Microsoft nhanh chóng thương lượng với Sun để xây dựng nền tảng Microsoft Java.Như là điều tất yếu, phần mềm trên Microsoft Java thường gắn chặt với Win32 đến mức không thể dùng cho hệ điều hành khác Windows, không thể dùng trong trình duyệt khác IE.Điều này đưa đến vụ kiện giữa Sun và Microsoft, trong đó Sun là bên thắng cuộc.Từ bỏ Java, Microsoft tự xây dựng nền tảng riêng có kiến trúc tương tự Java nhằm đẩy lùi Java, bảo vệ ưu thế của Windows. Đó là lý do xuất hiện nền tảng .NET. Công nghệ Silverlight là bước phát triển tiếp theo của .NET để cạnh tranh với cả Java và Flash.

Hầu như không ai lập trình Windows có thể bỏ qua .NET.Nền tảng .NET cho phép nhanh chóng xây dựng giao diện người dùng, dễ dàng truy cập cơ sở dữ liệu và tác động vào hệ thống sâu rộng hơn so với VB (ngôn ngữ tương tự VB trên .NET mang tên VB.NET).Tuy nhiên .NET chưa rộng đến mức có thể "che khuất" nền tảng Win32.Người lập trình hệ thống vẫn phải làm việc trực tiếp với Win32. Trên Windows XP, .NET được thêm vào sau, không phải bộ phận nòng cốt, do vậy người lập trình .NET là... "công dân hạng hai".

Tại hội thảo Microsoft PDC tháng 10/2003 dành cho giới lập trình, Microsoft trình bày phương án xây dựng Windows đời mới (sau Windows XP) với biệt hiệu Longhorn, theo đó .NET được tích hợp vào Windows, hình thành nền tảng hoàn toàn mới WinFX, thay thế Win32. Theo dự định, người lập trình WinFX là "công dân hạng nhất" trên Longhorn.Win32 sẽ không mở rộng, chỉ được duy trì để tương thích với phần mềm cũ.Ngoài ra, Longhorn hứa hẹn sẽ có hệ thống tập tin cải tiến WinFS, cho phép tìm thông tin cực nhanh.

Trải qua chặng đường dài gian khó trong "mê hồn trận Win32", giới lập trình Windows nức lòng với dự án Longhorn.

Tham vọng "đổi đời" lớn đến mức dự án Longhorn tại Microsoft rơi vào tình trạng rối loạn. Những lập trình viên kỳ cựu thuộc bộ phận phát triển Windows (Windows Division) khó thích nghi với bộ phận phát triển ứng dụng (Developer Division), nơi thiết kế nền tảng .NET. Trong lúc đó, ngoài thị trường, Windows XP và Windows Server 2003 đang để lộ nhiều "tử huyệt", buộc Microsoft phải tập trung nguồn lực để xây dựng phiên bản đại tu Windows XP Service Pack 2 và Windows Server 2003 Service Pack 1.

Khi phân nửa qũy thời gian dành cho Longhorn đã mất mà Windows đời mới vẫn chưa "ra ngô ra khoai", Microsoft buộc phải thay đổi mục tiêu, hạ thấp yêu cầu. Longhorn tiếp tục sử dụng phần lớn mã nguồn Windows XP, cuối cùng trở thành Windows Vista. Trong Windows Vista, nền tảng Win32 được mở rộng, .NET vẫn là bộ phận thứ cấp.

Cho đến Windows Vista, Microsoft vẫn phát triển hệ điều hành theo hướng truyền thống: hệ điều hành mới luôn đòi hỏi cấu hình máy cao hơn, thúc đẩy việc tiêu thụ bộ xử lý đời mới, phù hợp với lợi ích của Intel. Thế nhưng thị trường dần dần thay đổi, ngày càng tăng nhu cầu thiết bị có tính di động, tiết kiệm năng lượng, tập trung vào chức năng lướt mạng.Ứng dụng Web viết bằng JavaScript (chạy trong trình duyệt) ngày càng tinh tế.Công nghệ Java lùi về phía máy chủ. Động lực cạnh tranh với Java của .NET dần dần tan biến.

Microsoft nhanh chóng thích ứng với tình hình mới, thay thế Windows Vista nặng nề bằng Windows 7 thanh thoát trên cùng một cấu hình máy. Tuy nhiên, Windows 7 cũng không theo kịp thị trường khi xuất hiện bước nhảy vọt: máy tính bảng. Windows 8 là bước nhảy vọt thích ứng của Microsoft.

Trong sự phát triển của Windows nhằm thích ứng với thị trường, .NET không phải là tâm điểm. Microsoft đang đặt cược với loại hình phần mềm mới: phần mềm Metro.

Nhiều ý kiến từ giới lập trình .NET cho rằng phần mềm Metro chỉ thuộc loại "ăn chơi nhảy múa", "lâu lâu mới cần" (casual software), phần mềm Desktop truyền thống mới là ứng dụng làm việc nghiêm túc (productivity software). Có người khẳng định bên trên WinRT phải có một phần .NET, tạm gọi là Metro.NET, làm nền tảng cho việc lập trình bằng ngôn ngữ VB, thực chất là VB.NET, và ngôn ngữ C#. Nghĩa là .NET sẽ tiếp tục sống khỏe!

Windows 7 và Windows 8 theo cách nhìn của "tín đồ .NET".

Thực ra, về nguyên tắc, không có sự hạn chế việc xây dựng phần mềm doanh nghiệp - nhu cầu lớn nhất của việc lập trình .NET - trên WinRT.Việc vận dụng kinh nghiệm thiết kế .NET vào WinRT là điều không lạ, nhưng nền tảng Metro.NET riêng biệt chỉ đơn thuần là sự phỏng đoán.

Năm 1993, nền tảng Win32 xuất hiện trong Windows NT với tư cách là công nghệ mới.Nền tảng Win32 mất tám năm để đạt đến vị trí thống lĩnh trong Windows XP (2001). Công ty Gartner (công ty nghiên cứu thị trường công nghệ) dự báo diễn biến tương tự: bắt đầu từ Windows 8 (2012), nền tảng WinRT của phần mềm Metro sẽ chiếm ưu thế tuyệt đối trên Windows vào năm 2020.

"Giấc mơ Longhorn" xem như được thực hiện bởi WinRT, thay cho WinFX.Nền tảng .NET đã hoàn thành sứ mệnh.

NGỌC GIAO

Ý kiến bạn đọc (0)
Tên   Email

Lên đầu trang