2009-06-05 62 views
10

我是一名剛畢業的計算機科學學士。就像今天大多數學校一樣,他們不再教導學生C或先進C++(只有C++的入門課程......帶有指針的課程)。課程中規定的標準編程語言是C#(.NET堆棧)。我想學習COM。我應該如何繼續?

就在最近,我被聘爲初級軟件開發人員。我們的代碼庫中有95%使用C++,我們的產品使用COM/DCOM。其他5%是.NET。我目前的職責是維護一個用.NET編寫的項目(ASP.NET),我不需要學習C++和其他技術YET。但我想盡快學習COM,所以我可以幫助其他項目。

所以我正在尋求這個社區的建議,關於如何去學習COM。我目前的問題如下:

  1. 是否需要閱讀? (先決條件主題)
  2. 學習COM基礎知識的好網站?
  3. A型簡易程序,真正體會到了COM的 「目的」 的(可能是一個聊天程序?)

謝謝! :)

PS:我應該將其標記爲社區維基?

+2

只要記住有一個很好的理由,爲什麼選擇COM的生產。做一個「DLL地獄」的搜索.. – RobS 2009-06-05 07:35:03

+2

只是想拋出,大多數學校不教只有MS堆棧。許多人仍然在C/C++/Java教學。 – 2009-06-05 07:36:21

+1

@Rob:是的。但今天大多數公司仍在使用COM。因此,瞭解它是一件好事。 @Bob:是的。這裏的一些大學教授Java。 – Ian 2009-06-05 07:53:21

回答

7

Don Box關於COM的書是權威性的參考。 Amazon link

小心是一個艱難的閱讀,但它涵蓋了深層的一切。請記住,正如唐所說...... COM很喜歡。

我不相信你可以找到很多的網站,COM是一個很多時間以前的最新技術,但如果你可以忘記它,相信我......它更好!

+2

我完全同意。在本書(Essential COM)中,尤其是第一章值得一讀,因爲它解釋了COM背後的概念和原因。如果你完全理解,其餘的並不那麼難...... – 2009-06-05 08:15:14

+0

我剛查過,我們的圖書館裏有這本書(它是一本舊書)! :) 謝謝! – Ian 2009-06-05 08:15:16

1

我會推薦本書ATL Internals,它可能會有點老,但它會教你COM的基本原理。正如海報評論的那樣,Don Box也不錯。

0

很明顯,但您是否訪問過microsoft site for COM?我就是這樣開始的,後來當我卡住某些東西的時候,我只是搜索了一些信息(這是很多,COM在某些時候很討厭)。我也問了很多我的同事,沒有什麼比一些巫術臉對臉的解釋更好的,你可以在代碼

2

閱讀唐盒本書爲你所能想知道的都看到了(忘記)有關COM 。

至於COM的目的:儘管C++給你(源)代碼重用,COM給你(編譯)部件重用。

9

要了解背後COM非常基本的想法,我從來沒有碰到過任何比Inside COM更好地戴爾·羅傑森。這是一本舊書,但它非常清楚地解釋了爲什麼需要COM以及它如何實現,並且您可以在亞馬遜上獲得第二手的副本。

至於唐盒書,我讀了所有的人,我認爲他們是相當他媽的可憐。 Box Neverr解釋了他描述的代碼的動機,並使用了很不切實際的例子。但我意識到這是少數意見。

8

我在圖書館上COM這些書,我建議你:

  1. 1995 - 克雷格·布羅克舍密特 - 內部OLE第2版
  2. 1998年 - 唐盒 - 基本COM
  3. 1999年 - 喬治謝潑德 - 裏面ATL
  4. 2000 - 安德魯·特羅爾森 - 開發者研討會,以COM和ATL 3.0
  5. 2006 - 克里斯托弗·塔瓦雷斯 - ATL內幕:與ATL 8,第2版工作

,如果你說你有一些.NET背景還有的

  1. 2003 - 朱利安坦普爾曼 - 與微軟的.NET

希望這有助於COM編程。

2

這裏已經提到了一些經典書籍。我還會投入Mary Kirtland設計基於組件的應用程序。

這是舊的(正如大多數標題所提及的),主要針對企業開發人員。它對COM沒有太深入的瞭解,討論了三層開發,討論了MTS(該書早於COM +)及其用途。它還談論設計數據和業務組件,並通過開發示例應用程序。

我不確定它有多老,但我記得10年前它是COM的世界的一個很好的介紹。這本書的長處在於它假定你對這個話題一無所知。它很好地將理論與實際實現在邏輯上進行了平衡。我認爲那裏也有一些ASP(經典)......所以對於所有那些聖潔的愛都跳過這一部分。 :)

我記得GUI博士有一些很棒的COM文章(例如Dr. GUI的COM的溫柔指南),但無法追蹤它們。