2012-04-16 44 views
15

Tôi có một ứng dụng mà tôi đang xây dựng và hiện tại, tôi đã xây dựng một số dịch vụ web bằng ASMX. Cuối cùng, ứng dụng sẽ được triển khai trên Azure. Các dịch vụ web thực sự đơn giản ở chỗ tất cả những gì họ làm là gọi một lớp trong thư mục AppCode xử lý tất cả công việc.asmx to WCF hoặc Web API

Việc chuyển các dịch vụ web của tôi sang WCF hoặc Web API có tốt hơn/dễ dàng hơn/nhanh hơn/nhiều hơn không?

Cảm ơn đề xuất của bạn.

PS: Tôi muốn thêm rằng các dịch vụ web sẽ cần phải hoạt động trong HTTPS. Hiện tại, họ đang sử dụng HTTP vì tôi đang ở chế độ phát triển.

+1

Tôi bỏ phiếu cho ServiceStack - http://www.servicestack.net – Phill

Trả lời

18

Một lớp lót: nếu bạn đã có mã số làm việc và rất nguy hiểm khi di chuyển nó sang một công nghệ khác, hãy lưu lại mã làm việc.

Tùy thuộc vào người trả lời.

API Web bao trùm HTTP và cung cấp cho bạn khả năng linh hoạt không thể thực hiện được với ASMX và WCF. Nếu bạn quan tâm đến HTTP, đàm phán nội dung, loại phương tiện và bạn cần dịch vụ của bạn để được gọi từ bất kỳ khách hàng nào (bao gồm AJAX) thì Web API.

Nếu bạn cần sử dụng các tiêu chuẩn bảo mật WS * (ví dụ: sử dụng chứng chỉ X509, ADFS, v.v.), có thể thay đổi ràng buộc của bạn, phục vụ cho các khách hàng khác nhau bằng cách sử dụng các ràng buộc khác nhau, khả năng mở rộng, vv.

Nếu bạn đã có mã làm việc và tất cả những gì bạn quan tâm là RPC và khách hàng của bạn sẽ luôn sử dụng ASMX sau đó gắn với ASMX.

Performance

Không benchmark nhưng cảm giác ruột của tôi, trong thứ tự giảm dần: Web API, ASMX, WCF

dễ dàng hơn

Trong thứ tự giảm dần: ASMX (kể từ khi bạn biết điều đó), Web API, WCF

nhanh hơn phát triển

Nếu bạn biết tất cả, Web API và ASMX sau đó WCF


PS: nên chọn công nghệ mới. Cách mọi thứ đang diễn ra (và kể từ khi bạn đã chuyển sang Azure), điều quan trọng là đầu tư vào các công nghệ mới.

+0

Xin chào! Các WS đang làm việc trong ASMX vì chúng đang phát triển. Tôi muốn chuyển ra khỏi ASMX. Cảm ơn những cân nhắc bảo mật mà bạn đã đề cập; Tôi cần phải làm cho chúng hoạt động trong HTTPS. – frenchie

+1

@frenchie trong trường hợp này, tôi sẽ đi cho Web API. – Aliostad

+0

Dịch vụ ASMX hoạt động tốt qua HTTPS trên Azure. Bạn sẽ chỉ cần thêm điểm cuối và gán nó với chứng chỉ của bạn. Tôi không bỏ phiếu cho việc sử dụng ASMX trong sản xuất, nhưng chỉ để cho bạn biết rằng nó _can_ làm việc. –

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