×

Loading...
Ad by
  • 最优利率和cashback可以申请特批,好信用好收入offer更好。请点链接扫码加微信咨询,Scotiabank -- Nick Zhang 6478812600。
Ad by
  • 最优利率和cashback可以申请特批,好信用好收入offer更好。请点链接扫码加微信咨询,Scotiabank -- Nick Zhang 6478812600。

实在不想打消你们学技术的积极性. 如果我说的话有些刺耳, 请多包涵.

本文发表在 rolia.net 枫下论坛1. 如果想学WINDOWS平台下编程, 最好直接进入.NET. 否则除非是工作中需要. 学旧知识有助于了解历史, 以及可以让人看起来不是新手, 仅此而已.

2. 不要把METHODOLOGY或程序架构(FRAMEWORK)和具体技术混为一谈. 有些时候架构会受技术细节影响, 但它们根本上是独立于语言和平台的. 比如说, 模块化, 不是说非要某种语言才能实现, 难道用C写不出COMPONENT吗?难道C++程序一定是OO结构吗?

3. 如上所述, 不要把N-tier扯进来, 也不要把N-tier和STANDALONE程序对立起来. 同样地, 也不要把WINDOWS结构和你的程序的结构混为一谈. 难道你是要写一个OLE SERVER来替换掉WINDOWS里的一个模块吗?才非要用COM?

4. 不要一想到"TIER", 就一定是网络上的应用. STANDALONE程序同样可以应用"层"的概念来设计它的ARCHITECTURE. 目标是降低模块之间的偶合性. 不要立即和具体技术联系起来. 要去找设计方法.

5. 直接生成和调用COM, 就有许多前处理和后处理(PLUMBING). .NET封装了这些麻烦, 这是.NET可以大幅度提高PRODUCTIVITY(生产效率)的原因. 同时.NET支持多语言杂交. 微软的出发点是现有程序员可以用他们原来最拿手的语言编程,而不需要学习新语言. 这是另一个提高PRODUCTIVITY的措施.

6. .NET支持COM以及非.NET环境(UNMANAGED ENVIRONMENT)中模块之间的相互调用. 你不用扔掉旧的东西, 但新的系统可以用.NET来开发并立即调用旧的组件. 减少了企业的顾虑.

7. 如果需要.NET中没有封装到的函数或库, 可以在.NET PROJECT中加入定义然后立即使用. 也不必非用非.NET模块来开发.更多精彩文章及讨论,请光临枫下论坛 rolia.net
Report

