Thứ Năm, 7 tháng 1, 2010

10 năm của .NET - Liệu Microsoft có phân phối được?

Ten years of .NET - Did Microsoft deliver?

Sự chuyển dịch nền tảng lặp lại

Platform shift repeats

By Tim Anderson • Get more from this author

Posted in Developer, 17th December 2009 15:02 GMT

Theo: http://www.theregister.co.uk/2009/12/17/dot_net_noughties/

Bài được đưa lên Internet ngày: 17/12/2009

Lời người dịch: Một bài phân tích về những cái được và cái mất trong những công nghệ lõi của Microsoft như Visual Basic, .NET, COM, Active Server Page..., và thực tế hiện nay là hãng đang ôm lấy điện toán đám mây và nguồn mở. Và cuối cùng, hãng phải suy tính cho thập kỷ tiếp sau với các mối đe dọa to lớn từ các đối thủ cạnh tranh.

Microsoft đóng những kẻ mới nổi bằng việc cố gắng đuổi kịp những đối thủ cạnh tranh và duy trì cái đích đến hàng đầu đối với các lập trình viên bằng việc ôm lấy điện toán đám mây và nguồn mở. Hãng đã mở thập kỷ này với sự chuyển dịch nền tảng khổng lồ khác, dù: là sự giới thiệu .NET.

.NET đã được công bố lần đầu trong TechEd của thập kỷ này tại Amsterdam vào năm 2000 với chi tiết hơn được cung cấp tại Hội nghĩ các Lập trình viên Chuyên nghiệp tại Orlando, Florida.

Trong việc đảm bảo cho thập kỷ, liệu .NET có phân phối được những gì Microsoft đã hứa hẹn không?

Câu chuyện của .NET có ý nghĩa hơn nếu bạn xem xét những gì mà Microsoft đã đứng dậy một lần nữa đúng lúc. Vị trí trung tâm của Windows đã từng bị sói mòn không chỉ bởi Internet, mà còn bởi ngôn ngữ và thời gian thực của Java của Sun Microsystems. Java là dễ dàng để lập trình, nhờ vào thiết kế và quản lý bộ nhớ một cách tự động hiện đại, đi cùng với thời gian thực đa nền tảng của riêng nó, và đã được áp dụng với sự nhiệt thành bởi các hãng như IBM và Oracle.

Microsoft đã cố gắng bổ sung những tính năng đặc biệt của Windows như sự tích hợp COM cho Java, nhưng câu trả lời đã là một vụ kiện 1 tỷ USD từ Sun vì việc phá hoại tính tương thích đa nền tảng. COM là một mô hình thành phần gốc ban đầu của Windows cho sự tích hợp các ứng dụng.

Các công cụ cho các lập trình viên của Microsoft cũng đã mòn mỏi. Visual Basic đã quanh co giởi ngụy biện, thiếu sức mạnh, dễ dàng cho những người mới bắt đầu nhưng khó cho các chuyên gia. Visual C++ và thư viện các lớp Windows, Windows Foundation Classes, đã là khó cho bất kỳ ai. Phát triển web với COM và Active Server Page từng là thứ lộn xộn và mong manh dễ vỡ.

Microsoft closes The Noughties by trying to keep up with competitors and to remain a top destination for developers by embracing cloud computing and open source. It opened the decade with another massive platform shift, though: the introduction of .NET.

.NET was announced at the first TechEd of decade in Amsterdam in the year 2000 with more detail provided at the Professional Developer's Conference in Orlando, Florida.

In the ensuing decade, did .NET deliver what Microsoft promised?

The .NET story makes more sense if you consider what Microsoft was up against at the time. The central place of Windows was being undermined not only by the internet, but also by Sun Microsystems' Java language and runtime. Java was easy to code, thanks to its modern design and automatic memory management, came with its own cross-platform runtime, and was being adopted with enthusiasm by the likes of IBM and Oracle.

Microsoft had tried to add Windows-specific features such as COM integration to Java, but the response was a billion-dollar lawsuit from Sun for breaking cross-platform compatibility. COM is a native Windows component model for application integration.

Microsoft's developer tools were also looking tired. Visual Basic was quirky, underpowered, easy for beginners but difficult for experts. Visual C++ and the Windows class library, Microsoft Foundation Classes, were difficult for everyone. Web development with COM and Active Server Pages was messy and fragile.

Câu trả lời của hãng đã nhấn mạnh. “Chúng tôi sẽ đưa ra toàn bộ một nền tảng mới được gọi là nền tảng .NET của Microsoft”, tổng giám đốc Michael Risse tại TechEd 2000. Nó đã được cấu thành từ 3 phần. Đầu tiên, đã có một “ngôn ngữ thời gian thực chung”, mà nó đã hỗ trợ các ngôn ngữ hiện đang có bao gồm cả Visual Basic và C++ cũng như một ngôn ngữ mới được gọi là C#, được thiết kế bởi Anders Hejlsberg của Borland Delphi lừng danh, và nó đã ôm lấy nhiều khái niệm y hệt được thấy trong Java.

