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

Thứ sáu - 08/01/2010 06:58

Tenyears of .NET - Did Microsoft deliver?

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

Platformshift repeats

By Tim Anderson • Getmore f-rom this author

Posted in Developer, 17thDecember 2009 15:02 GMT

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

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

Lờingườ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ệnnay là hãng đang ôm lấy điện toán đám mây và nguồnmở. Và cuối cùng, hãng phải suy tính cho thập kỷ tiếpsau với các mối đe dọa to lớn từ các đối thủ cạnhtranh.

Microsoft đóng nhữngkẻ mới nổi bằng việc cố gắng đuổi kịp những đốithủ cạnh tranh và duy trì cái đích đến hàng đầu đốivớ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ớisự chuyển dịch nền tảng khổng lồ khác, dù: là sựgiới thiệu .NET.

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

Trong việc đảm bảocho 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 .NETcó ý 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ủaWindows đã 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 SunMicrosystems. Java là dễ dàng để lập trình, nhờ vàothiế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ủariêng nó, và đã được áp dụng với sự nhiệt thànhbở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ủaWindows 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ạitính tương thích đa nền tảng. COM là một mô hình thànhphần gốc ban đầu của Windows cho sự tích hợp các ứngdụng.

Cáccông cụ cho các lập trình viên của Microsoft cũng đã mònmỏi. Visual Basic đã quanh co giởi ngụy biện, thiếu sứcmạ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áttriển web với COM và Active Server Page từng là thứ lộnxộn và mong manh dễ vỡ.

Microsoftcloses The Noughties by trying to keep up with competitors and toremain a top destination for developers by embracing cloud computingand open source. It opened the decade with another massive platformshift, though: the introduction of .NET.

.NETwas announced at the first TechEd of decade in Amsterdam in the year2000 with more detail provided at the Professional Developer'sConference in Orlando, Florida.

Inthe ensuing decade, did .NET deliver what Microsoft promised?

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

Microsofthad tried to add Windows-specific features such as COM integration toJava, but the response was a billion-dollar lawsuit f-rom Sun forbreaking cross-platform compatibility. COM is a native Windowscomponent model for application integration.

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

Câu trả lời củahãng đã nhấn mạnh. “Chúng tôi sẽ đưa ra toàn bộ mộtnền tảng mới được gọi là nền tảng .NET củaMicrosoft”, 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#, đượcthiế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ấytrong Java.

Rồi, đã phải xâydự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 Internetthô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 đã đượccấ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 ứngdụ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ácnhau đượ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ộtsự 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ữngcú đá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àmcho .NET thành một thứ dễ bán như một giải pháp thaythế 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 chohầ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 trongkhoảng 32% các chỗ trống về lập trình IT của nướcAnh, trên cả Java với 25%.

Thecompany's answer was bold. "We're going to deliver a whole newplatform called the Microsoft .NET Platform," said generalmanager Michael Risse at TechEd 2000. It was comprised of threeparts. First, there was a new "common language runtime",which supported existing languages including Visual Basic and C++ aswell as a new language called C#, designed by Anders Hejlsberg ofBorland Delphi fame, and which embraced many of the same conceptsfound in Java.

Then,there were to be building block services, "a set of services inthe 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 aboutnext-generation applications as "the universal canvas, anaggregation of different single web services that are broughttogether as appropriate." His .NET announcement was followed bya demonstration of BizTalk, the server product which Risse hopedwould be orchestrating many of those services.

Hitsand misses

Ifthe goal of .NET was to see off Java, it was at least partiallysuccessful. Java did not die, but enterprise Java became mired incomplexity, making .NET an easy sell as a more productiveal-ternative. C# has steadily grown in popularity, and is now thefirst choice for most Windows development. ASP.NET has been a popularbusiness web framework. The common language runtime has proved robustand flexible.

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

Mặc dù, không phảimọ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ẹpvà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ạiPDC 2003 nơi mà hãng đã công bố “Những trụ cột củaLonghorm” Microsoft đã mong đợi phân phối một phiên bảncủ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ànhcông, thì những người phát triển Visual Basic hiện hànhthấ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ầnWindows Forms (Mẫu biểu Windows) của khung công việc .NETkhông hơn gì là kẻ phàm ăn về tài nguyên trên các máytí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ủaMicrosoft 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ưởngvề các kiểm soát .NET như một giải pháp thay thế antoà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 đủ lantỏa khắp nơi, và một phần vì công nghệ để làm điềunà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ăm2008.

