VB.NET小结

来源:岁月联盟 编辑:exp 时间:2012-01-31
VB.NET是在VB6.0的基础上发展而来的,它完全支持面向对象的程序设计,而VB6.0是部分面向对象的,VB.NET语法和VB6相似,又有自己新增的功能,由于它完全面向对象,因此,支持继承、多态、封装。
类(Class)的组成
字段(Fields)、属性(Property)、方法(Methods)
浅拷贝(Shallow Copy)与深拷贝(Deep Copy)
Shallow Copy:指将对象中的数值类型的字段拷贝到新的对象中,而对象中的引用型字段只复制它的一个引用到目标对象;这样的复制如果改变目标对象中引用类型字段的值,它也将反映在原对象中,因为,目标对象和原对象是一个引用。
Deep Copy:指对值类型字段与Shallow Copy处理相同,不同的是对于引用类型字段,Deep Copy会重新创建对象,即复制对象的引用和对象内容。
实现的机制:Shallow Copy是通过MemberWiseClone()方法实现,而Deep Copy是实现ICloneable接口中的Clone方法实现对象的深拷贝。
C#中的原型模式(Prototype)就是一个浅拷贝的例子。
Shared关键字
Shared看起来陌生,其实,它的作用我们已经学过,它就像C#里面的Static关键字,表示一些需要共享的字段、属性、方法等
实例与实例之间往往需要共享一些数据,如银行用户的利率数据每个用户都一样,就没必要放在每一个实例里面,可以拿出来共享.
 
继承(Inherits)类、接口(Interface)类
在VB.NET中用Inherits关键字表示继承,有两种写法。
      1. /
      2. Base

        表示父类

        Parent

        表示父类

        Super

        没有继承其它类的类,如Object

        Derived/sub/child

        表示衍生类、子类

        1. 接口(Interface):由一些共同的操作、行为或其它抽象出来的共享边界。
          1. 接口名字InterfaceName首字母大写“I
          1. /
            1. 上面是实现了IDataReader接口,可以访问不同的数据源或数据库
          1. .NET中常用接口有
            1. /
        1. ADO.NET与关联式数据库设计
          1. 什么是ADO.NET?、
            1. 在面向对象程序设计里面,所有操作都是面向对象的。
            1. ADO.NET是数据存取技术,也可称为对数据库存取对象的集合。
            1. 不同的数据库对应不同的ADO.NET组件,如下图
              1. /
          1. ADO.NET五大对象
            1. DataSet对象
              1. 可以从数据库中复制出数据保存在DataSet中,因此,可以处理脱机数据,在多层次、分散式应用程序中很有用。
              2. XML完整性,可以DataSet对象和XML文档可以互换。
            1. DataReader对象
              1. 通过DataReader对象可以从数据库读取记录,占用一个数据库连线。
              1. /
            1. DataAdapter对象
              1. 用来向DataSet数据集中填充数据。
            1. Connection:用来连接数据库
            2. Command:执行T-SQL语句
          1. 关联式数据库设计原则
            1. 表中一般要建立主索引键:防止有重复记录与表之间进行关联
            2. 数据库正规化设计
        1. 程序设计方式
          1. 事件驱动程序设计
          2. 以元件为基础的程序设计
            1. /
          3. 分散式程序设计
            1. 一个系统或软件不仅分布在一台主机上,而是很多机器,成为分散式程序设计。
            2. 同步分散式
              1. 用户端等待服务器响应之后,在继续执行。
              2. 机制RPC(Romote Pocedure Call)
                1. /



        常见形式
        Form-Based-Web
        Web Server
        Romoting
        非同步分散式
        用户端传送要求,然后,用户端继续进行其它工作,等服务器执行完后,再将结果传给用户端
         
        部署
        一个软件系统可能分布在很多电脑上,包括用户端、服务器、数据库等,让一个系统运行所需要做的设置成为部署。
        .NET开发的程序需要在.NET平台上才能运行,所以,首先需要测试目标主机有没有安装.NET Framework。
        通过Windows Update或Installer Script 让用户自己选择安装
        VS.NET可以设置安装过程,在安装软件之前检查机器里是否有.NET Framework,如果没有进行安装。
        .NET Framework有不同的版本,DLLs默认在编译它时的Framework上运行,可以通过.config指定运行.net Framework版本。
        部署方式
        Copy部署
        将应用程序的.EXE、DLLs 、相关文件,拷贝到同一个文件夹目录下
        “零接触”部署
        给应用程序的.EXE设定一个URL,用户端通过浏览器(IE)等,打开URL连接应用程序。
        .NET将AppBase设为Web Server的虚拟目录
        AppBase即应用程序主目录,.EXE所在目录
        用户从AppBase下载.EXE、DLLs,然后,显示,用户请求结果
        共用部署
        将具有强名称(Strong Name)的组件安装到GAC中
        GAC(Global Assembly Cache)全局程序集缓存:主要存放一些很多程序都要用的Assembly,如System.Data等
        GAC中的Assembly必须有Strong Name
        Strong Name是有一组程序集的标识组成并通过公钥和数字签名加强的名称。
        强名称保护程序集的版本沿袭。
        强名称提供可靠的完整性检查
        具有Strong Name的组件载入效率会比较快
        下载部署
        使用CodeBase来指定DLLs位置
        CodeBase即某个DLLs所在位置
        更新了新版.EXE就会触发下载新版DLLs
        利于版本更新


        摘自 李龙生的专栏