VB.NET视频

前端之家收集整理的这篇文章主要介绍了VB.NET视频前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

第一单元 21世纪的程式执行

  .net framework组成元素
    基底类别库(BCL)
      提供开发各种解决方案时所需使用的物件
      所有的.net语言皆使用同一组
      将各种不同解决方案的模型一致化
    共同语言执行时期(CLR)
      提供所有.net程序语言执行程式时的服务
      提供自动记忆管理
      提供与COM元件互通的能力
      内建多执行绪执行能力

  中介语言格式IL
    由微软所指定,是CLR的组合语言
    所有.net程式语言编译器的目标格式皆为IL
    可在不同平台,跨平台使用
    编译成原生码之后的执行,仍被CLR管理

  组件的搜寻规则:
    从GAC中找(搜寻组件公用快取)
    如果没有找到,不过有组态设定档存在,则搜寻组态设定档所指定的位置。
    如果还是没有找到,.net会搜寻执行档所在的目录
    如果还是没有找到,应用程式将发生错误并结束执行、

  部署的选择
    XCOPY Deployment
    注册到GAC中
    透过.Config

单元2

物件的导向程式设计
物件——对象
属性——属性
行为——方法

物件的复制
e.Clone()

物件的产生
Dim e as employee
e=new employee();

  1. Dim e as new employee()

物件的毁灭(回收空间)
GC资源收集器来自动回收,会周期性地自动执行

  1. 虽然GC帮我们减少了很多工作,但有时大文件空间的时候,最好还是要自己手动回收一下。
  2. 方法
  3. Obj.Dispose()
  4. Obj=Nothing '让物件变成没有被参考

装箱(Boxing)
  所有的东西不见得都是物件
  实质型,放在堆点里面, 当成物件来看,tostring()装箱

方法Method
  用来执行一些动作的程式,就是Method

多载(Overloading)其实就是函数的重载(可能版本有点老吧,说法都没跟上时代潮流)
  多个名称相同的方法

资料的保护(就是访问修饰符)
  尽可能的将资料隐藏起来。(将内部成员限制访问)

属性的操作
set方法与get方法

  1. 只读 ReadOnly 关键字
  2. 只写 WirteOnly 关键字
  3. 好处:
  4. 可以通过方法来对这个属性做一些判断或修改

Shallow copy
Deep copy(需要自己写两层复制)

第三单元 类别与基底类别库

常量和共享
  Const
  Shared(共用成员)

共用成员不用创建物件(不用实例化)直接用类名.属性方法

列举型别(Enum)
  就是枚举类型

模组

  1. Public Module _name
  2.  
  3. End Module

命名空间

  1. Namespace _name
  2.  
  3. End Namespace

  命名空间可以嵌套,空间里可以有子空间。增加可读性,把一类的东西分到一个空间中,好区分,减少类名的冲突。

使用:
  完整参照(完整的名字)
    优点:确保对象的类型正确
    缺点:代码冗长

导入命名空间
  Imports
  就可以只写最关键的类名
  导入太多命名空间可能会:妨碍程序的可读性,增加名称冲突的风险
  折衷方法:建立命名空间的别名。

  1. Imports BT=TeamX.BusinessTier
  2. Dim c as BT.customs

集合
  ArrayList 还可以排序
  HashTable

使用vs建立类别库,类别库将会编译成DLL

方式1:加入DLL参考
  执行起来较有效率,因为只有一个专案
  当Dll变更之后,必须手动重新 编译

方式2:加入专案
  将自动编译DLL
  会在背景编译变更过的元件,这会导致暂时停止回应。

第四单元 事件驱动程序设计

  1. 多对一的事件处理
  2. Private Sub form_load(…) Handles button1.click,button2.click
  3. Message.show("Changed!")
  4. End Sub
  5. 一对多的事件处理
  6.  
  7.  
  8. 在執行時期可以動態加入或移除事件與事件處理的關連
  9. *範例: *在按鈕的事件中,呼叫 AddHandler 或是 RemoveHandler
  1. Private Sub cmdMonitor_Click(…) Handles cmdMonitor.Click
  2. Dim txt As TextBox,c As Control
  3. For Each c in Me.Controls
  4. If TypeOf c Is TextBox Then
  5. txt = c
  6. AddHandler txt.TextChanged,AddressOf Me.Common_TextChanged
  7. End If
  8. Next
  9. End Sub

WinForms
AutoScroll属性
Anchor属性(固定控件的位置)

  1. 窗体调用显示
  2. 窗体是类,引用时需要new
  3. Show 会可以往下执行
  4. ShowDialog 会此窗体被关闭才会往下执行

