Silverlight hoạt động như thế nào

Việc lướt web ngày nay đã thay đổi rất nhiều so với hồi đầu thập niên 90. Khi đó hầu hết các trang web chỉ chứa text tĩnh, thêm vài tấm ảnh và thỉnh thoảng có thêm file âm thanh MIDI thô sơ.

Nhưng qua nhiều năm, thế giới web đã trở nên ngày càng phức tạp. Ngày nay bạn có thể bắt gặp nhiều trang web có chứa video, ảnh động, âm thanh và các tính năng tương tác. Với hầu hết các website hiện đại, việc này cũng gần giống như tham gia vào một bộ phim. Nhưng để có thể xây dựng, thưởng thức và tương tác với những tính năng mới này, các lập trình viên đã phải tạo ra những ứng dụng mới. Một trong số các ứng dụng đó là Silverlight của Microsoft.

Định nghĩa về Silverlightrất đơn giản. Xét từ nhiều góc độ thì nó cũng tương tự như Adobe Flash.Silverlight đòi hỏi các nhà phát triển và người dùng download một ứng dụng Client – trình duyệt web không thể xử lý nội dung Silverlight mà không có bản download này. Nó cho phép các nhà phát triển web đưa video, audio và ảnh động và trang web. Các lập trình viên có thể tạo ra những ứng dụng web phức tạp, tương tác với người dùng bằng cách sử dụng công nghệ Silverlight. Trong thế giới World Wide Web, những ứng dụng này có một cái tên đặc biệt: RIA ( Rich Internet Applications ).

­Khi RIA ngày càng trở nên phức tạp, sự khác biệt giữa ứng dụng để bàn – những chương trình nằm trên ổ cứng – và ứng dụng web bắt đầu bị xóa nhòa. Trình duyệt web có thể biến thành một hệ điều hành web đầy đủ chức năng khi chúng ta sử dụng mạng Internet để phục vụ nhu cầu lưu trữ và xử lý dữ liệu. Công nghệ này mang tên điện toán đám mây ( Cloud ) – tức những chương trình và dữ liệu nằm trong các “đám mây”’ trên mạng thay vì nằm trên chiếc máy tính nhà bạn. 

Silverlightchỉ là một trong hàng chục công cụ được thiết kế để giúp các lập trình viên tạo nên những RIA tốt hơn. Các kỹ sư ở Microsoft đã thiết kế Silverlight như một phần mở rộng của các dự án khác của Microsoft, nhưng sau đó ứng dụng này lại tự mình phát triển. Theo Microsoft thì Silverlight là một công nghệ xuyên nền tảng, xuyên trình duyệt, tức là ứng dụng Silverlight có thể hoạt động trên cả PC và Mac, trên cả Internet Explorer, Firefox hay Safari. Trong tương lai Silverlight sẽ sớm chạy được trên cả máy tính Linux – một dự án nguồn mở mang tên Mono đang được tiến hành nhằm cố gắng tạo ra phiên bản Silverlight cho Linux. 

Tuy Silverlight vẫn còn là một công nghệ non trẻ nhưng nó cũng gây ra không ít tranh cãi và rắc rối. Một số nhà phát triển và người dùng không quan tâm đến một công nghệ Web mới buộc bạn phải download thì mới sử dụng được. Và việc hợp tác vớ NBC trong Olympic Bắc Kinh 2008 cũng không gây được sự chú ý như Microsoft mong đợi. 

Nhưng trước khi bàn đến điều này, hãy nghiên cứu Silverlight một chút. 

Silverlight Beta

Một trong số những điều rất dễ gây hiểu lầm đó là:; có tới hai phiên bản là Silverlight 1 và Silverlight 2 Beta. Silverlight 1 hỗ trợ các ứng dụng viết bằng ngôn ngữ lập trình JavaScript. Còn bản beta củaSilverlight 2 lại hỗ trợ những ngôn ngữ lập trình khác như C#Visual Basic. Cả hai phiên bản Silverlight này đều hoạt động trong .NET Framework .

