2008-12-15 47 views
5

Nói tóm lại, như chúng ta đều biết,Suy nghĩ về việc sử dụng Silverlight trong ứng dụng dành cho máy tính để bàn?

a) Silverlight dự kiến ​​sẽ được tổ chức bởi một trình duyệt, và chạy trong một vùng cô lập do đó sẽ không có bất kỳ vấn đề an ninh

  1. Silverlight don không có quyền truy cập trực tiếp vào hệ thống tệp, ngoại trừ khu vực lưu trữ bị cô lập
  2. Không có cách nào để mở hộp thoại chung các hộp như Lưu tệp trong Silverlight (Mặc dù hộp Opendialog được hỗ trợ).

b) Silverlight không thể truy cập tài nguyên địa phương như một máy in

cách để vượt qua sandbox là gì, vì vậy mà tôi có thể lưu trữ một ứng dụng Silverlight tại địa phương, để đọc các tập tin và lưu chúng lại nếu yêu cầu, chuyển giao dữ liệu đến một máy in, và vân vân ..

cập nhật:

là đầy đủ WPF không phải là một lựa chọn cho tôi? Không. Tôi cũng quan tâm đến một giải pháp nền tảng chéo - ví dụ, bạn có thể lưu trữ Silverlight trong điều khiển trình duyệt Mono Web, để bạn có thể chạy nó hầu như ở bất cứ đâu.

Ý tưởng là để tái sử dụng cùng một ứng dụng mà tôi đang xây dựng cho web trong máy tính để bàn của tôi là tốt, bằng cách cung cấp tách mối quan tâm ở một số khu vực - như bền bỉ, truy cập tài nguyên, vv Kịch bản:

1- Một số loại thùng chứa tiện ích, có quyền truy cập vào tài nguyên cục bộ. 2 - Một ứng dụng phương tiện truyền thông ánh sáng để bàn bạc dựa

Cập nhật:

tôi chỉ làm một POC để cho phép tôi để truy cập vào máy in và lưu các tập tin địa phương, tất nhiên thông qua một vỏ nơi tôi lưu trữ Silverlight của tôi ứng dụng. Nếu bạn wan't bạn có thể có một cái nhìn tại bưu here in my blog

Trả lời

8

Hai cách tôi có thể nghĩ đến là,

Tạo một "Shell"

chủ các trang với Silverlight HTML, trong một Winforms ứng dụng máy tính để bàn, bằng cách sử dụng một điều khiển trình duyệt web, và giao tiếp với và fro bằng cách sử dụng HTML DOM. Sau đó, tôi có thể yêu cầu trình bao được lưu trữ để làm những việc như in. See details here

Mono cũng có kiểm soát trình duyệt web - dựa trên FireFox XULRunner thay vì IE - chưa tải Silverlight bên trong đó. Một tùy chọn khác có thể đang sử dụng Webkit.

Desktop Shell

Nhúng một web server

Nhúng một trọng lượng máy chủ web nhẹ trong ứng dụng máy chủ, và xử lý các yêu cầu để thực hiện các hoạt động đó. Bạn có thể xác định một giao thức trên đầu trang của HTTP cho những thứ như lưu vào thư mục cục bộ, gửi dữ liệu để in, v.v.

Embedding A Server

+0

Máy chủ web được nhúng? Đối với ứng dụng khách? Điều này có thể là một chút overengineered. – gn22

+0

Có, khi bạn không có sự lựa chọn tốt hơn – amazedsaint

3

Là một ứng dụng WPF toàn không phải là một lựa chọn cho tình hình của bạn?

Như bạn có thể biết Silverlight sử dụng một tập con của WPF để bạn có thể thay đổi ứng dụng của mình tương đối dễ dàng.

Một ứng dụng wpf sẽ dễ dàng hơn việc có một máy chủ web, vv đi kèm trong ứng dụng của bạn.

Bạn sẽ không có trong tương lai gần có thể có quyền truy cập vào các tài nguyên như máy in và tệp (ngoài bộ nhớ riêng) thông qua Silverlight như bạn biết.

Bạn có thể có một phần riêng biệt của ứng dụng để tải tệp lên máy chủ web, sau đó đọc chúng trong ứng dụng Silverlight của bạn từ một dịch vụ.

Tùy thuộc vào yêu cầu in của bạn (ví dụ: nếu bạn chỉ muốn gửi mọi thứ đến máy in văn phòng), bạn có thể gửi thông tin bạn muốn in tới dịch vụ sau đó in cho bạn. Tuy nhiên tôi đoán bạn muốn mỗi máy khách hàng để có thể in trong trường hợp này sẽ không làm việc cho bạn.

+0

Ý tưởng KHÔNG sử dụng WPF - vì vậy tôi sẽ kết thúc với hai cơ sở mã. Ngoài ra, hãy xem cập nhật của tôi, như cách tôi truy cập máy in ngay từ ứng dụng Silverlight của tôi. :) – amazedsaint

1

Tôi đang cố gắng sử dụng lại mã số cho cả máy tính để bàn và bạc. Có hai tùy chọn mà tôi biết ngoài những tùy chọn được đề cập đến

Nếu bạn tham chiếu trực tiếp (thay vì tham chiếu dự án) một dll Silverlight từ một dự án bình thường, nó sẽ hoạt động. Điều này sẽ cho phép bạn tham khảo một dll Silverlight cho cả hai dự án.

Có hai tệp dự án (một tệp wpf, một silverlight) trỏ đến cùng một tập hợp tệp. Bạn có thể phải sử dụng một vài cờ trình biên dịch ở đây và ở đó, nhưng điều này sẽ cho phép bạn sử dụng cùng một tệp cho cả hai.

+0

Xem cập nhật của tôi ở trên để tìm hiểu lý do tại sao đây không phải là một lựa chọn tốt cho tôi. Tôi cũng thích điều này trong Mono. – amazedsaint

Các vấn đề liên quan