28/4/09

Thắc mắc về SilverLight

1: Silverlight là gì?

A: Silverlight là một công nghệ của hãng Microsoft cho phép xây dựng các ứng dụng chạy trên trình duyệt, về ý nghĩa, nó cũng tương tự như Flash của hãng Adobe.

image_2

2: Học Silverlight để làm gì?

A: Bạn có thể tạo được các ứng dụng chạy trên nền trình duyệt với giao diện xuất sắc, khả năng hỗ trợ video chất lượng cao, bạn sẽ dùng một công nghệ mà Microsoft - hãng phần mềm số một thế giới đang xây dựng, và sẽ sử dụng nó trên các website của mình.

3: Silverlight có khó học hay không?

A: Học Silverlight không khó hơn học Java, C#, VB, cũng không khó hơn học PHP, JavaScript, vậy nên nếu bạn đã có một số kiến thức cơ bản về lập trình, bạn hoàn toàn có thể nắm bắt Silverlight một cách dễ dàng.

4: Tôi có thể chạy các ứng dụng Silverlight trên những trình duyệt và hệ điều hành nào?

A: Hiện tại, bạn có thể chạy các ứng dụng Silverlight trên các trình duyệt IE, FireFox và Safari. Các trình duyệt được hỗ trợ là Windows và MacOS, phiên bản cho Linux đang được Microsoft và Novell hợp tác phát triển.

5: Tôi phải dùng máy chủ web nào để chứa các ứng dụng Silverlight?

A: Các ứng dụng Silverlight chỉ được tải về như những file bình thường để chạy bởi trình duyệt, do vậy không có yêu cầu bắt buộc nào về máy chủ, bạn hoàn toàn có thể đặt một ứng dụng Silverlight trên một máy chủ web Apache chạy trên nền Linux.

6: Hiện có những phiên bản nào của Silverlight?

A: Có 2 phiên bản chính: phiên bản 1.0 đã ra đời từ năm 2007, và phiên bản Silverlight 2 beta 1. Phiên bản 1.0 mạnh về các tính năng multimedia, phiên bản 2 thêm vào khá nhiều tính năng: hỗ trợ lập trình bằng các ngôn ngữ trên .NET như C# và VB, các công nghệ như LINQ, lập trình socket và các giao thức kết nối mạng dựa trên HTTP…

7: XAML là gì?

A: XAML là một ngôn ngữ dựa trên XML, ngôn ngữ này cho phép bạn có thể xây dựng giao diện của các ứng dụng rất dễ dàng và nhanh chóng, bạn chỉ cần khai báo các thành phần có trên giao diện của ứng dụng cùng với các thuộc tính của nó, khi chạy chương trình sẽ hiển thị giống như bạn đã khai báo. Điều này cho phép tách bạch được giữa việc thiết kế giao diện và việc hiện thực hóa các tính năng.
XAML có trong Silverlight là một tập con của XAML trên .NET 3.0, trong đó đã bị hạn chế một số tính năng như đồ họa 3D nhằm giữ tính tương thích trên nhiều nền tảng và trình duyệt khác nhau.

8: Tôi nên học Silverlight 1.0 hay 2.0?

A: Nếu đang định xây dựng ứng dụng trên Silverlight, lời khuyên là nên dùng Silverlight 2.0, tuy nhiên, nếu bạn chưa từng làm việc với Silverlight, bạn hãy bắt đầu với bản 1.0.(bài học).

9: Silverlight có cho phép truy cập server theo kiểu cross-domain không?

A: Có, mặc nhiên các ứng dụng Silverlight có thể truy cập ngược lại vào máy chủ mà nó được tải xuống, nếu muốn truy cập vào các máy chủ khác, trên máy chủ đó phải có file crossdomain.xml được cấu hình phù hợp.

10: Tôi chưa từng biết về lập trình, liệu tôi có thể học Silverlight hay không?

A: Tùy thuộc bạn học để làm gì, nếu bạn là một người thiết kế giao diện thì bạn có thể bắt đầu học Silverlight, nếu bạn muốn học lập trình với Silverlight, lời khuyên là bạn nên bắt đầu với một ngôn ngữ nào khác như Java, C# hay VB.

11: Tôi có thể tải về bộ cài đặt Silverlight ở đâu?

A: Nếu bạn chỉ muốn dùng Silverlight để xem những ứng dụng do người khác làm:
- Silverlight 1.0
- Silverlight 2 Beta 1
Ngoài ra, nếu muốn tạo ra các ứng dụng Silverlight, bạn cần có thêm:
- Microsoft® Silverlight™ 2 Software Development Kit Beta 1
- Microsoft® Silverlight™ 1.0 Software Development Kit
Các công cụ sau sẽ hỗ trợ bạn trong việc tạo ứng dụng:
- Microsoft Silverlight Tools Beta 1 for Visual Studio 2008
- Microsoft Expression Studio 2 Beta
- Visual Studio 2008

12: Tôi có nghe về WPF/E nhưng không biết nó là gì?

A: Đó là tên ban đầu của Silverlight, nó có nghĩa là: Windows Presentation Foundation/Everywhere.

13: Tôi cũng đã đọc thấy nói về Silverlight 1.1 nhưng không thấy nhắc đến?

A: Silverlight 1.1 là mã phiên bản cũ của Silverlight 2.0.

