Silverlight, HTML5 và chiến lược phát triển không rõ ràng của Microsoft. Microsoft Silverlight, chương trình này là gì và có cần thiết không? Hãy cùng tìm hiểu! Việc thực thi Silverlight bị chặn do phiên bản đã cài đặt

Tôi muốn hỏi các chuyên gia của Microsoft, vì tất cả các phương pháp khác đều đã hết, không ai có thể giúp đỡ. Vấn đề là tôi muốn cài đặt Silverlight (chính xác hơn là tôi không thực sự cần nó :), nhưng Netflix không hoạt động nếu không có nó).

Vâng, tôi sẽ nói ngay với bạn, hệ thống là 7 32 bit. Một số trình duyệt đã được cài đặt - IE10, FireFox, Chrome.

Và bây giờ mọi nỗ lực cài đặt đều kết thúc trong thất bại. Tôi đã cố chạy nó từ các trình duyệt khác nhau mà không có trình duyệt nào cả, silverlight.exe - kết quả vẫn như vậy - "Không thể cài đặt." Hơn nữa, lúc đầu nút “Thông tin bổ sung” hoàn toàn không hoạt động. Sau đó, nó đột nhiên bắt đầu hoạt động và bắt đầu hiển thị trên trang web của Microsoft với thông báo:

ID tin nhắn: 1622

Không thể ghi tệp nhật ký cài đặt. Xác minh rằng thư mục Temp tồn tại và bạn có thể ghi vào đó.

Tôi không hiểu tại sao điều này lại vô nghĩa như vậy. Tôi đã cài đặt rất nhiều chương trình và không một chương trình nào phàn nàn. Không có vấn đề gì với hệ thống tập tin. Thư mục windows\Temp tồn tại và có thể truy cập được. Hơn nữa, tôi thậm chí còn tạo một C:\TEMP đặc biệt cho anh ấy, tôi nghĩ có thể anh ấy sẽ phàn nàn về điều đó. Giống nhau.

Theo đó, câu hỏi đặt ra là: điều gì có thể ngăn cản việc cài đặt chương trình? Tôi đọc ở đâu đó trên trang web rằng điều này có thể liên quan đến ngôn ngữ hệ thống? Nhưng tại sao điều này không dừng tất cả các chương trình khác? Có cách nào để cài đặt cái thứ tào lao này chưa? Rốt cuộc thì tôi chỉ tò mò thôi.

Ứng dụng Silverlight

Silverlight sử dụng công nghệ nâng cao trình duyệt truyền thống - bổ sung .

Lợi ích của mô hình tiện ích bổ sung là để xem nội dung do những người và công ty khác nhau tạo ra, người dùng chỉ cần cài đặt một thành phần duy nhất - tiện ích bổ sung Silverlight. Để thực hiện việc này, người dùng chỉ cần tải xuống miễn phí một tệp nhỏ từ trang web của Microsoft và nhập xác nhận vào một hộp thoại duy nhất. Toàn bộ thủ tục mất không quá một phút. Sau khi cài đặt tiện ích bổ sung, trình duyệt sẽ có thể xử lý mọi nội dung tương thích với tiện ích bổ sung đó mà không cần sự can thiệp của người dùng.

Hình bên dưới hiển thị hai chế độ xem của một trang chứa đối tượng Silverlight. Bên trên là trang người dùng nhìn thấy khi tiện ích bổ sung Silverlight chưa được cài đặt. Tại thời điểm này, người dùng có thể nhấp vào nút Nhấp ngay để cài đặt để được đưa đến trang web của Microsoft, nơi họ sẽ được nhắc cài đặt tiện ích bổ sung. Dưới đây là cùng một trang sau khi cài đặt tiện ích bổ sung Silverlight:

Hiện tại, tiện ích bổ sung Silverlight được cài đặt trên 75% máy tính có kết nối Internet (bao gồm cả máy tính để bàn và thiết bị di động). Nếu chỉ xét các máy tính chạy Windows và Internet Explorer thì tỷ lệ Silverlight sẽ cao hơn. Những con số này rất ấn tượng nhưng tiện ích bổ sung Flash vẫn được cài đặt trên nhiều thiết bị web hơn (96%).

Yêu cầu hệ thống Silverlight

Điều rất quan trọng là mọi công nghệ web đều phải tương thích với nhiều loại máy tính và thiết bị nhất có thể. Công nghệ Silverlight hiện đang được phát triển nhưng đã tương thích với hầu hết các hệ điều hành:

các cửa sổ

Silverlight 5 chạy trên các máy tính chạy Windows 8, Windows 7, Windows Vista và Windows XP. Phiên bản tối thiểu của trình duyệt hỗ trợ Silverlight là Internet Explorer 6, Firefox 1.5 và Chrome 4.0. Các tiện ích bổ sung này cũng hoạt động trong Windows 2000, nhưng chỉ với Internet Explorer 6. Các trình duyệt khác như Opera và Safari (dành cho Windows) hiện cũng hỗ trợ tiện ích bổ sung Silverlight, nhưng nó chưa được ghi lại cho chúng.

Macintosh

Phần bổ trợ Silverlight hoạt động trên máy tính Mac chạy OS X 10.4.8 trở lên. Phải là bộ xử lý Intel (phần cứng PowerPC không được chấp nhận). Đối với Silverlight, phiên bản trình duyệt tối thiểu là Firefox 2 và Safari 3. Các ứng dụng Silverlight không được hỗ trợ trên các thiết bị di động của Apple, bao gồm iPhone, iPod Touch và iPad.

Linux

