可以,如果你的组件是COM组件的话,你可以先用ASP来做个PROTOTYPE试验一下,因为相对而言写起来这简单,而且不需要通过C#的COM InterOp服务成功了,不妨先用微软的SOAP TOOLKIT建成网络服务,在浏览器端用WebService行为以后有时间,再研究.NET与分布式运算

解决方案 »

  1.   

    To:saucer(思归)    
       我们做的组件是COM组件,您说用ASP先做个原型,但我们现在几乎没人会(我们习惯做COM)。我们的想法是专门抽人来做这个工作.
       C#的COM Interop服务不是有它自己的实现机制吗?这用不着人为干预吧!
       请原谅我对.Net和C#还缺乏研究:您说的"用微软的SOAP TOOLKIT建成网络服务,在浏览器端用WebService行为"指的是什么?能具体谈谈吗?
       谢谢!!!
      

  2.   

    C#的COM Interop服务有它自己的实现机制, 但在VS.NET里只要设置一下即成网络服务无非是通过网络服务器(譬如IIS)向外呈示的可远程调用的API界面,微软Soap Toolkit可以帮你迅速包装你的COM组件成网络服务,我建议用ASP的原因是ASP学起来较快,容易上手WebSerice行为是在IE里调用远程网络服务的机制,它隐藏了很多你不需要知道的调用网路服务的细节,你只要象平常调用对象方法一样调用远程服务当然这一切都可以用.NET实现,但学C#/.NET需要花上不少的时间才能上手
      

  3.   

    流程很简单:客户端在浏览器输入数据->提交到服务器端的网页->服务器端的ASP脚本或ASP.NET程序生成你的COM组件对象->调用其方法->得回数据->把数据写成HTML->传回到客户端这里有些怎么从C#里调用COM组件的资料
    COM Interop Tutorials
    http://msdn.microsoft.com/library/en-us/csref/html/vcoriCOMInteropTutorial.asp?frame=true
      

  4.   

    首先,我建议不要使用ASP而应该直接使用ASPX技术,不赞成楼上的意见
    这其中涉及到的.net新技术其实只有两个:
    1)Web Services
       看了你的描述,你应该有Visual Studio.net,在vs.net中编程对某一个web services的使用大部分工作都是vs.net作好的,这中间其实几乎没什么技术含量。(目前你可以理解为这是给浏览器使用的客户端代码。关于HTTP协议工作流程我就不说了,楼上的说了一点)
    2)Com->.net组件
       你可以狭义的理解为服务器端代码,事实上它就是Web Services提供者(就是你)所需要的。
      在.net环境下使用COM组件有两种方式:早联编和晚联编
      a)早联编:(编译器绑定。根据你的情况建议使用)
         方式一:使用.net FrameWork SDK提供的TlbImp.exe,命令行格式为:
          TlbImp yourcom.dll /out:yourcomrename.dll /verbose
            这样类型库可转换为.net兼容的清单并生成封装清单的代理装配件(即RCW:Runtime Class Wrapper),RCW就是让编译器引用以达到早联编的目的。
         方式二:直接使用vs.net。打开"添加引用(Add Reference...)"进入COM标签,你机器里所有注册的COM都在那里,选择你的COM组件,确定后就可以了。(其实是由你的vs.net调用TlbImp.exe实现的)
      b)晚联编:也就是运行是你的系统动态绑定你的COM组件。很明显早联编优于晚联编(效率等方面)。不过如果你的COM组件特别复杂,TlbImp.exe都无法处理(我就有很多次都是这样,估计你不是的),或者无法将.tlb用于第三方组件,这样你就不得不用晚联编了。三个步骤:
         1)使用Type.GetTypeFromProgID获取Type对象的引用
         2) 通过给Activator.CreatInstance方法传递Type引用,以实际创建COM对象
         3)使用Type对象的InvokeMember方法来访问COM对象的功能
         晚联编听复杂的吧:)另外得记住,晚联编一定要提供异常处理,切记!
    这样,你的目的就达到了,接下来考虑编程细节吧:
    祝成功!:)
      

  5.   

    各位大虾,你们好!
       该组件引用完全正常!
       但我有一个问题不太明白,该组件开发原是用于单机版的,现在要转用于网络,实现基于B/S的分布式Web运算,会不会有什么问题???如有,如何解决?
       另外:我们要做的是Web Application还是Web Service,或者兼有之?这些跟XML、SOAP以及HTTP等有什么关系?
       谢谢!!!
      

  6.   

    你要做的是Web Application,与Web Service一点关系也没有。说实话,你所需要的无非是在IE里提供一个界面(WEB FORM),取得用户输入的参数,然后把所有的这些参数送给你已经写好的COM(关于在.Net里用COM,楼上的已经讲得太多了,甚至有点过头,你直接在本机上引用就行了),并取得计算结果,通过一个Web Form进行输出。所以很简单,如果你的COM只有一个计算,那你的Web Application就只有两个Web Form就解决了。这也可以叫做应用?(呵呵)
    至于COM的用法,可以说与你在VB6里没有什么区别了,引用,声明对象,提供属性,再调用方法。一模一样,没任何区别。对于网络应用与单机应用的问题,我想你可以参考COM的工作模型呀,(Single User、Mutil User),既然你们是专做COM的,我也不多说了。其实如果你不想用.Net,也完全可以用VB6的Web Class实现,不过就是把界面改一下的嘛,有什么好难的呀。COM的调用全在后台,就不涉及在HTML里嵌入对象的问题,很好解决了。
      

  7.   

    按你说的COM是现成的,干嘛一定要C#不可,还是发挥你VB6的长处吧。新东西虽然好,但不见得处处可用。按你的应用需求来决定处理方式是最好的。没必要被表面的现象迷惑,给自己难堪。