2010-10-23 54 views
10

Tôi muốn bắt đầu một dự án mới sẽ sử dụng rộng rãi các plugin. Tôi biết rằng cả Eclipse và Netbeans đều có Nền tảng khách phong phú tương ứng, cả hai đều có điểm mạnh và điểm yếu tương ứng.Netbeans RCP và Eclipse RCP

Tôi muốn một số nhận xét về cộng đồng Stack Overflow muốn.

Ngoài ra, và quan trọng nhất, mức độ dễ dàng với các nền tảng tương ứng để viết plugin cho các ứng dụng hiện có. Ví dụ: nếu tôi hoàn tất đơn đăng ký của mình và muốn cho phép bên thứ ba mở rộng ứng dụng bằng các plugin của riêng họ thì mỗi nền tảng này cung cấp chức năng như thế nào cho điều này? Họ có cần nguồn của tôi để làm điều đó hay làm những nền tảng này cung cấp các API plugin để các bên thứ ba có thể mã hóa?

Trả lời

6

Tôi muốn một số ý kiến ​​mà trên đó các cộng đồng Stack Overflow thích.

Tôi dựa vào ưu tiên của mình đối với RCP Eclipse, chủ yếu là vì tôi vẫn nghĩ rằng bản thân IDE là tốt nhất ngay bây giờ. Eclipse RCP cũng trưởng thành hơn và có nhiều sách và tài liệu hơn trên web. Netbeans RCP là hơi phía sau với chỉ ba cuốn sách tôi có thể tìm thấy trên Amazon.com liên quan đến nền tảng này.

Tôi cũng rất háo hức để xem nền tảng phát triển với e4 dự án của mình mà sẽ đơn giản hóa rất nhiều thứ (từ dependency injection để UI tùy biến)

Ngoài ra, và quan trọng nhất, làm thế nào dễ dàng với các nền tảng tương ứng để viết các plugin cho các ứng dụng hiện có. Ví dụ: nếu tôi hoàn thành đơn đăng ký của mình và muốn cho phép các bên thứ ba mở rộng ứng dụng bằng các plugin của riêng họ thì mỗi nền tảng này cung cấp chức năng như thế nào cho điều này? Họ có cần nguồn của tôi để làm điều đó hay làm những nền tảng này cung cấp API plugin để các bên thứ ba có thể mã hóa?

Tôi có thể tưởng tượng rằng câu trả lời cho câu hỏi này sẽ không thực sự thỏa mãn trong khi cả hai nền tảng được thiết kế để có thể mở rộng. Họ là khá bằng trong bộ phận này.

Điều quan trọng nhất là thiết kế ứng dụng của bạn để có thể mở rộng được. Tức là, cung cấp các điểm mở rộng. Bạn không phải cung cấp mã nguồn cho điều đó nhưng bạn có thể ghi lại các điểm mở rộng. Ngoài ra, trong trường hợp bạn cần cung cấp giao diện, bạn chỉ có thể cung cấp javadoc không có nguồn thực.

Tôi lặp lại quan điểm của mình, việc thiết kế ứng dụng bằng RCP không có nghĩa là ứng dụng của bạn sẽ tự động được mở rộng. Bạn cũng phải thiết kế ứng dụng của bạn để được như vậy. Điều này sẽ không dễ dàng khi bạn tìm hiểu nền tảng này lần đầu tiên nhưng cuối cùng bạn sẽ tìm hiểu về nó từ kinh nghiệm.

+1

Tôi không đồng ý. Bây giờ tôi đã dành nửa năm để phát triển một ứng dụng dựa trên RCP4. IMHO toàn bộ hệ sinh thái Eclipse là một mớ hỗn độn. Tài liệu bị lỗi. Nếu bạn tìm kiếm trên mạng, nó hoàn toàn không thể phân biệt được, nếu nó là công cụ RCP3 lỗi thời hay không. Các kênh IRC đã chết. Và cuối cùng nếu bạn nhìn vào mã để tìm câu trả lời: Tôi chưa bao giờ thấy mã được thiết kế và tài liệu quá tệ! Tôi không thể biết liệu Netbeans RCP có tốt hơn không. IMHO Làm cho giao diện người dùng của bạn trở nên tự nhiên và loại bỏ toàn bộ khung công tác của Eclipse. – Weltraumschaf

3

(Lưu ý: Tôi không nói cho cộng đồng ở đây;))
Hai sự khác biệt lớn giữa Netbeans và Eclipse RCP là:

  • OSGi (Netbeans 6.9 là chỉ bắt đầu để hỗ trợ nó): nó là designed to support extensions
  • Swing vs SWT (có thể bạn lợi ích ứng dụng từ giao diện bản địa hỗ trợ bởi SWT)

Một yếu tố khác, vì bạn có thể read in this blog postRAP (Rich Ajax Platform), có thể giúp triển khai ứng dụng của bạn trên nhiều nền tảng dựa trên một mã nguồn. Nhưng điều đó có thể không làm bạn lo lắng.

Tích hợp maven khá tốt từ cả hai phía (xem bài viết trên Hello World Netbeans-RCP-Maven), nhưng tích hợp Maven3-Tycho chủ yếu được phát triển trên Eclipse.
Một lần nữa, bạn có thể không cần những tính năng maven mới (hoặc bạn có thể sử dụng hệ thống quản lí xây dựng khác hoàn toàn, giống như Ivy hay Graddle)

+0

Cảm ơn bạn đã trả lời. Tôi nhận thức được sự khác biệt được đề cập giữa hai kiến ​​trúc. Những gì tôi thực sự muốn biết là dễ dàng như thế nào (cho cả hai riêng biệt), để viết các plugin "bên ngoài" của môi trường ứng dụng. Ví dụ, nếu tôi hoàn thành các ứng dụng, và gửi nó, làm thế nào nó là dễ dàng cho người khác để viết plugin cho nó. –

+0

@Nico: đó là lý do tại sao tôi đã đề cập đến liên kết tới http://www.nuxeo.org/static/book-draft/osgi2.html: OSGi được thiết kế để tạo điều kiện cho tiện ích mở rộng. Và tôi nhận ra rằng bạn đã biết rất nhiều về hai môi trường đó;) Nhưng tôi phải * cũng * trả lời cho người tìm kiếm goggle thường xuyên sẽ vấp phải câu hỏi này, vì thế chi tiết về sự khác biệt chính giữa hai mô hình. – VonC

1

Cân nhắc xem các plugin của bạn có thực sự cần kiến ​​trúc phức tạp như nhật thực RCP hoặc NetBeans cung cấp hay không. Plugin cho RCP hoặc NetBeans chỉ có thể được tạo bởi Nhà phát triển Java với mạnh mẽ trải nghiệm RCP/NetBeans. Hãy lưu ý rằng bạn có thể làm (rất dễ dàng) ứng dụng RCP mà không phải là pluggable cả. Trong một số trường hợp tốt hơn là viết cho riêng bạn, có thể kém linh hoạt hơn nhưng thân thiện hơn cách để đính kèm các plugin mới. Bạn thậm chí có thể làm một số pháp sư cho họ.

+0

Bạn đã kiểm tra ngày của bài đăng chưa? Dù sao, cảm ơn cho câu trả lời, tôi quyết định đi với Java Plugin Plugin đơn giản, hoạt động hoàn hảo. –

+0

Tôi phải bỏ lỡ điều đó. Cảm ơn bạn đã thông tin về JSPF, chưa bao giờ nghe nói về nó. –

Các vấn đề liên quan