Replies, comments and Discussions:

  • 工作学习 / IT技术讨论 / 哪位兄弟知道网上哪儿有关于COM开发的技术书籍?
    哪位兄弟知道网上哪儿有关于COM开发的技术书籍??? 谢谢
    • just read references and samples in MSDN, it is much better.
    • 是老板决定用COM? 为什么不游说他用.NET? 既然确定用微软产品, 就不要吃剩下的:) COM/DCOM有很多问题,微软自己已经用其缺点来宣传.NET了.除非是老项目.
      • 按照我的理解,对于N-tier Application来说,也许COM,DCOM,COM+已经过时.但是对于写Stand alone PC application来说,COM仍然是OLE,ActiveX等的基础, .NET中有替代的吗?
        • 你如何判定DCOM/COM+已经过时?
          • One important reason: future system will use web service which offer better interoperability
            • yes, web service provide better interoperability. But you may need COM+ in backend. ex) when you access objects through SOAP, those objects are CORBA, EJB or COM.
      • COM仍旧是WINDOWS DNA的核心,.NET同样要用COM技术,不是取代而是加强了COM概念
        • 不是,.NET用com只是为了和现有系统交互。.NET现在还没有提供com+中的几种服务(应该很快就能看到.NET版的),只能利用现有com+. 但.NET中组件和现有com并不相同,
          • 没有COM,不知道你在.NET里怎样实现N-TIERS??你的BUSINESS LOGIC放在什么地方???如何使ASP.NET,WINDOWS APPLICATION,WEB SERVICE 的COM实现REUSABLED??
            COM+只是COM的SERVICE,别把COM+和COM混为一堂,不是所有的APPLICATION都需要COM+,
            • I 服了 u。 你说的com是微软的那个必须实现几个接口,以实现二进制上的交互的com吗?比起那个com,.NET组件更像Java Bean
    • 我现在就在学用COM,好象很复杂耶,多交流
    • 实在不想打消你们学技术的积极性. 如果我说的话有些刺耳, 请多包涵.
      本文发表在 rolia.net 枫下论坛1. 如果想学WINDOWS平台下编程, 最好直接进入.NET. 否则除非是工作中需要. 学旧知识有助于了解历史, 以及可以让人看起来不是新手, 仅此而已.

      2. 不要把METHODOLOGY或程序架构(FRAMEWORK)和具体技术混为一谈. 有些时候架构会受技术细节影响, 但它们根本上是独立于语言和平台的. 比如说, 模块化, 不是说非要某种语言才能实现, 难道用C写不出COMPONENT吗?难道C++程序一定是OO结构吗?

      3. 如上所述, 不要把N-tier扯进来, 也不要把N-tier和STANDALONE程序对立起来. 同样地, 也不要把WINDOWS结构和你的程序的结构混为一谈. 难道你是要写一个OLE SERVER来替换掉WINDOWS里的一个模块吗?才非要用COM?

      4. 不要一想到"TIER", 就一定是网络上的应用. STANDALONE程序同样可以应用"层"的概念来设计它的ARCHITECTURE. 目标是降低模块之间的偶合性. 不要立即和具体技术联系起来. 要去找设计方法.

      5. 直接生成和调用COM, 就有许多前处理和后处理(PLUMBING). .NET封装了这些麻烦, 这是.NET可以大幅度提高PRODUCTIVITY(生产效率)的原因. 同时.NET支持多语言杂交. 微软的出发点是现有程序员可以用他们原来最拿手的语言编程,而不需要学习新语言. 这是另一个提高PRODUCTIVITY的措施.

      6. .NET支持COM以及非.NET环境(UNMANAGED ENVIRONMENT)中模块之间的相互调用. 你不用扔掉旧的东西, 但新的系统可以用.NET来开发并立即调用旧的组件. 减少了企业的顾虑.

      7. 如果需要.NET中没有封装到的函数或库, 可以在.NET PROJECT中加入定义然后立即使用. 也不必非用非.NET模块来开发.更多精彩文章及讨论,请光临枫下论坛 rolia.net
      • 很赞同你说的,不过好像大多数跟贴都和原来的问题没什么关系了 ;-)
        如果原来那位提问的兄弟是要快速开发一个 COM 的 business logic 模块,可能 VB6 还是最好的选择 ---- 符合老板要求还直接支持 COM+ service...
        如果是要仔细研究 COM 的原理 ---- 有些细节目前 .NET 尚不能完全屏蔽...
      • 唬的我一愣一愣的,得,馬上裝Studio.net.
    • 我来说两句,COM实际上是一种OBJECT RPC,相对于其他的MULTI-TIER技术而言,弱了一点,。NET我不熟悉,有谁熟悉COM的线程模型和对象实例关系吗?
    • Search "inside COM",
      It's a good book for the beginer. But it's just for using native C++ to create COM. Anyway, it's the only COM book I know from internet.
      By the way, if you take part in some microsoft conference, you will know, COM is the gone.
      • 很赞同你的观点, 只是有一点记不大清了. 好象 INSIDE COM 和INSIDE DCOM 讲的技术细节太多, 对于了解COM/DCOM内部是怎样工作以及发展历史有用处.
        但初学者要善于掌握大轮廓, 而不要一下钻到细节里. 好象有另外有一些叫, "PROFESSIONAL COM PEOGRAMMING " 之类的, 虽然名字吓人, 里面更有一些实用的东西. 或者一些讲如何用VB, VC开发使用COM之类的. 先上手, 慢慢再研究内部工作机制.

        JUST 2 CENTS
    • .Net就是用来代替COM的,Web Service是代替DCOM的,要是学新技术还是看.NET吧.