物件的毁灭
无法自行毁灭物件
物件只能被garbate collector所毁灭

  1. 我们可以选择释放资源
  2. 呼叫Dispose方法
  3. 表单物件为例,可以呼叫closedispose方法

第五单元

明确型别转换
Option Strict On 开启明确型别转换
Option Explicit On 开启显示声明

例外处理
  发生了预期之外的状况
  例如: 除零錯誤
    數值溢位
    存取陣列超過界限
    物件參考不存在
    檔案不存在
    無法存取資料庫

  1. 每一个例外都被视为物件,通过throw掷出,通过catch方式捕捉
  2.  
  3. 例外的类别
  4. System.SystemException系統定義的例外
  5. System.ApplicationException使用者自訂的例外
  6.  
  7. 处理
  8. 使用try-catch语法
  9. Try
  10. statement1
  11. statement2
  12. Catch ex As Exception
  13. statement4
  14. Statement5
  15. Finally
  16. Statement6
  17. Statement7
  18. End Try
  19. psThrow New System.ApplicationException(“File not found!”,ex) 扔出一个新的错误例外)

应用程式的追踪
追踪会记录有关从程式执行的讯息

第六单元 资料库设计与sql

  1. 开放式资料库设计
  2. 栏位
  3. 栏位是具有型别的(stringint。。。)
  4. 主索引键(primary key
  5.  
  6. 关联
  7. 一对多
  8. 一对一
  9. 多对多
  10.  
  11. 资料库正规化
  12. 第一阶正规化:一个栏位中只包含一个“原子”的资料
  13. 1NF2NF3NF,…
  14.  
  15.  
  16. 不要有重复的资料,资料只要储存一次
  17. 命名规则很重要
  18.  
  19.  
  20.  
  21. 资料库管理系统(DBMS
  22. 资料
  23. 资料库引擎JET
  24.  
  25. 要求→ 资料库引擎 资料
  26.  
  27. 类型:MS sql Server,Oracle,DB2,MysqL
  28.  
  29. 工具
  30. sql Server
  31. Query Analyzer : 執行 T-sql 語法
  32. 服務管理員 : 啟動或停止 sql Server
  33. Enterprise Manager : 管理 sql Server
  34.  
  35. Microsoft Access
  36. 建立資料庫、查詢、…
  37. 使用 JET 引擎,免費
  38.  
  39. 其它:
  40. 使用 Visual Studio .NET 中的伺服器總管
  41. WebMatrix 整合開發環境 (http://www.asp.net/)
  42.  
  43.  
  44. 结构化查询语言(sql
  45. DMLData Manipulation Language (select,update,…)
  46. DDLData Definition Language (create,drop,…)
  47. DCL
  48.  
  49. Join table_name on
  50. Outer join
  51.  
  52. Insert
  53. Update
  54. Delete

  删除记录的时候,最好多设置一个字段来标记已不被使用,不要真的删除,这会节省效率,也会减少不必要的麻烦。

  1. 预储程序(存储过程)
  2. 可以接受參數
  3. 可以回傳資料表
  4. 預先編譯、最佳化過 幾乎是十倍快
  5.  
  6.  
  7. 优点:
  8. *執行快速
  9. *將複雜的 sql 程式封裝起來
  10. *提供另外一層的存取控制能力
  11. *大部份的資料庫提供者都支援
  12. *sql Server,etc.
  13. *缺點: *每個資料庫提供者的預儲程序語法都不一樣
  14. *預儲程序不容易轉換成其它格式的程式

第七单元 资料库ADO.NET

  1. ADO.NET架构
  2.  
  3.  
  4. 资料提供者
  5. 原生提供者: sql Server,Oracle
  6. 非原生提供者: OLEDB,ODBC
  7.  
  8. 核心命名空间
  9. 一般: System.Data,System.Data.Common
  10. sql Server: System.Data.sqlClient
  11. Oracle: System.Data.OracleClient
  12. OleDB: System.Data.OleDb
  13. ODBC: System.Data.Odbc
  14. 存取方式
  15.  
  16.  
  17.  
  18. 资料读取与写入
  19. DataReader类可以逐一读取资料
  20. 只能下一个,唯独的游标
  21.  
  22. 存取资料步骤
  23. 1、开放资料库连线
  24. 2、进行资料库操作(读取)
  25. 3关闭资料库连线
  26.  
  27.  
  28.  
  29. DataSet
  30. 就是一个在记忆中的资料结构,用表格的方式来储存
  31.  
  32. DataSet = 離線式的 Recordset
  33. 資料是由伺服端複製回來
  34. 然後在用戶用端離線處理資料
  35. 允許你 :
  36. 減少資料庫伺服器的負載
  37. 關閉資料庫連線,並且離線處理資料
  38. 特別是在分散式應用程式中特別有用
  39.  
  40.  
  41. 使用DataAdapter类填满DataSet
  42. sql = "Select * From Products;"
  43. .
  44. .
  45. .
  46. Dim adapter As ss.sqlDataAdapter,ds As System.Data.DataSet
  47. dbConn = New ...
  48. dbCmd = New ...
  49. adapter = New ss.sqlDataAdapter(dbCmd)
  50. ds = New System.Data.DataSet()
  51.  
  52. dbConn.Open()
  53. adapter.Fill(ds)
  54. dbConn.Close()
  55.  
  56. ds.Tables(“Table”).TableName = Products ‘** 修改 DataSet 中表格的名稱
  57.  
  58. DataSet :
  59. 可以儲存你想要處理的所有資料
  60. 可以搜尋、排序、修改
  61. 範例:
  62. 將整個 Sales 資料庫的資料填滿 DataSet
  63. sql = "Select * From Customers; Select * From Orders; " & _
  64. "Select * From OrderItems; Select * From Products;"
  65. .
  66. .
  67. .
  68. dbConn.Open()
  69. adapter.Fill(ds)
  70. dbConn.Close()
  71.  
  72.  
  73. 工具

第八单元 界面:类别的设计(接口)

  1. 首先制定协定
  2. Interface
  3. 使用implements 来实现
  4.  
  5.  
  6. 第二步才是实作
  7. 必须实现接口中的每一个方法,否则无法编译
  8.  
  9. 优点:
  10. 统一了方法,当具体行为改变时,不用改变客户端的程序。
  11.  
  12. 多型
  13. 就是声明接口,实例不同对象,就可以达到程序不用修改效果
  14.  
  15. 物件的复制
  16. IClonable
  17. Public Class Customer: Implements IClonable
  18. Private m_Name As String
  19. Private m_Email As String
  20. Private m_Balance As Decimal
  21. ...
  22. Public Function Clone( ) As Object Implements ICloneable.Clone
  23. Return Me.MemberwiseClone( ) ‘** returns a shallow copy...
  24. End Function
  25.  
  26.  
  27. IComparable接口
  28. 比较两个物件,并传回一个数值(使用ASCII码来比较)
  29. < 0 表示 obj1 < obj2
  30. = 0 表示 obj1 = obj2
  31. > 0 表示 obj1 > obj2
  32.  
  33. Public Interface IComparable
  34. Function CompareTo(obj As Object) As Integer
  35. End Interface
  36.  
  37.  
  38. 泛用型资料层
  39. 通过选择判断来决定实例化具体的那个数据库对象连接。

第九章 继承:类别的设计

  1. 继承的基础
  2. inherits继承
  3.  
  4. 术语
  5. Base/Super/Parent
  6. Derived/Sub/Child
  7.  
  8. 特点:单继承。就是只能继承一个对象
  9.  
  10. 重写与动态细节
  11. Overridable:定义为可重写的方法
  12. Overrides 来重写
  13.  
  14. 就是动态方法和静态方法
  15. 静态方法比较快,因为要呼叫的方法已经预先决定。
  16. 动态方法比较有弹性,因为是动态的。
  17.  
  18. 基底类别的设计
  19. 必须被继承和必须被重写
  20. MustInherit
  21. MustOverride
  22.  
  23. 限制不被继承
  24. NotInheritable
  25.  
  26.  
  27. EqualsGetHashCode
  28. 如果物件是相等的,那么GetHashCode必须要相等

第10单元 资料库 商业层设计

  1. 资料存取的一般化
  2. 连线的开启与关闭
  3. 单一或少数使用者的情况:保持连线开启
  4. 多使用者的情况:用时开,用完就关闭
  5. 连线集区(Pooling
  6. 连线会存放到集区中
  7.  
  8.  
  9.  
  10. 一般资料存取的问题
  11. sql指令隐码攻击(注入)
  12. 验证输入
  13. Regular expressions
  14.  
  15. 友谊类别
  16. Friend
  17.  
  18. 资料层的设计
  19. 多层次设计:模组化、弹性、重复使用
  20. 重量化和轻量化
  21.  
  22.  
  23. 商业逻辑层的设计
  24. 支持流程中所有安全性、逻辑与资料存取(验证、维护、存储)
  25.  
  26. 具型别DataSet
  27. Dim DS As System.Data.DataSet
  28. Dim customersDS As DataTier.CustomersDataSet
  29. .
  30. .
  31. .
  32. dataAdapter.Fill(DS)
  33. dataAdapter.Fill(customersDS)
  34. 一般的 dataset 存取方式
  35. FirstName = DS.Tables(“Customers”).Rows(i).Item(“FirstName”).ToString()
  36. 具型別 dataset
  37. FirstName = customersDS.Customers(i).FirstName
  38.  
  39. ORM Framework

第十一单元 以元件为基础的开发

  1. 组件
  2. 建立一个DLL组件
  3. 组件层级的attributes
  4.  
  5. 强式名称
  6.  
  7. 数字签章
  8.  
  9. .snk
  10.  
  11. com元件
  12. 互通机制
  13. .net呼叫com元件
  14.  
  15. 建立ccw
  16.  
  17. interop的运作

第十二单元 应用程式设计与布置

  1. 应用程式设计
  2. 1)整体的:布署单一的 .exe+ .net 用户
  3. 2)分层结构的, .exe,DLLs,.net 用户
  4. 3)远端,布署到用户端与服务端
  5. 4)以web为基础的,布署web网页,DLLs+.netweb服务器
  6.  
  7.  
  8.  
  9. 应用程式布署
  10. .net必须安装
  11. CLR + FxCL必须安装在 .exe执行的主机上
  12. 组件manifest
  13.  
  14. AppBase
  15. .exe所在的位置称为AppBase,应用程式的主目录
  16.  
  17.  
  18. 布署选项
  19. XCOPY布署
  20. exedlls+相关档案,全部拷贝到同一个资料夹
  21. 零接触布署
  22. exe一个url用户直接透过ie浏览url
  23. NET AppBase 設定到 Web 伺服器上的虛擬目錄 !
  24. .NET AppBase 下載 .EXE .DLLs
  25. 問題: 安全性? 如何下載必要的檔案 (資料庫)
  26. 组建搜寻演算法
  27.  
  28. 版本转向
  29. 应用程式的.config挡设计可以重写.exe manifest
  30.  
  31. GAC
  32. Global Assembly Cache
  33. 位於 C:\Windows\Assembly
  34. 直接用檔案總管就可以檢視…
  35.  
  36. 安装组件到GAC
  37. 组件必须有强式名称,使用gacutil.exe命令列工具(要有管理员权限)
  38.  
  39. CodeBase
  40.  
  41.  
  42. 共用布署
  43. 将共用的各版本组件安装到GAC
  44. 具有强式命名的组件载入的效率比较快
  45.  
  46. 下载布署
  47. 使用CodeBase来指定DLLs位置
  48.  
  49. 潜在的问题:
  50. 1confighell问题
  51. 2)程式码逆向工程
  52. 3)程式码存取安全性
  53.  
  54.  
  55. 通过reflection机制手动布署
  56. 是一种在执行阶段针对组件进行处理的机制
  57. 载入组件
  58. 建立物件
  59. 检查栏位、方法属性的规格
  60. 存取栏位、方法属性