14: Tôi phải dùng máy chủ web nào để có thể chạy các ứng dụng Silverlight?

A: Vì Silverlight là công nghệ chạy trên trình duyệt, do vậy bạn có thể dùng bất kỳ máy chủ nào, chạy trên bất kỳ hệ điều hành nào để chứa các ứng dụng Silverlight.

15: Làm sao để chạy chương trình Silverlight nhưng không cho chúng truy cập ngược lại trang HTML và gọi các hàm JavaScript trên đó?

A: Bạn hãy thêm một thuộc tính có tên enableHTMLAccess vào nơi khai báo đối tượng Silverlight plug-in và đặt giá trị cho nó là false. Hãy xem ví dụ sau:


type="application/x-silverlight-2-b1" width="100%" height="100%">
style="text-decoration: none;">

alt="Get Microsoft Silverlight" style="border-style: none"/>

Nếu dùng đối tượng Silverlight trong ASP.NET, bạn có thể viết:


Source="/ClientBin/SilverlightApplication1.xap" Version="2.0"
Width="100%" Height="100%" EnableHtmlAccess="true" />

Thuộc tính này chỉ tồn tại trong Silverlight 2 plug-in, plug-in 1.0 luôn cho phép đối tượng Silverlight truy cập lại trang HTML. Tuy nhiên các Silverlight 2 plug-in vẫn chạy được các chương trình Silverlight 1.0.

16: Có cần phải cài .NET Framework để chạy các ứng dụng Silverlight không?

A: Không, thứ duy nhất bạn cần là Silverlight plug-in, bạn chỉ cần cài .NET Framework nếu muốn dùng các công cụ phát triển (các công cụ này được phát triển trên .NET) như Visual Studio.

17: Tôi muốn truy cập vào đối tượng window hoặc document như trong javascript có được không?

A: Được, bạn hãy dùng lớp System.Windows.Browser.HtmlPage, trong đó có 2 thuộc tính là Document và Window, ví dụ như bạn muốn trình duyệt chuyển sang một trang mới:

System.Windows.Browser.HtmlPage.Window.Navigate(new Uri(”http://www.SilverLight.net”))

hoặc

System.Windows.Browser.HtmlPage.Window.Navigate(new Uri(”http://www.SilverLight.net
“), “_blank”)

18: Lập trình với Silverlight 2.0 có thể đọc được file nhị phân không?

Bạn không thể truy cập vào hệ thống file trên máy tính của người dùng,
do vậy bạn không thể đọc được file. Tuy nhiên có thể yêu cầu của bạn là
đọc các file trên server, trong trường hợp này bạn có thể viết một dịch
vụ (một web service chẳng hạn) và cho phép ứng dụng Silverlight truy
cập thông qua dịch vụ này.
Trong Silverlight vẫn có hỗ trợ namespace
System.IO, và bạn vẫn thấy các lớp cho phép truy cập file trong đó, tuy
vậy các lớp này chỉ được dùng để truy cập vào một hệ thống file ảo được
gọi là IsolatedStorage.
Nếu vẫn cố truy cập vào một file trên máy người dùng, bạn sẽ nhận được
thông báo lỗi sau: Attempt to access the method failed:
System.IO.StreamReader..ctor(System.String)

19: Cho em hỏi trong VS2008, khi chưa cài SL Tools Beta 1 For VS2008, em
thấy có thể tạo được WPF Application. Vậy cái này có phải là SL không
(vì em đọc phía trên thấy WPF/E là tên cũ của SL)? Nếu phải thì giống
và khác gì so với tạo SL Application (sau khi đã cài tools)?

Tuy Silverlight có tên cũ là WPF/E nhưng nó chỉ giống, chứ không phải là WPF.

thể coi API và XAML trong SL là tập con trong WPF, nhưng nền tảng thực
thi lại hoàn toàn khác nhau, một bên chạy trên plug-in gắn vào trình
duyệt, một bên chạy trên nền .NET Framework 3.0.

20: khi chạy project trong expression thì nó lại báo lỗi: The name “Canvas” does not exist in the namespace “http://schemas.microsoft.com/winfx/2006/xam/presentation.The name “Image” does not exist in the namespace “http://schemas.microsoft.com/winfx/2006/xam/presentation “)

Trường hợp của bạn mình cũng chưa gặp nhưng có thể là do khai báo namespace không phù hợp. Bạn thử thêm một chữ l (xam –> xaml) như sau xem:
http://schemas.microsoft.com/winfx/2006/xaml/presentation
Nếu vẫn chưa được, bạn hãy thay dòng schema trên bằng http://schemas.microsoft.com/client/2007

21: tai sao khi tao project silverlight moi lại bị báo loi reference
agclr
system.silverlight
system.xml.core

Có lẽ chưa cài/hoặc quá trình cài Silverlight 2 SDK không thành công, em kiểm tra lại xem.
Vào trong phần Control Panel -> Add/Remove Programs xem có Microsoft Silverlight Tools Beta for Visual Studio 2008 trong đó chưa, và có thể kiểm tra xem trong thư mục C:\Program Files\Silverlight\2.0.30226.2 có các file mà máy báo thiếu hay không

Simon Lieu

Vài link demo silverlight của 24hit.net:
carousel
3DSlider
Slide Image

SilverLight

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

Đăng nhận xét