Rồi, đã phải xây dựng các khối dịch vụ, “một tập hợp các dịch vụ trên trời”, có thể truy cập được thông qua Internet thông qua các dịch vụ web XML. Microsoft Passport từng là một ví dụ sớm.

Cuối cùng, tất cả những sản phẩm máy chủ hiện có của Microsoft đã được cấp lại công cụ như các máy chủ của .NET, với XML như là giao thức nằm bên trong. Risse đã nói về các ứng dụng thế hệ tiếp sau như “những bức tranh vạn năng, một sự tổng hợp của các dịch vụ web đơn nhất khác nhau được mang tới cùng nhau một cách thích đáng”. Tuyên bố về .NET của ông ta đã được đi theo bởi một sự trình diễn về BizTalk, sản phẩm máy chủ mà Risse đã hy vọng có thể đồng hành với nhiều dịch vụ này.

Những cú đánh và những thất bại

Nếu mục tiêu của .NET từng là để tống tiễn Java, thì nó ít nhất đã thành công được một phần. Java đã không chết, mà enterprise Java đã bị vấy bùn trong sự phức tạp, làm cho .NET thành một thứ dễ bán như một giải pháp thay thế hiệu quả hơn. C# đã đều đặn tăng trưởng về tính phổ biến, và bây giờ là lựa chọn đầu tiên cho hầu hết sự phát triển của Windows. ASP.NET đã từng là một khung công việc web doanh nghiệp phổ biến. Ngôn ngữ thời gian thực chung đã chứng minh được sự bùng nổ và mềm dẻo.

Các con số về xu thế công việc ở đây chỉ ra sự đòi hỏi gia tăng đều đặn đối với C#, mà nó bây giờ được nhắc tới trong khoảng 32% các chỗ trống về lập trình IT của nước Anh, trên cả Java với 25%.

The company's answer was bold. "We're going to deliver a whole new platform called the Microsoft .NET Platform," said general manager Michael Risse at TechEd 2000. It was comprised of three parts. First, there was a new "common language runtime", which supported existing languages including Visual Basic and C++ as well as a new language called C#, designed by Anders Hejlsberg of Borland Delphi fame, and which embraced many of the same concepts found in Java.

Then, there were to be building block services, "a set of services in the sky", accessible over the Internet via XML web services. Microsoft Passport was an early example.

Finally, all of Microsoft's existing server products were to be re-tooled as .NET servers, with XML as the unifying protocol. Risse talked about next-generation applications as "the universal canvas, an aggregation of different single web services that are brought together as appropriate." His .NET announcement was followed by a demonstration of BizTalk, the server product which Risse hoped would be orchestrating many of those services.

Hits and misses

If the goal of .NET was to see off Java, it was at least partially successful. Java did not die, but enterprise Java became mired in complexity, making .NET an easy sell as a more productive alternative. C# has steadily grown in popularity, and is now the first choice for most Windows development. ASP.NET has been a popular business web framework. The common language runtime has proved robust and flexible.

Job trend figures here show steadily increasing demand for C#, which is now mentioned in around 32 per cent of UK IT programming vacancies, ahead of Java at 26 per cent.

Mặc dù, không phải mọi thứ đã khắc phục được như theo kế hoạch. Ý tưởng về “xây dựng các khối các dịch vụ” đã xẹp vào những năm sau đó, tại PDC vào năm 2001 nơi mà Microsoft đã thúc đẩy ý tưởng HailStorm của hãng mà hãng đã không thể bán ý tưởng của bản thân này như một nhà cung cấp dịch vụ vạn năng. Hai năm sau, tại PDC 2003 nơi mà hãng đã công bố “Những trụ cột của Longhorm” Microsoft đã mong đợi phân phối một phiên bản của Windows với một giao diện người sử dụng của .NET, và điều đó đã quá thất bại và đã bị thay thế vội vàng bằng những gì đã trở thành Windows Vista.

Những thứ khác đã tồn tại lâu hơn bất kỳ ai mong đợi. Dù C# đã thành công, thì những người phát triển Visual Basic hiện hành thấy khó mà chuyển các dự án của họ sang những gì có hiệu quả như một ngôn ngữ khác có cùng tên. Phần Windows Forms (Mẫu biểu Windows) của khung công việc .NET không hơn gì là kẻ phàm ăn về tài nguyên trên các máy tính ngày nay, và sự phát triển của .NET thời gian thực đôi lúc thất bại.

Nó đã lấy đi của Microsoft 8 năm nữa để vượt qua ý tưởng về một hồ sơ máy trạm, cho một cài đặt mảnh khảnh hơn. Ý tưởng về các kiểm soát .NET như một giải pháp thay thế an toàn hơn cho ActiveX trong trình duyệt đã không bao giờ có được, một phần vì thời gian thực đã không đủ lan tỏa khắp nơi, và một phần vì công nghệ để làm điều này theo một cách nhạy cảm đã không thực sự được đặt đúng chỗ cho tới khi Silverlight 2 đã tới vào năm 2008.

