-
COM+ and NT Server
The clients that use my apps have Win 95 ,win 98 and some have win NT. I am wondering what they need to have to be able to run COM+. We are having support nightmares upgrading all machines with each new release of the product since we currently do not have COM+. Also, can I develop COM+ on Win NT 4.0 workstation?
-
On Win95/98, you need to install DCOM which can be download from Microsoft. You can develop COM+ on WinNT Workstation.
Regards.
-
Whats the difference between COM, COM+ and DCOM ?
-
It will take quite a while to answer that question as it dates back through history.
In a nutshell tho, DCOM is the distributed version of COM. You need to register your COM components in the DCOMCNFG utlility.
to enable your COM to be utlilised remotely in a network from a central remote location.
COM+ is a whole new context and is, more or less, an extension of COM and Microsoft Transaction Server (MTS). MTS is what is used in WinNT and COM+ in Win2K.
COM+ can be created with VB6 BUT with limited functionality. COM+ Services should be created with VC++ until the coming of VS.Net. By that time, you can create COM+ services with VB.Net (or so MS says...:))
-
Do I have to create interfaces if I were to uce DCOM or COM+ and why? I read somewhere that it is required. My problem with that is I then cannot raise events for the client app. Is there some other way to indicate progress?
-
You have got to know that at the heart of DCOM or COM+ is still a COM object
Which is why you need to have an interface (client app) to communicate and work with the COM object.
You can raise events in your client app once you declare and inform your COM object of the events you intend to raise
For eg...
In COM Object
Public Event CartonFull
Public Sub AddEgg
'your code
RaiseEvent CartonFull
End Sub
In Client App
Private WithEvents xxx as your COMObject
Public Sub xxx_CartonFull
Msgbox "Egg Carton is Full...Get another Carton"
End Sub
There is another way to generate events via the older BUT more powerful OLE Callbacks. OLE Callbacks are used before VB6...They tend to more complicated BUT gives the client more control and power. BUT for now, a simple RaiseEvent will do the trick.
-
SoftwareMaker,
From what I know of interfaces( and there are a number of posts on the subject), they do not allow you to create and raise events. You cannot declare an event in the interface class. Eample IAnimal is the interface and CDog implements IAnimal. You cannot do an Public Event Bark() in IAnimal.
In the client app if you
Dim myAnimal as IAnimal
set myAnimal = new CDog
you cannot receive events from CDog because it has to implement all procedures from IAnimal.
-
Rathtap,
Oh...when you talk about interfaces, i thot you are talking about client interfaces like a client app...you were actually referring to a COM interface with the Implements Keyword...
as you know, you cant raise events in an COM Interface object. BUT you do NOT need to create an interface for COM objects...If you want to , you raise events in the object that implements the interface object.
Anyways, altho creating an interface object is a good designing method and should be encouraged for enterprise-level apps, VB's implements keyword is not inituitive.
Wait for VB.net's Inherits Keyword and also overloading and overriding capabilities which supports full-blown true blue inheritance...BUT then VB.net is a true blue new OO language and will resemble NOTHING like the VB as you and me know it...