Điềugì 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 ápdụng .NET. “Nó sẽ là khung công việc mà bản thânMicrosoft sử dụng để tiến lên trước”, Tony Goodhew củaMicrosoft đã 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áttriển đầu tiên cho những viên ngọc trên vương miệncủ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 giaodiệ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áchkhác, Microsoft dần dần đặt lại .NET như một nền tảngcho các ứng dụng doanh nghiệp hơn là như nền tảng củamọ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ữ Chungcó thể sẽ được tiêu chuẩn hóa bởi ECMA, thọc mũicủa hãng vào Sun, mà nó đã quyết định duy trì Java bêntrong 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 đã chophé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ưngcó lẽ hãng phải làm.

Vào buổi bình minhcủa một thập kỷ mới, ý tưởng về bức tranh vạnnăng xem ra vẫn hợp ý một lần nữa, nhưng với mộtHTML 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âytranh cãi hơn là nó đã thất bại, thì Microsoft vẫn cầnphả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ủahãng.

Nevertheless,not everything has worked out as planned. The "building blockservices" idea fell flat on its face the following year, at PDCin 2001 whe-re Microsoft pushed its HailStorm idea the company wasunable to sell the idea of itself as a universal service provider.Two years later, at the PDC 2003 whe-re it announced the "ThreePillars of Longhorn" Microsoft attempted to deliver a version ofWindows with a .NET user interface , and that too failed and had tobe hurriedly replaced with what became Windows Vista.

Otherthings have taken longer than anyone expected. Although C# wassuccessful, existing Visual Basic developers found it hard to migratetheir projects to what was in effect a different language with thesame name. The Windows Forms part of the .NET Framework was no morethan adequate, a resource hog on machines of the day, and deploymentof the .NET runtime sometimes failed.

Ittook Microsoft a further eight years to come up with the idea of aclient profile, for a slimmer install. The idea of .NET controls as asafer al-ternative to ActiveX in the browser never took hold, partlybecause the runtime was not sufficiently pervasive, and partlybecause the technology to do this in a sensible manner was not reallyput in place until Silverlight 2 arrived in 2008.

Whatif Microsoft used it?

Along-standing gripe is that Microsoft itself has been slow to adopt.NET. "It will be the framework that Microsoft itself uses goingforward" Microsoft's Tony Goodhew told TechEd in 2000. Thecompany, though, has continued to use native code and C++ as theprimary development platform for its crown jewels, Windows andOffice. COM has never gone away, and .NET developers who want to usenew Windows 7 APIs, for example, have to use an interop library to doso.

Putanother way, Microsoft gradually repositioned .NET as a platform forbusiness applications rather than as the foundation of everything itbuilt.

In2000 Microsoft proudly announced that C# and the Common LanguageInfrastructure would be standardised by ECMA, thumbing its nose atSun, which had decided to maintain Java within its own Java CommunityProcess rather than handing it over to a public standards body.

Althoughthis enabled some interesting projects such as the open source Mono,the Framework class library and ASP.NET remained outside thestandards process and the idea of portable .NET applications nevertook off. Microsoft is unlikely to see this as a failure - butperhaps it should.

Atthe dawn of a new decade, the universal canvas idea looks plausibleagain, but with an HTML and JavaScript client running in across-platform browser. Although .NET has arguably succeeded morethan it has failed, Microsoft needs to come up with some new strategythat is at least as bold, if it is to counter the next decade'sthreats to its platform. ®

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

letrungnghia.foss@gmail.com

Tổng số điểm của bài viết là: 0 trong 0 đánh giá

Click để đánh giá bài viết

  Ý kiến bạn đọc

Những tin mới hơn

Những tin cũ hơn

Về Blog này

Blog này được chuyển đổi từ http://blog.yahoo.com/letrungnghia trên Yahoo Blog sang sử dụng NukeViet sau khi Yahoo Blog đóng cửa tại Việt Nam ngày 17/01/2013.Kể từ ngày 07/02/2013, thông tin trên Blog được cập nhật tiếp tục trở lại với sự hỗ trợ kỹ thuật và đặt chỗ hosting của nhóm phát triển...

Bài đọc nhiều nhất trong năm
Thăm dò ý kiến

Bạn quan tâm gì nhất ở mã nguồn mở?

Thống kê truy cập
  • Đang truy cập207
  • Máy chủ tìm kiếm7
  • Khách viếng thăm200
  • Hôm nay11,081
  • Tháng hiện tại673,272
  • Tổng lượt truy cập32,151,598
Bạn đã không sử dụng Site, Bấm vào đây để duy trì trạng thái đăng nhập. Thời gian chờ: 60 giây