Điều gì nếu Microsoft đã sử dụng nó?

Sự kìm kẹp từ lâu đời là việc bản thân Microsoft dã từng chậm chạp áp dụng .NET. “Nó sẽ là khung công việc mà bản thân Microsoft sử dụng để tiến lên trước”, Tony Goodhew của Microsoft đã nói tại TechEd năm 2000. Hãng này, dù vậy, đã tiếp tục sử dụng mã gốc và C++ như nền tảng phát triển đầu tiên cho những viên ngọc trên vương miện của hãng, Windows và Office. COM đã không bao giờ đi khỏi, và các nhà phát triển .NET mà muốn sử dụng các giao diện lập trình ứng dụng API mới của Windows 7, ví dụ, phải sử dụng một thư viện tương hợp để làm thế.

Đặt ra một cách khác, Microsoft dần dần đặt lại .NET như một nền tảng cho các ứng dụng doanh nghiệp hơn là như nền tảng của mọi thứ hãng xây dựng.

Trong năm 2000 Microsoft đã tự hào công bố rằng C# và Hạ tầng Ngôn ngữ Chung có thể sẽ được tiêu chuẩn hóa bởi ECMA, thọc mũi của hãng vào Sun, mà nó đã quyết định duy trì Java bên trong Quá trình Cộng đồng Java của riêng hãng hơn là trao nó cho một cơ quan tiêu chuẩn hóa công khai.

Dù điều này đã cho phép một số dự án thú vị như nguồn mở Mono, thì thư viện lớp của Khung công việc này đã bị bỏ qua. Microsoft hình như coi điều này như một thất bại - nhưng có lẽ hãng phải làm.

Vào buổi bình minh của một thập kỷ mới, ý tưởng về bức tranh vạn năng xem ra vẫn hợp ý một lần nữa, nhưng với một HTML và một máy trạm JavaScript chạy trong một trình duyệt đa nền tảng. Dù .NET đã thành công một cách còn gây tranh cãi hơn là nó đã thất bại, thì Microsoft vẫn cần phải vượt qua được một số chiến lược mới mà nó ít nhất là điểm nhấn, nếu hãng tính tới những mối đe dọa của thập kỷ tiếp sau đối với nền tảng của hãng.

Nevertheless, not everything has worked out as planned. The "building block services" idea fell flat on its face the following year, at PDC in 2001 where Microsoft pushed its HailStorm idea the company was unable to sell the idea of itself as a universal service provider. Two years later, at the PDC 2003 where it announced the "Three Pillars of Longhorn" Microsoft attempted to deliver a version of Windows with a .NET user interface , and that too failed and had to be hurriedly replaced with what became Windows Vista.

Other things have taken longer than anyone expected. Although C# was successful, existing Visual Basic developers found it hard to migrate their projects to what was in effect a different language with the same name. The Windows Forms part of the .NET Framework was no more than adequate, a resource hog on machines of the day, and deployment of the .NET runtime sometimes failed.

It took Microsoft a further eight years to come up with the idea of a client profile, for a slimmer install. The idea of .NET controls as a safer alternative to ActiveX in the browser never took hold, partly because the runtime was not sufficiently pervasive, and partly because the technology to do this in a sensible manner was not really put in place until Silverlight 2 arrived in 2008.

What if Microsoft used it?

A long-standing gripe is that Microsoft itself has been slow to adopt .NET. "It will be the framework that Microsoft itself uses going forward" Microsoft's Tony Goodhew told TechEd in 2000. The company, though, has continued to use native code and C++ as the primary development platform for its crown jewels, Windows and Office. COM has never gone away, and .NET developers who want to use new Windows 7 APIs, for example, have to use an interop library to do so.

Put another way, Microsoft gradually repositioned .NET as a platform for business applications rather than as the foundation of everything it built.

In 2000 Microsoft proudly announced that C# and the Common Language Infrastructure would be standardised by ECMA, thumbing its nose at Sun, which had decided to maintain Java within its own Java Community Process rather than handing it over to a public standards body.

Although this enabled some interesting projects such as the open source Mono, the Framework class library and ASP.NET remained outside the standards process and the idea of portable .NET applications never took off. Microsoft is unlikely to see this as a failure - but perhaps it should.

At the dawn of a new decade, the universal canvas idea looks plausible again, but with an HTML and JavaScript client running in a cross-platform browser. Although .NET has arguably succeeded more than it has failed, Microsoft needs to come up with some new strategy that is at least as bold, if it is to counter the next decade's threats to its platform. ®

Dịch tài liệu: Lê Trung Nghĩa

letrungnghia.foss@gmail.com

Không có nhận xét nào:

Đăng nhận xét

Lưu ý: Chỉ thành viên của blog này mới được đăng nhận xét.