Chúng tôi có một ứng dụng WinForms trong C# 3.5 (SP 1). Chúng tôi muốn hạn chế các ứng dụng cho một quá trình trong bộ nhớ với nhiều trường hợp cửa sổ. Chúng tôi không tìm kiếm một cách tiếp cận MDI, nhưng để có các cá thể biểu mẫu chính riêng biệt mà không cần khởi chạy nhiều quy trình ứng dụng.Hạn chế ứng dụng WinForm cho một quá trình với nhiều phiên bản
Chúng tôi đang đánh giá ba phương pháp:
- của Windows Messages
- COM
- WCF
Chúng tôi có các chi tiết thô cho người đầu tiên 2 (PInvoke với Windows Messages và winproc trọng, COM Registry, vv) và họ sử dụng các công nghệ cũ hơn.
Chúng tôi đã thảo luận ý tưởng sử dụng WCF với các đường ống được đặt tên thay vào đó và nghĩ rằng đây có thể là cách sạch nhất và dễ dàng nhất để hoàn thành nhiệm vụ trong tầm tay.
Cách sạch nhất, hiện đại để hạn chế ứng dụng cho một quy trình với nhiều phiên bản biểu mẫu chính là gì?
gì COM, WCF và Windows Messages phải làm gì với điều này? –
Ai đó đã đăng xuất ứng dụng đầu tiên với COM trong sổ đăng ký và sau đó truy vấn khi ứng dụng tải để gọi đến ứng dụng hiện có. Ý tưởng khác là quá tải WinProc và PInvoke một WM_COMMAND để tạo ra thể hiện của hộp thoại. WCF sẽ tạo ra một ống tên cho chúng tôi. Ít nhất đó là những gì đã được ném ra khỏi đó. – blu
Ok, tất cả những gì bạn muốn biết là làm cách nào để báo cho ứng dụng đã chạy của ứng dụng tạo một cửa sổ mới khi bạn cố chạy một cá thể thứ hai? Một thông báo cửa sổ sẽ hoạt động tốt, nhưng WCF sẽ linh hoạt hơn, đối với giao diện, tham số, cấu hình và tôi nghĩ nó sẽ sạch hơn. – mlessard