Mamy aplikację WinForms w języku C# 3.5 (SP 1). Chcielibyśmy ograniczyć aplikację do jednego procesu w pamięci z wieloma instancjami okien. Nie szukamy podejścia MDI, ale mamy oddzielne główne formularze bez uruchamiania wielu procesów aplikacji.Ograniczanie aplikacji WinForm do jednego procesu z wieloma instancjami
Jesteśmy oceny trzy podejścia:
- Okienka Wiadomości
- COM
- WCF
Mamy przybliżone dane dla pierwszego 2 (PInvoke z Windows, Messages i nadrzędnym WinProc, Rejestru COM itp.) I korzystają ze starszych technologii.
Omówiliśmy pomysł użycia WCF z nazwanymi rurami zamiast tego i myślimy, że to może być najczystszy i najprostszy sposób na wykonanie tego zadania.
Jaki jest najczystszy, nowoczesny sposób ograniczenia aplikacji do jednego procesu z wieloma instancjami głównego formularza?
Co zrobić Com, WCF i Windows Wiadomości mają z tym wspólnego? –
Ktoś wyrzucił rejestrację pierwszej aplikacji z COM w rejestrze, a następnie zapytał, kiedy aplikacja ładuje się, aby zadzwonić do istniejącej aplikacji. Innym pomysłem było przeciążenie WinProc i PInvoke a WM_COMMAND w celu utworzenia instancji okna dialogowego. WCF utworzyłby dla nas nazwaną potokę. Przynajmniej to zostało wyrzucone. – blu
Ok, wszystko, co chcesz wiedzieć, to jak powiedzieć już działającej instancji aplikacji, aby utworzyć nowe okno podczas próby uruchomienia drugiej instancji? Komunikat okna będzie działał dobrze, ale WCF będzie bardziej wszechstronny, jeśli chodzi o interfejs, parametry, konfigurację i myślę, że byłoby czystsze. – mlessard