Vậy .NET là cái gì? Đây thực ra là một sản phẩm khác của Microsoft. .NET Framework là kiểu lập trình. Lập trình viên có thể xây dựng ứng dụng trong kiểu này – đặc biệt là những ứng dụng web dựa vào XML ( eXtensible Markup Language ) .

Hai thành phần chính của .NET Framework là một runtime ngôn ngữ chung và một thư viện nhóm (class library). Runtime ngôn ngữ chung có tác dụng như một admin – nó quản lý các ứng dụng và phân phối tài nguyên mà các ứng dụng này cần (như bộ nhớ hoặc khả năng xử lý) để hoạt động hiệu quả. Còn thư viện nhóm thì chứa một số đối tượng ( object ) phần mềm có thể tái sử dụng mà các lập trình viên cần đến trong quá trình tạo ứng dụng.

Một đối tượng phần mềm có hai đặc tính : trạng tháihành động. Trạng thái của đối tượng tức là những điều kiện khác nhau mà đối tượng này có. Ví dụ như, một chương trình có thể có những trạng thái « chạy, » « nghỉ » và « dừng » (tất nhiên không phải tất cả cùng một lúc). Còn hành động đối tượng là những gì mà đối tượng làm.

\"\"

Những công ty như Thomas Wilmes đang sử dụng Silverlight để xây dựng toàn bộ Web site..

Và đó mới chỉ là bộ khung của Silverlight! Bên trong chương trình này Microsoft còn sử dụng cả công nghệ WPF ( Windows Presentation Foundation ) và hỗ trợ XAML ( eXtensible Application Markup Language ). Những nhà phát triển ứng dụng có thể sử dụng cả WPFXAML để tạo ứng dụng web. Cả hai đều hoạt động tốt trong .NET Framework . Sở dĩ Microsoft phát triển WPF là bởi HTML ( Hypertext Markup Language ) còn một số hạn chế -- WPF giúp trình duyệt web thực thi các chức năng quá phức tạp đến nỗi HTML không thể hỗ trợ. 

WPFsử dụng công cụ tái tạo dựa trên vector để tạo ra đồ họa cho ứng dụng. Nó có thể hỗ trợ đồ họa 2D và 3D cũng như giúp các nhà phát triển tạo ra sức mạnh trong ứng dụng của mình bằng cách làm việc trong .NET.

Còn mục đích chính của XAML là giúp các nhà phát triển có một công cụ để thay đổi diện mạo cho các ứng dụng của họ. Khi kết hợp lại, WPF và XAML tạo ra diện mạo và hành vi của một ứng dụng Silverlight.

Trong khi WPF và XAML quyết định diện mạo và hành vi của ứng dụng thì các lập trình viên cũng sử dụng những ngôn ngữ khác để tự lập ứng dụng cho mình. Và trong khi Silverlight 1 chỉ hỗ trợ JavaScript thì bản beta của Silverlight 2 lại hỗ trợ một số ngôn ngữ động khác. Các lập trình viên sẽ xây dựng ứng dụng của mình bằng cách sử dụng ngôn ngữ này trong khi đang làm việc trong .NET Framework và sử dụng WPF và XAML để tích hợp ứng dụng vào web. Tất cả cá ứng dụng Silverlight đều chạy bên trong trình duyệt web .

Hãy thử nhìn vào cấu túc của nền tảng Silverlight để xem cách các thành phần này phối hợp với nhau và đem đến cho lập trình viên một nền tảng họ cần để xây dựng RIA. 

Quá trình phát triển Silverlight 

Cũng như các phần mềm khác, nền tảng Silverlight có một cách sắp xếp tính năng đặc trưng gọi là cấu trúc. Cấu trúc của một chương trình có thể cho bạn biết rất nhiều điều về cách hoạt động của chương trình đó. Nó giúp phân các nhiệm vụ theo một cách rất logic và cho biết cách những thành phần khác nhau trong chương trình phối hợp với nhau để tạo ra một dịch vụ tổng thể. Mục tiêu của Microsoft với Silverlight là tạo ra một nền tảng mạnh mẽ nhưng đơn giản dành cho thế hệ ứng dụng web tiếp theo.  

