Nếu bạn cảm thấy thoải mái và hiệu quả trong WCF, có thể không có lý do mạnh mẽ để sử dụng bất cứ điều gì khác. Tôi chắc chắn nghĩ rằng WCF là một nơi tốt để bắt đầu bởi vì nếu bạn theo mô hình hợp đồng của nó, đó là một mô hình dễ dàng để chuyển đổi để làm việc với các hệ thống khác, nếu cần phải phát sinh.
Đối với một trong những dự án của riêng tôi, tôi bắt đầu với một nguyên mẫu WCF. Khi tôi bắt đầu "dặm cuối", tôi thấy rằng thường xuyên hơn là tôi không chiến đấu với WCF để hoàn thành công việc. Tôi đặc biệt gặp vấn đề với việc ghép cặp trò chơi trong ngăn xếp ngang hàng của WCF, điều này không cung cấp cho tôi các công cụ mà tôi cần. Trong dự án đó, tôi đã kết thúc việc chuyển sang thư viện mạng của XNA, nơi cung cấp cho tôi cách ghép nối giống Xbox (và GamerTags và không có gì) mà tôi đang tìm kiếm và (cố gắng) cố gắng mô phỏng trong WCF. (Tất nhiên, thư viện mạng của XNA cho rằng bạn đang làm việc trong một trò chơi XNA và thật không may vẫn không hỗ trợ xuất bản trò chơi trên Windows mà không có hợp đồng GfW Live.)
Tôi đã không chạm vào phần lớn mã mạng của mình khi chuyển từ WCF sang XNA Net, vì bản thân các hợp đồng (các lớp giao diện) đã không thay đổi nhiều (trừ việc bỏ các thuộc tính WCF). Viết các lớp Reader / Writer thực hiện hoặc tiêu thụ hợp đồng của tôi khá đơn giản. Tôi có thể có thể giữ hỗ trợ cho cả hai với một chút #if WINDOWS
xáo trộn, nhưng tôi đã quyết định bỏ hỗ trợ WCF tại thời điểm đó, vì nó đơn giản hóa mọi thứ trong dự án đó. Có lẽ thú vị, khi bắt đầu các dự án khác trực tiếp với Mạng XNA, tôi vẫn đang sử dụng một cái gì đó của mẫu "hợp đồng" được điều khiển bởi giao diện / proxy của WCF. Tôi đã có ý định viết một bài đăng blog về chủ đề đó, thực sự, bởi vì tôi nghĩ rằng đó là một mô hình tốt để làm theo.