TE
科技回声
首页24小时热榜最新最佳问答展示工作
GitHubTwitter
首页

科技回声

基于 Next.js 构建的科技新闻平台,提供全球科技新闻和讨论内容。

GitHubTwitter

首页

首页最新最佳问答展示工作

资源链接

HackerNews API原版 HackerNewsNext.js

© 2025 科技回声. 版权所有。

COM+ Revisited

88 点作者 lowleveldesign超过 3 年前

13 条评论

davidpolberger超过 3 年前
I spent a couple of years (while working a full-time job) writing my master&#x27;s thesis on &quot;component technology&quot; -- COM, CORBA, .NET assemblies, OSGi and the COM-inspired object model developed at Ericsson and Sony Ericsson for use in cell phones. This was back in 2009.<p>I tried to make sense of how all these disparate technologies fit together. Give it a read if you like (CC-licensed):<p><a href="http:&#x2F;&#x2F;www.polberger.se&#x2F;components&#x2F;" rel="nofollow">http:&#x2F;&#x2F;www.polberger.se&#x2F;components&#x2F;</a><p><a href="http:&#x2F;&#x2F;www.polberger.se&#x2F;components&#x2F;read&#x2F;" rel="nofollow">http:&#x2F;&#x2F;www.polberger.se&#x2F;components&#x2F;read&#x2F;</a><p><a href="http:&#x2F;&#x2F;www.polberger.se&#x2F;components&#x2F;thesis.pdf" rel="nofollow">http:&#x2F;&#x2F;www.polberger.se&#x2F;components&#x2F;thesis.pdf</a>
评论 #30141501 未加载
评论 #30145480 未加载
评论 #30144285 未加载
评论 #30161715 未加载
RantyDave超过 3 年前
COM is (IMHO) one of the great underrated technologies. Registering all the classes, interfaces etc. in the registry - not so much. But IDL&#x27;s, versioned interfaces etc. etc. are all reinvented every five years or so. And it&#x27;s fast as hell.<p>DCOM was awful.
评论 #30141736 未加载
评论 #30144259 未加载
评论 #30141417 未加载
评论 #30142400 未加载
评论 #30141140 未加载
评论 #30165267 未加载
评论 #30141181 未加载
0x0超过 3 年前
I always wondered if COM+, the new version of COM, was originally going to be named COM2 ... until somebody tried to create a new visual studio project in a directory named COM2...
评论 #30142976 未加载
mwattsun超过 3 年前
I read about &quot;Software ICs&quot; in Byte Magazine in the 80&#x27;s. I later thought COM was a decent try. The implementation and tooling around it was always problematic. People do buy software components off the shelf now, like special graphing controls in Excel for example, so it continues to be a useful paradigm. The Software IC concept got coopted by OOP, which isn&#x27;t the way I first understood it.<p>Graham Lee blog post about Brad Cox&#x27;s Object-Oriented Programming:<p><i>In 1714, Gottfried Leibniz published La Monadologie, in which he proposed that at the fundamental level, objects are made of indivisible entities called Monads. You can’t see inside a monad, it has an internal state that controls its actions and passions. Monads can be created or destroyed atomically, but cannot be partially built or partially annihilated because they are a “simple substance without parts”.</i><p><i>Cox, on the other hand, opens with the story of Eli Whitney and the industrial revolution. For Cox, the industrial revolution is not primarily about machinery and the harnessing of steam and coal power. It’s about the replacement of artisanal, cottage manufacture with scaled-up industrial processes that depend on well-specified interfaces between standardized, interchangeable parts.</i><p><a href="https:&#x2F;&#x2F;web.archive.org&#x2F;web&#x2F;20191220204822&#x2F;https:&#x2F;&#x2F;deprogrammaticaipsum.com&#x2F;2019&#x2F;12&#x2F;02&#x2F;brad-cox&#x2F;" rel="nofollow">https:&#x2F;&#x2F;web.archive.org&#x2F;web&#x2F;20191220204822&#x2F;https:&#x2F;&#x2F;deprogram...</a><p><a href="https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=21833331" rel="nofollow">https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=21833331</a>
评论 #30145516 未加载
Const-me超过 3 年前
I like many parts of COM, but I believe that example mostly demonstrates bad parts, with IDL, registrations, and over-engineered support libraries.<p>There&#x27;s nothing wrong with exporting factory functions from DLLs. Microsoft does it all the time, APIs like Direct3D, DirectDraw and Media Foundation don&#x27;t come with type libraries are they aren&#x27;t registered anywhere.<p>Speaking about support libraries, I once made my own: <a href="https:&#x2F;&#x2F;github.com&#x2F;Const-me&#x2F;ComLightInterop&#x2F;tree&#x2F;master&#x2F;ComLightLib" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;Const-me&#x2F;ComLightInterop&#x2F;tree&#x2F;master&#x2F;ComL...</a> Compare examples from that article with this one: <a href="https:&#x2F;&#x2F;github.com&#x2F;Const-me&#x2F;ComLightInterop&#x2F;blob&#x2F;master&#x2F;Demos&#x2F;HelloWorldCpp&#x2F;HelloWorld.cpp" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;Const-me&#x2F;ComLightInterop&#x2F;blob&#x2F;master&#x2F;Demo...</a> That source file is the complete DLL which implements a minimalistic COM object.
评论 #30141776 未加载
评论 #30145695 未加载
jbandela1超过 3 年前
A few years back, I wanted to see what you could do if you really used modern C++ with the COM principles. This is what I came up with:<p><a href="https:&#x2F;&#x2F;github.com&#x2F;jbandela&#x2F;cppcomponents" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;jbandela&#x2F;cppcomponents</a><p>* There is no code generation or IDL files<p>* Components implement IUnknown<p>* You can have Constructors and static functions for C++ classes.<p>* You can take std::vector, std::string, std::tuple as parameters and return them (even if you are using different compilers and standard libraries)<p>* Cross-platform
评论 #30145894 未加载
userbinator超过 3 年前
COM has always felt like one of those &quot;OOP and architecture astronautism gone off the deep end&quot; technologies. A ton of boilerplate and indirection to do very little, with the associated bloat at both development and runtime. All the times I&#x27;ve used it, it was not because I wanted to, but because I was forced to.<p>Here&#x27;s a fun contrast&#x2F;example:<p><a href="https:&#x2F;&#x2F;docs.microsoft.com&#x2F;en-us&#x2F;windows&#x2F;win32&#x2F;dlgbox&#x2F;using-common-dialog-boxes#opening-a-file" rel="nofollow">https:&#x2F;&#x2F;docs.microsoft.com&#x2F;en-us&#x2F;windows&#x2F;win32&#x2F;dlgbox&#x2F;using-...</a><p><a href="https:&#x2F;&#x2F;docs.microsoft.com&#x2F;en-us&#x2F;windows&#x2F;win32&#x2F;shell&#x2F;common-file-dialog#basic-usage" rel="nofollow">https:&#x2F;&#x2F;docs.microsoft.com&#x2F;en-us&#x2F;windows&#x2F;win32&#x2F;shell&#x2F;common-...</a><p>Non-COM: fill in a structure and call a function.<p>COM: make a dozen (doubly-)indirect function calls.
评论 #30144751 未加载
评论 #30145443 未加载
评论 #30147578 未加载
评论 #30144404 未加载
MichaelMoser123超过 3 年前
Wow, haven&#x27;t heard about COM&#x2F;DCOM for over twenty years (though i had some flashbacks, when starting with gRPC). I remember they had an evangelist named Don Box, i think he even had a tattoo on his body that had to do with COM; Now wikipedia says that he worked at microsoft until last year, i wonder what he is doing now. <a href="https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Don_Box" rel="nofollow">https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Don_Box</a><p>I mean, if one would tattoo some software architecture, then one would have to change the tattoo every ten years, as the subject inevitably becomes obsolete; bother!<p>well, almost everything becomes obsolete, with the exception of Unix; that fact could serve as an indication for the alien origin of this operating system ;-)<p>Another flashback from working with Windows: the MSDN CDs had the best documentation that i ever saw; no one comes even close...
评论 #30145673 未加载
tezheng超过 3 年前
I noticed IGameObject in the post. I&#x27;ve been playing with both Unity3D and COM for several years, and kept thinking about the similarities. COM has been considered bad constantly, but base on the popularity of Unity3D, IMHO COM theory shows its advantages in building an open system(plugin-friendly).
hbarka超过 3 年前
I can recall how easy it was to write and compile a COM dll and have it running instantly in IIS. Everyone running Windows Server 2nnx had IIS. It was a time to be alive.
pronlover723超过 3 年前
I remember using the OLE COM viewer and seeing all the 1000s of APIs I could call. Some of them even had embedded docs. I always thought &quot;wow! if I only I had an idea I could use all these apps and libraries together&quot;.... but I never did<p><a href="https:&#x2F;&#x2F;flylib.com&#x2F;books&#x2F;en&#x2F;3.294.1.109&#x2F;1&#x2F;" rel="nofollow">https:&#x2F;&#x2F;flylib.com&#x2F;books&#x2F;en&#x2F;3.294.1.109&#x2F;1&#x2F;</a>
mandarax8超过 3 年前
Do people still code like this?
评论 #30141004 未加载
评论 #30141810 未加载
jmull超过 3 年前
Seems crazy to me to use WIL instead of ATL as your C++ COM wrapper.
评论 #30140428 未加载
评论 #30140274 未加载