ฉันต้องการความช่วยเหลือในการตัดสินใจระหว่าง silverlight / silverlight out-of-browser / wpf


10

ฉันอยู่ในช่วงเริ่มต้นการวางแผนของโครงการเขียนใหม่และฉันกำลังตัดสินใจระหว่าง silverlight / silverlight oob / wpf TL; DR ในตอนท้าย

มันเป็นแอพ LOB ที่จัดการลูกค้าเป้าหมาย / ลูกค้า / นัดหมาย ไม่ซับซ้อนเกินไป ฉันค้นคว้าตัวเลือกเหล่านี้อย่างอิสระที่อื่น แต่ฉันคิดว่าฉันจะถาม ความต้องการเบื้องต้น / ปัญหาที่คาดการณ์ได้ยากคือ:

ฉันต้องสามารถเรียก exe บนระบบที่มี commandline args (โทรศัพท์ sip)

ทำให้ SL มีปัญหา

มีการกระจายฐานผู้ใช้และฉันต้องการ จำกัด ทราฟฟิกที่ข้ามสายมากที่สุดเท่าที่จะทำได้และหลีกเลี่ยงปัญหาที่เกิดขึ้นพร้อมกันที่น่ารังเกียจ

ฉันเห็นว่านี่เป็นปัญหาโดยใช้ WPF

การใช้งานซอฟแวร์ / ปรับปรุงจะต้องมีการตายง่าย ผู้ใช้บางรายไม่มีความรู้ด้านเทคนิคสูง (ดู: อายุ 70 ​​ปีบนคอมพิวเตอร์เป็นครั้งแรก)

นี่ไม่ใช่ปัญหาใหญ่ในขณะนี้ด้วยแอพ ClickOnce ที่เรากำลังแทนที่และฉันสามารถควบคุมเครื่องที่ใช้งานได้ อย่างไรก็ตามผู้ใช้ก็ไม่จำเป็นต้องคลิกปุ่ม "ติดตั้ง" ของ clickonce ฉันไม่ทราบวิธีจัดการกับ Silverlight OOB

บริษัท กำลังวางแผนที่จะขยายตัวอย่างหนักใน 12 เดือนดังนั้นการติดตั้งฮาร์ดแวร์ควรรวดเร็ว / ง่ายดาย แนวคิดคือการเชื่อมต่ออินเทอร์เน็ตในสถานที่ใหม่เชื่อมต่อคอมพิวเตอร์บางเครื่องและสามารถทำงานได้โดยไม่จำเป็นต้องมีคนไอทีหรือการตั้งค่าเซิร์ฟเวอร์โดยเฉพาะ

ทำให้ SL น่าสนใจ

การรวมเข้ากับบริการอื่น ๆ (ซอฟต์แวร์ทางการเงินเซิร์ฟเวอร์ asterix) ไม่ได้เป็นเป้าหมายทันที แต่เป็นเป้าหมายในที่สุดที่จะเป็นส่วนหนึ่งของระบบ สิ่งนี้ทำให้ง่ายขึ้น / มีประสิทธิภาพมากขึ้นหากมีการตั้งค่าบริการเดียวเพื่อรวมเข้ากับบริการรองเหล่านั้นและไม่ต้องถ่ายโอนข้อมูลทั้งหมดผ่านสาย

ทำให้ SL น่าสนใจ

การสร้าง 'รุ่น' หลายรายการอยู่นอกหน้าต่าง ฉันไม่ทราบว่าการบำรุงรักษารุ่น Silverlight + Silverlight เป็นอย่างไร (หากมีปัญหาใด ๆ )

อาจทำให้ WPF เป็นตัวเลือกที่ดีกว่า

TL; DR: จากจุดได้เปรียบของฉันแอป Silverlight เหมาะสมที่สุดสำหรับผู้ใช้ 90% - อีก 10% ไม่สามารถใช้งานได้เพราะพวกเขาจำเป็นต้องเรียกใช้ exe Silverlight OOB อาจเป็นมิดเดิลแวร์ที่มีความสุข แต่ฉันไม่รู้ในตอนนี้ว่าแบบจำลองการดำเนินการสำหรับมันเป็นอย่างไร รู้ว่าการปรับใช้ / อัปเดตทำงานอย่างไร


ทำไมคุณต้องการแทนที่แอปพลิเคชัน ClickOnce ตั้งแต่แรก ClickOnce มีตัวเลือกให้ตรวจสอบและดาวน์โหลดการอัปเดตที่มีอยู่เมื่อเริ่มต้นแอปพลิเคชันโดยอัตโนมัติ ฉันได้ทำเช่นนั้นดูreplayer.codeplex.com
Marcel

คำตอบ:


6

เป็นปัญหาที่น่าสนใจมาก คุณลืมที่จะพูดถึงว่าคุณสามารถมีแอปพลิเคชันที่เชื่อถือได้แบบเต็มของ Silverlight ตั้งแต่ SL4 ดังนั้นหากคุณคิดว่า WPF คุณอาจต้องการพิจารณามันแทน มันจะต้องติดตั้ง (ClickOnce) แต่ดูเหมือนว่าคุณจะย้ายออกไปจากที่

