2008-11-12 64 views
5

Giả thuyết, bạn có hai sản phẩm, một sản phẩm được viết bằng Java, một được viết bằng C#. Bạn thích phụ trợ dựa trên Java (phần không nhìn thấy được người dùng), nhưng muốn sử dụng giao diện C# (WPF). Cách tốt nhất để đi về interfacing chúng là gì?Cách tốt nhất để giao tiếp C# và Java là gì?

Lưu ý rằng chương trình phụ trợ phải có khả năng chạy trên máy chủ hoặc trên máy cục bộ và giao diện người dùng có thể kết nối với một trong hai.

Suy nghĩ đầu tiên của tôi là sử dụng một cái gì đó như Ice hoặc có thể là dịch vụ web.

Và tiếp tục!

Sửa

Chuyển đổi mã hoặc chạy nó trong một số loại trung lập VM (IKVM) không phải là một lựa chọn.

Trả lời

1

Hiển thị dịch vụ web trên chương trình phụ trợ java và có giao diện người dùng C# nói chuyện với dịch vụ web java. Nhìn vào WCF (nền tảng giao tiếp cửa sổ) nó có thể làm cho nói chuyện với một dịch vụ web java rất nhiều dễ dàng hơn.

0

Bạn có thể sử dụng dịch vụ web.

Hoặc bạn có thể sử dụng IVKM để nhúng mã java trực tiếp vào một hội đồng .NET.

0

Tôi đã làm việc trên back-end java cho C# rich-client. Họ giao tiếp thông qua dịch vụ web. Vấn đề duy nhất mà chúng tôi thực sự gặp phải là với các cấu trúc phân cấp thừa kế, các dịch vụ web mà WSDL xóa.

2

Dịch vụ web phải là lựa chọn mặc định của bạn vì có quá nhiều công việc xung quanh khả năng tương tác trong không gian đó.

Nếu bạn không nhớ khớp nối chặt chẽ, và phải đưa ra quyết định dựa performace, hai giải pháp tôi đã gặp là:

Tôi chắc chắn có khác.

2

Trong khi Dịch vụ web (WS- *) có thể là là giải pháp đúng, ngăn xếp để tương thích có thể là kludgy.

Có nhiều điều cần nói cho kiến ​​trúc HTTP + (POX | JSON) và REST-ian.

0

Tôi tin rằng có một số vấn đề về khả năng tương tác sử dụng Dịch vụ Web trên nền tảng Java/.NET. Ví dụ, có một số vấn đề khi sử dụng Axis2 và .net cùng nhau. Trong hầu hết các trường hợp, các giải pháp đều tồn tại.

Tôi đã nghe một số nhận xét hay về cách sử dụng kiến ​​trúc REST-ian.

0

Có một số phương pháp để tạo/đạt được khả năng tương tác giữa các hệ thống java và .net.

  • dịch vụ Web
  • Visual J #
  • Java Native Interface (JNI)
  • BytecodeTranslation
  • Runtime Bridges

Dịch vụ web thường được sử dụng nhất. Các dịch vụ Web chủ yếu sử dụng cơ chế truyền thông dựa trên SOAP vốn có thể chậm hơn các cơ chế truyền thông nhị phân thay thế. Các dịch vụ Web cũng không phù hợp để truyền các đối tượng tùy chỉnh giữa Java và .NET như các tham số và các giá trị trả về.

Bài viết này cung cấp cho cái nhìn tổng quan thực sự tốt về những gì là những gì:

http://www.devx.com/interop/Article/19945

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