2009-02-03 13 views
11

Bất cứ ai sẵn sàng giúp tôi với ưu điểm/nhược điểm về .NET Remoting, Web Services và WCF? Tôi đã làm việc một chút với .NET Remoting và Web Services và tôi đang kiến ​​trúc một ứng dụng web ASP.NET 3.5 mới, nơi tôi sẽ sử dụng một SQL 2008 DB. Chủ yếu là tôi tự hỏi nếu nó sẽ là đáng giá để thực sự nhìn vào WCF cho ứng dụng này..NET Remoting so với các dịch vụ Web so với Windows Communication Foundation (WCF)

Trong trường hợp đặc biệt này, đây là một số điểm liên quan:

  • dữ liệu dai dẳng Hầu hết sẽ báo lỗi và theo dõi sử dụng.
  • Ngay cả khi tôi đi với .NET Remoting, lưu lượng truy cập sẽ không đảm bảo một máy chủ từ xa vật lý, nhưng tôi muốn ước mơ rằng nó sẽ có một ngày!
  • Tại thời điểm này, tôi không thấy trước việc cần lấy dữ liệu này từ các ứng dụng web khác.

Tuy nhiên, tôi vẫn muốn biết:

  • Khi/tại sao bạn sẽ sử dụng .NET Remoting trong một ứng dụng web?
  • Khi nào/tại sao bạn sử dụng Dịch vụ web trong ứng dụng web?
  • Khi nào/tại sao bạn sử dụng WCF trong ứng dụng web?
  • Tôi có nên xem xét một công nghệ như LINQ to SQL không?
  • Có các tùy chọn nào khác tốt hơn không?

Trả lời

7

Tôi thực sự đã chuyển phần mềm của mình từ .NET truyền thống Remoting sang WCF. Sự bùng nổ trong giao tiếp xảy ra từ Remoting là tuyệt vời (chỉ cần nhìn vào một dấu vết wireshark). Trước khi chuyển sang WCF, tôi đã nghĩ đến việc sử dụng một dịch vụ web .NET truyền thống, nhưng các giao diện mà chúng ta đã thực hiện cho các cuộc gọi từ xa của chúng ta sẽ cần phải sửa đổi nhiều (Chúng tôi đã sử dụng một số tham số và tham số ref mà webservice Asp.Net không thể thực hiện được nếu tôi không nhầm lẫn).

Thực sự, tôi không thể nghĩ ra một lý do để đi với một webservice Asp.Net, nhưng Im không phải là một chàng trai Asp.Net. Với tôi, nó không mang lại lợi ích gì cho WCF. Nó có thể dễ dàng hơn để đi với một dịch vụ web, nhưng WCF linh hoạt được cung cấp là những gì tôi cần. Đặc biệt là trong lĩnh vực định dạng tin nhắn.

Tôi thích dịch vụ WCF của tôi bởi vì với một dịch vụ tôi có thể phục vụ JSON hoặc SOAP/XML và tất cả các giao thức được hỗ trợ (ipc, tcp và http).

Bummer với WCF là ràng buộc chặt chẽ của nó yêu cầu bạn xác định điểm cuối cho cả HTTP và HTTPS nếu bạn muốn sử dụng điểm cuối trong kịch bản dựa trên web. Không giống như một Webservice truyền thống mà "chỉ hoạt động" bất kể nó có an toàn hay không.

2

Câu hỏi hay! Giống như bản thân tôi đã không nhìn vào WCF trước và tự hỏi liệu nó làm cho các dịch vụ web nhiều hay ít lỗi thời? Trên quan điểm của bạn về Linq2SQL - cho rằng đây là một ứng dụng mới mạnh mẽ và bạn có thể sẽ duy trì mã nguồn trong một vài năm - cá nhân (và có nguy cơ bị downvoted cho điều này - nhưng hãy nhớ nó một quan điểm hợp lệ!) Tôi muốn có khuynh hướng nhìn vào khung Entity.

Tôi biết lỗi của nó, lớn nhất đối với tôi là nó quá chặt chẽ với DAL - vì vậy nó không thể được kiểm tra đơn vị một cách dễ dàng (tôi tin rằng đây là vấn đề lớn đối với tôi, mặc dù tôi có cảm giác ruột có một công việc xung quanh để đạt được điều này).

Tuy nhiên, ý kiến ​​cá nhân của tôi là MS sẽ không để cho công nghệ này rơi vào bên lề đường, và tôi sẽ phải xem xét những tin đồn nó sẽ THAY THẾ L2S. Flipside là L2S là một công nghệ trưởng thành hơn và đặt cược an toàn hơn.

Có lẽ tôi là ngây thơ, nhưng tôi tin rằng Dan Simmons khi ông nói rằng họ đang làm việc vào việc cung cấp EF (cuối cùng) là một kiến ​​trúc hoàn toàn persistent-ngu dốt - http://blogs.msdn.com/dsimmons/pages/ef-faq-entity-classes.aspx#_Does_Entity_Framework

0

Tôi thà nhìn vào EF sau đó L2SQL quá.

Ý tưởng chỉ có thể kết nối với MSSQL là lý do tôi không bao giờ áp dụng L2SQL, từ thời điểm đó, rõ ràng là MS sẽ từ bỏ nó một ngày nào đó.