失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > N-Tiers开发方式(如何使用VB.NET撰写COM+组件)

N-Tiers开发方式(如何使用VB.NET撰写COM+组件)

时间:2024-02-12 02:24:19

相关推荐

N-Tiers开发方式(如何使用VB.NET撰写COM+组件)

小喵撰写COM+组件开始于VB6的年代,撰写与注册的方式还算不是很复杂,不过随着进入了.NET的世界,撰写的过程也变得比较复杂了许多。

以下是撰写的步骤

假设要撰写的是一个数据库DDMO中的数据表(TDMOMenu)的数据存取组件,要产生一个组件服务中的Package名称为【KDMO1000】,里面有个组件PDMOMenu.dll内有两个COM+组件分别是

Project.Class

PDMOMenu.CDMOMenu1(无Transaction):用以读取数据PDMOMenu.CDMOMenu2(有Transaction):用以维护数据

撰写步骤:

建专案:请在适当的目录下,建立您组件项目的目录【PDMOMenu】建立项目(Create Project),选择【类别库(Class Library)】,目录请设定为您项目的目录,Name设定为【PDMOMenu】方案总管(Solution Explorer)中点选Class1.vb,变更属性(Properties)中的檔名(File Name)为【CDMOMenu1.vb】(无TranSaction),【CDMOMenu2.vb】(有Transaction)参考(Reference)右键→加入参考,增加【System.EnterpriseServices】项目内容:点选项目(Project)右键→属性(Properties)点选【签署(Signing)】,勾选【签署组件】在选择强势名称密钥档(Choose a strong name key file): 选择新增(New)→输入【PDMOMenu】点选【应用程序(Application)】

检查【组件名称(Assembly Name)】、【根命名空间(Root NameSpace)】是否是【PDMOMenu】按【组件信息】,将【让组件成为COM-Visiable(Make assembly COM-Visiable)】打勾AssemblyInfo.vb:请在最上方Imports加入:

Imports System.EnterpriseServices请在最下方加入以下指令:

<Assembly: ApplicationName("KDMO1000")> '*设定组件服务的项目名称

<Assembly: ApplicationAccessControl(False)>

<Assembly: ApplicationActivation(ActivationOption.Server)>Class 内容:无Transaction Class(CDMOMenu1.vb):

Imports System.EnterpriseServices Imports System.Runtime.InteropServices Imports System.Data.SqlClient Imports System.Data Imports System.IO 'Guid请在组件第一次建立时,产生新的,之后修改时不必变更 "838A5FE4-2DCC-43DF-8658-0697E8FB7C0F"), _ EventTrackingEnabled(True)> _ Public Class CDMOMenu1 Inherits ServicedComponent Const DBName as String = "DDMO" Public Function Test1(ByVal In1() As String, ByVal Out1() As String, ByRef P As String, ByRef R As String, ByVal User As String) As String '************************************************************************* '**撰写者:topcat 撰写日期:/8/9 '**用途: 1. '**做法: '** 1. '**注意事项: '** 1. '** 2. '**维护记录: '** 维护者:姓名 维护日期:日期 '** 维护项目: '** 1. '** 2. '** 做法: 1. '** 2. '** 注意事项: '** 1. '************************************************************************* Dim ConnStr As String = GetConnStr(DBName) Using Conn As New SqlConnection(ConnStr)Try Test1 = "Success" Catch ex As Exception Test1 = "False" Throw New Exception(ex.Message) End Try End UsingEnd Function Public Function GetConnStr(ByVal DBName As String) As String '************************************************************************* '**撰写者:topcat撰写日期:/2/8 '**用途: 1.读取Connection String的方式 '**做法: '** 1.传入参数DataBase Name DBName '** 2.透过Stream将文本文件读出 '** 3.将取得的资料传回 '** 4.关闭相关对象 '**注意事项: '** 1. '** 2. '**维护记录: '** 维护者:姓名(员工代号)维护日期:日期 '** 维护项目: '** 1. '** 2. '** 做法: 1. '** 2. '** 注意事项: '** 1. '************************************************************************* Dim StrmRd As New StreamReader("C:\DataLink\" + DBName + ".ini") Dim Line As String = "" Dim ConnStr As String = "" Try Do Line = StrmRd.ReadLine() If Line <> "" Then ConnStr += Line End If Loop Until Line Is Nothing GetConnStr = ConnStr Catch ex As Exception Throw New Exception(ex.Message.ToString) Finally StrmRd.Close() StrmRd.Dispose() StrmRd = Nothing End Try End Function End Class

有Transaction Class(CDMOMenu2.vb):

Imports System.EnterpriseServices Imports System.Runtime.InteropServices Imports System.Data.SqlClient Imports System.Data Imports System.IO "28549732-9A0F-4731-9688-10CEE644500E") _ , Transaction(TransactionOption.Required) _ , Synchronization(SynchronizationOption.Required) _ , JustInTimeActivation(True) _ , EventTrackingEnabled(True)> _ Public Class CDMOMenu2 Inherits ServicedComponent Const DBName as String = "DDMO" _ Public Function Test2(ByVal In1() As String, ByVal Out1() As String, ByRef P As String, ByRef R As String, ByVal User As String) As String '************************************************************************* '**撰写者:topcat 撰写日期:/8/9 '**用途: 1. '**做法: '** 1. '**注意事项: '** 1. '** 2. '**维护记录: '** 维护者:姓名(员工代号)维护日期:日期 '** 维护项目: '** 1. '** 2. '** 做法: 1. '** 2. '** 注意事项: '** 1. '************************************************************************* Dim ConnStr As String = GetConnStr(DBName) Using Conn As New SqlConnection(ConnStr)Try Test2 = "Success" Catch ex As Exception Test2 = "False" Throw New Exception(ex.Message) End Try End UsingEnd Function Public Function GetConnStr(ByVal DBName As String) As String '************************************************************************* '**撰写者:topcat撰写日期:/2/8 '**用途: 1.读取Connection String的方式 '**做法: '** 1.传入参数DataBase Name DBName '** 2.透过Stream将文本文件读出 '** 3.将取得的资料传回 '** 4.关闭相关对象 '**注意事项: '** 1. '** 2. '**维护记录: '** 维护者:姓名(员工代号)维护日期:日期 '** 维护项目: '** 1. '** 2. '** 做法: 1. '** 2. '** 注意事项: '** 1. '************************************************************************* Dim StrmRd As New StreamReader("C:\DataLink\" + DBName + ".ini") Dim Line As String = "" Dim ConnStr As String = "" Try Do Line = StrmRd.ReadLine() If Line <> "" Then ConnStr += Line End If Loop Until Line Is Nothing GetConnStr = ConnStr Catch ex As Exception Throw New Exception(ex.Message.ToString) Finally StrmRd.Close() StrmRd.Dispose() StrmRd = Nothing End Try End Function End Class

撰写完相关的程序后,接着就是Build项目,然后就会依照Project的Property设定的位置产生dll

如果觉得《N-Tiers开发方式(如何使用VB.NET撰写COM+组件)》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。