Tiện ích bổ sung Silverlight 5 hiện không hoạt động trên Linux, nhưng nhóm Mono đang tạo thư viện nguồn mở cho Silverlight (dự án Moonlight được Microsoft xác nhận). Phiên bản chính thức ổn định mới nhất của Moonlight hỗ trợ các ứng dụng Silverlight 2, nhưng phiên bản beta hiện đã được phát hành hỗ trợ Silverlight 4. Tiến độ còn chậm nên vẫn chưa biết khi nào Moonlight sẽ hỗ trợ Silverlight 5, nếu có.

Điện thoại Windows

Silverlight là một trong hai công nghệ phát triển ứng dụng được hỗ trợ chính thức cho Windows Phone 7 và 8 (còn lại là Microsoft XNA).

Việc cài đặt bổ trợ Silverlight yêu cầu một tệp nhỏ (dưới 10 MB) để dễ tải xuống, do đó việc cài đặt bổ trợ Silverlight không khó hơn cài đặt Flash.

Silverlight và Flash

Hiện tại, tiện ích bổ sung cho trình duyệt thành công và phổ biến nhất, Adobe Flash, được cài đặt ở hơn 96% trình duyệt trên toàn thế giới. Công nghệ flash có lịch sử lâu đời - hơn mười năm. Flash ban đầu là một công cụ đơn giản để thêm đồ họa hoạt hình, nhưng theo thời gian nó đã dần phát triển thành một nền tảng phát triển nội dung tương tác mạnh mẽ.

Đối với các nhà phát triển .NET, việc xây dựng trang web bằng nội dung Flash là điều đương nhiên. Tuy nhiên, Flash yêu cầu các công cụ phát triển riêng biệt - một ngôn ngữ lập trình hoàn toàn khác ( Tập lệnh hành động) và môi trường lập trình khác ( Uốn cong).

Điều tồi tệ nhất là không có cách nào dễ dàng để tích hợp nội dung Flash với mã máy chủ .NET. Đặc biệt, phải mất rất nhiều công sức để gọi một đối tượng Flash đến thành phần .NET. Việc sử dụng mã máy chủ .NET để hiển thị nội dung Flash (ví dụ: để tạo điều khiển ASP.NET thao tác nội dung Flash) thậm chí còn là một nhiệm vụ khó khăn hơn.