\"\"

Microsoft điều hành một forum đặc biệt nơi các nhà phát triển Silverlight có thể đặt câu hỏi cũng như trao đổi mẹo lập trình.

Microsoft chia cấu trúc nền tảng của Silverlight làm hai thành phần chính với một chương trình cài đặt phụ trợ và một công cụ cập nhật. Hai thành phần này bao gồm một khung trình bày lõi ( Core Presentation Framework ) và .NET Framework cho Silverlight. Hãy nghiên cứu từng thứ một. 

Khung trình bày lõi gồm những thành phần sau:

  • Công cụ tái tạo giao diện người dùng (UI), tạo ra toàn bộ đồ họa, hình động và text bên trong ứng dụng. 
  • Một giao diện đầu vào chuyên xử lý dữ liệu do người dùng đưa vào từ các thiết bị như bàn phím, chuột và Tablet số. 
  • Một công cụ media hỗ trợ một số định dạng file audio và video.
  • Một bộ phận quản lý bản quyền số, cho phép các nhà phát triển nắm quyền quản lý media trong ứng dụng của mình. 
  • Hỗ trộ quản lý , điều khiển ứng dụng tùy biến 
  • Hỗ trợ layout UI động – cho phép các nhà phát triển thay đổi diện mạo của UI ứng dụng trong thời gian thực.   
  • Hỗ trợ nối kết dữ liệu—nối các thành phần UI với đối tượng dữ liệu bên trong ứng dụng 
  • Trình phân tích cú pháp cho XAML

Còn .NET Framework thì có các tính năng sau:

  • Hỗ trợ tính năng LINQ ( Language-Integrated Query ) -- LINQ cho phép nhà phát triển đưa dữ liệu vào từ nhiều nguồn khác nhau .   
  • Thưviện nhóm nền tảng ( Base Class Library ) hỗ trợ các tính năng lập trình cơ bản như mã hóa…
  • Một bộ tính năng mang tên WCF ( Nền tảng kết nối Windows ) được thiết kế để giúp ứng dụng truy cập dữ liệu và dịch vụ từ xa dễ dàng hơn
  • Nền tảng trình bày Windows WPF ( Windows Presentation Foundation )   
  • Runtime ngôn ngữ động (DLR), thành phần hỗ trợ các ứng dụng viết trên nhiều ngôn ngữ lập trình 
  • Runtime ngôn ngữ chung (CLR), thành phần xử lý việc quản lý bộ nhớ và các tính năng quan trọng khác 

Nhân trình bày và .NET Framework sẽ tương tác với nhau qua XAML. Bằng cách này, XAML đóng vai trò như một chiếc cầu nối giữa hai bộ phận của ứng dụng. Còn hai bộ phận cài đặt và cập nhật thì khá dễ hiểu. Chúng có nhiệm vụ biến việc cài đặt ứng dụng lần đầu trở nên dễ dàng hết mức có thể. Ngoài ra nó còn cung cấp khung cập nhật ứng dụng tự động. 

Bên cạnh đó, Silverlight cũng có một số tính năng khác giúp các nhà phát triển viết RIA. Nhiều tính năng trong số này tập trung vào việc bảo vệ dữ liệu và quản lý ứng dụng, trong đó có những tính năng như quản lý file, lưu trữ riêng và thư viện XML… 

Tiếp theo hãy cùng tìm hiểu các kiểu ứng dụng mà các nhà phát triển Silverlight có thể xây dựng. 

Những ứng dụng Silverlight 

Danh sách những ứng dụng từ Silverlight gần như là vô tận. Các công cụ của chương trình này cho phép các nhà phát triển tạo ra rất nhiều ứng dụng web, từ các công cụ rất thực tế cho tới những trò game đầy thử thách. Tuy vẫn còn là một nền tảng lập trình khá non trẻ nhưng Silverlight đã tạo ra được hàng chục ứng dụng được sử dụng rộng rãi trên web.   

