正文
vb.net组件的应用 vbnet structure
小程序:扫一扫查出行
【扫一扫了解最新限行尾号】
复制小程序
【扫一扫了解最新限行尾号】
复制小程序
请问VB.net在什么场景使用最多?
这个分国内和国内vb.net组件的应用,VB.net在国外用的多点vb.net组件的应用,国内用的少,如果一定要学的话建议学C#.net,只要适应下语法就行vb.net组件的应用了,这个不是啥初不初学者的问题,只是市场占用率不够,C#主要用在后台服务、WEB、桌面软件开发上(尤其桌面软件开发这一点是目前其它主流软件都无法比的),缺点就是无法用在手机APP开发。至于你说的底层倒不是什么问题,因为99.9%的软件都不会涉及什么底层的东西。
如果要选一个目前主流的语言,那就是java了,用的比较广泛,也能兼容android手机开发。如果是苹果手机开发,那就要学swift了。
下面是2019年9月TIOBE的编程语言排行,可以看看
VB.NET中的组件开发
简介 组件其实是一段可以重用的代码 通过遵循IComponent接口的标准来实现一个组件 所以有组件都是派生于Component类 由Component类来实现IComponent接口 在组件中应正确使用函数的访问级别来控制外部对其的访问限制 只要有足够的权限就可以将组件放到自己的程序中而不用担心组件会产生多大的错误 因为组件已经经过测试的 比如说可以把一段登录的程序做成一个组件 或者把经常使用到的一些功能也做成组件 这样就可以减少开发中的错误 也可以缩短开发时间 组件之间也可以互相套用 如一个组件引用另一个组件 都是没问题 但要先在Add Reference中添加对组件的引用 在 NET中是通过把组件放在程序集中来实现的 程序集中存放著这些组件所依赖的文件信息和所在路径 因此CLR就可以通过这些信息来确定组件所需要的其他程序集的位置 ( 另外在组件设计过程中应好好利用接口来设计组件) 在VS中创建组件 选建一个Project 再从模板中选Class Library OK 接着再从Project菜单中Add Component 到些为止 组件的一个框架就呈现在眼前 平台自动继承了Component类和构造函数 可以删除原先创建类库时自动生成的Class 看应用的需要 接着就可以在组件类里写要实现的功能 最后从Build(生成)菜单中选择Build Solution(生成解决方案)来生成组件 如果生成成功的话 到应用程序的BIN目录下会看到一个DLL文件 引用组件 只要在Solution Explorer窗口中 添加对DLL的Reference就可以了 Imports loginValidator Imports System Data Imports System Data SqlClient Public Class loginFormClass loginForm Inherits System Windows Forms Form #Region Windows 窗体设计器生成的代码 Public Sub New()Sub New() MyBase New() 该调用是 Windows 窗体设计器所必需的 InitializeComponent() 在 InitializeComponent() 调用之后添加任何初始化 End Sub 窗体重写 dispose 以清理组件列表 Protected Overloads Overrides Sub Dispose()Sub Dispose(ByVal disposing As Boolean) If disposing Then If Not (ponents Is Nothing) Then ponents Dispose() End If End If MyBase Dispose(disposing) End Sub Windows 窗体设计器所必需的 Private ponents As System ComponentModel IContainer 注意: 以下过程是 Windows 窗体设计器所必需的 可以使用 Windows 窗体设计器修改此过程 不要使用代码编辑器修改它 Friend WithEvents lblUserPwd As System Windows Forms Label Friend WithEvents lblUserName As System Windows Forms Label Friend WithEvents txtUserName As System Windows Forms TextBox Friend WithEvents txtUserPwd As System Windows Forms TextBox Friend WithEvents btnSubmit As System Windows Forms Button Friend WithEvents btnExit As System Windows Forms Button Friend WithEvents Label As System Windows Forms Label Friend WithEvents Label As System Windows Forms Label Friend WithEvents btnCancel As System Windows Forms Button Friend WithEvents Label As System Windows Forms Label System Diagnostics DebuggerStepThrough() Private Sub InitializeComponent()Sub InitializeComponent() Dim resources As System Resources ResourceManager = New System Resources ResourceManager(GetType(loginForm)) Me lblUserPwd = New System Windows Forms Label Me lblUserName = New System Windows Forms Label Me txtUserName = New System Windows Forms TextBox Me txtUserPwd = New System Windows Forms TextBox Me btnSubmit = New System Windows Forms Button Me btnExit = New System Windows Forms Button Me Label = New System Windows Forms Label Me Label = New System Windows Forms Label Me btnCancel = New System Windows Forms Button Me Label = New System Windows Forms Label Me SuspendLayout() lblUserPwd Me lblUserPwd Location = New System Drawing Point( ) Me lblUserPwd Name = lblUserPwd Me lblUserPwd Size = New System Drawing Size( ) Me lblUserPwd TabIndex = Me lblUserPwd Text = 密码 Me lblUserPwd TextAlign = System Drawing ContentAlignment MiddleCenter lblUserName Me lblUserName Location = New System Drawing Point( ) Me lblUserName Name = lblUserName Me lblUserName Size = New System Drawing Size( ) Me lblUserName TabIndex = Me lblUserName Text = 帐号 Me lblUserName TextAlign = System Drawing ContentAlignment MiddleCenter txtUserName Me txtUserName BackColor = System Drawing SystemColors Info Me txtUserName BorderStyle = System Windows Forms BorderStyle FixedSingle Me txtUserName Location = New System Drawing Point( ) Me txtUserName Name = txtUserName Me txtUserName Size = New System Drawing Size( ) Me txtUserName TabIndex = Me txtUserName Text = txtUserPwd Me txtUserPwd BackColor = System Drawing SystemColors Info Me txtUserPwd BorderStyle = System Windows Forms BorderStyle FixedSingle Me txtUserPwd Location = New System Drawing Point( ) Me txtUserPwd Name = txtUserPwd Me txtUserPwd PasswordChar = Microsoft VisualBasic ChrW( ) Me txtUserPwd Size = New System Drawing Size( ) Me txtUserPwd TabIndex = Me txtUserPwd Text = btnSubmit Me btnSubmit BackColor = System Drawing SystemColors ActiveBorder Me btnSubmit Cursor = System Windows Forms Cursors Hand Me btnSubmit ForeColor = System Drawing SystemColors InfoText Me btnSubmit Location = New System Drawing Point( ) Me btnSubmit Name = btnSubmit Me btnSubmit TabIndex = Me btnSubmit Text = 登录 btnExit Me btnExit BackColor = System Drawing SystemColors ActiveBorder Me btnExit Cursor = System Windows Forms Cursors Hand Me btnExit Location = New System Drawing Point( ) Me btnExit Name = btnExit Me btnExit TabIndex = Me btnExit Text = 退出 Label Me Label Font = New System Drawing Font( Impact ! System Drawing FontStyle Regular System Drawing GraphicsUnit Point CType( Byte)) Me Label Location = New System Drawing Point( ) Me Label Name = Label Me Label Size = New System Drawing Size( ) Me Label TabIndex = Me Label Text = TEST Label Me Label BackColor = System Drawing SystemColors ControlText Me Label ForeColor = System Drawing SystemColors HighlightText Me Label Location = New System Drawing Point( ) Me Label Name = Label Me Label Size = New System Drawing Size( ) Me Label TabIndex = Me Label Text = 系统登录 Me Label TextAlign = System Drawing ContentAlignment MiddleCenter btnCancel Me btnCancel BackColor = System Drawing SystemColors ActiveBorder Me btnCancel Cursor = System Windows Forms Cursors Hand Me btnCancel Location = New System Drawing Point( ) Me btnCancel Name = btnCancel Me btnCancel TabIndex = Me btnCancel Text = 取消 Label Me Label ForeColor = System Drawing Color Red Me Label Location = New System Drawing Point( ) Me Label Name = Label Me Label Size = New System Drawing Size( ) Me Label TabIndex = Me Label Text = 为保证系统安全 请先登录 loginForm Me AutoScaleBaseSize = New System Drawing Size( ) Me BackColor = System Drawing SystemColors ActiveBorder Me ClientSize = New System Drawing Size( ) Me Controls Add(Me Label ) Me Controls Add(Me btnCancel) Me Controls Add(Me Label ) Me Controls Add(Me Label ) Me Controls Add(Me btnExit) Me Controls Add(Me txtUserPwd) Me Controls Add(Me txtUserName) Me Controls Add(Me btnSubmit) Me Controls Add(Me lblUserName) Me Controls Add(Me lblUserPwd) Me FormBorderStyle = System Windows Forms FormBorderStyle None Me Icon = CType(resources GetObject( $this Icon ) System Drawing Icon) Me MaximizeBox = False Me MinimizeBox = False Me Name = loginForm Me SizeGripStyle = System Windows Forms SizeGripStyle Hide Me StartPosition = System Windows Forms FormStartPosition CenterScreen Me Tag = 登录 Me Text = TEST 系统登录 Me ResumeLayout(False) End Sub #End Region Private Sub loginForm_Load()Sub loginForm_Load(ByVal sender As System Object ByVal e As System EventArgs) Handles MyBase Load txtUserName Focus() btnCancel Visible = False End Sub Private Sub btnExit_Click()Sub btnExit_Click(ByVal sender As System Object ByVal e As System EventArgs) Handles btnExit Click Application Exit() End Sub Private Sub btnSubmit_Click()Sub btnSubmit_Click(ByVal sender As System Object ByVal e As System EventArgs) Handles btnSubmit Click 调用loginValidator组件 Dim validator As New Validator validator vUsername = txtUserName Text Trim validator vUserpwd = txtUserPwd Text Trim If (validator validate() = True) Then Me Close() Else MessageBox Show( 帐号或密码错误 请重试! 验证错误 MessageBoxButtons OK MessageBoxIcon Warning) End If End Sub Private Sub btnCancel_Click()Sub btnCancel_Click(ByVal sender As System Object ByVal e As System EventArgs) Me Dispose() End Sub Private Sub btnCancel_Click_ ()Sub btnCancel_Click_ (ByVal sender As System Object ByVal e As System EventArgs) Handles btnCancel Click Me Close() End Sub End Class 关于在 NET中使用组件 NET可以向后兼容 并支持了和ActiveX对象等早期版本的应用程序 在 NET中使用等很有趣 NET创建一个包将它们包装起来 而它们之间的交互就是通过这个包装来进行的 这个包就叫做运行时可呼叫包装(RCW) 可以直接使用 也可以先转换成 NET程序集后再使用 直接使用组件是通过Add Reference来实现的 这种方法通过RCW来包装 缺点 无法放到 GAC中 不能重用 通过转换成 NET程序集来使用 是通过利用 tlbimp 命令行工具来实现的 语法 tlbimp Name dll /out:Comp dll /namespace:myNS /a *** Version: myVersion /reference:refname 第一个为的名称 第二个为要生成的 NET组件名称 第三个为要生成的名称空间 第四个为 版本号 第四个指定引用的文件名 lishixinzhi/Article/program/net/201311/12392
使用VB.NET的五个技巧之在组件中显示时间
开发过程过程中我们通常对特定代码片运行所花的时间很感兴趣 当然有一些标准程序和代码工具可以查看到它 但是有经验的Visual Basic 开发者有更快的办法 仅仅捕捉开始时间(使用Now关键字)和终止时间(再次使用Now关键字) 两种相减 就能知道结果了
如果使用Visual Basic NET编写 首先尝试的代码可能是这样的
Dim StartTime As DateTime = Now {code to check for timing goes here} Dim EndTime As DateTime = Now Console WriteLine((StartTime EndTime) ToString)
但是这段代码的最后一行有语法错误 错误消息是 日期类型没有定义 - 操作符 这意味着我们不能执行减法 日期数据类型不支持减法操作 那么我们怎么得到两次时间的差别呢?
答案就是使用TimeSpan类 它是用于保持时间段的 上面的代码看起来与 NET框架组件中的相似
Dim StartTime As DateTime = Now {code to check for timing goes here} Dim EndTime As DateTime = Now Dim RunLength As System TimeSpan RunLength = EndTime Subtract(StartTime) Console WriteLine(RunLength ToString)
计算使用的是类Date的Subtract方法 最后一行将输出时间的跨度 格式化成小时 分钟和秒(包括秒的小数位) 典型的输出是这样的
该时间跨度是 秒半 尽管显示了 位小数 但是只能相信两位 但是已经足够了
结论
lishixinzhi/Article/program/net/201311/11820
VB.NET对象的广泛应用
代码重用简化了开发过程 而可视化继承之类vb.net组件的应用的功能又使得代码重用更加方便 然而 代码重用并不局限于此 借助作为VB NET基础vb.net组件的应用的CLR(Common Language Runtime 公共语言运行时环境) vb.net组件的应用我们可以在VB NET中继承其他VS NET语言编写的类 例如vb.net组件的应用我们可以编写一个C#类 然后在VB NET类中继承该C#类
VB NET的面向对象功能已经向各个方向扩展 甚至深入到了语言本身——在VB NET中 一切都是对象 它意味着和以前的VB版本相比 我们从VB NET本身获得的支持和功能要多得多 求助于Windows API的时候将更少 例如 在以前的VB版本中 我们用LoadPicture方法装入一个图形 用Line方法(或者其他速度更快的API函数)画线 而在VB NET中 我们用System Drawing对象创建和处理图形 下面这段代码用System Drawing对象在窗体上显示一个图形
picshowpicture Image = _ system Drawing Image FromFile( _ c test bmp )
注意 VB NET的 一切都是对象 可能会使代码变得冗长 考虑下面这个语句 它在一个图形对象上面画一条黄绿色的线
objgraphics DrawLine(system Drawing _ Pens Chartreuse )
语句虽然变长 但它获得的好处是 更加灵活 更加容易使用 以前 要实现一些较为复杂的功能往往要深入研究文档 通常还要求助于API 现在 所有相关的功能集都封装到了对象之中 用对象封装功能还有额外的优点——对象以一种极为优美的形式把相关功能组织了起来 所以浏览各个对象 看看它们到底做些什么 事实上也是一件有趣的事情
Visual Basic NET的面向对象特色带来了许多切实的好处 大多数情况下 和以前的VB版本相比 VB NET面向对象的本性以及它对继承的支持使得创建某些类型的应用更加快速和方便 然而 虽然我们可以使用继承以及其他 NET的新功能 比如自由线程 但这些功能并不是一定得使用不可 正如所有其它语言的功能 我们必须使用的功能是那些对给定情形来说最具有意义的功能
lishixinzhi/Article/program/net/201311/11301
关于vb.net组件的应用和vbnet structure的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。