.NET Framework是什么微软对.NET的定义是
The .NET Framework is a new computing platform that simplifies application development in the highly distributed environment of the
Internet.
意思是,.NET是在高度分布式的互连网环境中,使软件开发简单化的新的计算平台(哦 , 不象一个句子啊^_*) 。这里说了分布式的互
连网环境,这个很重要呀,说明以后的商业活动会在网上进行 , 所以我们也应该跟着时代潮流,做程序的时候要考虑到这一点 。说
白了就是.NET可以提高我们应用程序开发的速度 。因为什么呢?继续吧 。
.NET的优点
提供标准的面向对象开发环境,不仅可以在本地与对象交互,还可以通过Web Service和.NET Remoting技术在远程与对象交互 。
提供优化的代码执行环境,使以前让人们头痛的程序版本问题得到了解决 。我们可以在同一台机器中安装相同程序的不同版本 。而
且deployment也得到了改善 , 微软说是X-COPY,就是说象拷贝文件s一样简单了 。
提供代码运行安全性 。以前我们担心网页中包含的ActivX控件会执行恶意的代码,但现在不用担心了,因为.NET Framework保障执
行代码的安全性 。
使用JIT(Just In Time Activation)技术,提高代码运行速度 。
提供标准的框架和强大的开发工具,可以让程序员在实际的开发当中,积累更多的经验 。
.NET遵循业界标准规范 , 所以可以让代码(.NET里的代码)可以与其他系统交互 。
比如Web Service,COM等等 。
.NET构架
.NET有两个主要的部件 , 一个是CLR(Common Language Runtime),另一个是.NET Framework class library 。CLR是.NET系统构架中最
核心部分,负责执行代码、管理内存、提供安全性等等核心功能,把她想成JAVA的VM就可以了 。运行在.NET Framework中的代码
叫做managed code,反之叫做unmanaged code 。.NET class library提供功能强大而完全面向对象的函数库,而且我们可以在任何种类中
项目中都可以使用她 。以前SDK是函数方式,而且比较低级复杂(??。?但现在用组件封装之后,使用起来就比较简单、易用了
。.NET class library包括以下方面的组件
Console applications
Windows GUI application(Windows Forms)
Asp.NET applications
XML Web services
Windows Services
.NET Compact Framework
.NET Compact Framework是.NET Framework的简化版本 。为了在小型机器(smart device)中运行 , 微软为.NET Framework减了肥,
让她适合当前小型机器硬件环境 。用于PDA的Compact Framework 2M多的容量,而用于手机的只有几百K 。要开发小型机器程序要
安装smart device extension 。
VB和VB.net一样吗?请高手解释详尽一些!三扣了1、VB6.0是解释性语言vb.net分布式,需要VB虚拟机加以解释执行(就是那个很大的DLL)
2、Vb.net用的是.net框架(主要是针对新一代分布式网络应用的开发)
3、VB6是独立的一个开发工具vb.net分布式,vb.net则更象是一个可选语法,它和vc.net和C#用的共同的runtime language,也就是说编译后它们就是一样的 。
呵呵,其实vs.net的用法与vb6.0比起来难不到哪里去,vb.net分布式你很快就会掌握的
语法一样的
vb和vb.net的区别VB.NET和VB6.0有什么区别
Visual Basic .NET是Microsoft Visual Studio .NET套件中主要组成部分之一 。.NET版本的Visual Basic增加了更多特性,而且演化为完全面向对象(就像C)的编程语言 。本文将介绍VB.NET的新特性,并比较VB6.0/VB.NET之间的区别,阐述如何利用VB.NET编写简单的应用程序 。
1.1 什么是 VB.NET? Microsoft推出全新的编程和操作系统Framework——.NET,支持多种语言利用公共.NET库开发应用程序,这些应用程序在.NET Framework上运行 。使用Visual Basic在.NET Framework上编程,这就是VB.NET 。
首先,让我演示在VB.NET中写最简单的控制台程序:Hello World 。
1.2 Hello, World!“Hello World!”是初学者学习Windows编程的代表性程序 。我们的第一个程序就叫做“Hello VB.NET World!” 。该程序在控制台输出一句话:“Hello VB.NET World!”,代码如下所示:
代码 1.1: Hello VB.NET World例子Imports System
Module Module1
Sub Main()
System.Console.WriteLine("Hello VB.NET World!")
End Sub
End Module
1.3 VB.NET 编辑器和编译器你可以在记事本或VS.NET IDE等任意文本编辑器中撰写上述代码,然后保存为HelloWorld.vb 。代码编写完成之后,要么在命令行、要么在VS.NET IDE中编译它 。在Microsoft .NET Framework SDK中已经包括VB.NET编译器vbc.exe[][1],从IDE或是命令行都可以调用 。要从命令行编译HelloWorld.vb,请在命令行窗口输入
vbc HelloWorld.vb /out:HelloWorld.exe /t:exe
编译结束后,HelloWorld.exe被创建到当前目录下 。在资源管理其中双击图标或在命令行执行 , 程序正确地运行了 。祝贺你进入VB.NET开发者的行列 。
Imports 语句
如你所知,大部分的.NET类型都在名字空间(namespace)中定义 。Namespace是定义和管理类别的范畴 。察看.NET Framework Class Library,可以看到数以百计的namespace 。例如,System namespace就包括了Console、Object等类型定义 。如果想使用Console类,需要用Imports指令导入System namespace 。如下所示:
Imports System甚至可以明确地调用namespace而无需用Import导入 。下面的例子展示了不用Import的“Hello World!”程序:
代码1.2: Hello VB.NET World例子Module Module1
Sub Main()
System.Console.WriteLine("Hello VB.NET World!")
End SubEnd Module1.4 解析 "Hello VB.NET World!"程序第一行是:
Imports System; System namespace定义了Console类,该类用于读写控制台(命令行窗口) 。然后你定义了一个module:Module Module1
…End Module所有的VB程序都包括一个Main()方法,即应用程序入口点 。在例子程序中 , 我们调用Console.WriteLine()向控制台写入“Hello VB.NET World!”:
Sub Main()
Console.WriteLine(“Hello VB.NET World!”)End SubWriteLine()方法归属于Console类,它负责向控制台写一个带有行结束符的字符串 。如前所述 , Console类定义于System namespace,你通过直接引用来控制类成员 。
Console类负责读写系统控制台 。读控制台输入用Read和ReadLine方法,向控制台输出用WriteLine方法 。
表1.1 Console类定义的方法
方法用途例子
Read读入单个字符int i = Console.Read();
ReadLine读入一行string str = Console.ReadLine();
Write写一行Console.Write("Write: 1");
WriteLine 写一行 , 并带上行结束符
Console.WriteLine("Test Output Data with Line");
1.5 VB.NET有什么新特点? VB.NET比 VB6.0更加稳定,而且完全面向对象 。也许你还记得,VB6.0不支持继承、重载和接口,所以不是真正面向对象的 。而VB.NET则支持这些面向对象特性 。VB6.0有两个薄弱环节——多线程和异常处理 。在VB.NET中,开发多线程应用和使用C/C#别无二致 , 结构化异常处理也得到支持 。稍后我们会详细解释这些特性 。
下面是VB.NET的特性列表——
·面向对象的编程语言 。支持继承、重载、接口、共享成员和构造器 。·支持所有的CLS特性,如存取控制.NET类、与其它.NET语言交互、元数据、公共数据类型、委托等等 。·多线程支持 。·结构化异常处理 。1.6 名字空间与集合 前面讨论了我们的第一个VB.NET程序 。该程序中首先引人注意的是名字空间(namespace) 。在.NET参考文档中 , 你会发现每个类都归属于某个namespace 。那么,namespace到底是什么?
一个namespace是类和组件的逻辑组合,其目的在于将.NET class按类别定义 。微软借用了Cclass packaging概念:namespace来描述这种组合 。.NET Framework中的组件被称为集合(assembly) 。全部.NET代码在数百个库文件(DLL)中定义 。Namespace把assembly中定义的类组织起来 。一个namespace可以包括多个assembly,一个assembly也可以在多个namespace中定义 。namespace树的根节点是System namespace 。在.NET Library中,每个class都在一组相似的类别中定义 。例如,System.Data namespace只包括数据相关类 。同样,System.Multithreading只包括多线程类 。
在使用.NET支持的语言(如C#、VB.NET、C.NET等)创建新应用程序时,你会注意到每个应用程序都被定义为一个namespace,而所有的class都归属于这个namespace 。通过引用这个namespace , 其它应用程序就能存取这些class 。在.NET中,代码被编译为中间语言(Intermediate Language,IL),assembly中存储了IL代码、元数据和其它资源文件 。同一个assembly可以附属于一个或多个Exe/DLL 。所有的.NET库都存储在assembly中 。
1.7 VB.NET: 完全面向对象的编程语言抽象、封装、多态、继承是面向对象语言的四个基本属性 。VB6.0不支持继承 , 而VB.NET则不然 。所以,和C一样 , VB.NET也是完全面向对象的编程语言 。
Class 和 ModuleVB.NET用Class...End Class语句对创建class 。每个VB.NET至少包括一个Module(模块) 。Module在Module…End Module语句对中实现 。应用程序的主要模块是Main方法,亦即应用程序入口点 。
和VB6.0相似的地方是,都可以使用Function/Sub关键字定义方法 。下面的例子显示了如何创建class、添加方法,并从主程序调用方法: Imports System
Module Module1
Sub Main()
Dim cls As TestClass = New TestClass
Console.WriteLine(cls.MyMethod)
End Sub
Class TestClass
Function MyMethod() As String
Return "Test Method"
End Function
End Class
End ModuleProperty属性(Property)是类变量的公共描述 。Property…End Property语句用以创建property 。属性的Get/Set方法分别用于取得和设置属性值 。下面的例子中,Data是TestClass的属性 。
Imports System
Imports System.Console
Module Module1
Sub Main()
Dim cls As TestClass = New TestClass
WriteLine(cls.MyMethod)
WriteLine(cls.Data)
cls.Data = "https://www.04ip.com/post/New Data"
WriteLine(cls.Data)
End Sub
End Module
Class TestClass
Private strData As String = "Some Data"
Function MyMethod() As String
Return "Test Method!"
End Function
' Adding Data property to the class
Public Property Data() As String
Get
Return strData
End Get
Set(ByVal Value As String)
strData = https://www.04ip.com/post/Value
End Set
End Property
重载VB.NET通过overload关键字支持方法重载 。使用这个关键字,你可以定义同名但不同参数的方法 。
类成员访问域
除了原有的Private和Public,VB.NET引入了几个新关键字 。全部访问域关键字列表如下:
关键字作用域
Private限于class内部
Public可以从class外访问
Friend限于class所属的应用程序内
Protected只能被class和其派生类访问
Protected Friend能被class、应用程序和派生类访问
继承继承是面向对象编程语言中最常用的技术 。继承让你能够重用类代码和功能 。
VB.NET支持继承 , 而VB6.0则不支持 。继承的好处在于你能使用任何人编写的类,从这些类派生自己的类,然后在自己的类中调用父类功能 。在下面的例子中,Class B派生自Class A , 我们将从Class B中调用Class A的方法MethodA 。
Imports System
Imports System.Console
Module Module1
Sub Main()
Dim bObj As B = New B
WriteLine(bObj.MethodA())
End Sub
【vb.net分布式的简单介绍】End Module
' Class A defined
Public Class A
Function MethodA() As String
Return "Method A is called."
End Function
End Class
'Class B, inherited from Class A. All members (Public and Protected)
' can be access via B now.
Public Class B
Inherits A
Function MethodB() As String
Return "Method B is called."
End Function
End Class
可以从一个class中派生多个自定义class,也可以从多个class派生一个自定义class 。
共享的成员类的共享成员被类的所有实体共享 。共享成员可能是属性、方法或字段/值域 。在你不想让用户全面控制自己的类时,共享成员相当有用 。例如 , 你可以开发一个类库,让用户通过共享成员使用其中的部分功能 。
可以通过class本身引用共享成员,而无需通过类的实体 。例如:Module Module1
Sub Main()
WriteLine(A.MethodA())
End Sub
End Module
' Class A defined
Public Class A
Shared Function MethodA() As String
Return "Method A is called."
End Function
End Class
多线程VB语言的一大弱点就是缺乏编写自由线程(free-threaded)程序的能力 。在.NET Framework中,所有语言共享CRL(Common Runtime Library,公共运行库),也就是说,你可以用VB.NET、C#或其它.NET语言编写同样的程序 。
System.Threading namespace定义了线程类 。我们只需要引入System.Threading namespace,即可使用线程类 。
System.Threading.Thread类提供线程对象,可以使用Thread类创建或破坏线程 。
创建线程使用Thread类的实体创建一个新线程,然后用Thread.Start方法开始执行线程 。线程构造器接受一个参数,该参数指明你要在线程中执行的procedure 。在下例中,我想在oThread1(Thread类的一个实体)的第二线程中执行SecondThread过程:
oThread1 = New Thread(AddressOf SecondThread)
SecondThread procedure looks like below:
Public Sub SecondThread()
Dim i As Integer
For i = 1 To 10
Console.WriteLine(i.ToString())
Next
End Sub
然后,调用Thread.Start()开始线程:
oThread1.Start()
下面的代码创建两个第二线程:
Imports System
Imports System.Threading
Module Module1
Public oThread1 As Thread
Public oThread2 As Thread
Sub Main()
oThread1 = New Thread(AddressOf SecondThread)
oThread2 = New Thread(AddressOf ThirdThread)
oThread1.Start()
oThread2.Start()
End Sub
Public Sub SecondThread()
Dim i As Integer
For i = 1 To 10
Console.WriteLine(i.ToString())
Next
End Sub
Public Sub ThirdThread()
Dim i As Integer
For i = 1 To 10
Console.WriteLine("A"i.ToString())
Next
End Sub
End Module
破坏线程 调用Abort方法来破坏(中止)一个线程 。在调用Abort之前 , 确保用IsAlive判断线程处于活动状态 。
If oThread1.IsAlive Then
oThread1.Abort()
End If
暂停线程可以使用Sleep方法来暂停线程执行 。Sleep方法接受一个以毫秒为单位的参数 , 指明线程应当暂停多长时间 。
下面的例子让线程暂停1秒钟:
oThread2.Sleep(1000)你也可以使用Suspend和Resume方法来挂起和继续线程执行 。
设定线程优先级Thread类的Priority属性用于设定线程优先级 。该属性可以设置为Normal,AboveNormal,BelowNormal , Highest和Lowest 。如:
oThread2.Priority = ThreadPriority.Highest线程与Apartment使用ApartmentState属性设置线程的apartment类型 , 该属性值可以为STA,MTA或是Unknown[][2]:
oThread.ApartmentState = ApartmentState.MTAMTS意味着可以使用多线程模式,而STA则只能是单线程执行 。
Public Enum ApartmentState
{
STA = 0,
MTA = 1,
Unknown = 2,
}
1.8 结构化异常处理异常处理也被称之为错误处理 。作为VB程序员,你一定对On Error Goto和On Error Resume Next这些VB6.0错误处理语句耳熟能详 。这种类型的错误处理被称为非结构化异常处理(Unstructured Exception Handling) 。而在VB.NET中,Microsoft推出了结构化异常处理机制 。VB.NET支持类似C的TryCatch..Finally控制 。Try..Catch..Finally结构如下: Try
' 可能导致异常的代码
Catch
' 当异常发生时处理异常的代码
Finally
' 清理现场
End Try
Try语句块用以抛出异常 。如果异常发生,在Catch语句块中处理 。Finally语句块是可选的,在需要释放资源时特别有用 。
1.9 VB6.0与VB.NET的不同之处除了上面谈到的语言进化,还有一些语法上的变化 。所有这些语言和语法的变化在MSDN中均可查到,本文只作简单介绍 。
数据类型(Data Type)的改变VB.NET中有些数据类型得到改进 。下面是变化对照表 。
数据类型 VB6.0 VB.NET
Integer 16 bit size 32 bit size
Long 32 bit size 64 bit size
Currency 用于存储大浮点数 被decimal替代,支持更高精度
Variant 可以存储任意类型数据 被Object类型替代,也可以存储任意类型数据 , 但结果更好
Date Date类型被存储为double 引入DateTime类型,用于存储不同格式的日期
在VB.NET中 , Short数据类型是16 bit的 。Short , Integer和Long都等同于CLR的System.Int16、System.Int32和System.Int64类型 。变量声明的变化在VB6.0中,变量声明有许多限制 。其中之一就是不能同行声明多个变量 。如果一定要在一行中声明多个变量 , 就一定得指明每个变量的类型 , 否则将被默认为Variant类型 。
Dim a1, a2 As Integer Dim a3 As Integer, a4 As Integer 第一行中的a1是Variant类型,a2是Integer类型 。第二行中两个变量都是Integer类型 。VB.NET支持同行声明多个变量 , 举例如下:
Dim a1, a2, a3 As Integer 变量初始化是另一个问题 。在VB6.0中不能同时声明和初始化变量,而VB.NET则支持这个特性 。
Dim name As String = "Mahesh"System.Console.Write(name) 声明常量也可以照此办理:Const DT_COUNT As Integer = 23 New关键字 。在VB.NET中,New关键字用于创建对象 。由于数据类型是对象,所以New关键字用以创建一个数据类型对象 。
Dim i As Integer = New Integer()i = 10System.Console.WriteLine(i.ToString()) 代码块级别支持 。像C一样,VB.NET支持代码块级别的作用域检查 。在语句块中声明的变量只在块内有效 。
For i = 1 To 10Dim p As LongSystem.Console.WriteLine(i.ToString())NextSystem.Console.WriteLine(p.ToString()) 这段代码在VB.NET中会得到一个编译错误,因为p在For..Next语句块之外不可访问 。在VB6.0中这段代码可以通过 。
改进了的类型安全
在VB6.0中,当你声明一个对外部过程的引用时 , 可以指定任意类型的参数为As Any 。Any关键字禁止了类型检查,允许任意数据类型传入和返回 。
VB.NET不支持Any关键字 。你必须指定每个参数和返回值的数据类型 。数组VB.NET对数组作了明显的改动 。
数组范围 。在VB.NET中,你需要格外留意数组范围问题 。VB6.0默认数组下界为0,故数组中的元素数量等与数组上界值加一 。下面的数组界限从A(0)到A(10),共有11个元素:
Dim A(10) As Single可以使用Option Base改变下界值为1 。在VB.NET中 , 数组和C一样,下界值为0,不支持Option Base 。注意:MSDN文档指出数组只能包括与其尺寸相等的元素数量 , 例如:Dim A(10) As Integer 只能包括10个元素(从A(0)到A(9)),但在编译下面这段代码时我发现它运行良好,看起来数组中容纳了11个元素 。
Dim A(10) As Integer A(0) = 12 A(2) = 24 A(10) = 23 System.Console.WriteLine(A(0).ToString()) System.Console.WriteLine(A(10).ToString())System.Console.WriteLine(UBound(A).ToString()) System.Console.WriteLine(LBound(A).ToString()) Lbound和Ubound分别返回 0与10 。ReDim和Fixed Array 。你可以在VB6.0中指定固定长度的数组 。
Dim ArrWeekDays(0 To 6) As Integer
这里的ArrWeekDays数组是固定长度的,不能用ReDim语句改变长度 。VB.NET不支持固定长度数组,所以ReDim总是有效 。
可以用下面两种方式声明数组: Dim ArrWeekDays(6) As IntegerDim ArrWeekDays() As Integer = {1, 2, 3, 4, 5, 6} ReDim语句 。在VB6.0中 , ReDim用于初始化动态数组 。在VB.NET中你不能把它当作声明用 。ReDim只能用于改变数组长度 , 不过不能改变数组维度 。
Variant对阵ObjectVB6.0中的Variant数据类型能存储任意类型变量,VB.NET中Object具备相同能力 。
算术操作符VB.NET支持类似C的快捷方式 。下面的表格显示了常规操作与快捷操作的不同之处 。快捷方式也可用于*、/、|、等操作符 。
操作符常规语法快捷方式加法A = A 5A=5 减法A = A – 5A -5固定长度字符串
在VB6.0中,可以在声明字符串时指定其长度 。VB.NET不支持固定长度字符串 。
布尔操作符VB6.0中的And、Or或是Xor语句是按位操作符 。而在VB.NET中,它们是布尔操作符 。执行这些操作将返回true或false 。VB.NET引入新操作符来完成按位操作 。
操作符描述BitAnd按位AndBitOr按位OrBitXor按位XorBitNot按位Not结构与自定义类型在VB6.0中 , 你使用Type…End Type语句块创建结构或自定义类型 。例如:
Type StdRec
StdId As Integer
StdName As String End Type
VB.NET引入新的语法:Structure 。Type…End Type不再被支持 。Structure…End Structure与C用法相同 。可以指定结构中每个元素的可访问域,如Public、Protected、Friend、Protected Friend、Private等 。例如:
Structure StdRec
Public StdId As Integer Public StdName As String
Private StdInternal As String End StructureVB.NET中的Structures就像类一样,也可以拥有方法和属性 。New和Nothing关键字VB6.0中,AS New和Nothing关键字用于声明一个对象并初始化它 。VB.NET不支持隐式创建对象 。如前所言,甚至连数据类型都是对象 。你可以采用以下两种方法创建数据类型或对象: Dim i As Integer Dim i As Integer = New Integer() // Do something if i = Nothing Then End If 不支持Set语句VB6.0使用Set语句指派对象 。例如:Set myObj = new MyObjectSet a = b在VB.NET中,不需要使用Set指派对象 。例如:myObj = new MyObj()a = b过程(procedure)语法的变化在VB.NET中过程语法有了很多变化 。例如类似C的过程调用方式、ByVal(传值)为默认类型、Optional关键字、return语句等等 。类似C的过程调用方式 VB6.0允许不用加圆括号调用过程(sub) 。不过,用Call语句调用函数或sub时,一定要使用圆括号 。例如:Dim I as IntegerCall EvaluateData(2, i) EvaluateData 2, i 在VB.NET中,所有的方法调用都需要圆括号,而Call语句则是可选的 。ByVal是默认参数类型在VB6.0中,在调用函数或sub时ByRef(传址)是默认类型 。那意味着所有改变将反映到传入的变量 。VB.NET改变了这种方式 。现在,默认的参数类型是ByVal(传值) 。Optional关键字VB6.0使用Optional关键字可用来让用户决定传入一个默认值 , 之后在调用IsMissing函数判断参数是否有效 。而在VB.NET中 , 每个可选参数必须声明其默认值 , 无需调用IsMissing函数 。例如:Sub MyMethod(Optional ByVal i As Integer = 3)
Return语句VB.NET的Return语句与C相似 。使用Return语句把控制权从过程返还给调用者 。在VB6.0中 , Return语句与GoSub语句一起使用 。VB.NET不再支持GoSub语句 。流程控制的改变下面是VB.NET对流程控制语句的修改:1. GoSub不再受到支持 。2. Call、Function和Sub语句均可用于调用过程 。3. On ... GoSub和On ... GoTo语句不再受支持 。可以使用Select Case语句来替代 。4. While ... Wend语句现在改为While…End While语句 。不再支持Wend关键字 。小结 Visual Basic .NET是.NET版本的Visual Basic,已经从根本发生了变化!通过本文你了解到VB6.0和VB.NET的区别是很大的 , 可以说根本就是两种不同的语言,因为它们的内核发生了变化,VB6.0是基于COM而vb.net是基于.net框架的,因为这个变化 , 所以在构造类时也发生了根本性的变化 。
VB是什么东西啊[编辑本段]Visual Basic编程语言
1991年,美国微软公司推出了Visual Basic(可简称VB),目前的最新版本是VB 2010 测试版 。
Visual 意即可视的、可见的 , 指的是开发像Windows操作系统的图形用户界面(Graphic User Interface,GUI)的方法,它不需要编写大量代码去描述界面元素的外观和位置,只要把预先建立好的对象拖放到屏幕上相应的位置即可 。
Basic 实际上是一个短语的缩写,这个短语就是 Beginners all_purpose symbolic instruction code , 其中文意思为“初始者通用符号指令代码语言” 。
Visual Basic 6 有学习版、专业版和企业版三种版本,以满足不同的开发需要 。学习版适用于普通学习者及大多数使用 Visual Basic 开发一般 Windows 应用程序的人员vb.net分布式;专业版适用于计算机专业开发人员,包括了学习版的全部内容功能以及Internet控件开发工具之类的高级特性;企业版除包含专业版全部的内容外,还有自动化构件管理器等工具,使得专业编程人员能够开发功能强大的组骨子里分布式应用程序 。
Visual Basic 是一种可视化的、面向对象和采用事件驱动方式的结构化高级程序设计语言 , 可用于开发 Windows 环境下的各类应用程序 。它简单易学、效率高,且功能强大可以与 Windows 专业开发工具SDK相媲美 。在Visual Basic环境下,利用事件驱动的编程机制、新颖易用的可视化设计工具 , 使用Windows内部的广泛应用程序接口(API)函数,动态链接库(DLL)、对象的链接与嵌入(OLE)、开放式数据连接(ODBC)等技术,可以高效、快速地开发Windows环境下功能强大、图形界面丰富的应用软件系统 。随着版本的提高 , Visual Basic的功能也越来越强 。5.0版以后,Visual Basic 推出了中文版,与前个版本相比,其功能有了很大提升 。
但是 , 功能再强大,Visual Basic 仍然有一个缺点:在没有MSVBVM**.DLL的计算机上必须安装所需的DLL文件 。用它可设计操作系统,不过,比较困难 。
在21世纪初 , Microsoft 公司推出 Visual Studio .NET 2003,它与 Visual Basic 之间有了重大变化,Visual Studio 为各种编程工具做了一个平台,Visual Basic.NET 可在这种平台上运行 。相对于传统VB,有很大的不同 。VB .Net , 首次使用.Net构架进行可视化编程,并且能很好地与COM构架兼容 , Visual Studio .NET 2003 应用 .NET Framework 1.1。
2005年 Visual Studio 2005 则运用了 NET 2.0 的技术,更加的方便了程序员的工作 。可是新的程序对系统配置要求也较高,需要微软.Net Framework 2.0以上的.Net构架支持 。
2007年12月,微软(Microsoft)推出了Visual Studio 2008 Beta 2 发生了重大的变化(见附图)在代码输入的时候,可以比VB2005快很多,在非特殊的情况下,VB2008都会自动开启 自动完成关键字 这个命令 而且支持最新的 .NET Framework 3.5 SP1 Beta
由VB派生的语言
微软开发了一系列有关VB的脚本语言:
Visual Basic for Applications,即VBA,包含在微软的应用程序中(比如Microsoft Office),以及类似WordPerfect Office这样第三方的产品里面 。VBA这样嵌入在各种应用程序中看起来有些矛盾,但是它的功能和VB一样强大 。
VBScript是ASP的默认语言,还可以用在Windows脚本编写(Shell Script)和网页编码(HTML)中 。尽管它的语法类似于VB,但是它却是一种完全不同的语言 。VBS不使用VB运行库运行,而是由Windows脚本宿主(wscript.exe - Microsoft Windows Based Script Host)解释执行 。这两种语言之中的不同点影响ASP网站的表现 。
当微软准备开发一种新的编程工具的时候,第一决定就是利用最抢手的 VB6 来进行修改,或者就是重新组建工程开发新工具 。微软后来开发了VB的继任者Visual Basic .NET,同时也是.NET平台的一部分 。VB.NET编程语言是一种真正的面向对象编程语言(VB4-VB6 只能称为基于对象而不是面向对象,最明显的特征就是 VB4-VB6 都不支持类的继承) , 和传统 Visual Basic 并不完全兼容 。[1]
VB编程语言历史
Visual Basic从1991年诞生以来 , 现在已经18年了 。BASIC是微软的起家产品,微软当然不忘了这位功臣 。随着每一次微软技术的浪潮 , Visual Basic都会随之获得新生 。可以预见,将来无论微软又发明了什么技术或平台,Visual Basic一定会首先以新的姿态登上去的 。如果你想紧跟微软,永远在最新的技术上最快速地开发,你就应该选择Visual Basic 。
1991-西雅图夜空的雷电
随着 Windows 3.0 的推出 , 越来越多的开发商对这个图形界面的操作系统产生了兴趣 , 大量的Windows应用程序开始涌现 。但是,Windows 程序的开发相对于传统的DOS有很大的不同,开发者必须将很多精力放在开发GUI上,这让很多希望学习Windows开发的人员却步 。1991年 , 微软公司展示了一个叫Thunder的产品 , 所有的开发者都惊呆了 , 它竟然可以用鼠标“画”出所需的用户界面,然后用简单的BASIC语言编写业务逻辑,就生成一个完整的应用程序 。这种全新的“Visual”的开发就像雷电(Thunder)一样,给Windows开发人员开辟了新的天地 。这个产品最终被定名为Visual Basic,采用事件驱动,Quick BASIC的语法和可视化的IDE 。Visual Basic 1.0带来的最新的开发体验就是事件驱动,它不同于传统的过程式开发 。同时,VBX控件让可视化组件的概念进入Visual Basic 。Visual Basic 1.0是革命性的BASIC,它的诞生也是VB史上的一段佳话 。
Visual Basic 1.0
1992-渐入佳境的Visual Basic
由于Windows 3.1的推出,Windows已经充分获得了用户的认可 , Windows开发也进入一个新的时代 。Visual Basic 1.0的功能过于简单,相对于Windows 3.1的强大功能没有发挥出来 。所以,微软在1992年推出了新版本Visual Basic 2.0 。这个版本最大的改进就是加入了对象型变量,比如
Dim b As CommandButton
Dim c As Control
而且有了最原始的“继承”概念,对象型变量分为一般类型(Control和Form)和专有类型(CommandButton和Form1等),一般类型的变量可以引用专有类型的实例,甚至通过后期绑定访问专有类型的属性和方法 。还可以通过TypeOf…Is运算符获取对象实例的运行时类型信息(这个功能就是当今C#的is运算符或Java的instanceof运算符) 。除了对语言的改进和扩充 , Visual Basic 2.0对VBX有了很好的支持 , 许多第三方控件涌现出来 , 极大地丰富了Visual Basic的功能 。微软还为Visual Basic 2.0增加了OLE和简单的数据访问功能 。
Visual Basic 2.0标准版
Visual Basic 2.0专业版
1993-数据库组件新添力量
Visual Basic 2.0推出没几个月 , 微软就发布了新版本的Visual Basic 3.0,可以看出VB这时候旺盛的生命力 。乍一看,Visual Basic 3.0的界面没有太大的变化 , 但其实这个版本是非常及时的 。它增加了最新的ODBC2.0的支持 , Jet数据引擎的支持和新版本OLE的支持 。最吸引人的地方是它对数据库的支持大大增强了,Grid控件和数据控件能够创建出色的数据窗口应用程序,而Jet引擎让Visual Basic能对最新的Access数据库快速地访问 。Visual Basic 3.0还增加了许多新的金融函数 。此外还增加了相当多的专业级控件,可以开发出相当水平的Windows应用程序 。Visual Basic 3.0是98年以前中国最流行的Visual Basic版本,因为它开发出来的可执行文件非常小,通常能用一张软盘装下 。不过,Visual Basic采用虚拟机运行P代码的做法也让很多开发者不满,他们认为这样程序运行的效率很低 , 这时候Visual Basic的竞争者Delphi也诞生了 。
Visual Basic 3.0标准版
Visual Basic 3.0特别版
1995-第二次革命性变化,向COM进军 。
从1993年到1995年年中,Visual Basic一直没有新的动静 , 焦急的开发者都想一窥这个神秘的新版本到底发生了什么变化 。Visual Basic 4.0的BETA最后终于和大家见面了 。这个版本包含了16位和32位两个版本,16位的版本就像是Visual Basic 3.0的升级版,而32位版则是一场新的革命 。首先,人们发现VBX控件不见了,全部换成了OCX控件,这个OCX可能是指OLE Custom Controls,这个OLE已经不是传统的OLE了,用现在的话说 , 它就是COM控件 。第二个最大变化是Visual Basic 4.0所用的语言换成了Visual Basic For Application , 这就和Office 95所采用的宏语言统一起来,这个新语言有很多亮点:
1、 加入了“类模块” 。这是面向对象最重要的封装性的基础 。
2、 加入了属性过程,加上函数过程,子程序过程,VB已经有组件开发所需的封装性特征 。
3、 加入了Byte类型、Boolean类型和Object类型 。这大大完善了VB的类型系统 。
4、 For Each语句和Collection对象 。For Each语句给遍历集合类型提供了极大的方便,现在可以在动态增长的Collection上使用For Each,而不用担心集合内容的总数或烦人的下标问题 。
这个版本的Visual Basic还能够开发DLL工程 , 其实就是COM的DLL , 可以将书写好的类用这种方式和其他语言共享 。
总之,这个4.0的版本为Visual Basic成为一种COM语言奠定了基础 。用Visual Basic 4.0开发基于COM的DLL比任何一种开发工具都方便 。但是 , Visual Basic 4.0的性能问题变得更加严重了,P-代码的组件成为Visual Basic 4.0严重的性能瓶颈 , 而且巨大的运行库也让用户感到不满 。Visual Basic 4.0对以前版本的支持也不好 , 使用了大量VBX的项目很难移植到Visual Basic 4.0中 。因此,Visual Basic 4.0在中国的普及程度非常低 。
Visual Basic 4.0
1997-Visual Basic的丰收年
1997年 , 微软推出了Visual Basic 5.0 , 这个版本的重要性几乎和4.0一样高 。COM(这时候叫ActiveX)已经相当成熟,Visual Basic 5.0当然对它提供了最强的支持 。不过,国内还没有意识到COM的重要性前主要对这个版本另一个最大的亮点十分关注:本地代码编译器 。Visual Basic 5.0终于在用户的呼声中加入了一个本地代码编译器,它可以让应用程序的效率大大提升 。除了这个大家都知道的改进以外,Visual Basic 5.0对Visual Basic For Application语言有重大的完善和丰富:
5、 事件 。Visual Basic 5.0终于允许用户自己创建事件,而且这事件的语法相当强健和完善,这在一种不支持函数回调的语言中是很难得的 。现在,VB拥有属性、方法和事件的完整封装性 。
6、 接口 。这是VB实现多态性的基础 。同时为编写COM组件提供了更多方便 。
7、 枚举 。在Visual Basic 5.0中枚举作为Long整型的子类型出现,用枚举可以对常量进行完善的封装 。
8、 类模块的改进 。通过类模块的属性可以指定类模块具有多种指定的行为 , 如私有构造函数等,可以通过这个功能创建符合Singleton和Monostate模式的设计 。
9、 Debug.Assert 。虽然这个断言系统有点鸡肋,但是总算是给调试带来了方便 。
10、 Visual Basic 5.0支持创建自己的集合类 。可以创建用于For Each语句的集合类型 。
11、新的数据类型Decimal,可以精确地处理有效数位较多的计算 。
Visual Basic 5.0的IDE支持“智能感知” , 这是一项非常方便开发者的功能,可以不必记住很长的成员名称和关键字,只要按“.” , 想要的东西统统弹出来 。
Visual Basic 5.0还支持开发自己的ActiveX 控件、进程内的COM DLL组件、进程外的COM EXE组件以及在浏览器中运行的ActiveX文档 。这极大丰富了Visual Basic的开发能力,在Internet开发上,Visual Basic 5.0也能有所建树 。
1998-企业真正高效的源泉
Visual Basic 6.0作为Visual Studio 6.0的一员发布,证明微软正在改变Visual Basic的产品定位,他想让Visual Basic成为企业级快速开发的利器 。Visual Basic 6.0在数据访问方面有了很大的改进,新的ADO组件让对大量数据快速访问成为可能 。数据环境和新的报表功能也让数据开发有了全新的体验 。Visual Basic 借助COM/COM 强大的功能,可以开发具有N层结构的分布式应用程序 。同时,Visual Basic还可以在IIS上开发性能超群的Web应用程序 。Visual Basic 6.0在语言方面和IDE方面的改进都不大,但是许多新增的组件成为Visual Basic开发人员手中的利器,如File System Object等 。新的字符串函数Split和Replace等也给Visual Basic的程序员带来很大方便 。
总之Visual Basic 6.0已经是非常成熟稳定的开发系统,能让企业快速建立多层的系统以及Web应用程序 , 成为当前 Windows 上最流行的 Visual Basic 版本 。
Visual Basic 6.0
2002-第三次革命性变化,向.NET进军
从1998年发布到2002年正式推出Visual Basic. NET简直吊足了开发者的胃口 。从2000年就开始传言的具有继承、Try…Catch语句等新功能的全新VB7.0一直没有露面 。直到2001年,Visual Studio.NET的第一个BETA版问世的时候,所有人都呆了——这是Visual Basic吗?And语句变成了BitAnd,数组只能从0下标开始 , 而且连Dim语句的意义都变了,几乎所有的窗体控件都变了,Long变成了Integer而Integer变成了Short , Variant不见了,Static不能用了……简直是翻天覆地,人们已经无暇关注这个版本有什么改进,转而担心vb.net分布式我怎么才能接受这个本本了 。其实Visual Basic. NET完全是为了.NET Framework这一全新的平台而设计的,Visual Basic. NET的设计者一开始没有掌握好新平台和旧语言的平衡 。到了BETA2中 , 很多东西回归了6.0,如BitAnd又变回了And,数组的定义语句也变回了原有的意义,Static也回到了Visual Basic中 。但是BETA1惊人的变化让所有的VB开发者怕了,他们觉得这种语言被改的千疮百孔 , 有些人干脆转去研究传说中的新语言C# 。但是Visual Basic. NET渡过几个BETA版本之后还是找到了正确的定位 。Visual Basic. NET有对CLR最完善的支持,同时尽量保留着BASIC易懂的语法风格和易用性 。这个版本新增加的功能已经数不清,最重要的几个是:
1、 继承 。至此,Visual Basic完成了向面向对象转变的道路 。
2、 共享成员 。
3、 Try…Catch结构化异常处理 。
4、 Delegate和Interface 。
5、 名称空间 。
6、 对自由线程的支持 。
特别的是,Visual Basic. NET大大减少了Visual Basic语言的关键字,如GoSub、PSet等等 。原先的Visual Basic有多达120个关键字,这给写程序带来了很大的不便 , 现在经过精简,Visual Basic脱下了这个沉重的包袱 。
Visual Basic. NET现在是一门现代的、强壮的、面向对象的、简单的可视化开发语言 。强大的语言功能吸引了很多开发者 。历史是在不断重演的,Visual Basic. NET如今的处境和Visual Basic 4.0很相似,由于兼容性变差,人气也降低了 。同时由于依附于.NET Framework , 程序发布造成了一定的困难 。现在国内使用Visual Basic. NET的人相对于Visual Basic 6.0来讲显得很少 。但是凭借Visual Basic. NET强大的语言功能和MS的支持,Visual Basic. NET一定会显出它的光辉来 。
2003-稳中求变的新版本
Visual Basic. NET 2003是一个相当稳重的版本,改变很少,但对小处有很多改进 。首先Visual Basic 6.0升级向导做了很大改进,这给从老版本痛苦升级的人带来了更多一些的希望 。其次在IDE方面 , Visual Basic. NET 2003修正了许多错误 , 还让事件处理恢复了6.0的开发体验 。语言方面只有两项改进:
1、 在For、For Each语句中声明循环变量 。
2、 增加了数学移位运算符和 。
在这个比较成熟稳定的新版本下,许多Visual Basic的爱好和开始重新了解Visual Basic. NET,社区里面也渐渐热闹起来 。但是,有些使用C#的开发者坚持认为Visual Basic. NET是垃圾,尽管Visual Basic. NET拥有比C#更多的功能和更好的IDE 。这说明不了解Visual Basic. NET成为它普及的最大障碍 。
2005-完美主义的Visual Basic,能否再现辉煌?
为了让Visual Basic有最佳的开发体验 , Visual Basic 2005的设计者绞尽了脑汁 。这次Visual Basic 2005光语言上的改进就足以让Visual Basic的开发人员高兴一阵子 。大家可以去看看我那篇介绍Visual Basic 2005新增功能的贴子 。挑重要的列在下边:
1、 泛型
2、 运算符重载
3、 Partial Type
4、 窗体的默认实例(让你用VB6的语法使用窗体)
5、 语法的多种改进
6、My关键字
现在用Visual Basic 2005只要一行代码就可以读写注册表、访问文件、读写串口、获取应用程序信息…… 用Visual Basic 2005完全可以称作享受开发 。而泛型、运算符重载等功能又可以让Visual Basic的开发人员深入.NET Framework的全部功能 , 开发出最优秀的应用程序 。
2008-功能极强且最易用的 Visual Basic
新版本的VB2008 具有下列新功能和加强功能
1、Language-integrated query: 可以让使用者在VB2008中进行资料查询 。
2、物件关联式设计工具会协助开发人员建立和编辑 , 使应用程序连接至资料库的 link to sql 类别 。
[编辑本段]维生素B
这里的V表示Vitamin
维生素B包括维生素B1、维生素B2、维生素B6、维生素B12、烟酸、泛酸、叶酸 。这些B族维生素是推动体内代谢,把糖、脂肪、蛋白质等转化成热量时不可缺少的物质 。如果缺少维生素B , 则细胞功能马上降低,引起代谢障碍,这时人体会出现怠滞和食欲不振 。相反喝酒过多等导致肝脏损害 , 在许多场合下是和维生素B缺乏症并行的 。
以下是含有丰富维生素B的食品:
①含有丰富维生素B1的食品:小麦胚芽、猪腿肉、大豆、花生、里肌肉、火腿、黑米、鸡肝、胚芽米等 。
②含有丰富维生素B2的食品:七腮鳗、牛肝、鸡肝、香菇、小麦胚芽、鸡蛋、奶酪等 。
③含有维生素B6、维生素B12、烟酸、泛酸和叶酸等食品: 肝、肉类、牛奶、酵母、鱼、豆类、蛋黄、坚果类、菠菜、奶酪等 。其中的维生素B1在人体内无法贮存,所以应每天补充 。
B族维生素若想全部摄取比较困难 , 但是认真选择食物就可以简单且方便的摄取 。上述含有维生素B的食物可以分为①和②③两组 。看看上述分类就可以明白 , ②和③全都含在大体相同的食物中 。因此①作为一组食物,②和③合在一起形成一组食物,组合选择两组食物 , 基本上可以把B族维生素摄取到手 。
[编辑本段]价键理论
valence-bond theory
一种获得分子薛定谔方程近似解的处理方法 。又称电子配对法 。历史上最早发展起来的化学键理论 。主要描述分子中的共价键和共价结合 , 其核心思想是电子配对形成定域化学键 。
1927年W.H.海特勒和F.W.伦敦首次完成了氢分子中电子对键的量子力学近似处理,这是近代价键理论的基础 。L.C.鲍林等加以发展 , 引入杂化轨道概念,综合成价键理论,成功地应用于双原子分子和多原子分子的结构 。
价键理论是海特勒伦敦处理氢分子方法的推广,要点如下:①若两原子轨道互相重叠,两个轨道上各有一个电子,且电子自旋方向相反,则电子配对给出单重态,形成一个电子对键 。②两个电子相互配对后 , 不能再与第三个电子配对 , 这就是共价键的饱和性 。③遵循最大重叠原则,共价键沿着原子轨道重叠最大的方向成键 。共价键具有方向性 。原子轨道通常在某个特定方向上有最大值,只有在此方向上轨道间才有最大重叠而形成共价键 。不同原子轨道有不同成键能力 。原子轨道的最大值作为原子轨道成键能力的度量,鲍林给出s、p、d、f等原子轨道成键能力依次为1、3、5、7 。在主量子数相同时,成键能力大的轨道形成的共价键较牢固 。
价键理论与化学家所熟悉的经典电子对键概念相吻合,一出现就得到迅速发展 。但价键理论计算比较复杂 , 使得后来发展缓慢 。随着计算技术日益提高,该理论还会有新发展 。
[编辑本段]虚拟网桥(Virtual Bridge)
VB其实是为了管理方便对管理域的一个划分,相当于一个虚拟的L2 Lanswitch 。在城域网的应用中 , VB是基于用户划分的 。即:每个用户都有自己独立的VB,其中包含多个vlan标签和mac地址 。由于各个VB之间相互隔离,不同的VB可分配相同的vlan而互不影响,而基于vlan划分VB的L2芯片不能区分不同用户的相同vlan 。
百度百科
vb.net分布式的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于、vb.net分布式的信息别忘了在本站进行查找喔 。
推荐阅读
- 视频怎么投影到电视,3d投影的视频
- 苹果为啥用ios系统更新软件,为什么iphone更新软件这么慢
- 支持中文的射击游戏手机,中文版射击游戏单机安卓破解版
- 阿里云服务器网站制作工具,阿里云服务器做网站
- linux强行命令行 linux强制结束进程命令
- 虚拟机运行鸿蒙系统,虚拟机安装鸿蒙系统
- mes开源框架.net,mes开源平台
- 虎牙抖音私人订制直播,虎牙抖音私人订制直播是真的吗
- php查找数据库用户 php查询数据库语句