\"\"
Ứng dụng Echo myPlace sử dụng Silverlight để gắn tin tức với các địa danh tương ứng trên bản đồ địa lý. 

Chẳng có gì ngạc nhiên khi các nhà phát triển sử dụng Silverlight để tạo ra trình media cho trang web. Các chương trình này cũng tương tự như trình media Flash – loại ứng dụng được sử dụng trong những website như YouTube. Chúng có khả năng truyền nhạc và video từ Internet về trình duyệt người dùng. Ngoài ra Silverlight còn cho phép các nhà phát triển tạo ra những trình Game Video theo chủ đề, tức là chỉ cung cấp một loại nội dung nhất định. Ví dụ như ứng dụng Futbol Mexicano Silverlight chuyên chơi video bóng đá Mexico chẳng hạn. Tất nhiên giới hạn của Silverlight không dừng lại ở việc Game Video.   

Ứng dụng Silverlight có thể rất đơn giản, ví dụ như những thanh Hero. Những thanh hero (Hero Bar) là những banner trên web chuyên đăng quảng cáo và liên kết tới những nội dung sâu hơn trên website. Các nhà phát triển có thể dùng Silverlight để tạo một thanh hero nhằm lấy thông tin và đường liên kết từ RSS Feed. Mỗi khi webmaster đưa thêm nội dung mới vào trang web, thanh hero cũng tự cập nhật. 

Ngoài ra lập trình viên còn có thể dùng Silverlight để tương tác với các website khác. Twitterlight là một ứng dụng nằm trong dịch vụ vi blog (microblog) mang tên Twitter. Với Twitterlight, người dùng có thể truy cập tới những Feed Twitter cá nhân của mình và đưa tin nhắn mới. 

\"\"
Buzzoggi sử dụng Silverlight để thu thập từ khóa về những chủ đề nóng từ các tin qua RSS feed và hiển thị chúng trong một đám mây.  

Hay phần mềm năng suất TeamLive trực tuyến còn cho phép người dùng Silverlight cùng làm việc với nhau trong một dự án. TeamLive giúp họ chụp ảnh màn hình các ứng dụng hoặc website và chia sẻ những tấm ảnh này với những người dùng khác. Điều này giúp cho việc cộng tác giữa các thành viên nhóm từ các địa điểm khác nhau trở nên dễ dàng hơn. Cả nhóm có thể cùng làm việc trong thời gian thực để khắc phục vấn đề hoặc sắp xếp các bản thiết kế .

Còn game trên Silverlight thì có rất nhiều loại, từ những game đơn giản cho tới những game phiêu lưu phức tạp. Ví dụ như các game dạng arcard như Zero Gravity – một game phiêu lưu trong vũ trụ. Cũng như Flash, Silverlight đem đến cho các nhà phát triển nguồn lực cần thiết để đem đến trải nghiệm game đích thực qua trình duyệt web.   

Những ứng dụng trên chỉ là phần nổi của tảng băng trôi. Khi mạng Internet ngày càng trở nên phức tạp và người dùng được tiếp cận với nhiều băng thông hơn, họ sẽ đòi hỏi nhiều hơn từ trải nghiệm web. Và khi càng nhiều người sử dụng Internet để đọc tin, giải trí và sử dụng các ứng dụng năng suất thì các nhà phát triển càng phải sử dụng những công cụ như Silverlight để đáp ứng nhu cầu người dùng. 

Hiện Silverlight đã đạt được thành công khá lớn thông qua việc hợp tác chiến lược với nhiều phương tiện media truyền thống. Chúng ta sẽ tìm hiểu điều này kỹ hơn trong phần tiếp theo. 

Video Silverlight 

