VB.NET小结
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关键字表示继承,有两种写法。
-
-
Base
表示父类
Parent
表示父类
Super
没有继承其它类的类,如Object
Derived\sub\child
表示衍生类、子类
-
- 接口(Interface):由一些共同的操作、行为或其它抽象出来的共享边界。
- 接口名字InterfaceName首字母大写“I”
-
- 上面是实现了IDataReader接口,可以访问不同的数据源或数据库
- 在.NET中常用接口有
-
- 在VB.NET中用Inherits关键字表示继承,有两种写法。
- ADO.NET与关联式数据库设计
- 什么是ADO.NET?、
- 在面向对象程序设计里面,所有操作都是面向对象的。
- ADO.NET是数据存取技术,也可称为对数据库存取对象的集合。
- 不同的数据库对应不同的ADO.NET组件,如下图
-
- ADO.NET五大对象
- DataSet对象
- 可以从数据库中复制出数据保存在DataSet中,因此,可以处理脱机数据,在多层次、分散式应用程序中很有用。
- XML完整性,可以DataSet对象和XML文档可以互换。
- DataReader对象
- 通过DataReader对象可以从数据库读取记录,占用一个数据库连线。
- DataAdapter对象
- 用来向DataSet数据集中填充数据。
- Connection:用来连接数据库
- Command:执行T-SQL语句
- DataSet对象
- 关联式数据库设计原则
- 表中一般要建立主索引键:防止有重复记录与表之间进行关联
- 数据库正规化设计
- 什么是ADO.NET?、
- 程序设计方式
- 事件驱动程序设计
- 以元件为基础的程序设计
-
- 分散式程序设计
- 一个系统或软件不仅分布在一台主机上,而是很多机器,成为分散式程序设计。
- 同步分散式
- 用户端等待服务器响应之后,在继续执行。
- 机制RPC(Romote Pocedure Call)
-
- 常见形式
- 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的组件载入效率会比较快
- 将具有强名称(Strong Name)的组件安装到GAC中
- 下载部署
- 使用CodeBase来指定DLLs位置
- CodeBase即某个DLLs所在位置
- 更新了新版.EXE就会触发下载新版DLLs
- 利于版本更新
- 使用CodeBase来指定DLLs位置
- Copy部署