บริการ WCF RIA คืออะไร?


102

ฉันเกลียดไซต์ของ MSDN สำหรับบริการ WCF RIA มันไม่ได้บอกว่ามันคืออะไรบอกเพียงว่ามันทำอะไร มันบอกว่ามันสามารถบรรลุอะไรได้ แต่ไม่ได้บอกว่าทำไมฉันถึงต้องการมัน

ตัวอย่างเช่น:

"ปัญหาที่พบบ่อยในการพัฒนาโซลูชัน RIA ระดับ n คือการประสานตรรกะของแอปพลิเคชันระหว่างระดับกลางและระดับการนำเสนอ"

มันไม่ได้มีความหมายมากสำหรับฉัน

"บริการ RIA แก้ปัญหานี้ได้โดยจัดเตรียมส่วนประกอบกรอบงานเครื่องมือและบริการที่ทำให้ตรรกะของแอปพลิเคชันบนเซิร์ฟเวอร์พร้อมใช้งานสำหรับไคลเอนต์ RIA โดยไม่ต้องให้คุณทำซ้ำตรรกะการเขียนโปรแกรมนั้นด้วยตนเองคุณสามารถสร้างไคลเอ็นต์ RIA ที่ตระหนักถึงกฎทางธุรกิจ และทราบว่าไคลเอ็นต์จะได้รับการอัปเดตโดยอัตโนมัติด้วยตรรกะระดับกลางล่าสุดทุกครั้งที่มีการรวบรวมโซลูชันใหม่ "

มันดาวน์โหลด DLL จากเซิร์ฟเวอร์หรือไม่? เป็นข้อมูลเมตาที่อธิบายกฎสำหรับข้อมูลหรือไม่

แล้วมันคืออะไร? เป็นเพียงส่วนเสริม VS 2010 สำหรับ RAD หรือไม่? หรือเป็นเทคโนโลยีที่อยู่ด้านบนของ WCF หรืออยู่ข้างใต้หรืออะไร? มันอยู่ที่ไหน? ด้วยข้อมูลกับเซิร์ฟเวอร์คืออะไร?

ฉันขอขอบคุณหากคุณสามารถสรุปเรื่องนี้ให้ฉันได้โปรด


3
เป็นเทคโนโลยีที่อยู่เหนือ WCF ซึ่งใช้ Code Generation และทั้งฝั่งเซิร์ฟเวอร์และโค้ดฝั่งไคลเอ็นต์ โดยมุ่งเน้นไปที่การสับข้อมูลจากเซิร์ฟเวอร์ไปยังไคลเอนต์เป็นหลักและกลับมาอีกครั้งด้วยการตรวจสอบความถูกต้องและสิ่งอื่น ๆ
Rangoric

1
@Rangoric: คุณโพสต์เป็นคำตอบได้ คำตอบสั้น ๆ ก็เป็นคำตอบที่ดีได้เช่นกัน
Henk Holterman

7
อ่าฮ่า ๆ ฉันเข้าใจผิดว่าเป็นRIAAและเป็นโรคจิต
Mateen Ulhaq

นานาน่ารู้: RIA = โปรแกรม Internet Rich (ลูกค้าบางซึ่ง Silverlight) อธิบายกันที่นี่ บริการ WCF RIA เป็นบริการ RIA ผ่าน WCF ซึ่งเชื่อมโยงไคลเอ็นต์แบบบางกับเซิร์ฟเวอร์ " บริการ WCF RIA ดึงข้อมูลจากฐานข้อมูลเซิร์ฟเวอร์ Microsoft Structured Query Language (SQL) และทำให้ข้อมูลนี้พร้อมใช้งานสำหรับไคลเอนต์ Silverlight ซึ่งจะนำเสนอเพื่อแก้ไขและดู "
นาที

คำตอบ:


109

บริการ RIA เป็นเทคโนโลยีฝั่งเซิร์ฟเวอร์ที่สร้างอ็อบเจ็กต์ฝั่งไคลเอ็นต์ (Silverlight) โดยอัตโนมัติซึ่งดูแลการสื่อสารกับเซิร์ฟเวอร์ให้คุณและให้การตรวจสอบความถูกต้องฝั่งไคลเอ็นต์

