Pasando información entre aplicaciones en C #

Todos. En primer lugar soy consciente de la pregunta.Enviar datos a .exe desde dllSin embargo, las respuestas me dejan muchos extremos abiertos y, como no tengo experiencia con lo que estoy intentando, siento que se justifica una nueva pregunta.

Tengo un C # existenteTodos los WinForms aquí] aplicación que se basa en gran medida en SQL. Se nos ha pedido (a los clientes) que proporcionemos un Editor de SQL y una biblioteca que puedan usarse para desarrollar y probar SQL, pero que también se puedan usar para pegar directamente en la aplicación principal. El nuevo SQLEditor es una aplicación multihebra que analiza y ejecuta TSQL. Ahora tengo algunas cosas que considerar; ¿Cuál es la mejor manera de lanzar esta segunda aplicación desde la aplicación principal?

Convierta la segunda aplicación en una DLL y cárguela en el proyecto principal, llame a la segunda aplicación como un nuevo formulario (SqlEditor sqlEd = new SqlEditor() etc.)? ¿Cuáles son las implicaciones en términos de bombardeo de hilos que necesitaría?[STAThread] - ya que quiero que las dos aplicaciones multiproceso estén disponibles y activas al mismo tiempo.

¿Para iniciar como un .exe separado de la aplicación principal?

Dependiendo de su consejo; en cualquiera de los casos anteriores, ¿cuál es la mejor forma en que puedo pasar información a la aplicación principal desde un evento de clic en la segunda aplicación mientras todavía están en ejecución y activos [WCF,ApplicationDomains etc.]? Sería elPatrón de diseño del observador Ven a jugar aquí?

Para hacer esta pregunta un poco más atractiva, aquí está el Editor de SQL:

Planeo tener un botón que vuelva a pegar el SQL seleccionado en la aplicación principal.

También soy consciente de que hay varias preguntas aquí, por las que me disculpo. Muchas gracias por tu tiempo.

Respuestas a la pregunta(3)

Su respuesta a la pregunta