2010-03-03 2 views
6

Tôi đã tạo Tệp thực thi Windows trong .NET 3.5 sử dụng dll để giao tiếp với máy quét kiểm tra. Tôi cuối cùng sẽ cần phải di chuyển từ một tập tin thực thi đến một mẫu Web có thể làm điều tương tự. Đây sẽ là vài tháng kể từ bây giờ, nhưng tôi muốn bắt đầu thực hiện nghiên cứu ngay bây giờ vì tôi đã không làm điều này trước đây. Tôi sẽ cần phải sử dụng ActiveX để giao tiếp với thiết bị thông qua một mẫu Web. Tôi cũng đã không làm điều này trước đây.Chuyển đổi từ Biểu mẫu Windows sang Biểu mẫu Web

Tôi muốn giữ chức năng của tệp thi hành hiện tại của mình mà không phải viết lại phần lớn, mặc dù tôi hiểu rằng một số sẽ cần phải được viết lại. Tôi đã thực hiện nghiên cứu về ActiveX và cách sử dụng nó, nhưng tôi muốn biết nếu có ai đó có tình huống tương tự như thế này. Bạn đã làm gì để chuyển đổi một exe thành một chương trình web? Có những nguồn tốt, cụ thể ở ngoài mà tôi đang xem có thể chỉ cho tôi đúng hướng cho tình huống này không? Có lời khuyên nào mà bạn có thể đưa ra từ kinh nghiệm của bạn có thể giúp tôi giảm bớt sai lầm? Công ty mà tôi làm việc vì không có ai khác ở đây đã làm điều này trước đây, vì vậy tôi phải tự dạy mọi thứ cần thiết để làm điều này.

Xin cảm ơn trước.

+0

bạn có thể giải thích tại sao cần phải là biểu mẫu web không? Có phải vấn đề về tuân thủ/tuân thủ buzzword/đa nền tảng không? –

+0

Đây không phải là một câu hỏi đơn giản có thể được trả lời mà không biết sự phức tạp của chương trình bạn đã viết. Bất kể, tôi thực sự hy vọng mã của bạn được thừa nhận tốt, vì có vẻ như quản lý đã đưa ra yêu cầu này cho bạn sau khi dự án ban đầu hoàn tất, thay vì ngay từ đầu khi nó hữu ích nhất để biết. –

+0

Tính năng này không hoạt động tốt, trừ khi bạn có thể kết nối máy quét séc với máy chủ web của bạn. Nếu không, hãy bắt đầu nghiên cứu mô hình bảo mật của Javascript và Internet Explorer. –

Trả lời

5

Đây là nơi tách mối quan tâm và thiết kế n-tầng tỏa sáng. Hy vọng rằng lớp giao diện người dùng của bạn được kết hợp lỏng lẻo với mô hình miền của bạn. Trong trường hợp này, bạn có thể mã lớp IU thứ hai cho web. Và không phải thay đổi mô hình miền của bạn cả. Sau đó, bạn có thể biên dịch cho từng kịch bản.

* Lưu ý - Trong thực tế, tôi luôn phải mở rộng miền kinh doanh của mình để giải quyết một số vấn đề với giao diện người dùng thứ hai, nhưng những sửa đổi đó thường nhỏ và đã chỉ ra những nơi mà tôi đã kết hợp quá chặt.


Một tùy chọn khác mà bạn có thể xem xét là tạo lớp dịch vụ web trên mã miền doanh nghiệp của mình. Và sau đó mã hóa một ứng dụng web giao tiếp với mô hình miền của bạn thông qua các cuộc gọi dịch vụ web đó. Điều này có thể có tác động hiệu quả, và sẽ không phải là phương pháp ưa thích của tôi để hoàn thành điều này. Mặc dù bạn có thể tìm thấy nó dễ quản lý hơn nếu bạn không có một ứng dụng được thiết kế tốt để bắt đầu.

0

Thông thường, việc chuyển đổi dạng winform thành biểu mẫu web là hoàn toàn có thể, mặc dù thường là một quá trình phát triển chậm. Ngay cả khi bạn đã có lớp miền sạch nhất trên thế giới, thực tế là các đối tượng trong trang web của bạn bị vứt đi mỗi lần có nghĩa là lớp tên miền web thường được viết rất khác với lớp miền máy tính để bàn.

Tuy nhiên, trong trường hợp của bạn, giao tiếp giữa thiết bị - máy chủ sẽ trở nên khó khăn hơn.

Bạn đã xem xbap chưa? Về cơ bản nó là một cách để triển khai các ứng dụng WPF vào một trang web. Nó đòi hỏi khách hàng của bạn phải cài đặt đúng phiên bản .NET, nhưng nó sẽ là con đường dễ dàng nhất cho bạn, đặc biệt là xem xét bạn có thể lưu trữ winforms trong WPF ...

+0

Tôi sẽ xem xét xbap, nhưng tôi không tin rằng tôi sẽ được phép sử dụng nó trong môi trường hiện tại của chúng tôi. – Aaron

1

"Tôi muốn giữ chức năng của tập tin thực thi hiện tại của tôi mà không cần phải viết lại phần lớn của nó "

Nói chung nếu bạn trích xuất càng nhiều logic càng tốt vào trong assembly/dll của nó, bạn có thể tái sử dụng nó từ bất kỳ khung UI nào bạn muốn. Chỉ cần đảm bảo rằng bạn không làm bất kỳ giao diện người dùng cụ thể nào trong đó (ném lên hộp thoại, v.v.).

0

Bạn có thể có một cái nhìn tại Silverlight 4,

http://silverlight.net/getstarted/silverlight-4-beta/

Nó chứa nhiều tính năng ASP.NET Web Forms đã không.

Nếu nhóm của bạn có thể chấp nhận một cái gì đó như ActiveX, tại sao không phải là Silverlight 4? Nhược điểm duy nhất là SL4 vẫn đang trong giai đoạn Beta.