ฉันยังไม่ได้ทำอะไรกับ OOB แต่ฉันค่อนข้างแน่ใจว่าไบนารีเดียวกันสามารถใช้ได้ทั้งใน broswer และเบราว์เซอร์เนื่องจากเป็นการตั้งค่าโครงการแทนที่จะเป็นเป้าหมายการสร้างแยกต่างหาก

"เปิดใช้งานแอปพลิเคชันที่รันอยู่นอกเบราว์เซอร์"

บนแท็บ Silverlight ของโครงการ Silverlight

ดังนั้นจึงไม่มีปัญหาการบำรุงรักษาแยกต่างหาก

คุณสามารถสร้างรหัสจำนวนพอใช้ลงในเว็บแอปพลิเคชันที่โฮสต์แอป Silverlight และสื่อสารโดยใช้ WCF RIA Services - อีกครั้งคุณต้องไปกับ. NET 4 และ SL 4 เพื่อรับรุ่น 1.0 .NET 3.5 และ SL 4 รองรับเฉพาะบริการ WCF RIA เบต้า สิ่งนี้จะลดขนาดของการดาวน์โหลดและ b) จำนวนรหัสที่จะต้องเรียกใช้งานบนไคลเอ็นต์ แต่จะเพิ่มปริมาณการใช้เครือข่าย

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

"ลดขนาด XAP โดยใช้การแคชไลบรารีแอปพลิเคชัน"

ตัวเลือก

หากคุณมีไฟล์ "extmap" ที่จะไปพร้อมกับ dll ที่ภายนอก (บุคคลที่สามหรือ. NET) หมายความว่าพวกเขาได้รับการรวมเป็นไฟล์ zip และดาวน์โหลดแยกต่างหากเพื่อใช้ร่วมกันในไฟล์ xap ทั้งหมดในโครงการของคุณ สิ่งนี้จะช่วยให้ไฟล์ xap แต่ละไฟล์มีขนาดเล็กที่สุดและช่วยให้มั่นใจว่าคุณมีไฟล์ dll อื่น ๆ เหล่านี้บนเครื่องไคลเอ็นต์


1
+1: ขอบคุณสำหรับการป้อนข้อมูลของคุณ @ChrisF ฉันแค่หวังว่าฉันจะรู้จัก IRL ของคุณเพื่อที่ฉันจะได้เลือก
Steven Evers

2

การวิเคราะห์ของคุณดีมาก

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


แอพส่วนใหญ่เป็นแอพพลิเคชั่นที่มีข้อยกเว้นไม่จำเป็นต้องโทรหาโทรศัพท์ SIP ผ่าน exe + args ดังนั้นฉันไม่คิดว่าฉันจะพลาดส่วนเฟรมเวิร์กที่ขาดหายไป
Steven Evers

2

เพียงสองสามสิ่งที่รวดเร็ว:

การปรับใช้และ "รหัสฝั่งเซิร์ฟเวอร์": แอป Silverlight เป็นแอปฝั่งไคลเอ็นต์ธรรมดาและเรียบง่าย อย่าให้ความจริงที่ว่ามันถูกส่งผ่านเบราว์เซอร์ทำให้คุณสับสน - เมื่อคุณเรียกใช้แอพ SL ในเบราว์เซอร์คุณกำลังดาวน์โหลดแอสเซมบลีสำหรับแอปนั้นในแพ็คเกจซิปแตกไฟล์และเรียกใช้งานโดยใช้ปลั๊กอิน Silverlight ด้วยตัวเองไม่มีความคิดของ "รหัสฝั่งเซิร์ฟเวอร์" - หากคุณต้องการให้รหัสทำงานบนเซิร์ฟเวอร์ระยะไกลให้เขียนบริการ WCF

การอัปเดตแอป: นี่เป็นสถานการณ์ทั่วไปสำหรับแอป OOB และ SL มีการสนับสนุนในตัว Google เพื่อรับ CheckAndDownloadUpdateAsync

แก้ไข: ลืมพูดถึง - การติดตั้งแอปพลิเคชันเสร็จจากภายในแอปพลิเคชัน ตามค่าเริ่มต้นแอพ SL ที่ติดตั้งได้จะมีเมนูบริบทเพื่อติดตั้ง อย่างไรก็ตามการติดตั้งสามารถทำได้โดยทางโปรแกรมเพื่อตอบสนองต่อผู้ใช้คลิกที่ปุ่ม สถานะการติดตั้งยังสามารถตรวจพบโดยทางโปรแกรมดังนั้นสิ่งที่ฉันเห็นแอพ SL บางตัวที่มีจุดประสงค์เพื่อใช้งาน OOB จะตรวจพบก่อนว่าติดตั้งไว้หรือไม่ ถ้าเป็นเช่นนั้นเรียกใช้แอป หากไม่แสดงเพียงหน้าจอสแปลชที่มีปุ่มติดตั้งแอพ

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