So với Flash, Silverlight giúp thao tác nội dung .NET dễ dàng hơn nhiều. Mục tiêu chính của Silverlight là cho phép tạo ra các ứng dụng mạnh mẽ và đa nền tảng như Flash, dựa trên nền tảng lập trình .NET đẳng cấp thế giới. Điều này cho phép các nhà phát triển viết mã máy khách Silverlight bằng cùng ngôn ngữ (C# hoặc VB) làm mã máy chủ. Ngoài ra, các nhà phát triển có thể sử dụng các khái niệm trừu tượng tương tự trong mã máy khách Silverlight mà họ sử dụng trong mã máy chủ, bao gồm các luồng I/O, điều khiển, bộ sưu tập, đối tượng chung và các phương tiện LINQ.

Silverlight và HTML5

Khi công nghệ Silverlight được tạo ra, người ta cho rằng mục đích chính của nó là phát triển các trang web mạnh mẽ và đối thủ cạnh tranh chính của nó là công nghệ Adobe Flash. Tuy nhiên, sau khi một số phiên bản Silverlight được phát hành, thế giới đã thay đổi. Các ứng dụng Adobe Flash vẫn được hỗ trợ trên hầu hết mọi máy tính để bàn, nhưng chúng đã bị loại khỏi các sản phẩm phổ biến của Apple như iPhone và iPad. Do đó, phân khúc thiết bị di động đã bắt đầu hướng tới các giải pháp khác, chẳng hạn như các ứng dụng chuyên dụng, nền tảng đơn (chỉ chạy trên một hệ điều hành) và HTML5.

Hiện tại, mọi người đều đồng ý rằng HTML5 là tương lai của Internet (nhưng không phải bây giờ mà là một ngày nào đó sau này và khi nào thì vẫn chưa biết chính xác). Tuy nhiên, các tính năng mà nền tảng HTML5 hứa hẹn trong tương lai không xác định đã được triển khai trong công nghệ Flash và Silverlight. Ngoài ra, Flash và Silverlight còn cung cấp nhiều công cụ bổ sung. Đối với một số ứng dụng, những tính năng bổ sung này không cần thiết lắm.

Không còn nghi ngờ gì nữa, vị thế của HTML5 sẽ được củng cố theo thời gian. Nhưng cho đến lúc đó, các nhà phát triển buộc phải lựa chọn giữa các công cụ hiện được hỗ trợ (Silverlight và Flash) nhưng sẽ không bao giờ được hỗ trợ trên thiết bị di động và các công cụ hiện không được hỗ trợ nhưng sẽ được hỗ trợ trên tất cả các thiết bị, kể cả thiết bị di động, trong tương lai. Trong trường hợp sau, nhà phát triển sẽ thích HTML5 hơn. Vấn đề nan giải này là phải lựa chọn giữa các công cụ mạnh mẽ và giá cả phải chăng. Silverlight rất mạnh mẽ và HTML5 có giá cả phải chăng vì hiện tại nó được hỗ trợ bởi tất cả các trình duyệt trên máy tính để bàn (nhưng không phải tất cả các thiết bị di động).

Vì những xu hướng này, nhiều nhà phát triển Silverlight không chắc chắn về vị trí của công nghệ này trong tương lai của Internet. Vì hiện tại tương lai khá không chắc chắn nên hãy xem xét các yếu tố sau:

    Việc triển khai và hỗ trợ HTML5 vẫn chưa hoàn tất. Đặc biệt, không phải tất cả các tính năng HTML5 đều được hỗ trợ trong Internet Explorer. Trong IE 10, một số tính năng HTML5 đã được hứa hẹn nhưng chưa bao giờ xuất hiện. Nhiều tính năng có sẵn trong IE 9 nhưng IE 8 hầu như không có tính năng HTML5. Điều này thật tệ, vì IE 8 vẫn là trình duyệt phổ biến nhất cho hệ điều hành Windows XP, chưa có dấu hiệu rời khỏi hiện trường (nó vẫn được cài đặt trên hầu hết các máy tính để bàn). Vì những lý do này, HTML5 vẫn là công nghệ ít được hỗ trợ hơn Silverlight và tình trạng này sẽ không thay đổi trong ít nhất vài năm.

    Silverlight có những tính năng mà HTML5 không có. Ngay cả các trình duyệt hỗ trợ đầy đủ HTML5 cũng thua xa Silverlight trong một số lĩnh vực chính. Chúng không cung cấp các khả năng mạnh mẽ để truyền phát video, tăng tốc đồ họa phần cứng, gọi các thành phần Windows, truy cập tệp, chạy ứng dụng bên ngoài trình duyệt, lướt mạng, v.v. Thật khó để tưởng tượng rằng nền tảng HTML5 sẽ có thể cạnh tranh với một số tính năng chuyên biệt của Silverlight, chẳng hạn như các phần tử PivotViewer, kết hợp các tác vụ hoạt hình, lọc dữ liệu và chia tỷ lệ hình ảnh thành một gói dễ sử dụng.

    Silverlight dựa trên API cấp cao. Bạn có thể tạo ứng dụng mà không cần sử dụng các công cụ như liên kết dữ liệu, mẫu và kiểu, nhưng chúng cho phép bạn thực hiện điều đó một cách nhanh chóng và hiệu quả. Nhiều nhiệm vụ có thể hoàn thành trong HTML5 đòi hỏi rất nhiều kỷ luật và lập kế hoạch cẩn thận. Chúng có thể được giải quyết bằng JavaScript, nhưng cú pháp của nó không được gõ mạnh, khiến việc xây dựng các ứng dụng lớn bằng JavaScript gần như không thể. Ngoài ra, trong JavaScript, tất cả các quy trình hoạt ảnh phải được viết bằng tay và việc hỗ trợ đa luồng cực kỳ phức tạp, gây khó khăn cho việc thực hiện các tác vụ phức tạp trong nền.

    Silverlight được hỗ trợ bởi các công cụ phát triển cấp cao. Visual Studio giúp việc phát triển các ứng dụng Silverlight dễ dàng như các ứng dụng máy tính để bàn thông thường. Expression Blend giúp dễ dàng tạo các giao diện người dùng phức tạp với đồ họa và hoạt ảnh mạnh mẽ.

    Silverlight tích hợp dễ dàng với ASP.NET. Đặc biệt. Silverlight cho phép bạn gửi truy vấn tới cơ sở dữ liệu phụ trợ thông qua dịch vụ web. Vì điều này, nhiều chuyên gia tin rằng ngay cả sau khi HTML5 chiếm lĩnh Internet, Silverlight vẫn sẽ là công nghệ được lựa chọn cho các mạng công ty khép kín.

Tương lai của nền tảng Silverlight hiện vẫn chưa rõ ràng. Nó có thể vẫn là nền tảng được các nhà phát triển ứng dụng doanh nghiệp dựa trên .NET lựa chọn hoặc có thể dần dần phát triển thành một công cụ thích hợp để tạo các trò chơi máy tính và trình phát video mạnh mẽ. Một điều chắc chắn: Silverlight sẽ không bao giờ thay thế HTML làm ngôn ngữ chính để xây dựng các trang web nguồn mở truyền thống. Tuy nhiên, điều này chưa bao giờ được lên kế hoạch.

Silverlight và Metro/Windows 8

Khi Microsoft thông báo rằng Windows 8 sẽ dựa trên mô hình lập trình mới dành cho các ứng dụng khách mạnh mẽ (được gọi là Metro), việc phát triển nền tảng Silverlight đã bị đình trệ. Nhiều nhà phát triển đã đặt câu hỏi: liệu mô hình lập trình mới có trở thành sát thủ của Silverlight trong thời gian tới?

Câu trả lời cho câu hỏi này là “Không!” Công nghệ Metro được thiết kế để giúp dễ dàng tạo ra một loại ứng dụng hoàn toàn khác: nhẹ, nhạy cảm và sử dụng nhiều dữ liệu. Các ứng dụng này được thiết kế cho các thế hệ máy tính bảng Windows 8 trong tương lai. Công nghệ Metro (giống như người anh em họ gần gũi của nó là WPF) cạnh tranh với nền tảng iPad. Các ứng dụng Metro không thể chạy trên nền tảng không phải của Microsoft hoặc thực tế là trên bất kỳ phiên bản Windows nào ngoài Windows 8. Vì lý do này, công nghệ Metro không phải là đối thủ cạnh tranh hoặc không được các nhà phát triển Silverlight quan tâm.

Trong tương lai, vị trí của Silverlight có thể bị thu hẹp. Nó dường như bị kẹp giữa các ứng dụng HTML5 đa nền tảng đang dần chiếm được nhiều thị phần hơn và các ứng dụng Metro và iPad dành cho thiết bị di động. Tuy nhiên, Silverlight hiện đang chiếm giữ (và sẽ tiếp tục chiếm giữ trong thời gian dài) khoảng không gian rộng lớn giữa các công nghệ này.

Silverlight và WPF

Một trong những khía cạnh thú vị nhất của công nghệ Silverlight là nó mượn mô hình WPF mạnh mẽ từ .NET được sử dụng để tạo các giao diện máy khách phức tạp.

Công nghệ WPF được thiết kế để tạo các ứng dụng Windows phức tạp. WPF không chỉ đơn giản hóa quá trình phát triển bằng các công cụ cấp cao tiện lợi mà còn cung cấp hiệu suất nhanh hơn bằng cách hiển thị bất kỳ nội dung nào trực tiếp thông qua đường dẫn DirectX.

Rõ ràng, Silverlight không thể sao chép tất cả các tính năng trong WPF vì nhiều tính năng trong số đó phụ thuộc vào khả năng của hệ điều hành, bao gồm các trình điều khiển dành riêng cho Windows và các tính năng DirectX. Tuy nhiên, thay vì phát minh ra một bộ điều khiển và lớp hoàn toàn mới cho phía máy khách, các nhà phát triển Silverlight đã sử dụng một tập hợp con của mô hình WPF. Nếu bạn có kinh nghiệm với WPF, bạn sẽ ngạc nhiên khi thấy Silverlight giống với WPF như thế nào. Dưới đây là một số tính năng phổ biến:

    Để xác định giao diện người dùng Silverlight (tập hợp các phần tử lấp đầy vùng nội dung), bạn sử dụng đánh dấu XAML, giống như WPF. Silverlight thậm chí có thể hiển thị dữ liệu bằng cú pháp liên kết dữ liệu giống như WPF.

    Silverlight mượn nhiều điều khiển cơ bản và cơ chế tạo khuôn mẫu (để thay đổi hình thức của các điều khiển tiêu chuẩn) từ WPF.

    Silverlight sử dụng các hình dạng, đường dẫn, biến đổi và bút vẽ để vẽ hình ảnh 2D. Tất cả các tính năng này gần giống như trong WPF.

    Bàn làm việc Silverlight cung cấp mô hình hoạt hình khai báo dựa trên trình tự bảng phân cảnh và hoạt động theo cách tương tự như mô hình hoạt hình WPF.

    Lớp MediaElement được sử dụng để phát các tập tin âm thanh và video, giống như trong WPF.

Phát triển Silverlight

Silverlight 1 là một phiên bản rất khiêm tốn. Nó bao gồm hỗ trợ vẽ 2D và phát lại đa phương tiện. Nó thậm chí còn không có trình điều khiển thời gian chạy CLR hoặc trình biên dịch ngôn ngữ .NET, vì vậy các nhà phát triển buộc phải viết mã bằng JavaScript.

Silverlight 2 đã được thay đổi hoàn toàn. Nó đã thêm thời gian chạy ngôn ngữ chung, một tập hợp con của các lớp .NET Framework và mô hình giao diện người dùng dựa trên WPF. Kết quả là Silverlight 2 trở thành một trong những công nghệ được mong đợi nhất trong lịch sử của Microsoft.

Các phiên bản tiếp theo của Silverlight không có nhiều tham vọng như Silverlight 2. Silverlight 5 duy trì mô hình phát triển Silverlight 2 và bổ sung thêm một số tính năng mới được lựa chọn cẩn thận. Hãy liệt kê những ưu điểm của phiên bản mới nhất:

tăng năng suất

Các ứng dụng Silverlight 5 khởi chạy nhanh hơn, hỗ trợ trình duyệt 64 bit và cung cấp khả năng hiển thị rõ ràng hơn các phông chữ nhỏ khử răng cưa.

In véc tơ

Mô hình in được cải thiện bằng cách thêm Trình điều khiển PostScript. Kết quả là việc in nhanh hơn và cần ít bộ nhớ hơn.

Tăng tốc phần cứng đồ họa 3D

Silverlight cung cấp cho ứng dụng một phần của khung Microsoft XNA để tạo trò chơi XBox. Đã thêm giao diện cấp thấp mạnh mẽ để hiển thị cảnh 3D. Quan trọng nhất, tất cả các tính toán đều được thực hiện trong phần cứng, mang lại những cải tiến hiệu suất đáng kể. Bạn cũng có thể lưu ý việc giảm độ trễ âm thanh bằng cách hỗ trợ các công cụ Microsoft XNA khi phát tệp âm thanh. Điều này đặc biệt hữu ích trong các trò chơi điện tử có độ trễ không thể chấp nhận được.

Phát lại linh hoạt

Bây giờ bạn có thể phát video clip nhanh hơn hoặc chậm hơn mà không thay đổi âm thanh. Điều này cho phép bạn xem nội dung (chẳng hạn như video bài học) ở tốc độ đã chọn.

Xem PivotTable

Đã thêm một điều khiển cho phép bạn xem các bộ sưu tập dữ liệu khổng lồ. Một điều khiển kết hợp nhiều chức năng, chẳng hạn như chia tỷ lệ hình ảnh, lọc dữ liệu và hoạt ảnh chuyển tiếp. Điều tuyệt vời nhất là khi sử dụng điều khiển này, nhà phát triển hầu như không cần viết mã.

Gỡ lỗi XAML

Bây giờ bạn có thể khắc phục lỗi liên kết dữ liệu bằng cách đặt điểm ngắt trong biểu thức liên kết.

Cửa sổ con

Các ứng dụng Silverlight chạy bên ngoài trình duyệt giờ đây có thể hiển thị các cửa sổ bổ sung như ứng dụng Windows trên máy tính để bàn. Bạn thậm chí không cần quyền truy cập nâng cao để thực hiện việc này.

Hỗ trợ truy cập tập tin và cuộc gọi P/Invoke

Các ứng dụng chạy với quyền nâng cao có thể truy cập bất kỳ tệp nào trên ổ cứng mà người dùng có quyền truy cập (ngoại trừ những tệp yêu cầu đặc quyền của quản trị viên). Trên máy tính Windows, bạn có thể sử dụng lệnh gọi P/Invoke để truy cập các hàm C kế thừa từ thư viện Windows API.

Khả năng tương thích ngược của Silverlight 5

Ứng dụng Silverlight hiện có được phát triển ở phiên bản trước có thể chạy trên máy tính đã cài đặt phần bổ trợ Silverlight 5 không? Đây không phải là một câu hỏi đơn giản như thoạt nhìn vì Silverlight 5 giới thiệu một số thay đổi tinh tế và sửa một số lỗi có thể ảnh hưởng đến cách ứng dụng của bạn hoạt động và thậm chí thay đổi hành vi của nó.

Để ngăn những thay đổi ảnh hưởng đến các ứng dụng hiện có, Silverlight 5 sử dụng những điều kỳ quặc (không chuẩn). Khi phần bổ trợ Silverlight 5 tải một ứng dụng được biên dịch cho các phiên bản Silverlight trước đó, nó sẽ tự động kích hoạt chế độ tùy chỉnh mô phỏng chặt chẽ hành vi thời gian chạy của phiên bản Silverlight trước đó.

Để biết thêm thông tin về những khác biệt tinh tế giữa Silverlight 5 và Silverlight 4, hãy xem bài viết Đảm bảo rằng các ứng dụng Silverlight của bạn hoạt động với Silverlight 5 trên MSDN.

  • Dịch

Vì những lý do mà tôi chưa biết vào lúc này, có vẻ như nhiều nhà phát triển đã tham dự hội nghị PDC 2010 gần đây ( Hội nghị lớn nhất của Microsoft dành cho các nhà phát triển - Khoảng. người phiên dịch), rất ngạc nhiên khi Microsoft quyết định chuyển trọng tâm phát triển RIA từ Silverlight sang HTML5. Mặc dù sự ngạc nhiên này của các nhà phát triển cũng không kém phần ngạc nhiên - tại các hội nghị và thông báo gần đây ( ví dụ: các thông báo về sự phát triển của Internet Explorer 9 - Khoảng. người phiên dịch) Đại diện của Microsoft đã nói rõ, mặc dù không hoàn toàn rõ ràng, rằng các ưu tiên đang thay đổi sang giải pháp đa nền tảng hơn. Bí mật là gì?

Khi Microsoft phát hành phiên bản đầu tiên của Silverlight vào năm 2007, plug-in này được báo chí tiếp thị là tương tự như Adobe Flash ( mặc dù có một số giải pháp tương tự khác: Adobe AIR, JavaFX, Google Gears (quá trình phát triển đã bị đóng, một phần mã đã trở thành nền tảng cho HTML5), OpenLaszlo, v.v. - Khoảng. người phiên dịch). Mặc dù vẫn có những khác biệt nhất định. Silverlight nhắm đến các nhà phát triển phần mềm, trong khi Adobe Flash thiên về các nhà thiết kế web, mặc dù cả hai nền tảng đều bao phủ cùng một thị trường các ứng dụng tương tác phức tạp được phân phối qua trình duyệt web.
Các nhà phát triển ngây thơ đến nghe bài phát biểu trên MS Silverlight đều thất vọng. Bob Maglia ( Chủ tịch bộ phận máy chủ của Microsoft - Khoảng. người phiên dịch) cho biết chiến lược phát triển RIA của Microsoft đã chuyển sang HTML5.
Trong một tuyên bố trên ZDNet, Giám đốc điều hành Steve Ballmer và Bob Muglia đã thông báo rằng Silverlight sẽ tiếp tục phát triển, nhưng ngôn ngữ đánh dấu HTML5 sẽ được ưu tiên trên Web.
Thật dễ hiểu khi các nhà phát triển bị lôi kéo bởi những đảm bảo lặp đi lặp lại của Microsoft trong thời gian gần đây rằng Silverlight sẽ loại Flash ra khỏi bức tranh và trở thành một công cụ mạnh mẽ, đầy hứa hẹn để thực hiện dự án. Và bây giờ, các nhà phát triển đang có kế hoạch tạo dự án của họ dựa trên Silverlight đã nghe từ công ty rằng Silverlight được cho là tốt, nhưng chúng tôi sẽ quên nó đi vì HTML5 thông minh hơn và thú vị hơn. Đúng, có điều gì đó khiến bạn phải nghiến răng, nhưng bạn phải khách quan - Microsoft đã nói về điều này trước đây ( Trong quá trình phát triển trình duyệt Gazelle, hiện đã chuyển thành một dự án hoàn toàn khác) và các bản xem trước đầu tiên của IE9, một số nhà phát triển đã chỉ ra trong blog và các cuộc phỏng vấn của họ rằng HTML5 sẽ là nền tảng - Lưu ý. người phiên dịch).

