ควรใช้ RCP เมื่อใด


9

ฉันชอบเขียนแอปพลิเคชั่น GUI ขนาดเล็กโดยใช้ Java และ Swing บางอย่างเช่นไคลเอนต์สำหรับเว็บไซต์Tumblrโซเชียล

ฉันควรใช้ Eclipse RCP หรือแพลตฟอร์ม Netbeans หรือไม่

ฉันจะได้รับประโยชน์อะไรจากการใช้ทั้งสองอย่างโดยใช้การแกว่งแบบธรรมดา / SWT

แอพพลิเคชั่น RCP ต้องการการพึ่งพามากกว่าการพัฒนาโดยใช้ Swing หรือ SWT หรือไม่?

คำตอบ:


6

Deckardมีการตอบสนองที่ดีงาม ฉันต้องการเพิ่มว่ามันคุ้มค่าที่จะพิจารณาว่าโครงการนี้จะได้รับการบำรุงรักษาอย่างไร พิจารณาจำนวนเพื่อนร่วมงานของคุณ (หรือนักพัฒนาทั่วไป) ที่คุ้นเคยกับ Swing et al เทียบกับจำนวนที่คุ้นเคยกับ RCP องค์กรของฉันมีอาการปวดหัวเมื่อเราต้องการปัดฝุ่นแอปพลิเคชัน RCP เก่าออก ปรากฎว่าคนส่วนใหญ่ที่เกี่ยวข้องกับการออกแบบโครงการได้ออกจาก บริษัท หรือย้ายไปสู่บทบาทที่ไม่ใช่การพัฒนา ความเชี่ยวชาญของเราในสวิงมากขึ้นทำให้สิ่งนี้ยากกว่าที่พวกเขาต้องการ นอกจากนี้เรายังมีความปรารถนาที่จะรวมส่วนต่าง ๆ ของมันเข้ากับแอปพลิเคชัน Swing-based ที่แยกต่างหากและความจริงที่ว่าแอปเก่าเป็นแอปพลิเคชัน RCP ทำให้สิ่งต่าง ๆ ยากขึ้น

ฉันไม่ได้บอกว่าคุณไม่ควรสร้างแอป RCP แต่นี่คือสิ่งที่คุณอาจต้องพิจารณาก่อน


7

โดยพื้นฐานแล้วเมื่อคุณใช้ Swing คุณจะต้องตั้งค่าทุกอย่างด้วยตนเอง: คุณกำหนดหน้าต่างแต่ละพื้นที่และส่วนควบคุมภายในนั้นอีกครั้งที่คุณกำหนดแต่ละตัวควบคุม สำหรับทุกการควบคุมและพื้นที่ที่คุณกำหนดตัวจัดการเพื่อจัดการกับการเปลี่ยนแปลงและการกระทำของผู้ใช้ ฯลฯ คุณต้องทำเช่นนี้เพราะไม่มีอะไรจะทำงานเว้นแต่ว่าคุณจะกำหนดและดำเนินการอย่างชัดเจน

RCP อนุญาตให้ทำได้เช่นกัน แต่มาพร้อมกับส่วนประกอบระดับสูงกว่าที่ทำสิ่งต่าง ๆ มากมาย ตัวอย่างเช่นเป็นเพียงไม่กี่ขั้นตอนการกำหนดค่าเพื่อกำหนดหลายเอกสารอินเทอร์เฟซ (MDI) หรือเพื่อเพิ่มแถบเครื่องมือด้วยไอคอนที่เปิดใช้ปลั๊กอินภายนอกเมื่อคุณคลิกที่พวกเขา

เนื่องจาก RCP คือขุมพลัง Eclipse บล็อกพื้นฐานจึงมีแนวโน้มที่จะมุ่งเน้นไปที่แอพพลิเคชั่นที่มีความต้องการคล้ายกับสภาพแวดล้อมการพัฒนา: การแก้ไขข้อความในหน้าต่างทุกชนิดโดยใช้เมนู / แถบเครื่องมือ / การดำเนินงาน / อื่น ๆ

ดังนั้นหากคุณต้องการสร้างแอปพลิเคชันที่กำหนดเองขนาดเล็กที่มีสิ่งที่ไม่ได้มาตรฐานจำนวนมาก (เช่นไคลเอนต์ Twitter ที่ฉูดฉาดที่มีการควบคุมแบบกำหนดเองหรือสกินเนลได้ทุกประเภท) ไม่มีจุดประสงค์ในการใช้ RCP อันที่จริงแล้วมันจะลากปลั๊กอินขนาด 5 + ​​MB ลงในแอปพลิเคชันของคุณโดยไม่มีประโยชน์ใด ๆ

