Tôi cần biết cách bắt đầu viết một ứng dụng dựa trên kiến trúc trình cắm thêm. Tôi có nghĩa là làm thế nào để viết một mã cơ sở và cho phép người khác phát triển ứng dụng bằng cách thêm các trình cắm thêm mà họ viết. Tôi biết rằng có một số vấn đề khi làm như vậy trong C++. hầu hết mọi người sử dụng một ngôn ngữ khác như python để thêm các trình cắm thêm vào ứng dụng C++ của họ.ứng dụng c/C++ dựa trên kiến trúc plug-in
Trả lời
Tôi nghĩ, đây không phải là câu trả lời của bạn mong đợi, nhưng bạn có thể thử kiểm tra các nguồn Rainmeter. Nó được viết bằng C++ (một số nơi có thể được thực hiện tốt hơn, để tâm trí của tôi, nhưng tổng thể nó là ok) và toàn bộ ứng dụng được thực hiện theo cách để nó chỉ xử lý các plugin.
Ngay cả API đơn giản được thực hiện qua plugin, cũng có một loạt ví dụ về plugin được đóng góp, ý tôi là, được viết bởi người khác (tôi cũng đã làm như vậy, một ngày).
Tôi nghĩ bạn thực sự có thể nghiên cứu nhiều thủ thuật mới trong phát triển dựa trên plugin bằng cách xem các ứng dụng khác.
Ngoài ra, một mẫu tốt khác là Miranda IM.
Edit: Ngoài ra, nếu tôi han cùng một công việc, tôi sẽ thực sự thêm một số python
(hoặc một cái gì đó như thế) phụ trợ để ứng dụng của tôi và sử dụng nó như là ngôn ngữ cho SDK (ví dụ, sử dụng boost::python
).
bạn có thể xác định các điểm truy cập trong ứng dụng của mình nơi ứng dụng bên ngoài có thể liên lạc được không?
giả sử bạn xác định một số cơ chế ống được đặt tên hoặc ổ cắm TCP/IP, nơi ứng dụng bên ngoài sẽ gọi API này để thao tác ứng dụng của bạn?
cho rằng bạn cần đăng ký các plugin này trong ứng dụng lõi trước khi cho phép chúng sử dụng ứng dụng của bạn. thậm chí bạn có thể thêm chứng chỉ riêng tư để xác thực nguồn gốc của plugin này (ví dụ: để ký plugin với khóa riêng tư trong đó các ứng dụng của bạn sẽ xác thực khóa công khai)
Bạn nên:
- xác định một giao diện
- tải plugin của bạn và cung cấp cho nó giao diện này
plugin của bạn sẽ có thể giao tiếp với các ứng dụng máy chủ thông qua giao diện này. Điều đó có nghĩa, bạn phải suy nghĩ cẩn thận về những gì bạn muốn plugin của bạn làm.
Có thể bạn sẽ cần phải hỗ trợ các phiên bản khác nhau của giao diện nếu ứng dụng máy chủ của bạn thay đổi và bạn thêm chức năng.
- 1. Kiến trúc "plugin" ứng dụng Web Java
- 2. Kiến trúc ứng dụng web dựa trên Akka
- 3. Ứng dụng dựa trên plugin trong C#
- 4. Phát triển kiến trúc dựa trên plugin trên đầu trang của Spring
- 5. Kiến trúc dựa trên không gian?
- 6. Kiến trúc Plugin Spring MVC
- 7. Kiến trúc Net và plugin
- 8. Kiến trúc Plugin trong PHP
- 9. Kiến trúc giống như plugin trong .NET
- 10. Kiến trúc cho một ứng dụng Sinatra dựa trên thành phần mô-đun,
- 11. Kiến trúc plugin ngôn ngữ trung lập
- 12. Kiến trúc ứng dụng ca cao trên Mac OS X
- 13. kiến trúc Plugin trong .net:. Dỡ
- 14. Kiến trúc của một ứng dụng PHP trên Amazon EC2
- 15. Kiến trúc một ứng dụng multiview trên iPhone
- 16. Sử dụng thùng chứa IoC cho kiến trúc plugin
- 17. Kiến trúc cho các ứng dụng WinForms?
- 18. Hướng dẫn Kiến trúc Ứng dụng Java
- 19. Sử dụng OTP/Erlang như là một phần của kiến trúc dựa trên thành phần của ứng dụng web
- 20. Sử dụng Ninject trong kiến trúc ứng dụng SOLID
- 21. Kiến trúc ứng dụng ASP.NET MVC "nguyên tắc"
- 22. Xây dựng Kiến trúc Plugin với Adobe AIR
- 23. Xây dựng nhiều ứng dụng SWT kiến trúc với Maven
- 24. Kiến trúc cho ứng dụng web ASP.NET mới
- 25. Kiến trúc của một ứng dụng web JavaScript đơn trang?
- 26. lời khuyên về kiến trúc các ứng dụng asp.net mvc
- 27. Chuyển đến cấp độ kiến trúc ứng dụng
- 28. Kiến trúc sắc nét cho ứng dụng Winform?
- 29. Kiến trúc một ứng dụng iPhone phức tạp?
- 30. Kiến trúc jQuery MVC
Bạn có nghĩa là các trình cắm phải được viết bằng C++ không? – xtofl
Tùy thuộc vào hệ điều hành bạn đang nhắm mục tiêu, ở một mức độ nào đó là –
có. nhưng tôi lo ngại về khả năng tương thích nhị phân giữa ứng dụng chính và trình cắm được viết bằng C++ – sepisoad