ฉันควรใช้วิธี / เทคโนโลยี / เครื่องมือ. NET REST ใด


16

ฉันกำลังใช้บริการเว็บสงบและแอปพลิเคชันไคลเอนต์หลายแห่งที่ส่วนใหญ่อยู่ใน Silverlight ฉันกำลังค้นหาตัวเลือกจำนวนมากสำหรับการพัฒนาทั้งฝั่งเซิร์ฟเวอร์และฝั่งไคลเอ็นต์ของ API แต่ไม่แน่ใจว่าวิธีใดดีที่สุด ฉันกังวลเกี่ยวกับความเสถียรเช่นเดียวกับแพลตฟอร์มที่จะยังคงมีอยู่ไม่กี่เดือนนับจากนี้

เราเริ่มใช้ REST Starter Kit กับ. NET 3.5 แต่ย้ายไปที่ WCF Web API ใหม่เมื่ออัปเดตเป็น. NET 4.0 เอกสารทั้งหมดของพวกเขาบ่งชี้ว่า WCF Web API เป็นการแทนที่สำหรับ RSK อย่างไรก็ตาม Web API อยู่ในหน้าตัวอย่าง 4 เท่านั้นและไม่รวมการสนับสนุนสำหรับ Silverlight หรือไคลเอนต์ Windows Phone 7 (ยัง)

WCF Web API ดูเหมือน wrapper ด้านบนของ WCF WebHttp Services ที่มีอยู่ในSystem.ServiceModel.Webไลบรารีซึ่งทำให้ฉันคิดว่ามันอาจจะง่ายกว่าที่จะไปกับสิ่งที่มีอยู่ในตัว แต่ Web API มีคุณสมบัติที่ดี

ฉันผูกโดยเฉพาะพยายามที่จะกำหนดหลักสูตรที่ดีที่สุดสำหรับฝั่งลูกค้า ความต้องการหลักของฉันคือฉันต้องสนับสนุนการดีซีเรียลไลซ์เป็นวัตถุฝั่งไคลเอ็นต์ของฉันอย่างรวดเร็วและง่ายดาย Web API ให้บริการห้องสมุดลูกค้าที่ดี แต่ไม่มีรุ่น Silverlight

ฉันต้องการใช้วิธีการล่าสุดและชุดเครื่องมือที่ได้รับการพัฒนาและสนับสนุนอย่างแข็งขัน

  1. REST ชุดเริ่มต้นล้าสมัยจริงหรือ

  2. มีใครประสบความสำเร็จในการใช้ชุดเครื่องมือ WCF Web API หรือไม่

  3. มีบุญที่จะใช้อย่างใดอย่างหนึ่งเหล่านี้มากกว่าคุณสมบัติ WCH WebHttp บริการในตัวที่พบในSystem.ServiceModel.Web?

  4. มีวิธีแก้ปัญหาเดียวที่เหมาะกับลูกค้า (เว็บ Silverlight ฯลฯ ) หรือไม่?

คุณมีข้อเสนอแนะอะไร?


ฉันอยากจะแนะนำให้ใช้ servicestack
Mithir

คำตอบ:


6

เพียงแค่ติดตามและปิดโพสต์ด้วย Preview 5 WCF Web API จึงก้าวไปข้างหน้าอย่างมากทำให้การสร้าง REST API นั้นง่ายอย่างไม่น่าเชื่อ และในขณะที่ codebase ปัจจุบันบน Codeplex ไม่รวมไคลเอนต์ Silverlight มีชุดเครื่องมืออยู่ที่นั่นและฉันก็สามารถถอดส่วน Async-CTP ออกจากโอเพนซอร์สและสร้างเวอร์ชัน SL ได้อย่างง่ายดาย

ผมขอแนะนำให้ทุกคนที่สนใจในการเข้าสู่ส่วนที่เหลือที่มีรูปลักษณ์ WCF ลงในกรอบ: http://wcf.codeplex.com

FYI - มันจะเป็นส่วนหนึ่งของ. NET 4.5 และกำลังถูกเขียนใหม่ให้ทำงานบนกรอบหลักเดียวกันกับ ASP.NET MVC (แม้ว่าฉันจะบอกว่ามันจะสนับสนุนการโฮสต์ด้วยตนเองอย่างแน่นอน)


1

ฉันไม่ได้ใช้ชุดเริ่มต้นของ REST แต่ตอนนี้ฉันกำลังเขียน. NET 4.0 WCF REST API ฉันค่อนข้างแน่ใจว่ามันยังคงมีอยู่ :)

ฉันอยากจะแนะนำให้คุณดู Odata มันรวดเร็วและง่ายในการเขียนโค้ดที่น่าอัศจรรย์ใจและเล่นได้ดีกับ Silverlight


หนึ่งในคุณสมบัติที่นำเสนอโดยชุดเครื่องมือ API เว็บ WCF คือการสนับสนุน OData ซึ่งทำงานได้ดี แต่การไม่มีรุ่น Silverlight ไม่ได้ช่วยฉัน คุณจัดการการดีซีเรียลไลเซชั่นบนฝั่งไคลเอ็นต์อย่างไร?
SonOfPirate

ฉันเพิ่งทำมันด้วย WP7 silverlight ที่ฉันเพิ่งเพิ่มบริการ refrence และเรียกว่า คุณสามารถใช้ webclient และ deserialize คำตอบด้วยตัวคุณเองแม้ว่ามันจะใช้งานได้ดีกว่าสำหรับคุณ มันไม่ใช่เรื่องยาก
Tom Squires

ฉันไม่คิดว่าการใช้ webHttpBinding เพื่อเปิดใช้งาน REST ด้วย WCF สนับสนุนจุดสิ้นสุด mex คุณเพิ่มการอ้างอิงบริการอย่างไร นั่นเป็นการตั้งค่าของฉันมากกว่าการแชร์ไลบรารีทั่วไปที่มีสัญญาข้อมูลของฉัน
SonOfPirate

ใช่ฉันเพิ่งเพิ่มบริการการอ้างอิง คุณอาจจำเป็นต้องกำหนดจุดสิ้นสุดในไฟล์กำหนดค่า
Tom Squires

ฉันเพิ่งเรียนรู้ (ยาก) ที่ Silverlight ไม่สนับสนุน WebHttpBinding ดังนั้นแม้ว่าฉันจะสามารถเปิดเผยจุดสิ้นสุด mex และเพิ่มการอ้างอิงบริการ แต่บริการจะไม่ทำการโทรเนื่องจากไม่สามารถแก้ไขจุดปลายทางได้
SonOfPirate

1

WCF Web API ไม่ได้ให้ข้อมูลเมตาดาต้าใด ๆ ที่คุณจะใช้ในการสร้างเซอร์วิสพร็อกซีและทำให้สามารถเพิ่มการอ้างอิงบริการได้ มันมีไว้สำหรับการผลิตที่ง่ายของบริการ REST ภายใต้ WCF เช่นเดียวกับที่คุณทำกับเฟรมเวิร์ก ASP.NET MVC 4 Web API

ดังนั้นจึงไม่มีการสนับสนุน WP7 หรือ Silverlight แต่เกือบจะสมบูรณ์แบบสำหรับส่วนที่เหลือของเว็บ

อย่างไรก็ตาม WCF Data Services ดูเหมือนจะเป็นตัวเลือกที่ถูกต้องซึ่งจะช่วยให้คุณสร้างบริการ RESTful และใช้งานได้อย่างง่ายดายด้วย Silverlight


เราใช้เว็บ API กับลูกค้า Silverlight ของเรามาเกือบปีโดยไม่มีปัญหา
SonOfPirate
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.