Sự phát triển của IE 9 lẽ ra phải là hồi chuông cảnh tỉnh đầu tiên cho các lập trình viên đặt mục tiêu vào Silverlight. Microsoft luôn nhấn mạnh rằng trình duyệt này tuân thủ tất cả các tiêu chuẩn web, rằng IE hỗ trợ CSS3 và HTML5 tốt nhất ( Sau đó, đó là một lời nói dối thuần túy, điều mà nhiều tài nguyên Internet đã cáo buộc tập đoàn, mặc dù bây giờ nó đã trở thành sự thật. IE 9 PP6 xét về mặt trung bình thì không hề thua kém gì so với Chrome 9. Mình đã test Chrome 9 ở W3C nên đừng đá mạnh quá - Lưu ý. người phiên dịch). Giờ đây, Microsoft gần như đã tạo ra một trình duyệt tuân thủ các tiêu chuẩn web, hiệu suất cao, trình duyệt này không chỉ tạo tiếng vang cho các nhà phát triển Silverlight RIA mà còn rung chuông.
Đồng thời, sẽ thật tuyệt nếu nhóm phát triển trình duyệt nhấn mạnh vào điều này, nhưng cả các nhà phát triển Silverlight, trước hết, nhẹ nhàng gợi ý rằng Silverlight sẽ chỉ trở thành một tiện ích nhỏ cho HTML5, vì ngôn ngữ đánh dấu mới, chẳng hạn, không nhưng vẫn có thể truyền video phát trực tuyến được bảo vệ DRM. Nghĩa là, cuối cùng, Silverlight thậm chí không được định vị là đối thủ cạnh tranh với HTML5 mà vẫn là đối thủ cạnh tranh với Adobe Flash, vốn vẫn chiếm vị trí thống trị.
Thứ hai, các nhà phát triển Silverlight nói về việc sử dụng mô-đun độc lập. Tách biệt với trình duyệt, plugin có thể được sử dụng làm nền tảng cho các ứng dụng trên máy tính để bàn (Ví dụ Seesmic) hoặc quan trọng hơn là viết ứng dụng cho Windows Phone 7. Tất nhiên, trò chơi sẽ thuận tiện hơn khi viết bằng XNA, nhưng không phải trò chơi các ứng dụng dành cho hệ điều hành di động mới dễ viết hơn bằng Silverlight ( Điều này đã được thảo luận rất nhiều tại hội nghị Ngày hội Sinh viên tại Đại học Tổng hợp Moscow vào ngày 1 tháng 11 và sẽ được thảo luận vào ngày mai ở Kiev - Khoảng 12 giờ. người phiên dịch).
Trên thực tế, Bob Maglia không công bố các chiến lược mới mà chỉ đơn giản là trình bày mọi thứ. Silverlight đang chuyển sang Windows Phone và mọi thứ khác được chuyển sang HTML5. Lý do là gì? Đây là những gì:

vấn đề của táo
Bất chấp những nỗ lực hết mình của Microsoft để tạo ra Silverlight đa nền tảng, nhiệm vụ này đã thất bại. Windows được đón nhận, Mac OS X được hỗ trợ một nửa, Linux được trao vào tay Novell, hãng này bắt đầu viết một cái nạng dưới dạng Moonlight, chỉ “nhại lại” Silverlight đã đóng. Khó khăn bắt đầu từ thị trường di động, cụ thể là với iOS. Như bạn đã biết, Apple đã cấm thực thi các plugin trong môi trường Safari di động, điều này đã gây xôn xao người dùng ứng dụng trên Adobe Flash, mặc dù nó cũng ảnh hưởng đến Silverlight, nhưng do mức độ phổ biến của mô-đun này thấp nên điều này không gây được nhiều tiếng vang. . Hóa ra là Microsoft đang từ bỏ thị trường máy tính bảng Internet và iPhone cực kỳ phổ biến mà không cần phải đấu tranh. ( Microsoft đang cố gắng khuyến khích các nhà sản xuất sản xuất máy tính bảng cho Windows 7 nhưng so với Android, iOS, webOS, Jolicloud thì có vẻ nhạt nhòa - Lưu ý. người phiên dịch). Vì vậy, cách duy nhất để có được chỗ đứng ở đó là HTML5.
Một vấn đề tương tự xảy ra với Flash, nhưng Adobe đã đưa ra một số công cụ giải quyết ( cũng như một số phát triển của bên thứ ba bởi người hâm mộ và các nhà phát triển khác, chẳng hạn như trình duyệt SkyFire, giống như Opera Mini với tính năng nén lưu lượng truy cập, sẽ xử lý nội dung Flash trên máy chủ của nó - Lưu ý. người phiên dịch).
Tuy nhiên, vẫn chưa rõ trọng tâm chính của Servelat sẽ là gì: ứng dụng độc lập cho PC, ứng dụng cho Windows Phone 7 hay một “lotion” trên HTML5?
Hướng đi mới cho Silverlight
Nghịch lý thay, Silverlight vẫn không kém phần quan trọng so với trước đây, mặc dù không hề đi theo hướng như dự định ban đầu.
Tất cả những trò hề này trong quá khứ, nơi Silverlight được định vị là “kẻ giết người Flash”, trông không hề nghiêm túc chút nào. Adobe có khung mở miễn phí tiện lợi Adobe Flex, rất khó thay thế Visual Studio và Expression Blend, hơn nữa, chúng phải trả phí hoặc có một số hạn chế. Trong những tình huống như vậy, rất khó để thay thế Flash. Vì vậy, việc dành toàn bộ phân khúc web cho ngôn ngữ HTML5 là hoàn toàn chính đáng. Khách quan mà nói, Silverlight không có cơ hội lớn để thay thế Flash.
Silverlight có cơ hội lớn trở thành nền tảng phát triển ứng dụng cho Windows Phone 7. Và ở đây câu hỏi lớn được đặt ra: liệu Windows Phone 7 có thể cắn đứt miếng bánh mà Nokia, Google, Apple, Research in Motion và HP đang có hay không? chia sẻ quyết liệt với webOS của họ? Nếu không, tất cả số tiền đầu tư vào phát triển Silverlight sẽ bị lãng phí. Nhưng Microsoft có lý do để suy nghĩ tích cực - thị trường điện thoại thông minh là một thị trường đầy hứa hẹn ( trong năm qua, tỷ trọng thiết bị di động trong lưu lượng truy cập Internet đã tăng 2% - Lưu ý. người phiên dịch). Nếu, trong sự năng động của thị trường, Microsoft cố gắng cắn đứt một miếng bánh và giữ chặt nó, thì sẽ có cơ hội mở rộng sang thị phần của các đối thủ cạnh tranh. Với nền tảng phát triển ứng dụng mạnh mẽ như Silverlight, MS có tương lai ở phân khúc này ( Và đó là lý do tại sao tại tất cả các hội nghị và blog, đại diện của Microsoft đều hô vang khẩu hiệu “Hãy bắt đầu lập trình cho Windows Phone ngay bây giờ!” Nếu không có ứng dụng của bên thứ ba thì WP 7 sẽ chết trước khi nó thực sự ra đời - Lưu ý. người phiên dịch).
Silverlight trên máy tính để bàn
Silverlght không phải là framework tệ nhất để phát triển các ứng dụng độc lập cho máy tính cá nhân, coi Expression Blend và Visual Studio là những công cụ phát triển mạnh mẽ. Với chúng, bạn có thể tạo thiết kế và cơ sở mã cho các ứng dụng Silverlight tương tự một cách dễ dàng. Vấn đề lại khác - chính sách của Microsoft.
Tại PDC 2010 vừa qua, người ta nói rất ít về Silverlight nhưng lại không nói gì về các ứng dụng dành cho máy tính để bàn. Đúng, có những lý do giải thích cho điều này: chủ đề chính của năm nay Microsoft là Windows Phone 7 và Windows Azure, những thứ được ưu tiên, nhưng họ đã quên mất Windows 7. Rất có thể chúng ta sẽ nghe về sự phát triển của Windows 8 vào năm tới, nhưng đó không phải là sự thật. Từ đây, rõ ràng là Microsoft đã “bay” lên “đám mây”, gửi mọi thứ khác vào ổ ghi phía sau.
Desktop Silverlight là một con thú đặc biệt. Về cơ bản nó là một dẫn xuất của .NET Framework và Windows Present Foundation (WPF). Nó loại bỏ các tính năng không cần thiết bên ngoài ứng dụng web để đạt được hiệu suất thực thi nhanh hơn và hiệu quả hơn. Nghĩa là, nếu bạn có thể viết ứng dụng bằng C# hoặc WPF thì bạn có thể dễ dàng viết bằng Silverlight và ngược lại.
Tuy nhiên, mô-đun Silverlight ban đầu được dự định là một plugin trình duyệt. Có, các nhà phát triển có thể chọn giữa .NET/WPF và Silverlight (thậm chí nó còn có những lợi thế khi chạy trên Mac OS X), nhưng với .NET/WPF mạnh hơn thì có nhiều ứng dụng hơn để phát triển. Về chức năng, WPF và Silverlight trùng lặp ở một số khía cạnh.
Sự “kình địch” giữa hai sản phẩm này cho thấy một số thiếu sót trong chính sách của Microsoft đối với lĩnh vực ứng dụng máy tính để bàn. Chúng ta hãy quay ngược thời gian về thời điểm Windows Vista, khi đó được gọi là Longhorn, mới được phát triển. Hồi đó, mã .NET được coi là tương lai của việc phát triển ứng dụng Windows và mọi thứ đều rõ ràng: WPF là một nền tảng phát triển ứng dụng và Silverlight (khi đó là WPF/Everywhere) là phiên bản rút gọn dành cho các ứng dụng web đa nền tảng. Các bản dựng đầu tiên của Windows Vista thậm chí còn có khả năng viết các ứng dụng WPF có khả năng mở rộng, đây sẽ là một bước nhảy vọt mạnh mẽ hướng tới khái niệm hiện đại về "ba màn hình"
Tuy nhiên, như bạn đã biết, bản thân dự án Longhorn đã được khởi động lại, Windows Vista khét tiếng đã được phát hành và .NET chìm trong bóng tối sâu sắc. Có vẻ như Microsoft ngại sử dụng .NET, ít nhất là trên máy tính để bàn. Thay vì phát hành một hệ thống được xây dựng dựa trên WPF, WPF đã bị bỏ qua và chỉ khi ra mắt Visual Studio 2010, Microsoft mới bắt đầu tạo ra các ứng dụng được xây dựng trên công nghệ này. Đồng thời, trong Windows Vista, tính năng chia tỷ lệ thông minh tương tự đã bị xóa khi cài đặt gói dịch vụ đầu tiên. Vì lý do gì thì không rõ.
Nhìn vào tất cả những điều này, không hoàn toàn rõ ràng Microsoft sẽ làm gì (có vẻ như thậm chí họ còn không thực sự hiểu những gì cần phải làm). Các nguyên tắc cơ bản của WPF rất ấn tượng và việc phát triển các ứng dụng Windows trong WPF tốt hơn nhiều so với Win32, mặc dù vẫn còn nhiều nghi ngờ.
Với Windows 7, gã khổng lồ Redmond đã giới thiệu công nghệ Direct2D, công nghệ mà cả WPF và Silverlight đều không sử dụng, nhưng làm nền tảng cho việc hiển thị HTML5 hiệu suất cao trong Internet Explorer 9. Hóa ra WPF có thể chết, mặc dù nó có thể cùng tồn tại với Silverlight hoặc ngược lại, cả hai công nghệ đều có thể chìm vào quên lãng. Trước sự ra đời của Windows Phone 7, tôi đã nghĩ rằng điều sau sẽ xảy ra, nhưng bây giờ với hệ điều hành di động và Visual Studio Lightswitch, tôi hiểu rằng WPF sẽ chạy ở chế độ nền, nhường chỗ cho Silverlight.
Silverlight trên Web vẫn có ý nghĩa
Giờ đây, Silverlight đã không còn được ưa chuộng trong lĩnh vực phát triển ứng dụng web và có tương lai không chắc chắn trên các ứng dụng dành cho máy tính để bàn, bạn có thể thấy sự thất vọng của nhiều nhà phát triển khi nhận ra rằng ứng dụng của họ không còn thực sự cần thiết ở dạng như dự kiến. Điều kỳ lạ và khó hiểu nhất là chiến lược của Microsoft không hoàn toàn rõ ràng, vì họ chỉ nêu những cụm từ chung chung mà không tiết lộ cụ thể.
Tôi không còn nghi ngờ gì nữa rằng HTML5 sẽ thống trị thị trường ( Chính sách của Google, Apple và hành động của Adobe thực sự không cho phép chúng ta nghi ngờ điều này - Khoảng. người phiên dịch), nhưng không phải bây giờ. Trong khi Internet Explorer thống trị thị trường trình duyệt, hỗ trợ cho HTML5 dao động từ 0 (Internet Explorer 6) đến không đáng kể (Internet Explorer 8)
Có, Internet Explorer 9 thay đổi đáng kể và về mặt chất lượng sự hỗ trợ hiện có (hay nói đúng hơn là không hỗ trợ) các tiêu chuẩn web trong trình duyệt, nhưng hoàn toàn không biết khi nào nó sẽ được phát hành chính thức. Trong 18 tháng tồn tại, Internet Explorer 8 đã giành được khoảng 50% tổng thị phần, trong khi 50% còn lại được chia cho IE 6/7 lỗi thời về mặt đạo đức và kỹ thuật. Nghĩa là, ngay cả khi Microsoft phát hành “chín” ngay bây giờ, sẽ mất khoảng một năm cho đến khi nó chiếm được thị phần đáng kể. Trong khi đó Silverlight và Flash hiện có sẵn cho mọi phiên bản trình duyệt.
Ngay cả khi HTML5 hiện chiếm phần lớn thị trường công nghệ web thì việc phát triển cũng sẽ khó khăn. Nhiều thông số kỹ thuật tồn tại nhưng vẫn chưa đến giai đoạn phát triển cuối cùng; các trình duyệt trên các công cụ khác nhau nhận thức đánh dấu khác nhau, hiển thị các kết quả hoàn toàn khác nhau. Hóa ra các nhà phát triển có hai lựa chọn - làm việc với HTML5 và dành nhiều thời gian để thiết lập, cắt, kiểm tra đánh dấu trong mỗi trình duyệt hoặc sử dụng plugin Silverlight, plugin này trông giống nhau trong tất cả các trình duyệt và hệ thống được hỗ trợ. Và đừng quên rằng các công cụ thiết kế và phát triển hợp lý cho HTML5 vẫn chưa được phát minh. Đúng, Adobe đã giới thiệu một công cụ chuyển đổi Flash sang HTML5, nhưng đây là công cụ của tương lai, không phải của ngày hôm nay, trong khi cả Microsoft và Adobe đều có các công cụ phát triển và tiện ích bổ sung mạnh mẽ để làm việc với Silverlight và Flash, tương ứng. Vì vậy, bạn không nên quá nhiệt tình chôn vùi cả hai mô-đun.
Đừng quên rằng HTML5 không thể làm được gì nhiều. Ví dụ: video được bảo vệ DRM, được sử dụng trong dịch vụ Hulu. Rất khó tạo video trực tuyến bằng HTML5 và làm việc với webcam và micrô là điều không lý tưởng. Tóm lại, HTML5 không thể làm được nhiều thứ mà Flash và Silverlight có thể làm.
HTML5, hoặc thậm chí thứ gì đó có thể sớm xuất hiện dựa trên nó, sẽ không thể trở nên phổ biến ngay cả trong năm tới và có lẽ là năm sau. Vẫn còn nhiều lĩnh vực mà Flash và Silverlight được ưu tiên hơn nhiều so với HTML5 dưới dạng plugin và công cụ phát triển.
Trong bối cảnh đó, quyết định của Microsoft về việc bắt đầu cắt giảm trọng tâm web của Silverlight có vẻ kỳ lạ, ít nhất phải nói rằng. Đúng, trong một năm nữa thì điều đó sẽ cần thiết, nhưng bây giờ thì sao? World Wide Web Consortium (W3C) đang nỗ lực tạo ra một tiêu chuẩn, nhưng công việc vẫn chưa hoàn thành nên việc loại bỏ các công nghệ như Silverlight và Flash mà không có giải pháp thay thế phù hợp chỉ đơn giản là một điều điên rồ.
Nhưng đã đến lúc Microsoft phải đưa ra quyết định và ngừng lừa dối các nhà phát triển. Điều gì sẽ trở thành nền tảng để viết ứng dụng trên máy tính để bàn? Win32 (có hoặc không có Direct2D không quan trọng)? Ánh bạc? WPF? Hoặc một cái gì đó hoàn toàn khác? Ba phương pháp phát triển, xin lỗi, nhưng điều này thật khó khăn. Giải pháp thay thế là tốt, nhưng nếu hôm nay có ba phương pháp phát triển, và các nhà phát triển được chia đều và bắt đầu viết ứng dụng, còn ngày mai Microsoft chôn vùi hai phương pháp, thì sao, các nhà phát triển sẽ không ngồi yên? Nếu tương lai thuộc về Silverlight và WPF, thì hãy kết nối Direct2D với chúng để chúng hoạt động nhanh chóng và trông giống với các ứng dụng khác, nhưng nếu chúng không phải là tương lai trên máy tính để bàn, thì hãy để họ nói với các nhà phát triển về điều này để họ sẵn sàng để thay đổi chứ không dẫn dắt họ.
Mặc dù bạn có thể đoán về kế hoạch của Microsoft. Direct2D hiện là cách tốt nhất để các nhà phát triển viết giao diện người dùng hiệu suất cao và cũng là cách tốt nhất để làm việc với HTML5 trong IE9. Liệu Redmond có thể nắm bắt được tất cả HTML5 bằng tầm nhìn và khả năng của nó, cùng với W3C, những lỗ hổng không cho phép HTML5 “vượt qua” Flash và Silverlight, rồi sử dụng tất cả những thứ này trên Windows? Apple đang bắt đầu làm điều gì đó tương tự trong iOS.
Những điều kỳ lạ xảy ra, những điều kỳ lạ.