第十三单元 分散式程式设计

  1. 分散式设计
  2. 同步
  3. 用户端呼叫服务端,然后等待回应
  4. 简单,传统的程式设计模型
  5. 基于RPC的基础上
  6. RPC架构
  7. Proxy-stub物件用来建立爽法的同步呼叫机制
  8. proxy是在用户端,stub在服务端
  9.  
  10. 常见的同步设计
  11. Form-based web 应用程式(webForms
  12. 浏览器解决方案,要求某一页,等待服务器传回html
  13. Web service
  14. 呼叫web方法,等待xml资料传回来
  15. 连接不同平台的应用程式
  16. Remoting
  17. 程式,呼叫方法,等待结果传回来
  18. 两端都是.net平台
  19. 连接.net平台下各层的元件(例如,java和.net
  20. 例如:
  21. .NET on Linux & .NET on Windows
  22. .NET on WinXP & .NET/COM+ on Win2003
  23.  
  24.  
  25. 非同步
  26. 用户端传送要求,然后用户继续进行其它工作,服务端执行完后在将回应传给用户
  27. 比较有弹性
  28. 比较难设计、实作、测试
  29.  
  30.  
  31. Remoting设计
  32. Sales物件是一个“single-call MBRO
  33.  
  34. 使用IISweb server
  35. 很容易开发和设定服务端
  36. 可以使用windows安全机制
  37.  
  38.  
  39. Web services
  40. WSDL=web service description language
  41.  
  42.  
  43. .net web service
  44. 步骤:
  45. 1、建立一个asp.net web 服务专案
  46. 2、专案位置=http://localhost/SalesWebService
  47. 3、参考businessComponent.dll
  48. 4、将sercicel.asmx改名为Sales.asmx
  49. 5、撰写Sales.asmx的程式码Sales.asmx.vb

第十四单元 concurrent Programming

指的是有多个操作会同时执行的程式。

  1. Concurrency
  2. 多个操作同时执行
  3. 范例
  4. web服务器慧颖多个浏览器的要求
  5. 资料库服务器处理多个查询
  6. 怎么办到?
  7. 实际上,一个cpu会在多个程式之间快速切换,看起来就像同时执行
  8.  
  9. cpu切换
  10. 由硬件切换
  11. 每隔一段时间,程式暂停、等候回应
  12.  
  13. 行程(process
  14. 多行程
  15. 多执行绪
  16.  
  17.  
  18. 多执行
  19. 设计上很困难
  20. 1、协调问题
  21. 通过执行绪通讯协调
  22. 等待彼此执行结束
  23. join:值得就是等待执行绪执行完
  24. 一直等
  25. 等一段时间(带参数)
  26. 检查执行绪执行状况
  27. IsAlive
  28.  
  29. 2、通讯问题
  30. 参数
  31. 结果
  32. 执行过程中的变数值
  33.  
  34. 使用队列
  35. 执行绪使用dequeue方法从队列取出资料
  36. 执行绪使用enqueue方法将资料加入队列
  37. 3、同步问题
  38. 使用syncLock指令
  39. 只有一个执行绪可以进入,其它执行绪要等
  40. 使用执行绪安全的队列物件
  41.  
  42. 多执行绪很难设计
  43. 很多细节要注意
  44. 很难证明执行结果一定正确
  45. 很难进行侦错
  46. 可能产生死结(deadlock
  47. 必须在执行绪中处理例外
  48.  
  49.  
  50. delegates
  51. 是一种方法的指标,可以做呼叫端与被呼叫端的抽象化。
  52.  
  53. 在执行绪上的另一层抽象化
  54. 内建支援多执行绪
  55. 更有效率:因为使用执行绪集区(thread pool
  56. 支持参数传进与传回值

第十五单元 软体工程

  所谓的“软体工程”其实就一个软体开发程序,依循这些程式就可以开发出稳定、可靠的软体系统,这些开发程序也可以不断重复使用、不断改良

  1. 软体工程
  2. 背景:
  3. 软件越来越困难
  4. 软件应用在重要的系统上
  5. 软件甚至用在和生命相关的系统上
  6.  
  7. 一般的做法:
  8. 传统“瀑布式”模型
  9. 1.需求分析
  10. 2.设计
  11. 3.实作
  12. 4.单元测试
  13. 5.整合测试
  14. 6.布署
  15. 7.维护
  16. 最近流行的“eXtreme Programming”模型
  17. 一个非常不同、比较精简快速的流程
  18. 主要原则:
  19. 把客户整合到软件开发流程中
  20. 随时设计
  21. 随时测试
  22. 不做过当的设计,越简单越好
  23.  
  24. 工具
  25. UML绘制工具
  26. 程式码分析工具:
  27. FxCop
  28. 测试工具:
  29. NUnit是一个免费的单元测试工具
  30. 原始码管理工具:
  31. 版本管理工具(Visual SourceSafe CVS WinCVS
  32. 文件产生工具:
  33. XML注解
  34. Make工具:
  35. 是一个在Unix系统上常用的工具,用自动化整个软件的组建(编译)流程。
  36. NMake是视窗版的

  我好像学了一门古老的语言,而且跟语法都没有关系,介绍了从最初的程序设计到后来的软件工程,从软件设计到程序的编译会产生什么文件,需要那些系统工具的支持,比如CLR、DLL等等,再到软件的部署、维护用到的技术、工具和方法,从一个更加接触底层的角度去学习了软件的整个流程。   视频里面讲了好多都不认识的系统软件,原来我们编写的程序要真正的发布运行还需要学习很多的东西,不仅仅只是写完代码就ok了,还要考虑不同平台上的运行,并发操作带来的问题,需要有什么样的支撑环境等等一系列的工作。

猜你在找的VB相关文章