cj <cj@nospam.nospam> wrote in
news:#4UIsZBFIHA.5160@TK2MSFTNGP05.phx.gbl:
[quoted text, click to view] >> Well in this case a inmediate COM interface wil not solve the problem
>> as COM creates a new instance in the past ( VB6 ) you could create
>> ACTIVEX executables with VB6 in apartment threaded state so 1
>> instance could server many clients since .Net this is not possible
>> annymore with COM , every .Net COM instance is actually a new
>> instance of your component .
>
> This was my fear, however I can write a vb program that will use an
> already running instance of Excel and do things in it. How does excel
> allow this?
Through it's COM interface:
http://en.wikipedia.org/wiki/Component_Object_Model [quoted text, click to view] >> What can you do to solve this :
>>
>> You could make your app a service and control it with the service
>> controler or through a database
>> You could create your app as a singletong remoting object hosted in
>> a
>> remoting server
>> You could use WCF ( requires framework 3.0 )
>
> Your loosing me here except that I know WCF is supposed to be the
> replacement for Web Services.
What Michel meant was to expose your application as a network app - this
allowing external applications to make network calls... either through
WCF, webservices, or another channel. However, if the applications which
need to talk to your app are COM, this may not be the best choice since
COM/ActiveX don't really interact with newer technology too well.
[quoted text, click to view] >> Ofcourse for all options you could write a COM dll that acts as a
>> wrapper to the actuall interface , this for legacy clients
>
> ??????
..NET has the ability to expose your application/library/etc via a COM
interop layer thus allowing legacy clients to talk to the application.
The machine running the app still needs to have .NET installed, but
legacy applications can use COM to interface with the app.
http://www.codeproject.com/dotnet/nettocom.asp Unfortunately COM isn't something straightforward to do ... and seeing
you don't know much about .NET - this maybe out of your league? You may
want to try exposing a simpiler app first (i.e. a hello world DLL), then
move your way up to exposing your current application.