ActiveX bygger på COM specifikationerne. Alt hvad du laver i VB er COM. Men alligevel understøtter VB objekter ikke alt det fede som ActiveX/COM tilbyder (Persistance, Multi-threaded Apartments etc...). Derfor mener jeg at hvis man vil lave COM/AcitveX komponenter til hvilken som helst brug, skal man lære COM. At kunne VB er bestemt ikke nok, specielt ikke hvis man dummer og begynder at ramme ind i de små irriterende og mærkelige fejl. Desværre er den eneste måde at lære COM rigtigt på, er at programmere et COM objekt op fra bunden, hvilket betyder C++. Det er noget der tager rigtig lang tid, især hvis man ikke C++ ordentligt og forstår hvad compileren gøre i baggrunden. Men det er jo også sjovt...:=)...
skovlunde: vb 6 kan altså sagtens lave multi threaded/apartment threaded com objekter, har gjort det flere gange.
ulrik: hvis du ikke er seriøst god til C++ så glem com objekter i c++ og start i det små med at lave com objekter i VB, de skalerer fint og det er langt nemmere at kode dem i vb. Vil du lære at lave com objekter i c++ så vil jeg anbefale at du sætter dig ind i com specifikationerne og ATL og selvfølgelig c++
hvis du vil lave com objekter i vb, så kan jeg anbefale "programming professionel com objects in Visual basic" fra Microsoft press.
thomas>> Jo jo... Out-of-process COM objekter kan du lave som MT objekter i VB - ingen tvivl. Men desværre ikke in-proc som MT objekter. Endvidere har man ret dårlige synkroniserings muligheder med VB. Ligesom MT objekter i VB har en dårlig IDispatch tabel der gør dem ekstrem langsomme og dårlige til DCOM (I forhold til andet).
Men ligegyldigt hvilket sprog objekterne laves i, så kræver det stadig en konkret viden om COM før du kan stemple det som kvalitet. Jeg ser til stadighed VB folk der laver deres interface design direkte i klassen og ikke som et type library i en IDL fil. Enhver der gør det har ikke forstået COM og slet ikke grunden til COM.
-og jo VB COM ting skalerer jo ganske udmærket (det er jo også MSVC++ compileren der bruges), og 75% af mine objekter er også kodet i VB, men skal man under huden i COM eller lave 'specielle' ting såsom at gå på OLE DB kan VB desværre ikke være med.
skovlunde>> klart vb com objekter kan køre in process, desværre er det lidt svært at sende dig et link til en side i msdn library fra visual studio, men søg på det her i msdn library:
thomas>> Jeg har sikkert læst den... Det problem jeg oftes har med VB og COM er enten ved MT hvor der hastighedsmæssigt er behov for flere tråde - blandt i nætværksting og kraftige beregninger. Endvidere har jeg lavet en del Office komponenter som skulle integreres i de forskellige Office ting, her kunne VB heller ikke være, da det kræver implementering af IPersistance interfacet som er et 'custom interface' - ikke understøttet af VB. Det jeg egentlig vil sige er at til udvikling af komponenter til ASP er VB nok det eneste sprog man med økonomisk og tidsmæssig fornuft kan anvende. Især hvis det er MTS objekter som skal være Apartment trådet. Men fremtiden ser ikke alt for godt ud på dette område, især ikke med COM+. Her falder VB endnu mere igennem og man kan jo så håbe på at VB7 trækker det lidt op. Men stadig et grundlæggende kendskab til COM er essentielt, ligegyldigt hvilket argument du stiller op ...:=)
127144145281>> Ja, vi har set MS lyset...:=) - og jo jeg har en hjemmeside, men den koster 9,95$ om måneden..:)
s> men noget jeg ikke helt forstår er at du har valgt at lave din lille kommentar som et svar...
skovlunde, laver du ikke lige et svar, så får du pointene!
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.