วัตถุหลักภายในบริการ RIA คือ a DomainServiceซึ่งโดยปกติLinqToEntitiesDomainServiceจะเชื่อมต่อกับแบบจำลอง LinqToEntities

สิ่งสำคัญที่ต้องจำไว้ในบริการ RIA คือส่วนใหญ่เป็นเคล็ดลับการสร้างที่ซับซ้อน เมื่อคุณสร้างบริการโดเมนและรวบรวมโซลูชันของคุณการเป็นตัวแทนฝั่งไคลเอ็นต์ของบริการโดเมนของคุณจะถูกสร้างขึ้น การแสดงฝั่งไคลเอ็นต์นี้มีอินเทอร์เฟซเดียวกัน สมมติว่าคุณสร้างบริการโดเมนฝั่งเซิร์ฟเวอร์ที่มีวิธีการCustomerService IQueryable<Customer> GetCustomersByCountryเมื่อคุณสร้างวิธีการแก้ปัญหาของคุณชั้นถูกสร้างขึ้นภายในโครงการ Silverlight ของคุณเรียกว่ามีวิธีการCustomerContext GetCustomersByCountryQueryตอนนี้คุณสามารถใช้วิธีนี้กับไคลเอนต์ได้ราวกับว่าคุณกำลังเรียกมันบนเซิร์ฟเวอร์

การอัปเดตแทรกและลบจะเป็นไปตามรูปแบบอื่น เมื่อคุณสร้างบริการโดเมนคุณสามารถระบุได้ว่าต้องการเปิดใช้งานการแก้ไขหรือไม่ จากนั้นวิธีการที่เกี่ยวข้องสำหรับการอัปเดต / แทรก / ลบจะถูกสร้างขึ้นในบริการโดเมนฝั่งเซิร์ฟเวอร์ อย่างไรก็ตามส่วนฝั่งไคลเอ็นต์ไม่มีวิธีการเหล่านี้ สิ่งที่คุณมีในของคุณเป็นวิธีการที่เรียกว่าCustomerContext SubmitChangesวิธีนี้ทำงานอย่างไร:

  • สำหรับการอัปเดตคุณเพียงแค่อัปเดตคุณสมบัติของลูกค้าที่มีอยู่ (ที่คุณเรียกดูผ่านGetCustomersByCountryQuery)
  • CustomerContext.Customers.Add(new Customer(...) {...})สำหรับแทรกคุณใช้
  • CustomerContext.Customers.Remove(someCustomer)สำหรับการลบคุณใช้

CustomerContext.SubmitChanges()เมื่อคุณแก้ไขเสร็จแล้วคุณเรียก

สำหรับการตรวจสอบความถูกต้องคุณสามารถตกแต่งออบเจ็กต์ฝั่งเซิร์ฟเวอร์ของคุณด้วยแอตทริบิวต์การตรวจสอบความถูกต้องจากSystem.ComponentModel.DataAnnotationsเนมสเปซ อีกครั้งเมื่อคุณสร้างโครงการของคุณตอนนี้รหัสตรวจสอบจะถูกสร้างขึ้นโดยอัตโนมัติสำหรับวัตถุฝั่งไคลเอ็นต์ที่เกี่ยวข้อง

ฉันหวังว่าคำอธิบายนี้จะช่วยคุณได้อีกเล็กน้อย


มันไม่แน่นอน ขอบคุณสำหรับการแบ่งปัน ฉันหวังว่าคุณจะสามารถอัปเดตไซต์ MSDN ได้ จะเกิดอะไรขึ้นถ้าฉันเพิ่มคุณสมบัติให้กับวัตถุโดเมนของฉัน มันจะอัปเดตตัวเองหรือไม่?
Aliostad

ฉันได้เพิ่มข้อมูลเพิ่มเติมเกี่ยวกับการอัปเดตการแทรกและการลบ
Ronald Wildenberg

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