ไม่ต้องเพิ่มโพสต์ SO อื่นเกี่ยวกับสแต็ค WCF ที่แตกต่างกัน แต่ฉันต้องการให้แน่ใจว่าฉันกำลังมุ่งหน้าไปในทิศทางที่ถูกต้องก่อนที่จะเสียเวลาในการพัฒนาไปมากกว่านี้...
สถานการณ์ของฉัน - บริษัทของเรามีเว็บแอปจำนวนหนึ่งที่เข้าถึงฐานข้อมูลชุดเดียวกันทั้งหมด โดยพื้นฐานแล้วแอปทั้งหมดได้รับการพัฒนาโดยแยกจากกัน ดังนั้นจึงต้องใช้ตรรกะทางธุรกิจและการเข้าถึงข้อมูลซ้ำซ้อน ยิ่งไปกว่านั้น ฉันมีเป้าหมาย (อาจไม่มีเหตุผล) ในการทำโปรเจ็กต์นี้โดยไม่ขึ้นอยู่กับลูกค้า - รวมตรรกะทางธุรกิจปัจจุบันและการเข้าถึงข้อมูลไว้ในอินเทอร์เฟซที่สามารถเข้าถึงได้โดยเว็บแอป, Silverlight, แอปมือถือ ฯลฯ
เข้าสู่ WCF - มันทำให้ฉันเป็นตัวเลือกที่สมบูรณ์แบบในการทำทั้งสองอย่างให้สำเร็จ น่าเสียดายที่หลังจากอ่าน "คำแนะนำ" ที่มีอยู่ทั้งหมดที่มีอยู่ในรสชาติ WCF ต่างๆ แล้ว ฉันกลับสับสนมากกว่าสิ่งใดๆ นี่คือข้อสรุปที่ฉันได้มาถึงตอนนี้ - โปรดแก้ไขให้ฉันด้วย:
- Straight WCF - ตัวเลือกที่ยืดหยุ่นและครอบคลุมที่สุด แต่ทุกอย่างเริ่มต้นจากศูนย์ จะต้องใช้เวลาอย่างมากในการกำหนดค่าและทดสอบ ตัวเลือกที่เป็นผู้ใหญ่ทางเทคนิคมากที่สุดพร้อมตะขอเพื่อให้บรรลุเป้าหมายส่วนใหญ่
- WCF Data Services - วิธีที่เร็วที่สุดในการรับบริการ REST ออนไลน์ ยอดเยี่ยมหากแอปพลิเคชันต้องการเปิดเผยข้อมูลโดยตรงจากฐานข้อมูล หากจำเป็นต้องใช้ตรรกะทางธุรกิจ จะต้องเขียนบนฝั่งไคลเอ็นต์หรือโดยบริการที่สองที่เปิดเผยตรรกะ
- บริการ WCF RIA - วิธีที่เร็วที่สุดในการกำหนดค่าบริการที่พร้อมเปิดเผยตรรกะทางธุรกิจ อาจเป็นตัวเลือกที่ยังไม่บรรลุนิติภาวะทางเทคนิคมากที่สุด (แต่ด้วยสิ่งที่ดูเหมือนว่าเป็นการลงทุนที่สำคัญที่จะนำมาด้วย) ตำแหน่งข้อมูล Soap, REST และ JSON จะช่วยให้ไคลเอ็นต์ส่วนใหญ่มีความเป็นอิสระ
จากข้อกำหนดของฉันข้างต้น ฉันจึงได้ข้อสรุปดังต่อไปนี้ - Data Services น่าจะไม่ใช่ผู้เริ่มต้นเนื่องจากข้อกำหนดด้านตรรกะทางธุรกิจ (และแนวคิดของบริการ WCF ที่สองที่ใช้บริการ Data ทำให้ฉันเป็นตัวเลือกทางสถาปัตยกรรมที่แย่มาก) ความเร็วเป็นสิ่งสำคัญ ซึ่งจะบ่งบอกว่าบริการ RIA อาจเป็นจุดเริ่มต้นที่ดีที่สุด (โทรหาฉันแบบขี้เกียจก็ได้ แต่การมีทีมเล็กๆ ที่มีกรอบเวลาจำกัดจะทำให้การสร้างโค้ดมีคุณค่า)
มีวิธีที่ดีกว่าในการจัดการกับเป้าหมายที่ฉันอธิบายไว้หรือไม่ ฉันเข้าใจผิดตัวเลือก WCF บางส่วน/ทั้งหมดหรือไม่ มีคำแนะนำเชิงปฏิบัติอื่นๆ ใดบ้างที่สามารถเสนอได้เกี่ยวกับการเลือกแนวทาง WCF ใด (ไม่ใช่แค่สำหรับฉัน แต่สำหรับใครก็ตามที่พยายามประเมินเทคโนโลยี)