Bill Gates là người phát biểu chính tại Hội chợ Điện tử Gia dụng năm 2008 (CES). Bài phát biểu này cũng là bài phát biểu cuối cùng của ông trên cương vị chủ tịch Microsoft. Buổi tối hôm đó, Gates đã hé lộ rất nhiều dự án, dịch vụ cũng như sản phẩm mới của Microsoft. Trong số đó có việc hợp tác với NBC để phát sóng Olympics Bắc Kinh 2008 tại Mỹ.

\"\"
NBC dùng Silverlight để phát sóng các sự kiện tại Olympic qua web tới những đối tượng người dùng nhất định tại Mỹ.  

Trước đó NBC đã mua bản quyền truyền hình để phát sóng Olympics tại Mỹ. Ngoài việc phát sóng theo kiểu truyền thống trên TV, NBC còn cùng Microsoft cung cấp thông tin về Olympics qua website của họ. Nhưng để xem được các video này, người dùng sẽ phải download và cài đặt Silverlight về máy. Một số nhà báo IT đã đặt dấu hỏi về quyết định này – tuy Silverlight là một nền tảng khá mạnh, nhưng Adobe Flash mới là chương trình phổ biến hơn trên thị trường. Hầu hết các PC ngày nay đều có Flash và có khá ít người đã download Silverlight. Với một số nhà báo, có vẻ NBC đã thực hiện một thử nghiệm đầy rủi ro. 

Nhưng việc hợp tác này có thành công không? Điều này còn tùy thuộc vào việc ai là người trả lời câu hỏi. Theo một bài báo trên tờ The New York Times thì trang web về Olympics cua NBC đã phục vụ trên 72 triệu lượt video cho người dùng trong suốt thời gian diễn ra Olympics [nguồn: Stelter]. Nhưng những blog như TechCrunch lại khẳng định rằng những website khác cũng đưa tin về Olympics – những trang không hề có video – lại được nhiều người xem hơn cả trang của NBC [nguồn: Schonfeld]. Một số blog cũng đồn rằng các hãng quảng cáo không hề hài lòng với chất lượng video trên NBC. 

Phải chăng tuần trăng mật đã chấm dứt?

NBC sẽ không sử dụng Silverlight để cung cấp video cho chương trình Bóng đá tối thứ bảy trên web nữa – thay vào đó họ sẽ dùng Adobe Flash. Nhưng đừng nghĩ rằng đó là do NBC nghỉ chơi Microsoft --  trong trường hợp, Liên đoàn Bóng đá quốc gia ở Mỹ mới là người quyết định chuyển sang Flash [nguồn: Learmonth].

 

Lẽ ra NBC đã thu hút được nhiều người xem hơn nếu như công ty này chọn Adobe Flash làm nền tảng phát video cho mình. Hay có thể nhiều người sẽ theo dõi Olympics qua web hơn nếu NBC không giới hạn danh sách các sự kiện được phát sóng qua mạng. Nhưng ngay cả nếu ai đó gọi đây là một thử nghiệm đáng thất vọng thì Microsoft cũng biết rằng hàng triệu người đã download Silverlight. Và theo định nghĩa của Microsoft thì đây là một thành công. 

Ngoài NBC, Microsoft cũng hợp tác với một số tên tuổi lớn khác tại Mỹ. Cuối năm 2007, Liên đoàn bóng chày Mỹ đã chuyển sang dùng Silverlight để cung cấp video. Còn CBS thì chọn Silverlight khi công ty này tạo ra một nền tảng web tương tác dành cho nội dung do người dùng cung cấp. Và Hiệp hội bóng rổ quốc gia Mỹ cũng chọn Silverlight làm trình media trực tuyến.

Liệu Silverlight có trở thành tiêu chuẩn web vĩ đại tiếp theo được không? Vẫn còn quá sớm để trả lời. Có thể bạn cho rằng nó mạnh hơn Adobe Flash, nhưng lại một lần nữa Flash đã thâm nhập vào thị trường sớm hơn và có được lượng người dùng đông hơn. Tựu chung lại, cho dù công nghệ nào lên ngôi thì nó cũng phải cung cấp cho người dùng cái mà họ muốn, đó là một trải nghiệm web đích thực.

 

\"\"