续接:N-Tiers开发方式(COM+组件的注册、修改)

在组件安装完成后,接下来的工作就是要如何呼叫使用我们写好的组件了。我们假设我们写好的组件的名称如下:

Package:KDMO1000
Project:PDMOMenu
Class:
    CDMOMenu1(无Transaction)
    CDMOMenu2(有Transaction)
假设CDMOMenu1中有一个Function是GetNodeName,传入参数NodeId(整数),传回NodeName(字符串)
GetNodeName(Byval NodeId as Integer) As String

Late Binding:

我这边所提的使用方式,是使用Late Binding的呼叫方式。也就是说,不会预先将组件注册到您的ASP.NET的专案中,或者是您的VB.NET的项目中,当系统运作的时候,在动态的从Server把该对象Bind上来使用。这样做的缺点是,您无法透过obj.就弹出组件内的属性方法让您选择,使用属性方法的时候都必须自己Keyin进去。但是优点则是,当您的组件有做了变更,您不必去一个一个的项目里重新的Reference您的组件;另外就是不论您写的是ASP、ASP.NET、VB、VB.NET,您呼叫组件的方式是一致的。

呼叫组件:

呼叫组件的方式如下:

ASP:

Set obj = CreateObject("PDMOMenu.CDMOMenu1")
NodeId = 2
NodeName = obj.GetNodeName(NodeId)

VB:

Dim obj as Object
Set obj = CreateObject("PDMOMenu.CDMOMenu1")
Dim NodeId as Integer
NodeId = 2
Dim NodeName as String
NodeName = obj.GetNodeName(NodeId)

ASP.NET/VB.NET

Dim NodeId As Integer = 2
Using obj As Object = CreateObject("PDMOMenu.CDMOMenu1") Try Dim NodeName As String = obj.GetNodeName(NodeId) Catch ex As Exception Me.lblErrMsg.Text=ex.Message.toString() End Try
End Using

.NET呼叫组件需自行释放组件:

从以上的这些程序代码,可以发现,呼叫组件的过程几乎相同,使用.NET撰写时,呼叫的方式更可以简洁。

当组件被呼叫执行后,可以在【组件服务】中找到该Package中的组件被呼叫而转起来。如果是用ASP,VB6呼叫组件,可以发现当组件呼叫完成后,组件的转动会停下来,呼叫中的组件数字也会归零。但次使用.NET呼叫组件,如果没有撰写【Try..Catch..Finally..End Try】并且把【obj.Dispose()】、【obj = Nothing】放在Finally里,那么【组件服务】中的组件将会转不停。这是因为ASP,VB6再程序执行完毕时,会自动的做【资源回收】的动作;但是在.NET中【资源回收】必须经由程序设计者手动的执行,否则需当系统资源不足时启动GC才能够真正的回收。因此,.NET里面最好使用Using来宣告使用该Object。

转载于:https://www.cnblogs.com/topcat/archive/2008/06/12/1218166.html