หากคุณต้องการสร้างแอปพลิเคชันที่แสดงหน้าเว็บต้องการระบบช่วยเหลือที่ครอบคลุมจำเป็นต้องทำการอัปเดตอัตโนมัติผ่านอินเทอร์เน็ตและฟังก์ชั่นแอปพลิเคชั่นเดสก์ท็อปขนาดใหญ่เช่นนั้น RCP จะเหมาะสมอย่างยิ่ง


0

ฉันเป็นวิศวกรซอฟต์แวร์ Java มืออาชีพที่มีความเชี่ยวชาญอย่างมากในทั้ง Eclipse RCP และแพลตฟอร์ม Netbeans

"ฉันควรใช้ Eclipse RCP หรือแพลตฟอร์ม Netbeans หรือไม่"

คำตอบ: มันขึ้นอยู่กับปัจจัยต่อไปนี้:

  • ความเชี่ยวชาญของคุณใน Java
  • ความพยายามในการใช้งานบางอย่างใน RCP ทั้งสอง
  • ความชัดเจนของเอกสารของแต่ละ RCP
  • รูปลักษณ์และความรู้สึกที่ต้องการที่คุณต้องการให้กับผู้ใช้ปลายทางของคุณ

นี่คือข้อดีข้อเสียของ RCP เหล่านี้แต่ละตัวตามปัจจัยที่กล่าวถึงข้างต้น:

แพลตฟอร์ม Netbeans:

ข้อดี:

  • ความชัดเจนและการจัดระเบียบของเอกสารเป็นเลิศ! แต่ชุมชนที่ใช้งานมีขนาดเล็กเมื่อเทียบกับผู้พัฒนา Eclipse RCP

จุดด้อย:

  • ต้องมีความเชี่ยวชาญอย่างมากในภาษาจาวา
  • มันต้องการวิธีเขียนโค้ดมากกว่าเมื่อเปรียบเทียบกับ Eclipse RCP เพื่อทำสิ่งเดียวกัน
  • รูปลักษณ์และความรู้สึกไม่ได้เป็นของพื้นเมือง แพลตฟอร์ม Netbeans ขึ้นอยู่กับ Swing ดังนั้นคุณจะได้รับ Java Swing Look & Feel เดียวกันในทุกแพลตฟอร์มเป้าหมาย!

The Eclipse RCP:

ข้อดี:

  • ต้องมีความรู้ Java ที่ดีและมีความรู้ที่ดีเกี่ยวกับการฉีด Dependency (ในคำอื่น ๆ ไม่จำเป็นต้องมีสิ่งกังฟู: P)!
  • รูปลักษณ์และความรู้สึกที่ได้นั้นมีถิ่นกำเนิดมากกว่าของ Netbean นั่นเป็นเพราะ Eclipse RCP ใช้ SWT (นั่นคือการต่อต้านสำหรับฉันแม้ว่า - เพียงเพราะฉันไม่สนุก SWT, personaly)

จุดด้อย:

  • ความชัดเจนและการจัดระเบียบของเอกสารไม่ดีมาก! จุดด้อย

ความชอบส่วนตัวของฉันคือแพลตฟอร์ม Netbeans เพียงเพราะฉันต้องการควบคุมสิ่งที่ฉันทำกับรหัสของฉันอย่างสมบูรณ์และเพราะฉันคิดว่า UI แบบ Swing-based นั้นเสถียรกว่า SWT (ฉันเคยมี UI บางตัวขัดข้องใน Eclipse IDE ของฉันในขณะที่ฉันกำลังเข้ารหัส: P)!

"แอปพลิเคชัน RCP ต้องการการพึ่งพามากกว่าการพัฒนาโดยใช้ Swing หรือ SWT หรือไม่"

คำตอบ: การพึ่งพาเป็นสิ่งที่ทำให้ทารก 2 คนกลิ้งไปมา ไม่เช่นนั้นจะไม่มีความจำเป็นสำหรับพวกเขาที่จะเรียกว่า RCP RCP ย่อมาจากแพลตฟอร์มไคลเอนต์ที่อุดมไปด้วยซึ่งหมายความว่าเป็นระบบนิเวศ (ชุดใหญ่ของ API) ที่ช่วยในการสร้างแอปพลิเคชัน "รวย" โดยการให้หมายถึงการทำเช่นนั้น (ผ่าน API) ;-) ดังนั้นคำตอบที่นี่คือ "ใช่ WAY DEPENDENCIES เพิ่มเติม"!

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