Hiện tôi đang quản lý một nhóm gồm 15 nhà phát triển và chúng tôi đang gặp khó khăn trong việc lựa chọn công nghệ, trong đó nhóm được chia thành hai nhóm hoàn toàn trái ngược nhau, tranh luận về việc sử dụng WCF so với API Web.
Nhóm A hỗ trợ sử dụng API Web, đưa ra những lý do sau:
- API Web chỉ là cách viết dịch vụ hiện đại ( Wikipedia )
- WCF là một chi phí chung cho HTTP. Đó là một giải pháp cho TCP và Net Faucet và các giao thức khác
- Các mô hình WCF không phải là POCO, vì [DataContract] & [DataMember] và các thuộc tính đó
- SOAP không dễ đọc và tiện dụng như JSON
- SOAP là một chi phí chung cho mạng so với JSON (truyền qua HTTP)
- Không quá tải phương thức
Đội B hỗ trợ việc sử dụng WCF, nói:
- WCF hỗ trợ nhiều giao thức (thông qua cấu hình)
- WCF hỗ trợ giao dịch phân tán
- Nhiều ví dụ hay và câu chuyện thành công tồn tại cho WCF (trong khi API Web vẫn còn trẻ)
- Song công là tuyệt vời cho giao tiếp hai chiều
Cuộc tranh luận này đang tiếp diễn và tôi không biết phải làm gì bây giờ. Cá nhân, tôi nghĩ rằng chúng ta chỉ nên sử dụng một công cụ cho đúng nơi sử dụng . Nói cách khác, chúng tôi nên sử dụng API Web tốt hơn, nếu chúng tôi muốn đưa ra một dịch vụ qua HTTP, nhưng sử dụng WCF khi nói đến TCP và Duplex.
Bằng cách tìm kiếm trên Internet, chúng ta không thể có được kết quả vững chắc. Nhiều bài viết tồn tại để hỗ trợ WCF, nhưng ngược lại chúng tôi cũng thấy mọi người phàn nàn về nó. Tôi biết rằng bản chất của câu hỏi này nghe có vẻ tranh cãi, nhưng chúng ta cần một số gợi ý tốt để quyết định. Chúng ta bị mắc kẹt tại một thời điểm mà việc lựa chọn một công nghệ tình cờ có thể khiến chúng ta hối tiếc về sau. Chúng tôi muốn chọn với đôi mắt mở.
Việc sử dụng của chúng tôi chủ yếu dành cho web và chúng tôi sẽ đưa ra các dịch vụ của mình qua HTTP. Trong một số trường hợp (giả sử 5 đến 10 phần trăm), chúng tôi có thể cần các giao dịch phân tán.
Tôi nên làm gì bây giờ? Làm cách nào để quản lý cuộc tranh luận này theo cách xây dựng?