N-Tiers開發方式(ASP/ASP.NET、VB6/VB.NET呼叫使用COM+元件)相关推荐

  1. N-Tiers开发方式(ASP/ASP.NET、VB6/VB.NET呼叫使用COM+组件)

    續接:N-Tiers開發方式(COM+元件的註冊.修改) 在元件安裝完成後,接下來的工作就是要如何呼叫使用我們寫好的元件了.我們假設我們寫好的元件的名稱如下: Package:KDMO1000 Pro ...

  2. 我的中間層開發,我的 DataSnap

    歷史篇 DataSnap 和 MIDAS 應用程式和資料庫的關係演變 為什麼要用 DataSnap?--兩層的優缺點 為什麼要用 DataSnap?--DataSnap 解決兩層問題的方法 緣起篇 一 ...

  3. 快速android app开发,快速學會開發 Android App

    快速學會開發Android App 作者:吳玉舒 / 臺灣大學計算機及資訊網路中心程式設計組幹事 智慧型手機發展迅速,其中以Android和iOS為主要的平台,根據 2012年6月Nielsen 的調 ...

  4. php js asp.net,WebMatrix 3: 方便好用的 ASP.NET、PHP、以及 node.js 網站開發工具

    WebMatrix 3: 方便好用的 ASP.NET.PHP.以及 node.js 網站開發工具 05/02/2013 5 分钟可看完 本文内容 WebMatrix 是由 Microsoft 所開發的 ...

  5. 原始ajax方式调用asp.net后台方法

    aspx页面: <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Data.asp ...

  6. 编程方式重启 ASP.NET Core 网站

    点击上方蓝字关注"汪宇杰博客" 常言道,多喝热水,重启试试.有时候当应用工作不正常,重启也许能解决问题.但是程序员通常接触不到服务器系统权限.而运维人员和公司流程经常人为制造麻烦阻 ...

  7. win2003 IIS6配置PHP 5.3.3(fastCGI方式+eAccelerator)+ASP.NET 4.0(MVC3)

    win2003 IIS6配置PHP 5.3.3(fastCGI方式+eAccelerator)+ASP.NET 4.0(MVC3) 直入正题. 这个环境的部署很有讲究,折腾了一天,大概说一下思路: 自 ...

  8. ASP.Net学习笔记004--基于ashx方式的ASP.Net开发1

    以前写的课程都没有附上源码,很抱歉! 课程中的源码可以加qq索要:1606841559 技术交流qq1群:251572072 技术交流qq2群:170933152 也可以自己下载: ASP.Net学习 ...

  9. 基於IIS的WCF的分布式多層架構開發實現

    曾用.NET Remoting,基於IIS,為公司實現過分布式多層架構,客戶端采用Web Browser瀏覽,當時,公司領導告訴我可能會有多臺中間服務器用於系統,又不想每臺電腦的去安裝程序,所以,我最 ...

最新文章

  1. pyqt5设置dialog的标题_PyQt5Day29--展示控件QDialog(对话框)
  2. petalinux 下使用 xsa 查看所有的 Zynq Reg 设置
  3. HGOI 20181103 题解
  4. c语言怎么编程极差,我是一个编程能力很差的计算机专业的孩子。。==
  5. python 九宫重排_[蓝桥杯][历届试题]九宫重排 (Python代码)(bfs+集合)
  6. 解决VS2010子目录中的.cpp文件引用上一级目录的stdafx.h找不到定义的问题
  7. 干货 | 有赞数据仓库实践之路
  8. 初识Xen-CentOS5.8_x64位系统安装xen文档(-)
  9. N 层应用程序中的数据检索和 CUD 操作 (LINQ to SQL)
  10. spring配置属性的两种方式
  11. Ubuntu首页挂预告,预计今晚12点推出平板Ubuntu系统
  12. 迅捷cad_迅捷结构
  13. python界面开发工具手机版_Python界面编程工具包WxPython
  14. Ubuntu 14中,Foxmail关联163邮箱账号时,总提示“密码错误”的解决方案
  15. Vue_理解组件化开发
  16. 绿色软件联盟:杀毒软件已经进入空前弱智与混沌状态
  17. 2021年12月13日|14日|15日|16日|17日
  18. 【洋葱软件库-洋葱分享库】
  19. raw/rgb/yuv/nv21图像格式总结
  20. 中缀表达式转换成前缀表达式和后缀表达式的极其简单方法

热门文章

  1. Linux——vi/vim文本编辑器、用户管理、关机重启的相关命令
  2. Linux进入multiwfn软件,Multiwfn入门tips
  3. shell-grammar
  4. 证件照制作相关的人像抠图/分割各家接口整理分析
  5. Github推荐--PC端下载bilibili视频
  6. 8000 字深度长文!B端数据可视化设计指南(信息图表篇)
  7. Flink 实时数仓伪分布虚拟机 (所有组件部署完成)
  8. 在 Amazon SageMaker 上玩转 Stable Diffusion: 基于 Dreambooth 的模型微调
  9. 伊滨区应急管理局领导莅临埃思特考察指导
  10. Cocos Creator 3D使用腾讯云游戏联机对战引擎(MGOBE)