Passando informações entre aplicativos em c #

Todos. Em primeiro lugar, estou ciente da questãoEnviar dados de volta para .exe da dllNo entanto, as respostas lá deixam muitos fins em aberto para mim e, como não tenho experiência do que estou tentando, sinto que uma nova pergunta é justificada.

Eu tenho um c # existente [Todos os WinForms aqui] app que depende muito do SQL. Fomos solicitados (por clientes) a fornecer um editor de SQL e uma biblioteca que podem ser usados ​​para desenvolver e testar SQL, mas que também podem ser usados ​​para colar diretamente de volta no aplicativo principal. O novo SQLEditor é um aplicativo multi-threaded que analisa e executa o TSQL. Agora tenho algumas coisas a considerar; qual é a melhor maneira de lançar este segundo aplicativo a partir do aplicativo principal ::

Faça o segundo aplicativo em uma DLL e carregue no projeto principal, chame o segundo aplicativo como um novo formulário (SqlEditor sqlEd = new SqlEditor() etc)? Quais são as implicações em termos de bombardeio de fio, eu precisaria[STAThread] - como eu quero que ambos os aplicativos multithread estejam disponíveis e ativos ao mesmo tempo.

Para iniciar como um .exe separado da aplicação principal?

Dependendo de seu conselho; em qualquer um dos casos acima - qual é a melhor maneira de passar informações de volta para o aplicativo principal a partir de um evento click no segundo aplicativo enquanto elas ainda estão em execução e ativas [WCF,ApplicationDomains etc]? Será que oPadrão de design do observador entrar para jogar aqui?

Para tornar esta questão um pouco mais atraente, aqui está o Editor SQL:

Eu pretendo ter um botão que cole o SQL selecionado de volta para o aplicativo principal.

Também estou ciente de que há várias perguntas aqui - pelas quais peço desculpas. Muito obrigado pelo seu tempo.

questionAnswers(3)

yourAnswerToTheQuestion